电子设计自动化第6章VHDL的描述语句与描述风格

电子设计自动化第6章VHDL的描述语句与描述风格

ID:43231031

大小:718.00 KB

页数:177页

时间:2019-10-05

电子设计自动化第6章VHDL的描述语句与描述风格_第1页
电子设计自动化第6章VHDL的描述语句与描述风格_第2页
电子设计自动化第6章VHDL的描述语句与描述风格_第3页
电子设计自动化第6章VHDL的描述语句与描述风格_第4页
电子设计自动化第6章VHDL的描述语句与描述风格_第5页
资源描述:

《电子设计自动化第6章VHDL的描述语句与描述风格》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.1顺序执行语句6.2并发执行语句6.3VHDL的描述风格6.4其他语句和说明6.5实训习题6.1顺序执行语句在VHDL语言中,顺序语句只用于进程、函数、过程中。顺序语句可以进行算术运算、逻辑运算、信号和变量的赋值、子程序调用等。VHDL语言顺序是相对于仿真软件的运行和VHDL语法的编程逻辑思路而言的,其相应的硬件逻辑工作方式未必采用相同的顺序。要注意区分VHDL语言的软件行为与描述综合后的硬件行为之间的差异,也即在顺序执行语句中,执行第一条语句与执行最后一条语句之间的时间间隔是不需要计算考虑的。这与单片机中的语句执行是不一样的,因为顺序语句最终也要综合成相应的硬件电路,在硬件电路中并没

2、有一部分电路先工作而另一部分电路后工作的过程。常用的顺序语句有:信号与变量赋值语句、流程控制语句、WAIT语句、子程序调用语句、空操作(NULL)语句、断言(ASSERT)语句、REPORT语句及其相关语句等。6.1.1赋值语句在进程、子程序中的赋值语句包括变量赋值语句与信号赋值语句两种。变量赋值与信号赋值虽然都是在顺序语句中,但赋值的过程有不同之处。变量具有局部特征,它的赋值是立即发生的,是一种时间延迟为零的赋值行为。信号具有全局性特征,它不但可以作为一个设计实体内部各单元之间数据传送的载体,而且可通过信号进行实体间通信。信号在顺序语句中的赋值不是立即发生的,它发生在一个进程结束时或子程

3、序调用完成以后。信号的赋值过程总有一定的延时,它反映了硬件系统的重要特性,综合后可以找到与信号对应的硬件结构,如一根传输导线、一个输入/输出端口或一个D触发器等。变量赋值与信号赋值的语法格式如下:变量赋值目标:=赋值源;   信号赋值目标<=赋值源;   在进行赋值时,如果对同一个信号赋值多次,则在进程结束时信号的值为最后一个赋值源的值。在该进程中所有用到该信号的表达式中,该信号的值都是以最后一个赋值源的值参与运算的,不管该表达式出现在进程的什么位置。但是对于变量,在对变量赋值后,变量的值立即改变,下面用到该变量的值时就以新赋值的赋值源参与运算。在VHDL语言中,变量或信号的赋值是强制类型

4、赋值,如果赋值目标与赋值源的类型、长度不一致是不能进行赋值的。在信号与变量赋值过程中,若发现类型不一致,可以通过调用相关的程序包运用类型转换函数进行类型转换;如果赋值两边长度不一致,可以通过并置符补充相应的位数或者通过段下标进行赋值。在用MAXplus Ⅱ进行检查时,提示有一个警告,指出在对s2赋值时第一条语句无效;在编译时有两个警告,除了指出在对s2赋值时第一条语句无效外,还指出d(8)与“地”相连。通过MAXplus Ⅱ仿真的波形如图6-1所示。图6-1例6-1的仿真图形6.1.2流程控制语句在VHDL语言顺序执行语句中,流程控制语句占了很大的比重。流程控制语句通过条件语句决定是否执行

5、一条或几条语句,或者重复执行一条或几条语句,或者跳过一条或几条语句。常用的流程控制语句有IF语句、CASE语句、LOOP语句等。1.IF语句IF语句是一种条件语句,是VHDL顺序语句中最重要的语句结构之一,在进程、子程序中经常使用。它可以根据句中所设的一种或多种条件,有选择地执行指定的顺序语句。IF语句的常用格式有以下三种。(1)格式1:IF条件THEN顺序执行语句;ENDIF;   该语句起到一个门闩控制的作用,当程序执行到该IF语句时,就要判断IF语句所指定的条件是否成立。如果条件成立,IF语句所包含的顺序执行语句将被执行;如果条件不成立,程序跳过IF包含的顺序执行语句,向下执行IF的

6、后续语句。【例6-2】IF(a=‘1’)THENc<=b;ENDIF;如果a=‘1’则执行c<=b;否则跳过IF语句执行后续语句。(2)格式2:IF条件THEN顺序执行语句;ELSE顺序执行语句;ENDIF;   该语句起到选择控制的作用。当IF条件成立时,程序执行THEN和ELSE之间的顺序执行语句部分;当IF语句的条件不成立时,程序执行ELSE和ENDIF之间的顺序执行语句部分,即根据所指定的条件是否满足,程序可以选择两条不同的执行路径。【例6-3】IF(a=‘1’)THENc<=b;ELSEc<=d;ENDIF;如果a='1'则执行c<=b;否则执行c<=d,然后执行后续语句。该语句

7、执行多选择控制功能。在这种语句中,可允许在一个语句中出现多重条件,即条件嵌套。它设置了多个条件,当满足所设置的多个条件之一时,就执行该条件后的顺序执行语句。当所有设置的条件都不满足时,程序执行ELSE和ENDIF之间的执行语句。其中ELSE后面的语句可以不用,当条件都不满足时,直接执行后续语句。在该语句中,也可以用IF语句的嵌套,即将ELSIF改写成ELSEIF,但要注意的是,在IF语句中,每含有一个IF语句都要有一个E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。