您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 湖南科技大学VHDL期末重点复习题
11.什么是VHDL?简述VHDL的发展史。答:VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。2.ENTITY实体名IS[GENERIC(类型表);]--可选项[PORT(端口表);]--必需项实体说明部分;--可选项[BEGIN实体语句部分;]END[ENTITY][实体名];3.分别用结构体的3种描述法设计一个4位计数器。答:用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;ENTITYcountAISPORT(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;1.什么叫对象?对象有哪几个类型?答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、2信号(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)(9)自然数、整数类型(NATURALTYPE)(10)字符串类型(TRINGTYPE)3.简述VHDL语言操作符的优先级。答:在表2.1中,取反和取绝对值优先级较高,与、或逻辑运算的优先级低于算术运算的优先级。4.哪3种方法可用来进行类型转换?:类型标记法、函数转换法和常数转换法。5.什么叫进程?简述进程的工作方式。答:进程(process)是由外部信号触发执行的一段程序。进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。在进程内部是顺序执行的。Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。这些信号无论哪一个发生变化都将启动Process进程。一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。周而复始,循环往复,以至无穷。这就是进程的执行过程。6.什么叫模块?区分模块与进程。答:模块(Block)语句是结构体中积木化设计语言,适用于复杂项目设计。Block块是一个独立的子结构,可以包含PORT语句、GENERIC语句,允许设计者通过这两个语句将Block块内的信号变化传递给Block块的外部信号。同样,也可以将Block块的外部信号变化传递给Block块的内部信号。对VHDL语言中的Block模块进行仿真时,Block模块中所描述的各个语句是可以并发执行的,和模块中的语句书写顺序无关。进程语句是一段程序,这段程序是顺序执行的。1.用结构描述法和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);ENDCOMPONENT;SIGNALX:STD_LOGIC_VECTOR(0TO4);3BEGINX(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;1.设计一个加法器,答:半加器及全加器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,co:OUTSTD_LOGIC);ENDhalf_adder;ARCHITECTUREhalf1OFhalf_adderISSIGNALc,d:STD_LOGIC;BEGINC=aORb;D=aNANDb;Co=NOTd;S=cANDd;4ENDhalf1;2.简述层次化设计的过程。答:层次化设计是指对于一个大型设计任务,将目标层层分解,在各个层次上分别设计的方法。有些设计,在一些模块的基础上,通过搭建积木的方法进行设计。有人称,在整个设计任务上进行行为描述的设计方法,称为高层次设计,而从事某一模块、某一元件行为设计称为底层设计方法。2.什么是库,程序包,子程序,过程调用,函数调用?答:库(libraries)和程序包(package)用来描述和保存元件、类型说明、函数、模块等,以便在其他设计中可随时引用它们。库(libraries)是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。设计库中的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体)可以用作其他VHDL描述的资源。函数和过程统称为子程序。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数能返回一个变量。若子程序调用是一个过程,就称为过程调用;若子程序调用是一个函数,则称为函数调用。过程调用和函数调用都是子程序调用。函数的参数都是输入参数。过程的参数有输入、输出和双向参数。函数有顺序函数、并行函数。过程有顺序过程、并行过程。1.CLK信号怎样用VHDL语言描述?答:时钟信号的上升沿的描述:ifclk‘eventandclk=‘1’then…;时钟信号的下降沿的描述:ifclk‘eventandclk=‘1’then…;1.异步复位怎样用VHDL语言描述?答:当复位信号低电平有效时,VHDL的描述为:ifreset=‘0’then…;当复位信号高电平有效时,VHDL的描述为:ifreset=‘1’then…;5.设计一个八位编码器。答:八位编码器的VHDL参考程序设计如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYpriotyencoderISPORT(d:INStd_Logic_Vector(7Downto0);E1:INStd_Logic;GS,E0:OUTBITSTD_LOGIC;Q:OUTStd_Logic_Vector(2Downto0);ENDpriotyencoder;ARCHITECTUREencoderOFpriotyencoderISBEGINP1:PROCESS(d)BEGIN5IF(d(0)=0ANDE1=0)THENY=111;GS=0;E0=1;ELSIF(d(1)=0ANDE1=0)THENQ=110;GS=0;E0=1;ELSIF(d(2)=0ANDE1=0)THENQ=101;GS=0;E0=1;ELSIF(d(3)=0ANDE1=0)THENQ=100;GS=0;E0=1;ELSIF(d(4)=0ANDE1=0)THENQ=011;GS=0;E0=1;ELSIF(d(5)=0ANDE1=0)THENQ=010;GS=0;E0=1;ELSIF(d(6)=0ANDE1=0)THENQ=001;GS=0;E0=1;ELSIF(d(7)=0ANDE1=0)THENQ=000;GS=0;E0=1;ELSIF(E1=1)THENQ=111;GS=1;E0=1;ELSIF(d=11111111ANDE1=0)THENQ=111;GS=1;E0=0;ENDIF;ENDPROCESSP1;ENDencoder;6.设计一个三八译码器。答:三八译码器的VHDL参考程序设计如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;6ENTITYdecoder3_8ISPORT(a,b,c,g1,g2a,g2b:INSTD_LOGIC;Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecoder3_8;ARCHITECTURErtlOFdecoder3_8ISSIGNALindata:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIndata=c&b&a;PROCESS(indata,g1,g2a,g2b)BEGINIF(g1=1ANDg2a=0ANDg2b=0)THENCASEindataISWHEN000=y=11111110;WHEN001=y=11111101;WHEN010=y=11111011;WHEN011=y=11110111;WHEN100=y=11101111;WHEN101=y=11011111;WHEN110=y=10111111;W
本文标题:湖南科技大学VHDL期末重点复习题
链接地址:https://www.777doc.com/doc-4110552 .html