EDA技术习题docWord文档格式.docx
《EDA技术习题docWord文档格式.docx》由会员分享,可在线阅读,更多相关《EDA技术习题docWord文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
5.V1IDL语言按照执行顺序的不同可以分为哪两类基本语句?
并且各举一例说明。
顺序语句和并行语句
1.什么是自顶向下的设计方法?
与传统电子设计方法相比有什么优点?
自顶向下就是在整个设计流程中各个设计流程逐步求精的过程,即是从高抽象级别到低抽象级别的整个设计周期。
优点:
在整个设计过程中不必太注意目标器件的设计细节。
2.在FPGA设计过程中,综合的含义是什么?
主要有哪凡种类型的综合?
综合:
将用行为和功能层次表达的电了系统转换成为低层次的便于具体实现的模块组合装配的过程。
有语言综合、行为综合、逻辑综合、结构综合
3.EDA技术最终实现目标的ASIC可以通过哪三种途径完成?
答:
门阵法标准单元法可编辑逻辑器件控制法
4.简述信号与变量的主要区别。
(3分)1
pl30
信号signal
变量variable
基本用法
用于电路线路中信号的连接
用于作为进程中局部数据存储单元
适用范围
在整个结构体中任何地方都可以适用
只能在所定义的进程中使用
行为特征
在进程最后才对信号赋值
立即赋值
5.在VHDL设计中,给触发器复位有哪两种方法?
如果时钟进程中用了敏感信号表,哪种复位方式必须要把复位信号放在敏感信号表中?
(3分)
同步复位异步复位。
异步复位
6.利用FPGA构成数字系统时为什么需要配备一个PROM或EEPROM?
(2分)
三、VHDL程序填空:
(10分,每空1分)
下面程序是一个具有加法和减法功能的16位计数器VIIDL描述,试补充完整。
空1IEEE;
(LIBRARY)
use空2
.STDLOGIC1164.all;
(IEEE)
useieee.
空3.all;
(STD_L()G1C_UNS1GNED)
空4
entaddsubis(ENTITY)
port(elk:
inSTI)_L0GIC;
rst:
inST【)_L0GIC;
enable:
inSTDLOGIC;
add_sub:
inSTD_LOG1C;
q
:
outSTD_LOG1C_VECTOR(15downto0));
endcnt_add_
sub;
architecture
cnt_add_subof空5is(cnt_add_sub)
空6
_q_tmp:
STDLOGICVECTOR(15downto0):
(SIGNAL)
begin
空7
_(elk,rst)(PROCESS)
空8
rst=Tthenq_tmp<
=(others=>
"
0’);
(if)
elsif
空9andelk='
1'
then(elk'
event)
ifenable二'
then
ifadd_sub-‘1'
q_tmp<
=CL.tmp+l;
else
q_tmp<
=q_tnip-l;
空10;
(endif)
endif;
endif;
endprocess;
q<
=qtmp:
endcnt_cidd_sub;
下面程序是一位全加器的VIIDL描述,试补充完整。
一半加器描述
USEIEEE.STDLOGIC1164.ALL;
ENTITY空2IS
空3(a,b:
INSTI)_LOG1C;
co,so:
OUTSTDLOGIC);
ENDENTITYh_adder;
ARCHITECTURE空4OFh_adderis
BEGIN
so<
=NOT(aXOR(NOTb));
co<
=aANDb;
ENDARCHITECTUREfhl;
一一位全加器顶层设计描述
(library)
(h_adder)
(PORT)
(fhl)
ENTITYf_adderIS
PORT(ain,bin,cin:
空5STDLOGIC;
(IN)cout,sum:
OUTSTD_LOG1C);
ENDENTITYf_adder;
ARCHITECTUREfdlOFf_adderIS
空6h_adderIS(COMPONENT)
PORT(a,b:
INSTD_LOG1C;
OUTSTD_LOG1C);
ENDCOMPONENT;
空7d,e,f:
STI)_LOGIC;
(SIGNAL)
ul:
空8PORTMAP(a=>
ain,b=>
bin,co=>
d,so=>
e);
(hadder)u2:
h_cidderPORTMAP(a二〉空9,b=>
cin,co=>
f,so二〉sum);
(e)
cout<
=d空10f;
(OR)
ENDARCHITECTUREfdl;
在程序中存在5处错误,试找出错误,写出错误原因,并写出正确语句。
第1行一libraryieee;
第2行一useieee.stdlogicl164.al1;
第3行一useieee.std_logic_unsigned.all;
第4行一entitydecoder38is
第5行一port(Q0:
outstd_logic_vector(7downto0):
第6行一QI:
instdlogicvector(2downto0):
第7行一en:
instd_logic);
第8行一endentitydecoder38;
第9彳亍一architecturecode!
ofdecoderis(decoder38)
第10行一begin
第11行一process()(process(QI))
笫12行一signaltemp:
std_logic_vector(7downto0):
(variable)
第13行一begin
第14行一ifen=*Tthentemp:
=〃ZZZZZZZZ〃;
第15行一
第16行一
caseQIis
第17行一
when〃000〃=>
temp:
="
00000001”;
第18行一
when〃001〃=>
00000010”;
第19行一
when"
010”=>
00000100〃;
第20行一
Oil"
=>
00001000”;
第21行一
100”=>
二”00010000〃;
第22行一
when〃101〃=>
="
00100000〃;
第23行一
when〃110〃=>
01000000”;
第24行一
111〃=>
10000000〃;
第25行一
enclif;
(前插入ENDCASE)
第26行一
QI<
=temp;
(QO)
第27行一
endprocess;
第28行一
endarchitecturecode!
;
四、VHDL程序改错:
(10分)
第1行—第2行一第3行一第4行一第5行_第6行一第7行一第8行一
libraryIEEE;
useIEEE.STI)LOGIC1164.all;
entitymux4is
port(sO,si,a,b,c,d:
inSTDLOGIC;
y:
outSTD_L()G1C;
);
(删去;
)
endmux4;
architectureoneofmuxis(mux4)
signa1s:
std_1ogic_vector(2dounto0):
(1)
第9行一第10行一第11行一第12行一第13行一第14行一第15行一第16行一第17行一第18行一
sSsl&
sO;
process()(s)
casesis
00〃=>
y<
=a;
01”二〉y<
=b;
when〃10"
=>
=c;
endcase;
(插入wheny<
=d;
endone;
五、编写VHDL程序:
(共20分,每题10分)
1.图1是一个含有下降沿触发的D触发器的时序电路,试写出此电路的VI1DL设计文件。
LIBRARYIEEE;
USEIEEE.STI)LOGIC1164.ALL;
ENTITYMULTIIS
PORT(CL:
INSTD_L()G1C;
一输入选择信号
CLKO:
INSTD_LOG1C;
一输入信号
OUT1:
OUTSTD_LOGIC)输出端
ENDENTITY;
ARCHITECTUREONEOFMULTIIS
SIGNALQ:
STD_L()GIC;
PRO1:
PROCESS(CLKO)
IFCLKO'
EVENTANDCLKO='
O'
THENQ<
=N()T(CLORQ);
ELSE
ENDIF;
ENDPROCESS;
PR02:
OUTIOQ;
EM)ARCHITECTUREONE;
2.“Ill”序列检测器的功能是连续输入三个或三个以上的1时,电路输出为“1”,其余情况下输出为“0”。
靖画出该序列检测器的状态图,并编写完成该功能的程序。
1.3、画出程序描述的状态转移图。
(9分)
useIEEE.STDLOGIC1164.all;
entitystate_84is
port(
elk,reset:
instd_logic;
ina:
instd_logic__vector(2downto0);
outa:
outstd_1ogic_vector(3downto0));
endstate_84;
architecturestate84ofstate84is
typestate__fsis(sO,si,s2,s3);
signalcur_state,next_state:
state_fs;
process(elk,reset)
ifreset='
1’then
cur_state<
=sO;
elsifelk'
eventandclk=Tthen
curstate〈二nextstate;
endif;
process(cur_state,ina)
casecurstateis
whensO二〉next_state<
=sl:
ifina="
101"
thenouta<
0010〃;
elsifina="
lll"
1100”;
elseouta<
=nul1;
whensi=〉ifina=〃110〃thennext_state〈二s2;
elsifina-〃000〃thennext_state<
-sl;
elsenull;
outa<
=,/100r/;
whens2二〉ifinaF〃100〃thennext_state〈=s2;
011〃thennext_state<
=sl;
elsifina/=〃011〃thennext_state<
=s3;
elsenul1;
outaK="
1111”;
whens3->
next_state<
=s0;
101〃thenouta<
1101”;
011"
>
l110〃;
=null;
whenothers->
-s0;
0000”;
1、EDA与传统电子设计方法的比较:
手工设计方法缺点:
1)采用硬件描述语言作为设计输入。
2)库(Library)的引入。
3)设计文档的管理。
4)强大的系统建模、电路仿真功能。
5)具有自主知识产权。
6)标准化、规范化及IP核的可利用性。
7)自顶向下设计方案。
8)自动设计、仿真和测试技术。
9)对设计者的硬件知识、经验要求低。
10)高速性能好(与以CPU为主的电路系统相比)。
11)纯硬件系统的高可靠性。
2、FPGA/CPLD设计流程
3(4-1)画出与下例实体描述对应的原理图符号元件:
ENTITYbut3sIS--实体I:
三态缓冲器
PORT(input:
INSTD_LOGIC;
-输入端
INSTD_LOGTC;
-使能端
output:
OUTSTD_LOGIC);
-输出端
ENDbuf3s;
ENABLE]〉・勺sp
INPUTI>
一.|OUTPUT
ENTITYmux21IS--实体2:
2选1多路选择器
PORT(inO,ini,sei:
INSTD_LOGIC;
OUTSTD.LOGIC);
ENDmux21;
4、(4.2)图4.37所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序,选择控制的信号si和so的数据类型为STD_LOGIC_VECTOR;
当si如s0='
0'
sUO*,s0=T;
sl=T,sO=MT和sl=fl\sO=T分别执行y<
=a>
yv=b、yv=c、yv=d。
sT>
二2S1so
PROCESS(s)
CASEsIS
WHEN”00”=>
WHEN"
01”=>
yv=b;
WHEN”IO”=>
yv=c;
WHEN”ll”=>
yv=d:
WHENOTHERS=>
NULL;
ENDCASE;
ENDtwo;
5、写出MUXK的顶层文件
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMUXKIS
PORT(al,a2,a3,s0,sI:
INSTD_LOGIC;
outy:
OUTSTD.LOGIC);
ENDENTITYMUXK;
ARCHITECTUREMUXOFMUXKIS
COMPONENTMUX21A
PORT(a,b,s:
y:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGALlmp:
STD_LOGIC;
ul:
MUX21APORTMAP(a=>
a2,b=>
a3,s=>
O,y=>
tinp);
u2:
MUX21APORTMAP(a=>
al,b=>
tmp,s=>
sI,y=>
outy);
ENDARCHITECTUREMUX;
6、(5.8)判断下面3个程序中是否有错误,若有则指出错误所在,并给出完整程序。
程序1:
SignalA,EN:
stdjogic;
Process(A,EN)
VariableB:
std_logic;
<
=
BeginifEN=1thenBendif;
程序2:
Architectureoneofsampleis
variablea,b,c:
integer;
c<
=a+b;
end;
程序3:
libraryieee;
useiccc.stdJogic^l164.all;
entitymux21is
port(a,b:
instdjogic;
sei:
c:
outstdjogic;
endsam2;
architectureoneofmux21isbegin
ifsei='
O'
thenc:
=a;
elsec:
=b;
endif;
endtwo;
7、一般时序状态机包括几个部分,分别是哪几个部分,清简要介绍.
(1)包括4部分,分别是说明部、主控时序进程、主控组合进程、辅助进程
(2)说明部分一般放在结构体的ARCHITECTURE和BEGIN之间,使用TYPE语句定义新的数据类型:
主控时序进程是指负责状态机运转和在时序驮动下负贲转换的进程:
主控组合进程根据条件进行状态转移:
辅助进程用于配合状态机工作的组合进程或时序进程
8、读程序,画出状态图
USEIEEE.STDLOGIC1164.ALL;
ENTITYMOORE1IS
PORT(DATAIN:
INSTD_LOGIC_VECTORf1DOWNTO0);
CLK,RST:
INSTDLOGIC;
Q:
OUTSTD_LOGIC_VECTORSDOWNTO0));
ENDMOORE1;
ARCHITECTUREbehavOFMOORE1IS
TYPEST_TYPEIS(STO,ST1,ST2,ST3,ST4);
SIGNALCST:
STTYPE;
BEGIN
PROCESS(CLK,RST)BEGIN
IFRST='
I*THENC_ST<
=STO;
Q<
=”00()0”;
ELSIFCLKEVENTANDCLK=1'
THEN
CASEC_STIS
WHENSTO=>
IFDATAIN='
'
10”THENC_ST<
=STI;
ELSEC_ST<
ENDIF;
Q<
1001'
WHENSTI=>
IFDATAIN=”11”THENC_ST<
=ST2;
=”0101”;
WHENST2=>
IFDATAIN=”01”THENC_ST<
=ST3;
ELSECST<
Q<
=”1100”;
WHENST3=>
IFDATAIN=‘00”THENC_ST<
=ST4;
=”0010”;
WHENST4=>
IFDATAIN=”11”THENCST<
=”1001”;
C_ST<
=STO;
ENDbehav;
LSTOJLST1JLST2JLST3人ST4
5ST