VHDL&Quartus快速入门 3小时
跟着本文,3h可看懂简单vhdl程序
RTL表示 寄存器传输级
在RTL级,IC是由一组寄存器以及寄存器之间的逻辑操作构成。
RTL级和门级简单的区别在于,RTL是用硬件描述语言(Verilog 或VHDL)描述理想达到的功能,门级则是用具体的逻辑单元(依赖厂家的库)来实现你的功能。
RTL经过逻辑综合后,就得到门级。
VHDL语法
VHDL语法速成
虽然下面部分基本上是在照抄上面的链接,但是对于有一定编程基础的人,上面的链接太多了,下面的更加适合做备忘与查找,或者说下面的部分是VHDL与常见的C语言、C++、Python、Java等语言明显不同的地方。
1.
进制 # 基数 # 指数
2.
进制(B/O/X)“数组”
3. 下标
用小括号
downto 和 to 有什么区别
VHDL中的downto与to是表示范围的两个关键字,分别对应从左至右的索引是从大到小还是从小到大排列
4. 常量
常量有作用范围的说法
5. 变量
6.信号
注意信号和变量的赋值是不一样的,sig用<=,var用:=
对于Sig<=expression, expression是早就算好了放在右边的,但是实际上赋值给sig,需要等到进程结束。
6. 数据类型
-
数据类型转换
-
VHDL实例
实体:实体(Entity)提供了被设计系统或器件的公共信息,指明了输入与输出引脚。实体由实体名、类型说明、端口说明、实体说明部分和实体语句部分组成。
entity 实体名 is
generic(常数名:数据类型:初值)
port(端口信号名:数据类型)
end 实体名
结构体:通过vhdl语句描述实体的具体行为和逻辑功能,
² 结构体( Architecture Body )具体指明了设计实体的行为,定义了设计实体的功能,规定了该设计实体的数据流程,指派了实体中内部元件的连接关系。一个实体必须有一个或可以有多个结构体。用 VHDL 语言描述结构体有 4 种方法:
(1)行为描述法:采用进程语句,顺序描述设计实体的行为。
(2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。
(3)结构描述法:采用并行处理语句描述设计实体内的结构组织和元件互连关系。
(4)采用多个进程(Process)、多个模块(Blocks)、多个子程序(Subprograms)的方法。
architecture 结构体名 of 实体名 is
说明部分(可选,如数据类型type 常数constand 信号signal 元件component 过程pocedure 变量variable和进程process等)
begin
功能描述部分
end 结构体名
条件if语句
if 条件 then
--do something;
else if 条件 then
--do something;
else
--do something;
end if;
循环for
for x in 0 to n loop
--do something;
end loop;
赋值运算:
<= 信号赋值
:= 变量赋值
=> 数组内部分元素赋值
not 非
and 与
or 或
nand 与非
nor 或非
xor 异或
注意:对数组类型,参与运算的数组位数要相等,运算为对应位进行
- 加
- 减
- 乘
/ 除
mod 模
rem 取余
** 指数
abs 绝对值
注意:尽量只使用加减
=> 大于等于
<= 小于等于
大于
< 小于
/= 不等于
= 等于
& 连接运算结果为同类型构成的数组
注意:从本质上讲,VHDL代码是并发执行的。只有PROCESS,FUNCTION或者PROCEDURE内部的代码才是顺序执行的。值得注意的是,尽管这些模块中的代码是顺序执行的,但是当它们作为一个整体是,与其他模块之间又是并发的。IF,WAIT,CASE,LOOP语句都是顺序代码,用在PROCESS,FUNCTION和PROCEDURE内部。
QuartusII 速成
数电实验入门-Quartus||9.0基础教程
查看以下分p快速了解Quartus基本功能
P2 01软件使用之画图篇
P5 02软件使用之波形仿真篇-组合逻辑电路
P6 03软件使用之管脚分配篇-组合逻辑电路
VHDL程序结构
VHDL程序结构
库 实体(entity)结构体(architecture)的格式与结构=声明+功能
功能描述语句的5种类型
我不记得在哪里看的了,功能描述语句有3种风格,与5种类型区分:
行为风格直接给出算法,数据风格描述数据流向,组件风格首先定义组件引脚然后描述组件之间的连接方式
VHDL程序语言
对5种语言风格更加详尽的描述
感觉最常见的就是 算法风格,component和process(数据风格),另外两种不多见,可以延迟观看。
CSDN-Ada助手: 推荐 Python入门 技能树:https://edu.csdn.net/skill/python?utm_source=AI_act_python
Viva__la__vida: 退出当前容器环境,在自己的环境修改,而非新建文件
ou得之: /etc/nvidia-container-runtime/config.toml这个是在容器中新建吗?
m0_63695327: 请问测试结束多久以后会出结果呀?
ZnS_oscar: 不好意思两个月没登录csdn了。没收到邮件就是没过