EDA复习题Word格式文档下载.docx
《EDA复习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA复习题Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
=b&
a
13.常量的正确格式是:
(B)
(A)CONSTANTVcc:
REAL=5.0;
(B)CONSTANTVcc:
REAL:
=5.0;
(C)CONSTANTVccREAL=5.0;
(D)CONSTANTVcc:
14.进程内不能定义(C):
常量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.下述哪个语句可用于描述组合电路:
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为'
,D2为'
,D3为'
,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:
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
GT<
=’0’;
LT<
EQ<
IFa>
bTHENGT<
=’1’;
ELSIFa<
bTHENLT<
ELSEEQ<
ENDIF;
ENDPROCESS;
ENDone;
1.结果:
4位数据比较器
五、阅读下列VHDL程序,画出原理图(RTL级):
LIBRARYIEEE;
ENTITYthreeIS
PORT
(
clk,d:
INSTD_LOGIC;
dout,e:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFthreeIS
SIGNALtmp:
STD_LOGIC;
BEGIN
P1:
PROCESS(clk)
IFrising_edge(clk)THEN
Tmp<
=d;
dout<
=nottmp;
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;
process(clk,clr)
variables:
begin
ifclr='
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:
ENDnot_1;
architectureoneofnot_1is
process(a)
begin
b<
=NOTaafter5ns;
--延时信号赋值
endprocess;
endone;
ENTITYand_2IS
PORT(c,d:
e:
ENDand_2;
ARCHITECTUREtwoOFand_2IS
PROCESS(c,d)
BEGIN
e<
=cANDdAFTER10ns;
endPROCESS;
ENDtwo;
entityor_2is
port(f,g:
inBIT;
h:
outBIT);
endor_2;
architecturethreeofor_2is
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:
e:
componentor_2
port(f,g:
h:
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描述,试补充完整
USE___IEEE.STD_LOGIC_UNSIGNED.ALL____________;
ENTITYPULSE16IS
PORT(CLK:
LOAD:
D:
IN___STD_LOGIC_VECTOR(15DOWNTO0);
FOUT:
_ARCHITECTURE__oneOFPULSE16IS
SIGNALFULL:
P_REG:
PROCESS(CLK)
Variable__CNT16:
STD_LOGIC_VECTOR(15DOWNTO0);
BEGIN
IFCLK'
EVENTANDCLK='
THEN
IF___load=’1’____THEN--LOAD高电平置数
CNT16:
=D;
FULL<
ELSE
IFCNT16="
1111111111111111"
THEN
CNT16:
FULL<
ELSE
=cnt16+’1’_;
--计数加1
ENDIF;
ENDIF;
ENDIF__;
ENDPROCESSP_REG;
P_DIV:
PROCESS(__FULL_)--溢出信号为敏感信号
VARIABLECNT2:
IF___FULL’eventandfull=’1’THEN--FULL上升沿判断
CNT2:
=NOTCNT2;
FOUT<
=CNT2;
ENDIF;
ENDPROCESSP_DIV;
七、VHDL程序改错:
仔细阅读下列程序,回答问题
(一)阅读下列程序改错
--1
--2
ENTITYLED7SEGIS--3
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
--4
CLK:
--5
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
--6
ENDLED7SEG;
--7
ARCHITECTUREoneOFLED7SEGIS--8
SIGNALTMP:
--9
BEGIN--10
SYNC:
PROCESS(CLK,A)--11
BEGIN--12
THEN--13
TMP<
=A;
--14
--15
ENDPROCESS;
--16
OUTLED:
PROCESS(TMP)--17
BEGIN--18
CASETMPIS--19
WHEN"
=>
LED7S<
0111111"
--20
0001"
0000110"
--21
0010"
1011011"
--22
0011"
1001111"
--23
0100"
1100110"
--24
0101"
1101101"
--25
0110"
1111101"
--26
0111"
0000111"
--27
1000"
1111111"
--28
1001"
1101111"
--29
ENDCASE;
--30
--31
1.在程序中存在两处错误,试指出,并说明理由:
在QuartusII中编译时,提示的错误为:
Error:
Line14:
Filef:
\upload\eda\maxplusii\my_proj\s8_5\led7seg.vhd:
Typeerror:
typeinwaveformelementmustbe"
std_ulogic"
Line19:
VHDLsyntaxerror:
expectedchoicesincasestatement
参考答案:
第14行的错误是:
数据类型不一致
第19行的错误是:
29行与30行之间缺少一句剩余情况的处理语句
2.修改相应行的程序(如果是缺少语句请指出大致的行数):
错误1行号:
9程序改为:
SIGNALTMP:
STD_LOGIC_VECTOR(3DOWNTO0)
错误2行号:
29后程序改为:
29行与30行之间添加others=>
null
(二)阅读下列程序改错
--1
--2
ENTITYMOORIS--3
PORT(DATAIN:
INSTD_LOGIC_VECTOR(1DOWNTO0);
CLK,RST:
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='