VHDL程序设计教程习题解答

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《VHDL程序设计教程》习题参考答案1VHDL程序设计教程习题参考解答第1章思考题解答```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````1.什么是VHDL?简述VHDL的发展史。答:VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。2.简述VHDL设计实体的结构。答:实体由实体名、类型表、端口表、实体说明部分和实体语句部分组成。根据IEEE标准,实体组织的一般格式为:ENTITY实体名IS[GENERIC(类型表);]--可选项[PORT(端口表);]--必需项实体说明部分;--可选项[BEGIN实体语句部分;]END[ENTITY][实体名];3.分别用结构体的3种描述法设计一个4位计数器。答:用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;ENTITYcountAIS《VHDL程序设计教程》习题参考答案2PORT(clk,clr,en:INSTD_LOGIC;Qa,qb,qc,qd:OUTSTD_LOGIC);ENDcountA;ARCHITECTUREexampleOFcountAISSIGNALcount_4:STD_LOGIC_vector(3DOWNTO0);BEGINQa=count_4(0);Qb=count_4(1);Qc=count_4(2);Qd=count_4(3);PROCESS(clk,clr)BEGINIF(clr='1')THENCount_4=0000;ELSIF(clk'EVENTANDclk='1')THENIF(en='1')THENIF(count_4=1111)THENcount_4=0000;ELSEcount_4=count_4+'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDexample;第2章思考题解答1.什么叫对象?对象有哪几个类型?答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、信号(SIGNAL)、变量(VARIABLE)和文件(FILES)。2.VHDL语言定义的标准类型有哪些?答VHDL语言标准所定义的标准数据类型(1)整数类型(INTEGERTYPE)(2)实数类型或浮点类型(REALTYPE&FLOATINGTYPE)(3)位类型(BITTYPE)(4)位矢量类型(BIT_VECTORTYPE)(5)布尔类型(BOOLEANTYPE)(6)字符类型(CHARACTERTYPE)(7)时间类型或物理类型(TIMETYPE&PHYSICALTYPE)(8)错误类型(NOTE,WARNIING,ERROR,FAILURETYPE)《VHDL程序设计教程》习题参考答案3(9)自然数、整数类型(NATURALTYPE)(10)字符串类型(TRINGTYPE)3.简述VHDL语言操作符的优先级。答:在表2.1中,取反和取绝对值优先级较高,与、或逻辑运算的优先级低于算术运算的优先级。4.哪3种方法可用来进行类型转换?答:进行不同类型的数据变换,有3种方法:类型标记法、函数转换法和常数转换法。第3章思考题解答1.什么叫进程?简述进程的工作方式。答:进程(process)是由外部信号触发执行的一段程序。进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。在进程内部是顺序执行的。Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。这些信号无论哪一个发生变化都将启动Process进程。一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。周而复始,循环往复,以至无穷。这就是进程的执行过程。2.什么叫模块?区分模块与进程。答:模块(Block)语句是结构体中积木化设计语言,适用于复杂项目设计。Block块是一个独立的子结构,可以包含PORT语句、GENERIC语句,允许设计者通过这两个语句将Block块内的信号变化传递给Block块的外部信号。同样,也可以将Block块的外部信号变化传递给Block块的内部信号。对VHDL语言中的Block模块进行仿真时,Block模块中所描述的各个语句是可以并发执行的,和模块中的语句书写顺序无关。进程语句是一段程序,这段程序是顺序执行的。3.用结构描述法和GENERATE语句设计一个8位移位寄存器。答:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshift_registerISPORT(a,clk:INSTD_LOGIC;b:OUTSTD_LOGIC);ENDENTITYshift_regester;ARCHITECTUREeight_BIT_shift_registerOFshift_registerISCOMPONENTdff--dff元件调用PORT(a,Clk:INSTD_LOGIC;b:OUTSTD_LOGIC);《VHDL程序设计教程》习题参考答案4ENDCOMPONENT;SIGNALX:STD_LOGIC_VECTOR(0TO4);BEGINX(0)=a;dff1:dffPORTMAP(X(0),clk,Z(1));dff2:dffPORTMAP(X(1),clk,Z(2));dff3:dffPORTMAP(X(2),clk,Z(3));dff4:dffPORTMAP(X(3),CLK,Z(4));dff5:dffPORTMAP(X(4),CLK,Z(5));dff6:dffPORTMAP(X(5),CLK,Z(6));dff7:dffPORTMAP(X(6),CLK,Z(7));dff4:dffPORTMAP(X(7),CLK,Z(8));B=X(8);ENDARCHITECTUREeight_bit_shift_register;4.设计一个3-8优先级编码器。答:参考书中第5章编码器设计。5.设计一个4-16译码器。答:参考书中第5章译码器设计。第4章思考题解答1.配置语句的书写格式是怎样的?答:配置语句的书写形式为:CONFIGURAT10N配置名OF实体名ISFOR选配构造体名ENDFOR;END配置名;2.配置说明中的映射有哪两种方法?答:位置关联法和名称关联法。3.在配置语句中用GENERIC指定参数,设计一个译码器。答:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYdecodeISPORT(a,b,en:INstd_logic;Q0,q1,q2,q3:OUTstd_logic);ENDdecode;ARCHITECTUREstructuralOFdecodeISCOMPONENTinvPORT(a:INstd_logic;b:OUTstd_logic);ENDCOMPONENT;《VHDL程序设计教程》习题参考答案5COMPONENTand3PORT(a1,a2,a3:INstd_logic;O1:OUTstd_logic);ENDCOMPONENT;SIGNALnota,notb:std_logic;BEGINI1:invPORTMAP(a,nota);I2:invPORTMAP(b,notb);AN1:and3PORTMAP(nota,en,notb,q0);AN2:and3PORTMAP(a,en,notb,q1);AN3:and3PORTMAP(nota,en,b,q2);AN4:and3PORTMAP(a,en,b,q3);ENDstructural;-------------------------------------------CONFIGURATIONdecode_gen1_conOFdecodeISFORstructuralFORI1:invUSEENTITYWORK.inv(inv_gen1)GENERICMAP(int_rise=1.2ns,Int_fall=1.7ns,Ext_rise=2.6ns,Ext_fall=2.5ns);ENDFOR;FORI2:invUSEENTITYWORK.inv(inv_gen1)GENERICMAP(int_rise=1.3ns,Int_fall=1.4ns,Ext_rise=2.8ns,Ext_fall=2.9ns);ENDFOR;FORAN1:and3USEENTITYWORK.and3(and3_gen1)GENERICMAP(int_rise=2.2ns,Int_fall=2.7ns,Ext_rise=3.6ns,Ext_fall=3.5ns);ENDFOR;FORAN2:and3USEENTITYWORK.and3(and3_gen1)GENERICMAP(int_rise=2.2ns,Int_fall=2.7ns,Ext_rise=3.1ns,Ext_fall=3.2ns);ENDFOR;FORAN3:and3USEENTITYWORK.and3(and3_gen1)GENERICMAP(int_rise=2.2ns,《VHDL程序设计教程》习题参考答案6Int_fall=2.7ns,Ext_rise=3.3ns,Ext_fall=3.4ns);ENDFOR;FORAN4:and3USEENTITYWORK.and3(and3_gen1)GENERICMAP(int_rise=2.2ns,Int_fall=2.7ns,Ext_rise=3.0ns,Ext_fall=3.1ns);ENDFOR;ENDFOR;ENDdecode_gen1_con;4.计一个加法器,元件例化后放入库中备用。答:半加器及全加器VHDL程序设计(1)。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfull_adderISPORT(a,b,cin:INSTD_LOGIC;Sum,co:OUTSTD_LOGIC);ENDfull_adder;ARCHITECTUREfull1OFfull_adderISCOMPONENThalf_adderPORT(a,b:INSTD_LOGIC;S,co:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALu0_co,u0_s,u1_co:STD_LOGIC;BEGINU0:half_adderPORTMAP(a,b,u0_s,u0_co);U1:half_adderPORTMAP(u0_s,cin,sum,u1_co);Co=u0_coORu1_co;ENDfull1;半加器及全加器VHDL程序设计(2)。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYhalf_adderISPORT(a,b:INSTD_LOGIC;S,

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功