欢迎来到天天文库
浏览记录
ID:5283058
大小:161.00 KB
页数:9页
时间:2017-12-07
《vhdl语言的常用语法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛第3节VHDL语言的常用语法[学习要求]掌握VHDL硬件描述语言的基本描述语句。并可以利用这些语句进行简单电路的设计。[重点与难点]重点:常用的并行语句与顺序语句的语法。难点:部件(Component的定义与应用。[理论内容]一、并行语句所谓的并行语句指采用这些语法生成的硬件电路在时间上可以并行(或并发)的执行(运行)。这是VHDL语法必须具备的能力,也符合硬件电路的特性。这一点不同于软件,因为软件的语句(或指令)一般总是顺序执行。基本的并行同时语句,可分为下面三
2、种形式来讨论:直接设置语句、条件式信号设置语句和选掼式信号设置语句。1、直接设置语句直接设置语句是采用“<=”运算符。例如如下的语句:D<=notA;E<=BandC;F<=AorBorC;这三条语句虽然是分三行写的,但实际上三条语句是同时执行的。2、条件式信号设置语句:When-ElseWhen-Else命令也是属于同时并行的语句命令,它的语法格式如下:信号A<=信号BWhen(条件1)Else信号CWhen(条件2)Else信号D;说明:⑴上述的条件式,是指一般常见的布尔表达式,亦即条件式的结果必定是真(True)或错(False)中的一种。⑵语法中的条件式1为True时
3、,则将信号B传递给信号A,否则再确认条件式2为True时,将信号C传递给信号A。最后在条件1和条件2都不成立的情况下,将信号D的http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛值传递给信号A。When-Else命令的应用范围非常广泛,例如:编码器、译码器、多路选择器等的VHDL命令编写,都可以采用这条命令。3、选择式信号设置语句:With-Select语法格式如下:With选择信号XSelect信号Y<=信号值AWhen选择信号X值为m,信号值BWhen选择信号X值为n。。。信号值ZWhenOthers;说明:
4、⑴With-Select的命令作用是,判断选择信号X的值,依次是m或n等的相应条件值,然后在判断成立时,将它对应的信号值A或信号值B传递给信号Y。⑵而在比罗过程,选择信号X无一是上述表示的信号值时,最后会将Others保留字前的信号值Z传递给信号Y。⑶上述With-Select语法命令的m,n等值,必须互不相同。举例:分别用With-Select和When-else语句实现以下的真值表。真值表(TrueTable)输入输出XYZ000011101110VHDL程序如下:--***************库定义部分************Libraryieee;Useieee.
5、std_logic_1164.all;Useieee.std_logic_arith.all;http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛Useieee.std_logic_unsigned.all;--*************实体部分****************EntityTrue_TableisPort(X,Y:instd_logic;Z:outstd_logic);endTrue_Table;--************用When-else语句实现的结构体****************arch
6、itectureaofTrue_TableisbeginZ<=’0’when(X=’0’andY=’0’)Else’1’when(X=’0’andY=’1’)Else’1’when(X=’1’andY=’0’)Else‘0’;enda;--************用With-Select语句实现的结构体****************architecturebofTrue_TableissignalS:std_logic_vector(1downto0);beginS<=X&Y;withSSelectZ<=’0’when“00”,‘1’when“01”,“1’when“10”
7、,‘0’whenothers;endb;4、Process语句Process(进程)语句是一种并行处理语句,在一个构造体中多个Process语句可以同时http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛并行运行。因此,Process语句是VHD语言中描述硬件系统并行行为的最基本的语句。其语法结构如下:[进程名]:Process(信号1,信号2,…)Begin….EndProcess;进程Process语句中总是带有1个或几个信号量。这些信号
此文档下载收益归作者所有