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