最新VHDL答案.docx
《最新VHDL答案.docx》由会员分享,可在线阅读,更多相关《最新VHDL答案.docx(13页珍藏版)》请在冰豆网上搜索。
最新VHDL答案
诚信应考,考试作弊将带来严重后果!
华南理工大学期末考试
《数字系统设计》试卷
注意事项:
1.考前请将密封线内各项信息填写清楚;
2.所有答案请直接答在试卷上(或答题纸上);
3•考试形式:
开(闭)卷;
4.本试卷共大题,满分100分,考试时间120分钟。
题号
-一一
二——二
.三
四
五
总分
得分
评卷人
4.基于EDA软件的FPGA/CPLD设计流程,以下流程中哪个是正确的:
(C)
A.原理图/HDL文本输入t适配t综合t时序仿真t编程下载t功能仿真t硬件测试
B.原理图/HDL文本输入t功能仿真t综合t时序仿真t编程下载t适配t硬件测试;
C.原理图/HDL文本输入t功能仿真t综合t适配t时序仿真t编程下载t硬件测试
D.原理图/HDL文本输入t适配t时序仿真t编程下载t功能仿真t综合t硬件测试。
5.关于综合,从输入设计文件到产生编程文件的顺序正确的是:
(B)
A.逻辑综合t高层次综合t物理综合;
B.高层次综合f逻辑综合t物理综合;
C.物理综合f逻辑综合f高层次综合;
D.高层次综合f逻辑综合f时序综合;
6.进程中的信号赋值语句,其信号更新是(C)
A.按顺序完成;
B.比变量更快完成;
C.在进程的挂起时完成;
D.都不对。
7.下列不属于VHDL基本程序结构是(A)
A.CONFIGURATION定义区B.ARCHITECTURE定义区
C.USE定义区
D.ENTITY定义区
8.下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的_(C)。
A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计;
B.原理图输入设计方法一般是一种自底向上的设计方法;
C.原理图输入设计方法无法对电路进行功能描述;
D.原理图输入设计方法也可进行层次化设计。
二.简答题(22分)
1.简述利用EDA技术设计数字系统的特点。
1)用软件的方式设计硬件;
2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成;
3)采用自顶向下的设计方法;
4)设计过程中可用有关软件进行各种仿真;
5)系统可现场编程,在线升级;
6)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
2.什么是信号建立时间?
(2分)什么是信号保持时间?
(2分)
建立时间是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
保持时间是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间。
3.仿真分为哪几个层次的仿真?
(3分)
1)电路级仿真;
2)逻辑仿真;
3)开关级仿真;
4)算法仿真
4.实验中,对某程序进行编译时出现错误提示:
“VHDLDesignFileaaa.vhd"
mustcontainanentityofthesamename.(4分)
这是什么原因?
如何修改?
产生这个错误的原因是ENTITY的名字与VHDL文件名字不一样。
只需要把ENTITY
的名字改为"aaa”或者把"aaa.vhd”改成ENTITY的名字就可以了。
5•实验中,如果编译时出现“Can'openVHDLWORK””这样的错误提示。
这又是什么原因,如何修改?
(4分)
出现这个错误的原因是把VHD文件直接放在了硬盘根目录下,只需要建立一个文件夹
就可以解决。
6.用图示法描述一般时序系统的模型,并作简要说明。
(3分)
时序电路的一般模型,由组合逻辑电路&具有记忆功能的存储器组成。
系统的当前状态保存在存储器或寄存器中,组合逻辑也可以分为次态产生逻辑与输出逻辑两部分。
系统的次态由系统的当前状态与输入有关,同样地,系统的输出也是由存储器的状态与输入信号一起决定的。
三•根据下述VHDL程序段,画出相应的逻辑示意图,并加以简单说明(共10分,每题5分)
1、Process(clk)
Begin
If(clk=‘1')Qhedata;Endif;
Endprocess;
这是一个D触发器。
DatewQ
cikt>ci
2、ENTITYexampleIS
PORT(a,b,c,g1,g2a,g2b:
INstd_logic;
y:
OUTstd_logic_vector(7DOWNTO0));
ENDENTITY;
ARCHITECTUREbehavOFexampleIS
SIGNALindata:
std_logic_vector(2DOWNTO0);
BEGIN
indata<=c&b&a;
PROCESS(indata,g1,g2a,g2b)
BEGIN
IF(g仁'1'andg2a='0'ANDg2b='0')THEN
CASEindataIS
WHEN"000"=>
y<="11111110";
WHEN"001"=>
y<="11111101";
WHEN"010"=>
y<="11111011";
WHEN"011"=>
y<="11110111";
WHEN"100"=>
y<="11101111";
WHEN"101"=>
y<="11011111";
WHEN"110"=>
y<="10111111";
WHEN"111"=>
y<="01111111";
WHENOTHERS=>y<="XXXXXXXX";
ENDCASE;
ELSE
y<="11111111";
ENDIF;
ENDPROCESS;
ENDbehav;
这是一个三八线译码器。
四•综合题(52分)
1.根据原理图写出相应的VHDL程序:
(10分)
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYproblem4IS
PORT(DIN,CLK:
INstd_logic;
QOUT:
OUTstd」ogic);
ENDproblem4;
ARCHITECTUREbehaveOFproblem4ISSIGNALQ:
std_logic;
BEGIN
DFF:
PROCESS(CLK)
BEGIN
IF(CLK'eventANDCLK='1')THENQ<=DIN;ENDIF;
ENDPROCESS;
LATCH:
PROCESS(Q,CLK)
BEGIN
IF(CLK='1')THENQOUT<=NOTQ;
ENDIF;
ENDPROCESS;
ENDbehave;
2.有一个传输门,根据下述赋值语句和给定的波形,画出对应Z1,Z2,Z3和Z4
的波形图。
(4分)
(1)Z1<=Vi,惯性延时时间为4ns
(2)Z2<=Viafter4ns,惯性延时时间为4ns
(3)Z3<=TRANSPORTViAFTER3ns,惯性延时时间为4ns
(4)Z4<=Vi,传输门的Tr=4ns,Tf=2ns
3.根据ASM图画出时序图。
(4分)
i
Z
J
0
1
I-
W
1
Clock
JTU-^^TLTL-n
ASM(a)
Z
Architectureasmoftrafficis
typestateis(GR);
signalpresentstate,nextstate:
state;
Begin
seq:
process(reset,clk)
begin
if(reset='1')thenpresentstate=G;
elsif(clk'eventandclk='1')then
presentstate=nextstate;
endif;
endprocess;
com:
process(present_state,car,timed)
beginstart_timer<=‘O';casepressent_stateiswhenG=>
majorgreen<=1';minorgreen<=0';
if(car=1')thenstarttimer<=1)nextstate<=R;
else
nextstate<=G;endif;
whenR=>major_green<=0';minor_green<=1';if(timed=‘1')thennext_state<=G;
elsenext_state<=R;endif;
endcase;
endprocess;
Endasm;
5.下图所示电路是某数字系统的控制器。
其中Z是系统数据处理器的状态信号;
C1和C2是控制器输出的控作信号。
试画出该控制器的ASM图。
(10分)
Cl
C2
elk
C仁画
C2=FR
现态
次态
囚
El
Z
Q劣
0
o
0
1
0
0
o
1
1
1
1
o
0
0
0
1
o
1
0
0
1
1
0
0
0
1
1
1
0
0
ASM图如下:
6.试编程实现以下功能。
(14分)
如下图所示,某数字系统有三条输入线分别为CLK、CONTROL和DATA。
有一条输出应答线READY和8位输出总线Z。
从DATA数据线上输入的是
8位串行数据。
串行输入数据从低位到高位依次输入。
当系统准备接受新的
数据时READY信号置1,并监视输入信号CONTROL。
当CONTROL线在连续二个时钟周期为1时,系统将READY信号恢复为0。
随后的8个时钟由DATA线依次输入8位数据。
之后一个时钟,再次将READY信号置1,并将8为数据并行输出到数据总线Z。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYproblem6IS
PORT(DATA,CONTROL,CLK:
INSTD_LOGIC;
Z:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);READY:
OUTSTD_LOGIC
);
ENDproblem6;
ARCHITECTUREbehavOFproblem6IS
BEGIN
PROCESS(CLK,CONTROL,DATA)
VARIABLECNT:
INTEGERRANGE0TO9:
=0;
VARIABLETMP:
STD_LOGIC_VECTOR(7DOWNTO0):
="00000000";BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFCNT=10THEN
Z<=TMP;
CNT:
=0;
READY<='1';
ELSIFCNT>=2THENTMP(9-CNT):
=DATA;CNT:
=CNT+1;READY<='0';
ELSIFCONTROL='0'ANDCNT=1THENCNT:
=0;READY<='1';
ELSIFCONTROL='1'ANDCNT=1THENCNT:
=CNT+1;
READY<='0';
ELSIFCONTROL='1'ANDCNT=0THENCNT:
=CNT+1;
READY<='1';
ELSEREADY<='1';
ENDIF;
ENDIF;
ENDPROCESS;
ENDbehav;