(2.4)--第3章 EDA技术及应用精讲总结复习2.ppt
《(2.4)--第3章 EDA技术及应用精讲总结复习2.ppt》由会员分享,可在线阅读,更多相关《(2.4)--第3章 EDA技术及应用精讲总结复习2.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 EDA技术及应用精讲总结复习23.3 VHDL顺序语句课前测试题3 3、变量赋值目标、变量赋值目标=赋值源;其中指向左边的双箭头赋值源;其中指向左边的双箭头(=(”“=”不是操作符,它相当于不是操作符,它相当于“THEN”“THEN”的作用。的作用。该说法:该说法:A A、正确;、正确;B B、错误。、错误。答案:答案:A A。5 5、FORFOR循环语句和循环语句和WHILEWHILE循环语句可以实现同样的功能,其区别是:循环语句可以实现同样的功能,其区别是:FORFOR语句的语句的循环次数未知,而循环次数未知,而WHILEWHILE语句的循环次数已知。语句的循环次数已知。该说法:该
2、说法:A A、正确;、正确;B B、错误。、错误。答案:答案:B B。6 6、语句语句WAIT UNTIL ENABLE =1WAIT UNTIL ENABLE =1表示表示ENABLEENABLE的(的()。A A、高电平;、高电平;B B、上升沿。、上升沿。答案:答案:B B。1 1、根据语句执行顺序,、根据语句执行顺序,VHDLVHDL可分为顺序语句和并行语句两种,但从本质上来可分为顺序语句和并行语句两种,但从本质上来讲,所有语句都是并行运行的。讲,所有语句都是并行运行的。以上说法:以上说法:A A、正确;、正确;B B、错误。、错误。答案:答案:A A。内容提要内容提要赋值语句:赋值语
3、句功能;信号和变量赋值;赋值目标。3.3.1 VHDL顺序语句(1)二、信号和变量赋值1赋值语句有两种,即信号赋值语句和变量赋值语句:(1)变量赋值目标:=赋值源;其中冒号加等号(:=)作为一个整体,称之为变量赋值符号。(2)信号赋值目标=赋值源;其中指向左边的双箭头(=)作为一个整体,称之为信号赋值符号。一、赋值语句功能就是将一个值或一个表达式的运算结果传递给某一数据对象,如信号或变量,或由此组成的数组。2变量赋值与信号赋值的区别:(1)变量具有局部特征,它的有效性只局限于所定义的一个进程中,或一个子程序中。信号具有全局性特征,它不但可以作为一个设计实体内部各单元之间数据传送的载体,而且可通
4、过信号与其他的实体进行通信。(2)变量的赋值是立即发生的,即是一种时间延迟为零的赋值行为。而信号的赋值过程总是有某种延时的,它反映了硬件系统并不是立即发生的,它发生在一个进程结束时。3当在同一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获得的是最后一个赋值源的赋值,其前面相同的赋值目标则不作任何变化。4信号与变量赋值的区别示例LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY VSEXAMPLE IS PORT(A1,B1,C1:IN STD_LOGIC_VECTOR(1 DOW
5、NTO 0);A2,B2,C2:IN STD_LOGIC_VECTOR(1 DOWNTO 0);X1,Y1:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);X2,Y2:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END ENTITY VSEXAMPLE;实体说明ARCHITECTURE ART OF VSEXAMPLE IS SIGNAL D1:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN P1:PROCESS(A1,B1,C1)IS BEGIN D1=A1;X1=B1+D1;D1=C1;Y1=B1+D1;END PROCESS
6、P1;-信号D1两次赋值中的最后一次赋值,故该处做赋值操作-信号D1两次赋值中的非最后一次赋值,故不做赋值操作-信号D1的值为最后一次的赋值C1,故X1等于B1+C1-信号D1的值为最后一次的赋值C1,故Y1等于B1+C1 P2:PROCESS(A2,B2,C2)IS VARIABLE D2:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN D2:=A2;X2=B2+D2;D2:=C2;Y2=B2+D2;END PROCESS P2;END ARCHITECTURE ART;-变量D2的第一次赋值,立即做赋值操作,D2等于A2-变量D2的值为A2,故X2等于B2+A2-变量
7、D2的第二次赋值,立即做赋值操作,D2等于C2-变量D2的值为C2,故Y2等于B2+C2图1 示例综合后的RTL电路结构图SIGNAL D1:.;.P1:PROCESS(A1,B1,C1)IS BEGIN D1=A1;X1=B1+D1;D1=C1;Y1=B1+D1;END PROCESS P1;P2:PROCESS(A2,B2,C2)IS VARIABLE D2:.;BEGIN D2:=A2;X2=B2+D2;D2:=C2;Y2=B2+D2;END PROCESS P2;三、赋值目标1标识符赋值目标:以简单的标识符作为被赋值的信号或变量名。2数组单元素赋值目标:数组类信号或变量名(下标名)-下
8、标名可以是一个具体的数字,也可以是一个文字表示的数字名,它的取值范围在该数组元素个数范围内。下标名若是未明确表示取值的文字(不可计算值),则在综合时,将耗用较多的硬件资源,且一般情况下不能被综合。3段下标元素赋值目标:数组类信号或变量名(下标1 TO/DOWNTO 下标2)必须用具体数值表示,其数值范围必须在所定义的数组下标范围内从低到高/从高到低【例题】下标的排序示例VARIABLE A,B:STD_LOGIC_VECTOR(1 TO 4);A(1 TO 2):=10;A(4 DOWNTO 1):=1011;-等效于A(1):=1,A(2):=0-等效于A(4):=1,A(3):=0,A(2
9、):=1,A(1):=14集合块赋值目标:以一个集合的方式来赋值的。对目标中的每个元素进行赋值的方式有两种,即位置关联赋值方式和名字关联赋值方式。SIGNAL A,B,C,D:STD_LOGIC;SIGNAL S:STD_LOGIC_VECTOR(1 TO 4);VARIABLE E,F:STD_LOGIC;VARIABLE G:STD_LOGIC_VECTOR(1 TO 2);VARIABLE H:STD_LOGIC_VECTOR(1 TO 4);S=(0,1,0,0);(A,B,C,D)E,4=F,2=G(1),1=G(2):=H;【例题】对元素赋值示例。-表示将A=0;B=1;C=0;D
10、=0,是位置关联赋值-表示G(2):=H(1);G(1):=H(2);E:=H(3);F:=H(4),是名字关联赋值内容提要内容提要转向控制语句:IF条件语句;CASE选择语句;LOOP循环语句。3.3.2 VHDL顺序语句(2)一、IF条件语句1语句功能:IF语句,是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语句。2语句结构:IF 条件句1 THEN 顺序语句1;ELSIF 条件句2 THEN 顺序语句2;ELSE 顺序语句3;END IF;3应用举例例题:用VHDL设计一个选择器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL
11、;ENTITY EXAMPLE IS PORT(A,B,C:IN BOOLEAN;Y:OUT BOOLEAN);END ENTITY EXAMPLE;ARCHITECTURE ART OF EXAMPLE IS BEGIN PROCESS(A,B,C)IS VARIABLE N:BOOLEAN;BEGIN IF A THEN N:=B;ELSE N:=C;END IF;Y=N;END PROCESS;END ARCHITECTURE ART;A=TRUE图1 示例的硬件实现电路例题:8线-3线优先编码器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTI
12、TY CODER IS PORT(SR:IN STD_LOGIC_VECTOR(0 TO 7);SC:OUT STD_LOGIC_VECTOR(0 TO 2);END ENTITY CODER;因此输入SR(7)的优先级最高。IF_THEN_ELSIF语句中顺序语句的执行条件具有向上相与的功能,有的逻辑设计恰好需要这种功能。IF_THEN_ELSIF语句ARCHITECTURE ART OF CODER IS BEGIN PROCESS(SR)IS BEGIN IF(SR(7)=0)THEN SC=000;ELSIF(SR(6)=0)THEN SC=100;ELSIF(SR(5)=0)THEN
13、 SC=010;ELSIF(SR(4)=0)THEN SC=110;ELSIF(SR(3)=0)THEN SC=001;ELSIF(SR(2)=0)THEN SC=101;ELSIF(SR(1)=0)THEN SC=011;ELSE SC顺序语句1;WHEN 选择值2 =顺序语句2;WHEN OTHERS =顺序语句n;END CASE;注意:条件句中的“=”不是操作符,它只相当于“THEN”的作用。选择值表达方式单个普通数值,数值选择范围,并列数值,混合方式,如4。如(2 TO 4),表示取值2、3或4。如3|5,表示取值为3或者5。以上三种方式的混合。3使用CASE语句的注意事项:(1)条
14、件句中的选择值必须在表达式的取值范围内。(2)除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用“OTHERS”表示。它代表已给的所有条件句中未能列出的其他可能的取值,这样可以避免综合器插入不必要的寄存器。(3)CASE语句中每一条语句的选择只能出现一次,不能有相同选择值的条件语句出现。为什么每一条语句的选择只能出现一次呢?如果每一条语句的选择可能出现多次,意味着同1个值会出现不同的语句,也就是经过逻辑综合后,会出现不同的硬件,这与我们VHDL设计,必须保证硬件的唯一性是相违背的。(4)CASE语句执行中必须选中,且只能选中所列条件语句中的一条。这表
15、明CASE语句中至少要包含一个条件语句。4CASE语句与IF语句的区别:(1)CASE语句组的程序可读性比较好,这是因为它把条件中所有可能出现的情况全部列出来了,执行过程更接近于并行方式;而IF语句需要逐项条件顺序比较。(2)一般地,对相同的逻辑功能,CASE语句综合后将耗用更多的硬件资源,但是有的逻辑用CASE语句无法描述,只能用IF语句来描述。这是因为IF_THEN_ELSIF语句具有条件相与的功能和自动将逻辑值“-”包括进去的功能(逻辑值“-”有利于逻辑化简),而CASE语句只有条件相或的功能。5应用举例例题:用CASE语句描述4选1多路信号选择器。LIBRARY IEEE;USE IE
16、EE.STD_LOGIC_1164.ALL;ENTITY MUX41A IS PORT(S1,S2:IN STD_LOGIC;A,B,C,D:IN STD_LOGIC;Z:OUT STD_LOGIC);END ENTITY MUX41A;实体说明-输入信号-选择控制信号-选择器的输出信号ARCHITECTURE ART OF MUX41A IS SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN SZZZZZ=X;END CASE;END PROCESS;END ARCHITECTURE ART;-其合并的目的是为了方便后续的选择控制必需的三、LOOP循环语
17、句1语句功能:LOOP语句就是循环语句,它可以使所包含的一组顺序语句被循环执行,其执行次数可由设定的循环参数决定,循环的方式由 NEXT和EXIT语句来控制。2语句格式:(1)LOOP格式LOOP 标号:重复模式 LOOP 顺序语句;END LOOPLOOP 标号;(2)重复模式LOOP 标号:FOR 循环变量 IN 循环次数范围 LOOP LOOP 标号:WHILE 循环控制条件 LOOP 重复模式有两种:WHILE 和FOR,格式分别为:-重复次数已知-重复次数未知(3)循环方式循环方式由NEXT和EXIT语句控制。EXIT语句格式与NEXT 语句的格式和操作功能非常相似,惟一的区别是NE
18、XT语句是跳向LOOP 语句的起始点,而EXIT语句则是跳向LOOP语句的终点。其语句格式为NEXT/EXIT LOOP 标号 WHEN 条件表达式;当LOOP 标号缺省时,则执行NEXT 语句时,即刻无条件终止当前的循环,跳回到本次循环LOOP语句的开始处,开始下一次循环;否则跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。若WHEN子句出现并且条件表达式的值为TRUE,则执行NEXT语句,进入跳转操作;否则继续向下执行。3应用举例【例题】FOR循环语句的使用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOOPEXP IS PO
19、RT(A:IN BIT_VECTOR(0 TO 3);Y:OUT BIT_VECTOR(0 TO 3);END ENTITY LOOPEXP;ARCHITECTURE ART OF LOOPEXP IS BEGIN PROCESS(A)IS VARIABLE B:BIT;BEGIN B:=1;FOR I IN 0 TO 3 LOOP B:=A(3-I)AND B;Y(I)=B;END LOOP;END PROCESS;END ARCHITECTURE ART;【例题】WHILE循环语句的使用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY WHI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2.4-第3章 EDA技术及应用精讲总结复习2 2.4 EDA 技术 应用 总结 复习
限制150内