昆明理工大学研究生试卷(EDA技术)(2009~2010下学期)学院:信自学院专业:电路与系统08级考核方法:考查、开卷学号:姓名:题号一二三四五六七总分得分一、写出英文全称,并中文翻译(12分,每个2分)1、EDA2、VHDL3、IP4、FPGA5、SoC6、JTAG二、选择题(20分,每个2分)1、大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:_______A.FPGA是基于查找表结构的可编程逻辑器件B.CPLD即是现场可编程逻辑器件的英文简称C.CPLD是从FPGA的结构扩展而来D.在Altera公司生产的器件中,EPM7128SLC84-15系列属FPGA结构2、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是________。A.FPGA全称为复杂可编程逻辑器件;B.FPGA是基于乘积项结构的可编程逻辑器件;C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,MAX7000系列属FPGA结构3、IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于软IP的正确描述为:__________A.提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路B.提供设计的最总产品——模型库C.以可执行文件的形式提交用户,完成了综合的功能块D.都不是4、在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:_______A.PROCESS为一无限循环语句B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动C.当前进程中声明的变量不可用于其他进程D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成5、下列4个VHDL标识符中正确的是:_______A.10#128#B.16#E#E1C.74HC124D.X_166、关于VHDL中的数字,请找出以下数字中最大的一个:__________。A.2#1111_1110#B.8#276#C.10#170#D.16#E#E17、VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。A.器件外部特性B.器件的内部功能C.器件的综合约束D.器件外部特性与内部功能8、VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,实体描述___________。A.器件外部特性B.器件的内部功能C.器件的综合约束D.器件外部特性与内部功能9、编译VHDL源程序时要求()。A.文件名和实体可以不同名B.文件名和实体名无关C.文件名和实体名要相同D.不确定10、变量和信号的描述正确的是()。A.变量赋值号是:=B.信号赋值号是:=C.变量赋值号是=D.二者没有区别三、简述题(16分,每个4分)1、目前生产可编程器件的公司主要有哪三家?实验室使用的Cyclone是哪个公司的产品?2、实验室想做一个带Nios软核处理器的视频处理系统,应该选择CPLD还是FPGA?列出CPLD和FPGA的三个以上区别。3、在QuartusII软件里,综合、适配和下载这三个操作分别完成什么工作?4、使用NiosII嵌入式系统,需要那些软件?四、阅读VHDL代码,回答下列问题。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdecoder3_8ISPORT(a:INSTD_LOGIC_VECTOR(2DOWNTO0);g1,g2,g3:INSTD_LOGIC;y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecoder3_8;ARCHITECTUREoneOFdecoder3_8ISBEGINPROCESS(a,g1,g2,g3)BEGINIFg1='0'THENy=11111111;ELSIFg2='1'ORg3='1'THENy=11111111;ELSECASEaISWHEN000=y=11111110;WHEN001=y=11111101;WHEN010=y=11111011;WHEN011=y=11110111;WHEN100=y=11101111;WHEN101=y=11011111;WHEN110=y=10111111;WHEN111=y=01111111;WHENOTHERS=y=11111111;ENDCASE;ENDIF;ENDPROCESS;END;1、画出电路的实体图。(4分)2、写出电路的真值表。(4分)3、仿照例程,编写下列真值表对应的VHDL代码。(8分)ABF1F200d0d101NOTd0d110d0NOTd111NOTd0NOTd1五、已知有一段顶层代码如下:该代码有两个元件,分别是半加器和或门,请根据斜体部分代码画出顶层对应的电路连接。(8分)LIBRARYIEEE;USEIEEE.Std_Logic_1164.ALL;ENTITYfull_adder3ISPORT(x,y,cin:INStd_Logic;sum,cout:OUTStd_Logic);ENDfull_adder3;ARCHITECTUREarc_full_adder3OFfull_adder3ISSIGNALa,b,c:Std_Logic;COMPONENThalf_adderPORT(x1,y1:INStd_Logic;s1,c1:OUTStd_Logic);ENDCOMPONENT;COMPONENTor_gatePORT(x2,y2:INStd_Logic;out2:OUTStd_Logic);ENDCOMPONENT;BEGINu1:half_adderPORTMAP(x,y,b,a);u2:half_adderPORTMAP(cin,b,sum,c);u3:or_gatePORTMAP(c,a,cout);ENDarc_full_adder3;六、下列VHDL代码是一个24进制计数器。LIBRARYIEEE;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcnt24ISPORT(clk,clr:INSTD_LOGIC;ten,one:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDcnt24;ARCHITECTUREoneOFcntISSIGNALten_temp,one_temp:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clk,clr)BEGINIFclr=1THENten_temp=0000;one_temp=0000;ELSIFclk'EVENTANDclk='1'THENIFten_temp=2ANDone_temp=3THENten_temp=0000;one_temp=0000;ELSIFone_temp=9THENten_temp=ten_temp+1;one_temp=0000;ELSEone_temp=one_temp+1;ENDIF;ENDIF;ENDPROCESS;ten:=ten_temp;one:=one_temp;co='1'WHENten_temp=2ANDone_temp=3ELSE'0';END;1、该代码中有四处错误,请指出。(12分)2、该电路是24进制计数器,想改为36进制计数器,如何修改。(4分)3、电路的时钟clk是上升沿有效还是下降沿有效?如何修改成为与之相反的边沿。(4分)七、画出下列VHDL代码的状态图。(8分)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYstateISPORT(clk,x:INSTD_LOGIC;z:OUTSTD_LOGIC);ENDstate;ARCHITECTUREarc_stateOFstateISSUBTYPEstate_typeISSTD_LOGIC_VECTOR(1DOWNTO0);SIGNALsta:state_type;CONSTANTS0:state_type:=00;CONSTANTS2:state_type:=10;CONSTANTS3:state_type:=11;BEGINPROCESS(clk,x)BEGINIFclk'EVENTANDclk='0'THENIFx='0'THENCASEstaISWHENS0=sta=S0;WHENS2=sta=S2;WHENS3=sta=S3;WHENothers=NULL;ENDCASE;ELSIFx='1'THENCASEstaISWHENS0=sta=S2;WHENS2=sta=S3;WHENS3=sta=S0;WHENothers=sta=S2;ENDCASE;ENDIF;ENDIF;IFsta=S3THENz=x;ELSEz='0';ENDIF;ENDPROCESS;ENDarc_state;