-1-武汉大学计算机学院本科2010~2011学年第二学期考试试卷(A卷)课程名称:大规模集成电路(限120分钟)专业:本科姓名:学号:班号:说明:⒈答题书写在专用答题纸上,其他任何答题无效。⒉学号、姓名等项填写不规范,不准确,一律视为废卷,不计成绩。一填空题(30分,每小题3分)1、VHDL属于B描述语言。(从A、B、C、D中单项选择)A.普通硬件B.行为C.高级D.低级2、基于硬件描述语言HDL的数字系统设计目前最常用的设计方法称为C设计方法。(从A、B、C、D中单项选择)A.自底向上B.顶层C.自顶向下D.积木式3、EDA设计的输入方式有图形、文本和状态机方式。4、EDA的设计验证包括功能仿真、时序仿真和器件测试三个过程型。5、在VHDL的IEEE标准库中,预定义的标准逻辑位数据STD_LOGIC有9种逻辑值。6、在VHDL语句中,PROCESS结构是由顺序语句组成的。7、signalb:integerstd_logic_vector(15downto0);………forIinb’rangeloop………for语句的循环次数为16次。8、VHDL的标识符名必须以字母开头,后跟若干字母、数字或单个下划线构成,但最后不能为下划线。9、元件例化是将预先设计好的设计实体作为一个元件,连接到当前设计实体的指定端口。10、一个N输入的查找表,需要SRAM存储N个输入构成的真值表,需要占用2^N个SRAM单元。二简答题(35分,每小题5分)1、端口模式除了INOUT和BUFFER外,还有哪几种模式。INOUT和BUFFER有什么区别?IN、OUTINOUT可以做输出和输入用,BUFFER只能用在带反馈的输入,不能用于输出。2、填写下表中的(1)—(6),给出信号和变量的异同点?数据对象基本用法适用范围赋值表示和特性Signal(1)电路中信号连线(3)整个结构体内(5)=进程最后赋值Variable(2)进程中数据存储(4)本进程中(6):=立即赋值3、执行下列语句后Q的值等于00101100。……SIGNALE:STD_LOGIC_VECTOR(2TO5);SIGNALQ:STD_LOGIC_VECTOR(9DOWNTO2);……E=(2=’0’,4=’0’,OTHERS=’1’);Q=(2=E(2),4=E(3),5=’1’,7=E(5),OTHERS=E(4));……A.“11011011”B.“00110100”C.“11011001”D.“00101100”四程序设计(25分)1设计一个带有同步并行预置功能的8位左移移位寄存器。(10分)参考答案:libraryIEEE;useIEEE.STD_LOGIC_1164.all;entityLshifterisPort(clk,rst,load:instd_logic;din:instd_logic_vector(7downto0);qb:outstd_logic);endLshifter;architectureart1ofLshifterisBeginProcess(clk,rst,load)Variablereg8:std_logic_vector(7downto0);BeginIfload=’1’thenreg8:=(others=’0’);IFCLK’EVENTANDCLK=’1’THENIfload=’1’thenreg8:=din;Elsereg8(7downto1):=reg8(6downto0);Endif;Endif;QB=REG8(7);Endprocess;endart1;2根据图2的电路图写出完整的VHDL程序。(5分)图2第四大题2小题的图LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYHADISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;c:OUTSTD_LOGIC;d:OUTSTD_LOGIC);ENDENTITYHAD;ARCHITECTUREfh1OFHADISBEGINc=NOT(aNANDb);d=(aORb)AND(aNANDb);ENDARCHITECTUREfh1;3假如某个FPGA芯片上连接了一个LED数码管,请你用VHDL语言设计一个输入是0-9中的某个数字,能将该数字在数码管上显示出来的程序。数码管的译码表如表1。(10分)-2-4、逻辑阵列块LAB包括哪几个部分?LE、LE进位链和级联链、LAB控制信号、LAB局部互联、LUT链和寄存器链5、如何实现寄存器配平?在设计中如果其中的两个组合逻辑的延时差别过大,那么它的总体工作频率取决于延时做大的块,可以将延时大的块的部分功能转移到延时小的块中,使两者延时相差较小,这样就可以提高电路的总体工作频率。6、构成一个完整的VHDL语言程序的五个基本结构是什么?实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)、程序包(PACKAGE)。7、一般有限状态机包含哪几个部分?说明部分,主控时序进程,主控组合进程和辅助进程。三在横线处补齐相应语句,使下面语句构成完整程序。(本题10分,每空1分)图1第三大题的图LIBRARYIEEE;USEIEEE.(1)STD_LOGIC_1164.ALL;ENTITYMUX21AISPORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITY;ARCHITECTUREART1OF(2)MUX21AISBEGINPROCESS(A,B,S)BEGINIFs=’1’THENy=a;(3)ELSEy=b;(4)ENDIF;(5)ENDPROCESS;注:译码的功能是实现如果在数码管上要显示某一数字,FPGA就应该输出这个数字的译码值,这样数码管才能显示该数字。如在数码管上要显示“1”,FPGA就应该输出“0000110”给数码管。表1显示数字与译码值对应关系表要显示的数字译码值要显示的数字译码值要显示的数字译码值00111111411001108111111110000110511011019110111121011011611111013100111170000111LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLED7SEGISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK:INSTD_LOGIC;LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDLED7SEG;ARCHITECTUREoneOFLED7SEGISSIGNALTMP:STD_LOGIC_VECTOR(3DOWNTO0);BEGINSYNC:PROCESS(CLK,A)BEGINIFCLK'EVENTANDCLK='1'THENTMP=A;ENDIF;ENDPROCESS;OUTLED:PROCESS(TMP)BEGINCASETMPISWHEN0000=LED7S=0111111;WHEN0001=LED7S=0000110;WHEN0010=LED7S=1011011;WHEN0011=LED7S=1001111;WHEN0100=LED7S=1100110;WHEN0101=LED7S=1101101;WHEN0110=LED7S=1111101;WHEN0111=LED7S=0000111;WHEN1000=LED7S=1111111;WHEN1001=LED7S=1101111;WHENOTHERS=LED7S=0000000;ENDCASE;ENDPROCESS;ENDone;-3-ENDARCHITECTURE;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUXKISPORT(a1,a2,a3,s0,s1:INSTD_LOGIC;outy:OUTSTD_LOGIC);ENDENTITYMUXK;ARCHITECTUREART2OFMUXKISCOMPONENTMUX21A(6)PORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDCOMPONENT;(7)SIGNALTMP:STD_LOGIC;BEGINPROCESS(a1,a2,a3,s0,s1)BEGINU1:MUX21A(8)PORTMAP(a=a2,b=b3,s0=s,Y=TMP);U2:MUX21A(9)PORTMAP(a=a1,b=TMP,s=s1,Y=outy);(10)ENDPROCESS;ENDARCHITECTUREART2;