(2.5)--第3章 EDA技术及应用精讲总结复习3.ppt

上传人:奉*** 文档编号:96452150 上传时间:2023-11-29 格式:PPT 页数:54 大小:282.66KB
返回 下载 相关 举报
(2.5)--第3章 EDA技术及应用精讲总结复习3.ppt_第1页
第1页 / 共54页
(2.5)--第3章 EDA技术及应用精讲总结复习3.ppt_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《(2.5)--第3章 EDA技术及应用精讲总结复习3.ppt》由会员分享,可在线阅读,更多相关《(2.5)--第3章 EDA技术及应用精讲总结复习3.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3章 EDA技术及应用精讲总结复习33.4 VHDL并行语句课前测试题3 3、VHDLVHDL元件例化端口映射语句元件例化端口映射语句“U1:ND2 PORT MAP(A1,B1,S1);”“U1:ND2 PORT MAP(A1,B1,S1);”的端口的端口映射关联方式为(映射关联方式为()。)。A A、名字关联;、名字关联;B B、位置关联;、位置关联;C C、结构关联;、结构关联;D D、混合关联。、混合关联。答案:答案:B B。2 2、并行简单信号赋值语句是、并行简单信号赋值语句是VHDLVHDL并行语句结构的最基本的单元,它的语并行语句结构的最基本的单元,它的语句格式如下:信号赋值目

2、标:句格式如下:信号赋值目标:=表达式;表达式;以上说法:以上说法:A A、正确;、正确;B B、错误。、错误。答案:答案:B B。4 4、为简化为有规则设计结构的逻辑描述,可根据某些条件设定好某一元件、为简化为有规则设计结构的逻辑描述,可根据某些条件设定好某一元件或设计单位,利用生成语句复制一组完全相同的并行元件或设计单元电路结或设计单位,利用生成语句复制一组完全相同的并行元件或设计单元电路结构。构。该说法:该说法:A A、正确;、正确;B B、错误。、错误。答案:答案:A A。1 1、同一结构体中的进程之间是顺序运行的,但同一进程中的逻辑描述语句则、同一结构体中的进程之间是顺序运行的,但同

3、一进程中的逻辑描述语句则是并行运行的。是并行运行的。以上说法:以上说法:A A、正确;、正确;B B、错误。、错误。答案:答案:B B。内容提要内容提要并行语句:并行语句概述;进程语句。3.4.1 VHDL并行语句(1)一、并行语句概述1在VHDL中,并行语句具有多种语句格式,各种并行语句在结构体中的执行是同步运行的,或者说是并行运行的,其执行方式与书写的顺序无关。2在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的。每一并行语句内部的语句运行方式可以有两种不同的方式,即并行执行方式和顺序执行方式。图1 结构体中的并行语句模块3VHDL中的并行运行的含义:模块间的运行

4、方式同时运行异步运行非同步运行等电路的工作方式组合逻辑运行方式同步逻辑运行方式异步逻辑运行方式等4并行语句与顺序语句,往往互相包含、互为依存,它们是一个矛盾的统一体。例如:进程属于并行语句,而进程内部运行的都是顺序语句,而一个单句并行赋值语句,从表面上看是一条完整的并行语句,但实质上却是一条进程语句的缩影,它完全可以用一个相同功能的进程来替代。所不同的是,进程中必须列出所有的敏感信号,而单纯的并行赋值语句的敏感信号是隐性列出的。二、进程语句1进程(PROCESS)语句是最具VHDL语言特色的语句,因为它提供了一种用算法(顺序语句)描述硬件行为的方法。进程实际上是用顺序语句描述的一种进行过程,也

5、就是说,进程用于描述顺序事件。一个结构体中可以有多个并行运行的进程结构,而每一个进程的内部结构却是由一系列顺序语句来构成的。PROCESS结构中既可以有时序逻辑的描述,也可以有组合逻辑的描述,它们都可以用顺序语句来表达。2PROCESS语句格式进程标号:PROCESS(敏感信号参数表)IS 进程说明部分;BEGIN 顺序描述语句;END PROCESS进程标号;当进程中定义的任一敏感信号发生更新时,由顺序语句定义的行为就要重复执行一次。但当遇到WAIT语句时,执行过程将被有条件地终止,即所谓的挂起。一个结构体中可含有多个PROCESS结构,每一PROCESS结构对于其敏感信号参数表中定义的任一

6、敏感参量的变化,每个进程可以在任何时刻被激活(或者称为启动)。所有被激活的进程都是并行运行的,这就是为什么PROCESS结构本身是并行语句的道理。3PROCESS语句组成PROCESS语句结构进程说明部分顺序描述语句部分敏感信号参数表-包括数据类型、常数、属性、子程序等,但不允许定义信号和共享变量。-需列出启动本进程要读入的信号名。信号赋值语句变量赋值语句进程启动语句子程序调用语句顺序描述语句进程跳出语句4进程语句设计要点(1)同一结构体中的进程之间是并行运行的,但同一进程中的逻辑描述语句则是顺序运行的。(2)进程的激活必须由敏感信号表中定义的敏感信号的变化来启动,否则必须由一个显式的WAIT

7、语句来激活。(3)结构体中多个进程之所以能并行运行,一个很重要的原因就是进程之间的通信是通过传递信号和共享变量值来实现的。(4)综合后对应于进程的硬件结构,对进程中的所有可读入信号都是敏感的,而在VHDL行为仿真中并非如此,除非将所有的读入信号列为敏感信号。5应用举例【例题】十进制加法计数器之一 CNT10A。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10A IS PORT(CLR:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(3 DOWNTO

8、 0);CNT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT10A;-打开重载程序包ARCHITECTURE ART OF CNT10A IS BEGIN PROCESS(DIN,CLR)IS BEGIN IF(CLR=1 OR DIN=1001)THEN CNT=0000;ELSE CNT=DIN+1;END IF;END PROCESS;END ARCHITECTURE ART;描述十进制加法器的进程-使用了重载运算符+由于该进程无时钟控制信号,它是一个组合逻辑电路,因此对计数的结果CNT无记忆功能。图1 组合电路型十进制加法器CNT10A

9、综合后的RTL硬件结构图这个加法器只能对输入值作加1操作,却不能将加1后的值保存起来。【例题】十进制加法计数器之二 CNT10B。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B IS PORT(CLR:IN STD_LOGIC;CLK:IN STD_LOGIC;CNT:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT10B;l如果要使加法器有累加作用,则必须引入时序元件来储存相加后的值。l下面的十进制加法器CNT10B

10、,在进程中增加了一条WAIT语句,使此语句后的信号赋值有了寄存的功能,从而使综合后的电路变成时序电路。ARCHITECTURE ART OF CNT10B IS BEGIN PROCESS IS BEGIN WAIT UNTIL CLKEVENT AND CLK=1;IF(CLR=1 OR CNT=9)THEN CNT=0000;ELSE CNT=CNT+1;END IF;END PROCESS;END ARCHITECTURE ART;描述十进制加法器的进程由于该进程增加了一个时钟控制信号CLK;它是一个时序逻辑电路,具有记忆功能,可对计数的结果CNT进行累加,其累加的间隔为CLK的周期。-

11、等待CLK的上升沿图2 时序电路型十进制加法器CNT10B综合后的RTL硬件结构图(增加了D触发器)CNT10B的RTL图与CNT10A的RTL图的惟一区别是增加了四个D触发器,用于加1值后的储存;对于原来的4位外输入值,则由四个D触发器的储存值反馈来替代,整个加法操作只需加入时钟脉冲即可。总结:综合后的进程语句所对应的硬件逻辑模块的工作方式可以是组合逻辑方式的,也可以是时序逻辑方式的。内容提要内容提要并行信号赋值语句:简单信号赋值语句;条件信号赋值语句;选择信号赋值语句。3.4.2 VHDL并行语句(2)一、并行信号赋值语句概述并行信号赋值语句简单信号赋值语句选择信号赋值语句条件信号赋值语句

12、这三种信号赋值语句的共同点:赋值目标必须都是信号,所有并行赋值语句在结构体内的执行是同时发生的。二、简单信号赋值语句并行简单信号赋值语句是VHDL并行语句结构的最基本的单元。信号赋值目标=表达式;式中,信号赋值目标的数据类型必须与赋值符号右边表达式的数据类型一致。三、条件信号赋值语句1条件信号赋值语句的表达方式:信号赋值目标=表达式1 WHEN 赋值条件1 ELSE 表达式2 WHEN 赋值条件2 ELSE 表达式n;2与IF语句的比较在结构体中的条件信号赋值语句的功能与在进程中的IF语句相同。在执行条件信号赋值语句时,每一赋值条件是按书写的先后关系逐项测定的,一旦发现赋值条件为TRUE,就立

13、即将表达式的值赋给赋值目标。3应用举例【例题】8线-3线优先编码器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY ENCODER IS PORT(A,B,C,D,E,F,G,H:IN STD_LOGIC;Y0,Y1,Y2:OUT STD_LOGIC);END ENTITY ENCODER;优先级最高ARCHITECTURE ART1 OF ENCODER IS SIGNAL SY:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN SY(2 DOWNTO 0)=111

14、WHEN H=1 ELSE 110 WHEN G=1 ELSE 101 WHEN F=1 ELSE 100 WHEN E=1 ELSE 011 WHEN D=1 ELSE 010 WHEN C=1 ELSE 001 WHEN B=1 ELSE 000 WHEN A=1 ELSE XXX;Y0=SY(0);Y1=SY(1);Y2=SY(2);END ARCHITECTURE ART1;条件赋值语句执行结束后,此时SY每一位都有值,再通过下面的赋值语句,将SY(0),SY(1),SY(2)分别赋给输出端口Y0,Y1,Y2以此类推-具有最高赋值优先级四、选择信号赋值语句1选择信号赋值语句格式如下:W

15、ITH 选择表达式 SELECT赋值目标信号=表达式1 WHEN 选择值1,表达式2 WHEN 选择值2,表达式n WHEN 选择值n;以此类推2选择信号赋值语句与CASE语句的比较(1)选择信号赋值语句本身不能在进程中应用,但其功能却与进程中的CASE语句的功能相似。CASE语句的执行依赖于进程中敏感信号的改变,而且要求CASE语句中各子句的条件不能有重叠,必须包容所有的条件。(2)与CASE语句相类似,选择赋值语句对于子句条件选择值的测试具有同期性。因此,选择赋值语句不允许有条件重叠的现象,也不允许存在条件涵盖不全情况。3应用举例【例题】设计一个简化的指令译码器(接口如图所示)。对应于由A

16、、B、C三个位构成的不同指令码,由DATA1和DATA2输入的两个值将进行不同的逻辑操作,并将结果从DATAOUT输出。图1 指令译码器DECODERLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DECODER IS PORT(A,B,C:IN STD_LOGIC;DATA1,DATA2:IN STD_LOGIC;DATAOUT:OUT STD_LOGIC);END ENTITY DECODER;ARCHITECTURE ART OF DECODER IS SIGNAL INSTR

17、UCTION:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN INSTRUCTION=C&B&A;WITH INSTRUCTION SELECT DATAOUT 连接实体端口名,);其中的元件例化名是必须存在的,它类似于标在当前系统(电路板)中的一个插座名,而例化元件名则是准备在此插座上插入的、已定义好的元件名。PORT MAP是端口映射的意思,其中的例化元件端口名是在元件定义语句中的端口名表中已定义好的例化元件端口的名字,连接实体端口名则是当前系统与准备接入的例化元件对应端口相连的通信端口,相当于插座上各插针的引脚名。四、元件例化的端口映射1名字关联方式,将例化元件的端

18、口名与关联端口名通过关联(连接)符号“=”一一对应地联系起来的方式;2位置关联方式,按例化元件端口的定义顺序将例化元件的对应的连接实体端口名一一列出的方式。在名字关联方式下,例化元件的端口名和关联(连接)符号“=”两者都是必须存在的,而例化元件端口名与连接实体端口名的对应式,在PORT MAP句中的位置可以是任意的。在位置关联方式下,PORT MAP子句中只要按例化元件的端口定义顺序列出当前系统中的连接实体端口名就行了。五、元件例化的应用举例【例题】首先完成了一个2输入与非门的设计,然后利用元件例化设计如图所示的由三个相同的与非门连接而成的电路ORD41。图1 ORD41逻辑原理图LIBRAR

19、Y IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ND2 IS PORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END ENTITY ND2;ARCHITECTURE ARTND2 OF ND2 IS BEGIN CC1,C=S2,B=D1);U3:ND2 PORT MAP(S1,S2,C=Z1);END ARCHITECTURE ARTORD41;顶层程序ORD41元件调用声明 U1:ND2 PORT MAP(A1,B1,S1);本端口映射方式是位置关联方式,该连接方式只按元件端口的定义顺序列出了U1元件的关联端口;图1 ORD

20、41逻辑原理图U2:ND2 PORT MAP(A=C1,C=S2,B=D1);本端口映射方式是名字关联方式,该连接方式将U1的端口和关联端口,一一对应连接起来,并且端口的映射顺序不一定与元件的定义顺序一致。实际使用推荐按元件端口定义的顺序进行端口映射。图1 ORD41逻辑原理图 U3:ND2 PORT MAP(S1,S2,C=Z1);它是一种混合关联方式,其中元件U3的端口A和端口B是采用位置关联方式,而端口C则是采用名字关联方式;该语句的端口映射方式是位置关联和名字关联的混合方式。图1 ORD41逻辑原理图内容提要内容提要 生成语句:生成语句的作用;生成语句的格式;生成语句的组成;生成语句的

21、使用;生成语句的应用。3.4.4 VHDL并行语句(4)二、生成语句的格式1格式1:标号:FOR 循环变量 IN 取值范围 GENERATE 说明;BEGIN 并行语句;END GENERATE 标号;该语句的作用,就是根据循环变量的取值范围,复制并行语句所对应的硬件电路N次。一、生成语句的作用为简化有规则设计结构的逻辑描述,可根据某些条件设定好某一元件或设计单位,利用生成语句复制一组完全相同的并行元件或设计单元电路结构。循环变量是自动产生的,根据取值范围自动递增或递减。表达式TO表达式表达式DOWNTO表达式-其中TO表示递增方式-DOWNTO表示递减方式如1 TO 5如5 DOWNTO 1

22、从软件运行的角度看,FOR语句格式中循环变量的递增方式具有顺序性,但最后生成的设计结构却是完全并行的,这就是为什么必须用并行语句来作为生成设计单元的缘故。2格式2:标号:IF 条件 GENERATE 说明;BEGIN 并行语句;END GENERATE 标号;该语句的作用,就是根据生成语句的条件是否成立,决定是否复制并行语句所对应的硬件电路。三、生成语句的组成1生成方式:有FOR语句结构或IF语句结构,用于规定并行语句的复制方式。2说明部分:对元件数据类型、子程序和数据对象作一些局部说明。3并行语句:生成语句结构中的并行语句是用来“COPY”的基本单元,主要包括元件、进程语句、并行过程调用语句

23、、并行信号赋值语句甚至生成语句等。4标号:生成语句中的标号并不是必须的,但如果在嵌套生成语句结构中就是很重要的。四、生成语句的使用1对于已知内部由多个规则模块构成的电路,可以用FOR_GENERATE语句来描述。2对于内部结构不规则的电路,可根据电路的不规则部分形成的条件用IF_GENERATE语句来描述。3对于内部由多个规则模块构成而两端结构不规则的电路,可以用FOR_GENERATE语句来描述电路内部的规则部分,而根据电路两端的不规则部分形成的条件用IF_GENERATE语句来描述。五、生成语句的应用例题:将利用元件例化和FOR_GENERATE语句,仿照74LS373/74HC373的工

24、作逻辑进行设计,完成一个8位三态锁存器MY74373的设计。其中D1D8为数据输入端;Q1Q8为数据输出端;OEN为输出使能端;G为数据锁存控制端。MY74373的内部工作原理如图所示。图1 MY74373的内部逻辑结构-MY74373-MY74373的逻辑描述的逻辑描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MY74373 IS PORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 1);OEN:IN STD_LOGIC;G:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 1)

25、;END ENTITY MY74373;ARCHITECTURE ART1 OF MY74373 IS COMPONENT MYLATCH IS PORT(D,ENA:IN STD_LOGIC;Q:OUT STD_LOGIC);END COMPONENT MYLATCH;是对前面已经设计好的1位锁存器 MYLATCH的调用声明 SIGNAL S1:STD_LOGIC_VECTOR(8 DOWNTO 1);BEGIN GELATCH:FOR NO IN 1 TO 8 GENERATE LATCHX:MYLATCH PORT MAP(D(NO),G,S1(NO);END GENERATE GELA

26、TCH;Q=S1 WHEN OEN=0 ELSE ZZZZZZZZ;END ARCHITECTURE ART1;-用于保存元件例化的端口映射的数据寄存器用FOR_GENERATE语句循环例化8个1位锁存器 SIGNAL S1:STD_LOGIC_VECTOR(8 DOWNTO 1);BEGIN GELATCH:FOR NO IN 1 TO 8 GENERATE LATCHX:MYLATCH PORT MAP(D(NO),G,S1(NO);END GENERATE GELATCH;Q=S1 WHEN OEN=0 ELSE ZZZZZZZZ;END ARCHITECTURE ART1;位置关联S1

27、(1)NO=1时(如上图所示)S1(2)NO=2时(如上图所示)条件信号赋值语句当OEN=0 时,Q=S1;否则 Q=“ZZZZZZZZ”,也就Q(8:1)输出状态呈高阻态。图1 MY74373的内部逻辑结构ARCHITECTURE ART2 OF MY74373 IS SIGNAL S2:STD_LOGIC_VECTOR(8 DOWNTO 1);BEGIN PROCESS(D,OEN,G)IS BEGIN IF OEN=0 THEN Q=S2;ELSE Q=ZZZZZZZZ;END IF;IF G=1 THEN S2Z1);”“U1:ND2 PORT MAP(S1,S2,C=Z1);”中的端

28、中的端口映射关联方式为(口映射关联方式为()。)。A A、名字关联;、名字关联;B B、位置关联;、位置关联;C C、结构关联;、结构关联;D D、混合关联。、混合关联。答案:答案:D D。3 3、用于例化的元件可以是(、用于例化的元件可以是(ABCEABCE )。)。该种说法:该种说法:A A、正确;、正确;B B、错误。、错误。A A、已设计好的、已设计好的VHDLVHDL设计实体;设计实体;B B、来自、来自FPGAFPGA元件库中的元件;元件库中的元件;C C、别的硬件、别的硬件描述语言设计好的设计实体;描述语言设计好的设计实体;D D、软的、软的IPIP核;核;E E、FPGAFPG

29、A中的嵌入式硬中的嵌入式硬IPIP核。核。答案:答案:B B。课后测试题1 1、进程经综合后对应的硬件电路,对进程中的所有可读入信号都是敏感的,、进程经综合后对应的硬件电路,对进程中的所有可读入信号都是敏感的,而在而在VHDLVHDL行为仿真中并非如此,除非将所有的读入信号列为敏感信号行为仿真中并非如此,除非将所有的读入信号列为敏感信号。该种说法:该种说法:A A、正确;、正确;B B、错误。、错误。答案:答案:A A。2 2、选择信号赋值语句本身不能在进程中应用,但其功能却与进程中的、选择信号赋值语句本身不能在进程中应用,但其功能却与进程中的CASECASE语句的功能相似。语句的功能相似。该

30、种说法:该种说法:A A、正确;、正确;B B、错误。、错误。答案:答案:A A。5 5、对于内部结构不规则的电路,可根据电路的不规则部分形成的条件用(、对于内部结构不规则的电路,可根据电路的不规则部分形成的条件用()来描述。来描述。A A、FOR_GENERATEFOR_GENERATE语句;语句;B B、IF_GENERATEIF_GENERATE语句;语句;C C、CASECASE语句;语句;D D、PROCESSPROCESS语句。语句。答案:答案:B B。课后测试题6 6、阅读图示的阅读图示的0999909999计数器动态显示扫描电路计数器动态显示扫描电路DTCNT9999DTCNT

31、9999的原理图,回答下列问题:的原理图,回答下列问题:答案:答案:A A。(3 3)为了能在数码管上正确的显示)为了能在数码管上正确的显示CNT10CNT10的数据,的数据,CLK2CLK2的取值至少应该为的取值至少应该为CLK1CLK1频率的频率的(D D)倍;倍;A A、0.50.5;B B、1 1;C C、2 2;D D、4 4。答案:答案:B B。答案:答案:D D。(1 1)CTRLSCTRLS模块的功能是(模块的功能是(A A)A A、产生、产生DISPLAYDISPLAY模块需要的控制信号;模块需要的控制信号;B B、驱动数码管;、驱动数码管;C C、控制数码管。、控制数码管。

32、(2 2)动态扫描时钟控制信号)动态扫描时钟控制信号CLK2CLK2的频率取值需要大于(的频率取值需要大于(B B)。)。A A、12HZ12HZ;B B、24HZ24HZ;C C、36HZ36HZ;D D、48HZ48HZ。课后测试题答案:答案:B B。(4 4)DTCNT9999DTCNT9999内部的各个模块的连线,需定义的数据对象是(内部的各个模块的连线,需定义的数据对象是()。)。A A、信号、信号S0S0、S1S1、S2S2、SEL2:0SEL2:0;B B、信号信号S0S0、S1S1、S2S2、SEL2:0SEL2:0、DOUT15:0DOUT15:0。答案:答案:B B。(5

33、5)将标号为)将标号为U2U2的的CNT10CNT10通过元件例化语句构成一个整体系统,其中关于通过元件例化语句构成一个整体系统,其中关于U2U2元件的元件的VHDLVHDL端端口映射语句正确的是(口映射语句正确的是()。)。A A、U2:CNT10 PORT MAP(CLK=S1U2:CNT10 PORT MAP(CLK=S1,CLR=CLRCLR=CLR,ENA=ENAENA=ENA,CQ=DOUT7:4CQ=DOUT7:4,CO=S2CO=S2););B B、U2:CNT10 PORT MAP(CLK=S1U2:CNT10 PORT MAP(CLK=S1,CLR=CLRCLR=CLR,ENA=ENAENA=ENA,CQ=DOUT(7 DOWNTO 4)CQ=DOUT(7 DOWNTO 4),S2)S2);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁