EDA试题题库及参考答案_第1页
EDA试题题库及参考答案_第2页
EDA试题题库及参考答案_第3页
EDA试题题库及参考答案_第4页
EDA试题题库及参考答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、选择题:(20分)大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:___D__ A.CPLD是基于查找表结构的可编程逻辑器件 B.CPLD即是现场可编程逻辑器件的英文简称 C.早期的CPLD是从FPGA的结构扩展而来 D.在Xilinx公司生产的器件中,XC9500系列属CPLD结构基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:_________D A.①②③④ B.②①④③ C.④③②① D.②④③①下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:__________BA.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计B.原理图输入设计方法多用于较规范、规模不大的电路设计,和HDL代码描述方法均可以被综合,相得益彰C.原理图输入设计方法无法对电路进行功能描述D.原理图输入设计方法不适合进行层次化设计在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:_______DA.PROCESS为一无限循环语句B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动C.当前进程中声明的变量不可用于其他进程D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成对于信号和变量的说法,哪一个是不正确的:_________A A.信号用于作为进程中局部数据存储单元 B.变量的赋值是立即完成的 C.信号在整个结构体内的任何地方都能适用 D.变量和信号的赋值符号不一样进程中的信号赋值语句,其信号更新是___C____。按顺序完成;比变量更快完成;在进程的最后完成;都不对。VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:_______D A.IEEE库 B.VITAL库 C.STD库 D.WORK工作库VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。B器件外部特性;器件的内部功能;器件的综合约束;器件外部特性与内部功能。下列语句中,不属于并行语句的是:_______B A.进程语句 B.CASE语句 C.元件例化语句 D.WHEN…ELSE…语句10.下列标识符中,__________是不合法的标识符。BA.State0 B.9moon C.Not_Ack_0 D.signall二、EDA名词解释或者简述(10分)写出下列缩写的中文(或者英文)含义:ASIC 专用集成电路FPGA 现场可编程门阵列IP 知识产权核(软件包)FSM 有限状态机5.HDL 硬件描述语言6.简要解释JTAG,指出JTAG的用途 JTAG,jointtestactiongroup,联合测试行动小组的简称,又意指其提出的一种硬件测试标准,常用于器件测试、编程下载和配置等操作。三、VHDL程序填空:(20分)1.以下程序是一个BCD码表示0~99计数器的VHDL描述,试补充完整。(10分)libraryieee;useieee.std_logic_1164.all;use____________________________________________;entitycnt100bis port( clk,rst,en:instd_logic; cq :outstd_logic_vector(7downto0); --计数输出 cout:outstd_logic); --进位输出endentitycnt100b;______________________bhvofcnt100bisbegin process(clk,rst,en) ______________cqi:std_logic_vector(7downto0); begin ifrst='1'then cqi:=__________________; --计数器清零复位 else if___________________________________then --上升沿判断 ifen='1'then ifcqi(3downto0)<"1001"then --比较低4位 ______________________; --计数加1 else ifcqi(7downto4)<"1001"then --比较高4位 cqi:=cqi+16; else cqi:=(others=>'0'); endif; __________________________; --低4位清零 endif; endif; ____________; endif; ifcqi=_______________then --判断进位输出 cout<='1'; else cout<='0'; endif; __________________; endprocess;endarchitecturebhv;答案:libraryieee;useieee.std_logic_1164.all;use;entitycnt100bis port( clk,rst,en:instd_logic; cq :outstd_logic_vector(7downto0); --计数输出 cout:outstd_logic); --进位输出endentitycnt100b;architecturebhvofcnt100bisbegin process(clk,rst,en) variablecqi:std_logic_vector(7downto0); begin ifrst='1'then cqi:=(others=>‘0’); --计数器清零 else ifclk’eventandclk=‘1’then ifen='1'then ifcqi(3downto0)<"1001"then --比较低4位 cqi:=cqi+1; --计数加1 else ifcqi(7downto4)<"1001"then --比较高4位 cqi:=cqi+16; else cqi:=(others=>'0'); endif; cqi(3downto0):=“0000”; endif; endif; endif; endif; ifcqi=“10011001”then cout<='1'; else cout<='0'; endif; cq<=cqi; endprocess;endarchitecturebhv;2.VHDL程序填空:(10分)下面程序是n输入与门的VHDL描述,试补充完整。__________ieee;use_____________________.all;entityandnis ________(n:integer); --类属参数声明 port( a:instd_logic_vector(______downto0); c:outstd_logic);end;________________behavof________is --结构体声明begin process(____) _____________int:std_logic; --变量声明 begin int:=_____; --变量赋初值 forIina'length–1downto0loop --循环判断 ifa(i)='0'then int:='0'; endif; endloop; c<=________; --输出判断结果 endprocess;endbehav;答案:libraryieee.std_logic_1164genericn-1architectureandnavariable‘1int四、VHDL程序调试改错:(10分)一、仔细阅读下列程序,回答问题LIBRARYIEEE; --1USEIEEE.STD_LOGIC_1164.ALL; --2ENTITYMOORE1IS --3 PORT( DATAIN :INSTD_LOGIC_VECTOR(1DOWNTO0); --4 CLK,RST:INSTD_LOGIC; --5 Q :OUTSTD_LOGIC_VECTOR(3DOWNTO0)); --6ENDMOORE1; --7ARCHITECTUREBEHAVOFMOORE1IS --8 SIGNALST_TYPEIS(ST0,ST1,ST2,ST3,ST4); --9 SIGNALC_ST:ST_TYPE; --10BEGIN --11 PROCESS(CLK,RST) --12 BEGIN --13 IFRST='1'THENC_ST<=ST0;Q<="0000"; --14 ELSIFCLK'EVENTANDCLK='1'THEN --15 CASEC_STIS --16 WHENST0=>IFDATAIN="10"THENC_ST<=ST1; --17 ELSEC_ST<=ST0; --18 ENDIF; Q<="1001"; --19 WHENST1=>IFDATAIN="11"THENC_ST<=ST2; --20 ELSEC_ST<=ST1; --21 ENDIF; Q<="0101"; --22 WHENST2=>IFDATAIN="01"THENC_ST<=ST3; --23 ELSEC_ST<=ST0; --24 ENDIF; Q<="1100"; --25 WHENST3=>IFDATAIN="00"THENC_ST<=ST4; --26 ELSEC_ST<=ST2; --27 ENDIF; Q<="0010"; --28 WHENST4=>IFDATAIN="11"THENC_ST<=ST0; --29 ELSEC_ST<=ST3; --30 ENDIF; Q<="1001"; --31 ENDCASE; --32 ENDIF; --33 ENDPROCESS; --34ENDBEHAV; --351.在程序中存在两处错误,试指出,并说明理由:在QuartusII中编译时,其中一个提示的错误为:Error(Line9):VHDLsyntaxerroratMOORE1.vhd(9)neartext"IS";expecting":",or","第9行,状态机数据类型声明错误,关键字应为TYPE第32行,case语句缺少whenothers处理异常状态情况2.修改相应行的程序(如果是缺少语句请指出大致的行数):错误1 行号:9程序改为:SIGNAL改为TYPE错误2 行号:32程序改为:之前添加一句whenothers=>c_st<=st0;五、阅读下列VHDL程序,说出总体实现了什么功能,并对代码进行解释。(10分)1.ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone2.LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTRISIS PORT( CONTROL:INSTD_LOGIC; INN :INSTD_LOGIC; Q :INOUTSTD_LOGIC; Y :OUTSTD_LOGIC);ENDTRIS;ARCHITECTUREONEOFTRISISBEGIN PROCESS(CONTROL,INN,Q) BEGIN IF(CONTROL='0')THEN Y<=Q; Q<='Z'; ELSE Q<=INN; Y<='Z'; ENDIF; ENDPROCESS;ENDONE;六、写VHDL程序:(10分)1.设计10进制加法计数器,要求含异步清0和同步时钟使能。注意:时钟信号命名为CLK,使能信号为EN,清零信号为RST,计数输出为CQ。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS=>'0');--计数器异步复位ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IFEN='1'THEN--检测是否允许计数(同步使能)IFCQI<9THENCQI:=CQI+1;--允许计数,检测是否小于9ELSECQI:=(OTHERS=>'0');--大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT<='1';--计数大于9,输出进位信号ELSECOUT<='0';ENDIF;CQ<=CQI;--将计数值向端口输出ENDPROCESS;ENDbehav;2.试描述一个带进位输入、输出的8位全加器 端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADDER8IS PORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0); CIN:INSTD_LOGIC; COUT:OUTSTD_LOGIC; S:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDADDER8;ARCHITECTUREONEOFADDER8IS SIGNALTS:STD_LOGIC_VECTOR(8DOWNTO0);BEGIN TS<=(‘0’&A)+(‘0 S<=TS(7DOWNTO0); COUT<=TS(8);ENDONE;七、VHDL程序设计:(20分)设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a)用if语句。(b)用case语句。(c)用whenelse语句。Libraryieee;Useieee.std_logic_1164.all;Entitymymuxis Port( sel:instd_logic_vector(1downto0); --选择信号输入 Ain,Bin:instd_logic_vector(1downto0); --数据输入 Cout:outstd_logic_vector(1downto0));Endmymux;ArchitectureoneofmymuxisBegin Process(sel,ain,bin) Begin Ifsel=“00” Elsifsel=“01” Elsifsel=“10” Elsecout<=notbin; Endif; Endprocess;Endone;ArchitecturetwoofmymuxisBegin Process(sel,ain,bin) Begin Caseselis when“00” when“01” when“10” whenothers=>cout<=notbin; Endcase; Endprocess;Endtwo;ArchitecturethreeofmymuxisBegin Cout<=ainandbinwhensel=“00” Ainxorbinwhensel=“01” Notainwhensel=“10”Endthree;设计一个7段数码显示译码器,并逐行进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论