VHDL语言及程序设计解析
12
ARCHITECTURE的SUBPROGRAM子结构
与高级语言中的子程序概 念差不多,可以反复调用, 但不能重入,结构内语句 为顺序执行,有 Procedure和Function 之分 多个过程和函数汇集在一 起构成包集合,几个包集 合汇集在一起构成库
hwadee
2018/10/1 9
13
hwadee
2018/10/1 9
11
ARCHITECTURE的PROCESS子结构
PROCESS中的语句是顺序执行的,一个结构体中可以有多个 PROCESS,它们之间可以通过信号进行通信 PROCESS的启动受敏感信号控制,敏感信号的变化会直接导致 PROCESS的启动
hwadee
2018/19
3
VHDL语言程序的基本构成
库、包集合:用于存放预先编译好的程序包 (PACKAGE)和数据集合体,以便不同 的VHDL设计使用 实体说明:规定设计单元的输入输出接口 信号和引脚 构造体:定义设计单元的具体构造和操作
hwadee
2018/10/1 9
4
实体名:实体名必须与VHDL文件名相同,否则编 译会出错
hwadee 2018/10/1 9 7
Exemple of ENTITY
GENERIC所定义的元件叫做参数化元件, 即元件的规模或特性由GENERIC的常数 决定,利用GENERIC可以设计更加通用 的元件,弹性地适应不同的应用
端口信号名在实体之中必须是唯一 的,信号名应是合法的标识符
hwadee 2018/10/1 9 6
实体(ENTITY)
实体类似于原理图中的一个部件符号,它并不描述 设计的具体功能,只是定义所需的全部输入/输出信 号。实体格式如下:
ENTITY 实体名 IS
[GENERIC(常数名:数据类型[:设定值])] PORT 端口说明 (端口信号名1: 模式 类型; 端口信号名2: 模式 类型; 端口信号名3: 模式 类型; 端口信号名4: 模式 类型); END 实体名; 类属说明
分别有IN、OUT、 INOUT、BUFFER、 LINKAGE 常用的有INTEGER、 STD_LOGIC、 STD_LOGIC_VECTOR
hwadee
2018/10/1 9
8
ARCHITECTURE
所有能被仿真的实体都由结构体(ARCHITECTURE)描述,即 结构体描述实体的结构或行为,一个实体可以有多个结构体,每 个结构体分别代表该实体功能的不同实现方案 结构体格式: ARCHITECTURE 结构体名 OF 实体名 IS [定义语句(元件例化);] BEGIN 并行处理语句; END 结构体名; 结构体名是对本结构体的命名,它是该结构体的惟一名称,虽然 可以由设计人员自由命名,但一般都将命名和对实体的描述结合 起来,例如:行为描述(BEHAVE),寄存器传输级(RTL)
VHDL中的数据对象
在逻辑综合中,VHDL常用的数据对象有信号、变量及常量 信号SIGNAL:为全局变量,定义格式: SIGNAL 信号名: 数据类型[:=初始值]; 赋值格式: 目标信号名<=表达式 常在结构体中用赋值语句完成对信号赋初值的任务,因为综合器往往忽略信号声 名时所赋的值 常量:全局变量,在设计中描述某一规定类型的特定值不变,如利用它可设计 不同模值的计数器,模值存于一常量中,对不同的设计,改变模值仅需改变此常 量即可,就如上一章所说的参数化元件。 定义格式: CONSTANT 常数名:数据类型:=表达式
VHDL硬件描述语言及应用
-----------一种很好的数字系统硬件电路的形式化描述实现
VHDL语言概述
HDL:Hardware Description Language
VHDL:由美国国防部开发,1987年由IEEE标 准化,1993年进一步修订
Verilog:1983年由Gateway Design Automation 公司开发, 1990年被推向公众领域, 1995年成为 IEEE标准
变量(VARIABLE):用于声明局部值或用于子程序中,变量的
赋值符号为“:=”, 定义格式: VARIABLE 变量名: 数据类型[:=初始值]
hwadee
2018/10/1 9
9
Exemple of ARCHITECTURE
hwadee
2018/10/1 9
10
ARCHITECTURE的BLOCK子结构
子结构的使用使设计者可以把整个电路分成若干个相对独立的模块来进 行描述 子结构有:BLOCK,PROCESS,SUBPROGRAMS BLOCK与ARCHITECTURE相当于整体原理图与子原理图关系,结 构内部语句是并发的,如希望BLOCK有条件执行,可采用卫式 BLOCK,如下:
建议:VHDL比较严谨,Verilog比较自由,初学 还是用VHDL比较好,初学用Verilog会比较容易 出错
hwadee 2018/10/1 9 2
VHDL中的注意事项
在VHDL语言中,大小写不加区分,但 在代码中巧妙应用大小写,可以使代码 变得易于阅读和规范 实体名必须与VHDL文件名相同,否则 编译会出错 信号与变量,过程与函数的区分
VHDL语言程序的基本构成示例
库、包集合说明
实体说明
构造体
hwadee
2018/10/1 9
5
库和包集合的使用
库的说明总是放在设计单元的最前面,调用方法: LIRARY 库名 USE 库名.所要调用的程序包名.ALL 具体可打开安装目录C:\altera\quartus60\libraries\vhdl下相 应的文件进行学习 常用库和包集合:IEEE库中的包集合 STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UN SIGNED,其中后两个包在日本synopsys(新思)公司目录中,该公 司在FPGA行列还推出了prime time静态时序分析工具 STD库中STANDARD包集合是VHDL的标准配置,使用时可以不 说明 WORK库:VHDL现行工作库,可以理解为用户当前编辑的目录中 所有可用的包和数据集