- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章_VHDL基础
VHDL的历史由来 至1982年,各ASIC厂商相继开发了用于各自目的的HDL。 1987年, IEEE确认美国国防部开发的VHDL作为标准的硬件描述语言。 21世纪,几乎全部的数字系统设计任务将由VHDL与Verilog语言承担,VHDL将是电子工程设计人员的必备知识。 C、C++代替汇编等语言 VHDL代替原理图、逻辑状态图等 VHDL主要用于描述数字系统的结构、行为、功能和接口; VHDL将一个设计(元件、电路、系统)分为内部和外部。 2 VHDL结构(1/4) 1、实体表达 ENTITY e_name IS PORT ( p_name : port_m data_type; ... p_namei: port_mi data_type ); END ENTITY e_name; 实体描述的是电路器件的端口构成和信号属性 ENTITY、IS 、 PORT、 END都是描述实体的关键词,不区分大小 2、实体名 e_name是实体名,是标识符,由设计者决定取名,一般根据电路功能来确定; 不能用中文定义; 不能用EDA工具库中已定义好的元件名,如or2,latch等; 不能以数字开头,如74LS160; 2 VHDL结构(2/4) 3、端口语句和端口信号名 描述电路的端口及其端口信号,必须用端口语句PORT来引导,并在语句结尾处加分号“;” 4、端口模式 有4种,用于定义端口上的数据流动方向和方式; IN:输入端口,数据只能由此端口进入实体; OUT:输出端口,数据只能由此端口内部向外流出; INOUT:输入输出双向端口,数据可入可出; BUFFER:缓冲端口,与INOUT类似,区别在于允许内部反馈,如计数器设计 5、数据类型 VHDL中,对任何数据对象都必须限定其取值范围和数值类型 相关数据类型有INTEGER、BOOLEAN、STD_LOGIC、BIT等 BIT取值范围是‘0’和‘1’;单引号不可缺省,否则便是整型数据 BIT数据类型可以参加逻辑运算或算术运算,运算结果也为BIT类型 2 VHDL结构(3/4) 6、结构体表达 ARCHITECTURE arch_name OF e_name IS [说明语句] BEGIN (功能描述语句) END ARCHITECTURE arch_name ; ARCHITECTURE、 IS、BEGIN、 END都是描述结构体的关键词,在描述中必须包含他们; “说明语句”不是必须的,“功能描述语句”是必须的; 一个完整的VHDL程序有比较固定的结构; 首先是各类库或程序包的使用声明,然后是实体描述,最后是结构体描述,结构体中可以含有不同的逻辑表达式语句结构 2 VHDL结构(4/4) 7、赋值符号和数据比较符号 信号赋值符:=,如y=b,表示把b的值送给y,其中b与y的数据类型必须一致,赋值存在一定的固有延时; 8、逻辑操作符 AND(与)、OR(或)、NAND(与非)、NOR(或非)、XOR(异或)、XNOR(同或)和NOT(取反) 共7种基本逻辑操作符 9、条件语句: IF_THEN_ELSE,为顺序语句 必须以语句“END IF”结束 10、条件信号赋值语句 WHEN_ELSE,为并行赋值语句 11、进程语句和顺序语句 由PROCESS()引导,至END PROCESS结束 进程语句执行依赖于敏感信号的变化,启动进程语句…… 12、文件取名及存盘 文件名需和实体名一致,后缀名vhd,*.vhd,推荐使用小写。 端口模式有以下几种类型:(方框代表一个设计实体) in out buffer inout 4.3.1 顺序语句 顺序语句只能出现在进程(Process)和子程序(函数和过程)中。在VHDL中,一个进程是由一系列顺序语句构成的,在同一设计实体中,所有的进程是并行执行的。然而任一给定的时刻内,在每一个进程内,只能执行一条顺序语句。VHDL有如下六类基本顺序语句:赋值语句、转向控制语句、等待语句、子程序调用语句、返回语句和空操作语句。 1. 顺序赋值语句 顺序赋值语句的功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号或变量,或由此组成的数组。VHDL设计实体内的数据传递以及对端口界面外部数据的读/写都必须通过赋值语句的运行来实现。 顺序赋值语句包括信号赋值语句和变量赋值语句。 变量
文档评论(0)