第1页共12页一.填空(每空1分,共20分)1.MAX+plusII是ALTERA公司自己开发的EDA工具软件。2.VHDL设计实体的基本结构由库、程序包、实体、结构体、配置等部分构成。3.在VHDL中最常用的库IEEE标准库,最常用的包集合是1164。4.在VHDL的端口声明语句中,端口方向包括输入(in)、输出(out)、输入|输出(inout)、缓冲和。5.VHDL的顺序语句只能出现在进程、函数、过程中,是按程序书写顺序自上而下,一条一条地执行。6.VHDL的块语句是并行语句结构,它的内部是由并行语句构成的7.VHDL的变量(VARIABLE)是一种局部量,只能在进程、函数和过程中声明和使用。8.MAX+plusII支持文本、原理图、波形、符号编辑等不同的编辑方式。9.MAX+plusII工具软件有功能、时序、仿真等功能。10.MAX—PLUSⅡ的波形编辑文件分波形输入和波形仿真,它们的文件扩展名分别是WDF和SCF。11.VHDL的实体声明部分指定了设计单元的输入输出端口,它是设计实体对外的通信界面,是外界可以看到的部分。12.CPLD和FPGA的含义分别是复杂可编程逻辑器件,现场可编程门阵列。13.在VHDL中,含WAIT语句的进程Process的括号不能再加敏感量,否则是非法的.14.VHDL的Process(进程)语句是由顺序语句组成的,但其本身却是并发语句结构。15.VHDL的子程序有函数和过程两种类型。16.在VHDL中,标准逻辑位数据有0和1种逻辑值。17.MAX—PLUSⅡ的仿真分功能仿真和时序仿真。第2页共12页18.VHDL的变量(VARIABLE)是一个功能变量,只能在进程、函数和过程中声明和使用。19.VHDL的数据对象包括常数、变量、信号和文件。20.实体和结构体是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。20.VHDL语言的字符是以字母的下划线括起来的数字、字母和符号。二.简答题(每题6分,共30分)1.如何用VHDL语句描述时钟的下降沿和上升沿。时钟上升沿ifclk‘eventandclk=“1”then下降沿ifclk‘eventandclk=“0”then2.在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC与BIT有何区别。只有当端口说明为BIT时该端口的信号取值只能是二进制数“0”和“1”3.VHDL的信号(SIGNAL)与变量(VARIABLE)有什么的区别。Signal可以在实体构造体等高层次环境中说明,对整个设计实体全局有效Variable在进程子函数等低层次环境中说明,只在说明的区域中局部有效4.叙述一个四位加法器及仿真的全过程。5.现有两个半加器,一个两输入或门,试画出一个全加器6.在一个构造体内,其执行语句的顺序有什么特点?7.卫式BLOCK语句中的条件和PROCESS语句中的敏感量的区别是什么(顺序),它们的执行过程如何?Block块头主要用于信号的映射及参数的定义、process并行执行进程语句8.为层次式电路,各层次的功能模块在存盘时要注意什么问题?(在同一路径的文件夹内)9.在MAX—PLUSⅡ中一般连线与总线有什么区别,在使用总线时必须注意什么问题?10、现有一个两输入异或门,一个两输入与门,试画出半加器。第3页共12页S=A⊕B11.硬件描述语言描述硬件电路的基本构成是什么?数字系统的结构,行为和功能;硬件描述语言设计数字;电路逻辑电路的过程和方法12.解释端口方向说明,IN、OUT、INOUT、BUFFER和LINRAGE的含义?In:输入型,信号从该端口进入实体;out:输出型,信号从实体内部经该端口输出Inout:输入输出型,信号既可以从该端口输入也可以输出Buffer:缓冲型,与out类似但在结构内部可作反馈Linrage:无指定方向,与任何方向的信号连接13.数据类型BIT与STD-LOGIC,BIT_VECTOR与STD_LOGIC_VECTOR其共同点与不同点是什么?Std-logic-vector:标准逻辑适量Std-logic:标准逻辑位量Bit:为数据类型取值只能是:“0”和“1”Bit-vector:位矢量,数据类型三.分析题(共50分)1.读懂下列程序,指出其完成什么功能?(20分)(1)libraryieee;useieee.std_logic_1164.all;entityaaaisport(a,b,c,d:instd_logic;y:outstd_logic);endaaa;architectureaaa1ofaaaisbeginp1:process(a,b,c,d)variabletmp:std_logic_vector(3downto0);begin第4页共12页tmp:=a&b&c&d;casetmpiswhen″0000″=y=′1′;when″0001″=y=′1′;when″0010″=y=′1′;when″0011″=y=′1′;when″0101″=y=′1′;when″0110″=y=′1′;when″0111″=y=′1′;when″1000″=y=′1′;when″1001″=y=′1′;when″1010″=y=′1′;when″1011″=y=′1′;when″1110″=y=′1′;when″1111″=y=′0′;whenothers=y=′x′;endcase;endprocessp1;endaaa1;与非门(2)libraryieee;useieee.ste_logic_1164.all;entityabcisport(clk:instd_logic;r:instd_logic;d:instd_logic_vector(3downto0);q:outstd_logic_vector(3downto0);endabc;architecturertlofabcissignalq_temp:std_logic_vector(3downto0);第5页共12页beginprocess(clk,r)beginif(r=′1′)thenq_temp=″0000″;elseif(clk′eventandclk=′1′)thenq_temp=d;endif;q=q_temp;endprocess;endrtl;寄存器(1)ENTITYabcISPORT(do,d1,y:INBIT;q:OUTBIT);ENDabc;ARCHITECTUREconnectOFabcISBEGINCale:BLOCKBEGINTmp1=d0ANDy;Tmp2=d1AND(NOTy);Tmp3=tmp1ORtmp2;q=tmp3;ENDBLOCKcale;ENDconnect;二选一电路(2)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;第6页共12页ENTITYparity_checkISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC);ENDparity_check;ARCHITECTURErtlOFparity_checkISBEGINPROCESS(a)VARIABLEtmp:STD_LOGIC;BEGINtmp:=0;FORiIN0TO7LOOPtmp:=tmpXORa(i);ENDLOOP;y=tmp;ENDPROCESS;ENDrtl奇偶效应(1)ENTITYabcISPORT(do,d1:INBIT;x:INBIT;Q:OUTBIT);ENDabc;ARCHITECTUREdataflowOFabcISBEGINQ=(d0ANDx)OR(NOTxANDd1);ENDdataflow;二选一的数据选择器(2)LIBRARYIEEE;第7页共12页USEIEEE.STD_LOGIC_1164.ALL;ENTITYAAAISPORT(Clock:INSTD_LOGIC;CLKOUT:OUTSTD_LOGIC);END;ARCHITECTUREBehaviorOFAAAISSIGNALClk:STD_LOGIC;BEGINPROCESS(Clock)BEGINIFrising_edge(Clock)THENCLK=NOTClk;ENDIF;ENDPROCESS;Clkout=Clk;END;边沿触发器2.下列程序是一个二选一电路,有四处错误,试指出并改正。(10分)ENTITYmuxISPROT(d0,d1,sel:INBIT;q:OUTBIT);ENDmux;ARCHITECTUREconnectOFmuxISBEGINCale:PROCESS(d0,d1SEL)VARIABLEtmp1,tmp2,tmp3:BIT;BEGINTemp1:=d0ANDsel;Temp2:=d1AND(NOTsel);第8页共12页Temp3:=tmp1ORtmp2;Q:=tmp3;ENDPROCESS;ENDconnect;(3)ENTITYmuxISPROT(d0,d1,sel:INBIT;q:OUTBIT);ENDmux;ARCHITECTUREconnectOFmuxISBEGINCale:PROCESS(d0,d1,sel)VARIABLEtmp1,tmp2,tmp3:BIT;BEGINTemp1:=d0ANDsel;Temp2:=d1AND(NOTsel);Temp3:=tmp1ORtmp2;Q:=tmp3;ENDPROCESS;ENDconnect;3、下列程序是2输入“或非”门电路,在空格中填上适当的语句(10分)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYnor2ISPORT(a,b:INSTD-LOGIC;y:OUTSTD_LOGIC);ENDnor2;ARCHITECTUREnor2_2OFNOR2ISBEGIN第9页共12页t2:PROCESS(a,b)VARIABLEcomb:STD_LOGIC_VECTOR(1DOWNTO0);BEGINComb:=a&b;CASEcombISWHEN″00″=y=′1′;WHEN″01″=y=′0′;WHEN″10″=y=′0′;WHEN″11″=y=′0′;ENDCASE;ENDPROCESSt2;ENDnor2_2;(2)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYnor2ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDnor2;ARCHITECTUREnor2_2OFnor2ISBEGINt2:PROCESS(a,b)VARIABLEcomb:STD_LOGIC_VECTOR(1DOWNTO0);BEGINComb:=a&b;CASEcombISWHEN″00″=y=′1′;WHEN″01″=y=′0′;第10页共12页WHEN″10″=y=′0′;WHEN″11″=y=′0′;ENDCASE;ENDPROCESSt2;ENDnor2_2;2.下列程序是四选一电路,在空格中填上适当的语句。(10分)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD-LOGIC;Q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbehavOFmux4ISSIGNALsel:INTEGER;BEGINWITHSSELECTq=i0AFTER10nsWHEN0,i1AFTER10nsWHEN1,i2AFTER10nsWHEN2,i3AFTER10nsWHEN3,′1′AFTER10nsWHENOTHERS;sel=0WHENa=′0′