EDA复习题.docx
《EDA复习题.docx》由会员分享,可在线阅读,更多相关《EDA复习题.docx(19页珍藏版)》请在冰豆网上搜索。
![EDA复习题.docx](https://file1.bdocx.com/fileroot1/2022-11/26/3b180b4b-44f4-4609-adc8-3f8875cfda61/3b180b4b-44f4-4609-adc8-3f8875cfda611.gif)
EDA复习题
一、单选题
1.对FPGA器件特点描述正确的是:
(B)
A:
采用EEPROM工艺B:
采用SRAM工艺
C:
集成度比PAL和GAL低D:
断电后配置数据不丢失
2.CPLD和FPGA的不同特性(D)
A:
高密度B:
髙速度C:
在系统编程D:
加密
3.下面哪种VHDL库使用时不需声明(C)
(A)IEEE库(B)ASIC库(C)WORK库(D)ALTERA库
4.STD_LOGIC_1164程序包的正确声明方法是:
(C)
(A)USESTD_LOGIC_1164(B)USEIEEE.STD_LOGIC_1164
(C)USEIEEE.STD_LOGIC_1164.ALL(D)USE
5.类属说明的正确格式是:
(B)
(A)GENERIC(delay:
TIME=20us);(B)GENERIC(delay:
TIME:
=20us);
(C)GENERIC(delayTIME=20us);(D)GENERIC(delay=TIME:
=20us);
6.变量不能在VHDL程序中的哪个结构部分声明的是(A):
(A)结构体(B)进程(C)函数(D)过程
7.signala:
bit;signalb:
bit_vector(1downto0);下面正确的表达式是:
(C)
(A)b<=a(B)a<=b(C)a<=b(0)(D)a:
=b(0)
8.在VHDL的IEEE标准库中,预定义的标准逻辑位数据STD_LOGICE有(D)种逻辑值。
A2B3C8D9
9.VHDL语言程序结构中必不可少的部分是:
(D)
(A)库(B)程序包(C)配置(D)实体和结构体
10.能反馈输出信号至内部的端口模式是(C):
(A)IN(B)OUT(C)BUFFER(D)INOUT
11.VHDL语言优先级最高的运算符是(C):
(A)AND(B)OR(C)NOT(D)XOR
12.signala,b:
bit;signaly:
bit_vector(1downto0);下面正确的表达式是:
(D)
(A)y<=a(B)y<=b(C)y<=banda(D)y<=b&a
13.常量的正确格式是:
(B)
(A)CONSTANTVcc:
REAL=5.0;(B)CONSTANTVcc:
REAL:
=5.0;
(C)CONSTANTVccREAL=5.0;(D)CONSTANTVcc:
=5.0;
14.进程内不能定义(C):
A:
常量B:
变量C:
信号D:
子程序
15.在VHDL中,用语句(D)表示检测clock的下升沿。
Aclock’EVENTBclock’EVENTANDclock=’1’
Cclock=’1’Dclock’EVENTANDclock=’0’
16.VHDL程序设计结构体的基本功能是:
(C)。
A.声明结构体中将用到的数据类型、元件、常数、子程序等
B.定义本设计的输入/输出端口
C.说明本设计内部结构与外部端口间的逻辑关系
D.为本设计选定特定的结构体
17.在下列操作中,最高优先级的运算操作符是(C)。
A.ANDB.ORC.NOTD.*
18.进程中的变量赋值语句,其变量更新是(A)。
A.立即完成;B.按顺序完成;
C.在进程的最后完成;D.都不对。
19.在一个VHDL设计中idata是一个信号,数据类型为std_logic_vector,试指
出下面(D)赋值语句是错误的。
A.idata<=“00001111”B.idata<=B”0000_1111”
C.idata<=X”AB”D.idata<=B”21”
20.下述哪个语句可用于描述组合电路:
(C)。
A.case_is_whenB.if_then_elsif_then
C.when_elseD.if_then
21.在下列类型语句中不属顺序语句的是(C)。
A.赋值语句B.LOOP语句C.进程语句D.CASE语句
22.执行QuartusⅡ的(A)命令,可以在底层设计时创建元件的图形符号。
A.CreateDefaultSymbolB.Simulator
C.CompilerD.TimingAnalyzer
23.在VHDL语言中,用语句(B)表示检测到时钟clk的上升沿。
A.clk’eventB.rising_edge(clk)
C.clk=‘0’D.clk=’1’
24.在VHDL中为目标signal赋值符号为(B)。
A.=B.<=C.:
=D.=:
25.假设输入信号a=“6”,b=“E”,则以下程序执行后,c的值为(B)。
entitylogicis
port(a,b:
instd_logic_vector(3downto0);
c:
outstd_logic_vector(7downto0));
endlogic;
architectureaoflogicis
begin
c(0)<=a(0);
c(2downto1)<=a(2downto1)andb(2downto1);
c(3)<='1'xorb(3);
c(7downto4)<="1111"when(a
(2)=b
(2))else"0000";
enda;
A.“F8”B.“F6”C.“F7”D.“0F”
二、填空
1.ASIC的中文含义是:
___专用集成电路_____。
2.FPGA的一般采用__SRAM___工艺。
3.VHDL提供了四种端口模式:
IN、OUT、INOUT、BUFFER。
4.结构体的描述方式主要有:
行为描述、数据流描述和结构描述。
5.VHDL的数据对象有:
常量、变量、信号等三种。
6.位类型(BIT)的取值只有__0__和__1__。
7.SIGNALb:
BIT_VECTOR(6TO0),信号b被定义为__7_位位宽。
8.进程由敏感信号参数表、说明部分和顺序描述语句部分三部份构成。
9.选择信号赋值语句的每一子句后是__逗__号,最后一句是__分__号。
10.一个完整的VHDL程序包含:
库、程序包、实体、结构体、配置五个部分。
11.编译可以检查的错误有逻辑和语法。
12.QuratusII仿真主要分为功能、时序。
13.BLOCK内的语句是___并行___语句。
14FPGA的一般采用__SRAM___工艺。
15.对CPLD编程的目标文件扩展名为.pof,对FPGA配置的目标文件扩展名为.sof
16.设D0为'0',D1为'1',D2为'1',D3为'0',D3&D2&D1&D0的运算结果是“0110”;(D3orD2)and(D1andnotD0)的运算结果是:
‘1’。
17VHDL的数据对象分为 常数 、 变量 和 信号 3类。
18.VHDL的数据STD_LOGIC定义了9种数据,其中‘Z’表示 高阻态 ,取值‘X’表示不确定。
19.在VHDL的端口声明语句中,端口方向包括 IN 、 OUT 、 INOUT和 BUFFER 。
20.多个进程之间进行并行联系是通过 信号 来实现的。
21、VHDL的进程(process)语句是由 顺序 语句组成的,但其本身却是 并行 语句。
22.VHDL的两大基本描术语句是 顺序语句 和 并行语句 。
23.VHDL的子程序有两种类型,即 函数 和 过程 。
24.程序包的结构由 程序包首声明 和 程序包体 两部分组成。
25.Moore状态机输出只依赖于器件的当前状态,与输入信号无关。
三判断
1.实体(ENTITY)不是VHDL程序所必须的。
(×)
2.信号是个全局量,其赋值是立即生效的。
(×)
3.顺序语句按语句的先后顺序执行。
(√)
4.进程只有在其敏感信号发生变化时才被执行。
(×)
四、功能分析
1.填写程序中缺少的语句并分析下面的VHDL源程序,说明设计电路的功能。
;答案:
LIBRARYIEEE;
;答案:
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYLX3_1IS
PORT(s2,s1,s0:
INSTD_LOGIC
d3,d2,d1,d0:
INSTD_LOGIC;
d7,d6,d5,d4:
INSTD_LOGIC;
Y:
OUTSTD_ULOGIC);
ENDLX3_1;
ARCHITECTUREoneOFLX3_1IS
SIGNALS:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
s<=s2&s1&s0;
y<=d0WHENs=”000”ELSE
d1WHENs=”001”ELSE
d2WHENs=”010”ELSE
d3WHENs=”011”ELSE
d4WHENs=”100”ELSE
d5WHENs=”101”ELSE
d6WHENs=”110”ELSE
d7;
ENDone;
结果:
答案:
8选1数据分配器
2.分析下面的VHDL源程序,说明设计电路的功能.
ENTITYLX3_2IS
PORT(A:
INBIT_VECTOR(3DOWNTO0);
B:
BIT_VECTOR(3DOWNTO0);
GT,LT,EQ:
OUTBIT);
ENDLX3_2;
ARCHITECTUREoneOFIS;(1分)答案:
LX3_2
BEGIN
PORCESS()(2分)答案:
a,b
BEGIN
GT<=’0’;
LT<=’0’;
EQ<=’0’;
IFa>bTHENGT<=’1’;
ELSIFaELSEEQ<=’1’;
ENDIF;
ENDPROCESS;
ENDone;
1.结果:
答案:
4位数据比较器
五、阅读下列VHDL程序,画出原理图(RTL级):
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYthreeIS
PORT
(
clk,d:
INSTD_LOGIC;
dout,e:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFthreeIS
SIGNALtmp:
STD_LOGIC;
BEGIN
P1:
PROCESS(clk)
BEGIN
IFrising_edge(clk)THEN
Tmp<=d;
dout<=nottmp;
ENDIF;
ENDPROCESSP1;
e<=tmpxord;
ENDbhv;
答案:
2.阅读下列VHDL程序,画出相应RTL图(10分)
libraryieee;
useieee.std_logic_1164.all;
entitylfsris
port(clk,clr,d:
instd_logic;
mout:
outstd_logic);
endlfsr;
architecturertloflfsris
signalsreg:
std_logic;
begin
process(clk,clr)
variables:
std_logic;
begin
ifclr='1'thens:
=’0’;
elsifrising_edge(clk)then
s:
=sregxor(notd);
endif;
sreg<=s;
endprocess;
mout<=sreg;
endrtl;
(三)阅读程序绘制RTL图
程序清单如下:
ENTITYx_or2IS--顶层实体
PORT(in1,in2:
INBIT;
out1:
OUTBIT);
ENDx_or2;
ENTITYnot_1IS
PORT(a:
INBIT;
b:
OUTBIT);
ENDnot_1;
architectureoneofnot_1is
begin
process(a)
begin
b<=NOTaafter5ns;--延时信号赋值
endprocess;
endone;
ENTITYand_2IS
PORT(c,d:
INBIT;
e:
OUTBIT);
ENDand_2;
ARCHITECTUREtwoOFand_2IS
BEGIN
PROCESS(c,d)
BEGIN
e<=cANDdAFTER10ns;
endPROCESS;
ENDtwo;
entityor_2is
port(f,g:
inBIT;
h:
outBIT);
endor_2;
architecturethreeofor_2is
begin
process(f,g)
begin
h<=forgafter4ns;
endprocess;
endthree;
architecturetop_x_or2ofx_or2is--顶层实体的结构体
signalt1,t2,t3,t4:
bit;--信号说明
componentnot_1--本地元件引用说明
port(a:
inbit;b:
outbit);
endcomponent;
componentand_2
port(c,d:
inbit;e:
outbit);
endcomponent;
componentor_2
port(f,g:
inbit;h:
outbit);
endcomponent;
begin
u0:
not_1portmap(in1,t1);--元件例化语句
u1:
not_1portmap(a=>in2,b=>t2);
u2:
and_2portmap(t1,in2,t3);
u3:
and_2portmap(c=>in1,d=>t2,e=>t4);
u4:
or_2portmap(f=>t3,g=>t4,h=>out1);
endtop_x_or2;
答案:
六、VHDL程序填空:
下面程序是一个16位数控分频器的VHDL描述,试补充完整
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USE___IEEE.STD_LOGIC_UNSIGNED.ALL____________;
ENTITYPULSE16IS
PORT(CLK:
INSTD_LOGIC;
LOAD:
INSTD_LOGIC;
D:
IN___STD_LOGIC_VECTOR(15DOWNTO0);
FOUT:
OUTSTD_LOGIC);
END;
_ARCHITECTURE__oneOFPULSE16IS
SIGNALFULL:
STD_LOGIC;
BEGIN
P_REG:
PROCESS(CLK)
Variable__CNT16:
STD_LOGIC_VECTOR(15DOWNTO0);
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IF___load=’1’____THEN--LOAD高电平置数
CNT16:
=D;FULL<='0';
ELSE
IFCNT16="1111111111111111"THEN
CNT16:
=D;
FULL<='1';
ELSE
CNT16:
=cnt16+’1’_;--计数加1
FULL<='0';
ENDIF;
ENDIF;
ENDIF__;
ENDPROCESSP_REG;
P_DIV:
PROCESS(__FULL_)--溢出信号为敏感信号
VARIABLECNT2:
STD_LOGIC;
BEGIN
IF___FULL’eventandfull=’1’THEN--FULL上升沿判断
CNT2:
=NOTCNT2;
FOUT<=CNT2;
ENDIF;
ENDPROCESSP_DIV;
END;
七、VHDL程序改错:
仔细阅读下列程序,回答问题
(一)阅读下列程序改错
LIBRARYIEEE;--1
USEIEEE.STD_LOGIC_1164.ALL;--2
ENTITYLED7SEGIS--3
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);--4
CLK:
INSTD_LOGIC;--5
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));--6
ENDLED7SEG;--7
ARCHITECTUREoneOFLED7SEGIS--8
SIGNALTMP:
STD_LOGIC;--9
BEGIN--10
SYNC:
PROCESS(CLK,A)--11
BEGIN--12
IFCLK'EVENTANDCLK='1'THEN--13
TMP<=A;--14
ENDIF;--15
ENDPROCESS;--16
OUTLED:
PROCESS(TMP)--17
BEGIN--18
CASETMPIS--19
WHEN"0000"=>LED7S<="0111111";--20
WHEN"0001"=>LED7S<="0000110";--21
WHEN"0010"=>LED7S<="1011011";--22
WHEN"0011"=>LED7S<="1001111";--23
WHEN"0100"=>LED7S<="1100110";--24
WHEN"0101"=>LED7S<="1101101";--25
WHEN"0110"=>LED7S<="1111101";--26
WHEN"0111"=>LED7S<="0000111";--27
WHEN"1000"=>LED7S<="1111111";--28
WHEN"1001"=>LED7S<="1101111";--29
ENDCASE;--30
ENDPROCESS;--31
ENDone;
1.在程序中存在两处错误,试指出,并说明理由:
在QuartusII中编译时,提示的错误为:
Error:
Line14:
Filef:
\upload\eda\maxplusii\my_proj\s8_5\led7seg.vhd:
Typeerror:
typeinwaveformelementmustbe"std_ulogic"
Error:
Line19:
Filef:
\upload\eda\maxplusii\my_proj\s8_5\led7seg.vhd:
VHDLsyntaxerror:
expectedchoicesincasestatement
参考答案:
第14行的错误是:
数据类型不一致
第19行的错误是:
29行与30行之间缺少一句剩余情况的处理语句
2.修改相应行的程序(如果是缺少语句请指出大致的行数):
错误1行号:
9程序改为:
SIGNALTMP:
STD_LOGIC_VECTOR(3DOWNTO0)
错误2行号:
29后程序改为:
29行与30行之间添加others=>null
(二)阅读下列程序改错
LIBRARYIEEE;--1
USEIEEE.STD_LOGIC_1164.ALL;--2
ENTITYMOORIS--3
PORT(DATAIN:
INSTD_LOGIC_VECTOR(1DOWNTO0);--4
CLK,RST:
INSTD_LOGIC;--5
Q:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));--6
ENDMOOR;--7
ARCHITECTUREBEHAVOFMOORIS--8
SIGNALST_TYPEIS(ST0,ST1,ST2);--9
SIGNALC_ST:
ST_TYPE;--10
BEGIN--11
PROCESS(CLK,RST)--12
BEGIN--13
IFRST='1'