EDA期末复习资料 2.docx
- 文档编号:4295801
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:13
- 大小:35.90KB
EDA期末复习资料 2.docx
《EDA期末复习资料 2.docx》由会员分享,可在线阅读,更多相关《EDA期末复习资料 2.docx(13页珍藏版)》请在冰豆网上搜索。
EDA期末复习资料2
EDA試卷答案
一、单项选择题
1、2.基于EDA软件的FPGA/CPLD设计流程为:
原理图/HDL文本输入→__A__→综合→适配→____B____→编程下载→硬件测试。
P14
A.功能仿真B.时序仿真
C.逻辑综合D.配置
3.IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__A___。
P25
A.软IPB.固IP
C.硬IPD.全对
4.综合是EDA设计流程的关键步骤,在下面对综合的描述中,_____D____是错误的。
P15
A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程。
B.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件。
C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。
D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。
5.大规模可编程器件主要有FPGA、CPLD两类,其中CPLD通过___A__实现其逻辑功能。
P42
A.可编程乘积项逻辑B.查找表(LUT)
C.输入缓冲D.输出缓冲
6.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述_____B___。
P274
A.器件外部特性B.器件的内部功能
C.器件外部特性与内部功能D.器件的综合约束
7.电子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);下列方法中___A___不属于面积优化。
P238
A.流水线设计B.资源共享
C.逻辑优化D.串行化
8.进程中的信号赋值语句,其信号更新是___B____。
P134
A.立即完成B.在进程的最后完成
C.按顺序完成D.都不对
9.不完整的IF语句,其综合结果可实现__A__。
P147
A.时序逻辑电路B.组合逻辑电路
C.双向电路D.三态控制电路
10.状态机编码方式中,其中__A__占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态。
P221
A.一位热码编码B.顺序编码
C.状态位直接输出型编码D.格雷码编码
二、VHDL程序填空
1.下面程序是1位十进制计数器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCNT10;
ARCHITECTUREbhvOFCNT10IS
SIGNALQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN--边沿检测
IFQ1>10THEN
Q1<=(OTHERS=>'0');--置零
ELSE
Q1<=Q1+1;--加1
ENDIF;
ENDIF;
ENDPROCESS;
Q<=Q1;
ENDbhv;
2.下面是一个多路选择器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYbmuxIS
PORT(sel:
INSTD_LOGIC;
A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDbmux;
ARCHITECTUREbhvOFbmuxIS
BEGIN
y<=Awhensel='1'ELSE
B;
ENDbhv;
三、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;--32
1.在程序中存在两处错误,试指出,并说明理由:
第14行TMP附值错误
第29与30行之间,缺少WHENOTHERS语句
2.修改相应行的程序:
错误1行号:
9程序改为:
TMP:
STD_LOGIC_VECTOR(3DOWNTO0);
错误2行号:
29程序改为:
该语句后添加WHENOTHERS=>LED7S<="0000000";
四、阅读下列VHDL程序,画出原理图(RTL级)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYHADIS
PORT(a:
INSTD_LOGIC;
b:
INSTD_LOGIC;
c:
OUTSTD_LOGIC;
d:
OUTSTD_LOGIC
);
ENDENTITYHAD;
ARCHITECTUREfh1OFHADIS
BEGIN
c<=NOT(aNANDb);
d<=(aORb)AND(aNANDb);
ENDARCHITECTUREfh1;
五、请按题中要求写出相应VHDL程序
1.带计数使能的异步复位计数器
输入端口:
clk时钟信号
rst异步复位信号
en计数使能
load同步装载
data(装载)数据输入,位宽为10
输出端口:
q计数输出,位宽为10
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT1024IS
PORT(CLK,RST,EN,LOAD:
INSTD_LOGIC;
DATA:
INSTD_LOGIC_VECTOR(9DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDCNT1024;
ARCHITECTUREONEOFCNT1024IS
BEGIN
PROCESS(CLK,RST,EN,LOAD,DATA)
VARIABLEQ1:
STD_LOGIC_VECTOR(9DOWNTO0);
BEGIN
IFRST='1'THEN
Q1:
=(OTHERS=>'0');
ELSIFCLK='1'ANDCLK'EVENTTHEN
IFLOAD='1'THEN
Q1:
=DATA;
ELSE
IFEN='1'THEN
Q1:
=Q1+1;
ENDIF;
ENDIF;
ENDIF;
Q<=Q1;
ENDPROCESS;
ENDONE;
2.
看下面原理图,写出相应VHDL描述
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYTRI_STATEIS
PORT(E,A:
INSTD_LOGIC;
Y:
INOUTSTD_LOGIC;
B:
OUTSTD_LOGIC);
ENDTRI_STATE;
ARCHITECTUREBEHAVOFTRI_STATEIS
BEGIN
PROCESS(E,A,Y)
BEGIN
IFE='0'THEN
B<=Y;
Y<='Z';
ELSE
B<='Z';
Y<=A;
ENDIF;
ENDPROCESS;
ENDBEHAV;
六、综合题
下图是一个A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:
控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。
控制器(control)是一个状态机,完成AD574的控制,和adram的写入操作。
Adram是一个LPM_RAM_DP单元,在wren为’1’时允许写入数据。
试分别回答问题
下面列出了AD574的控制方式和控制时序图
AD574逻辑控制真值表(X表示任意)
CE
CS
RC
K12_8
A0
工作状态
0
X
X
X
X
禁止
X
1
X
X
X
禁止
1
0
0
X
0
启动12位转换
1
0
0
X
1
启动8位转换
1
0
1
1
X
12位并行输出有效
1
0
1
0
0
高8位并行输出有效
1
0
1
0
1
低4位加上尾随4个0有效
AD574工作时序:
1.要求AD574工作在12位转换模式,K12_8、A0在control中如何设置
K12_8为‘1’,A0为‘0’
2.试画出control的状态机的状态图
类似书上图8-4
3.对地址计数器模块进行VHDL描述
输入端口:
clkinc计数脉冲
cntclr计数器清零
输出端口:
rdaddrRAM读出地址,位宽10位
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityaddr_cntis
port(clkinc,cntclr:
instd_logic;
wraddr:
outstd_logic_vector(9downto0));
endaddr_cnt;
architectureoneofaddr_cntis
signaltmp:
std_logic_vector(9downto0);
begin
process(clkinc,cntclr)
begin
ifclkinc'eventandclkinc='1'then
ifcntclr='1'then
tmp<=(others=>'0');
else
tmp<=tmp+1;
endif;
endif;
endprocess;
wraddr<=tmp;
endone;
4.根据状态图,试对control进行VHDL描述
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycontrolis
port(addata:
instd_logic_vector(11downto0);
status,clk:
instd_logic;
cs,ce,a0,rc,k12_8,clkinc:
outstd_logic;
rddata:
outstd_logic_vector(11downto0));
endcontrol;
architecturebehavofcontrolis
typecon_stis(s0,s1,s2,s3,s4);
signalcst,nst:
con_st;
signallock:
std_logic;
signalreg12:
std_logic_vector(11downto0);
begin
a0<='0';
k12_8<='1';
ce<='1';
cs<='0';
REGP:
process(clk)
begin
ifclk'eventandclk='1'then
cst<=nst;
endif;
endprocess;
COMP:
process(cst,status,addata)
begin
case(cst)is
whens0=>rc<='1';lock<='0';nst<=s1;
whens1=>rc<='0';lock<='0';nst<=s2;
whens2=>ifstatus='1'thennst<=s3;endif;
rc<='1';lock<='0';
whens3=>rc<='1';lock<='1';nst<=s4;
whens4=>rc<='1';lock<='0';nst<=s0;
whenothers=>nst<=s0;
endcase;
endprocess;
LOCKP:
process(lock)
begin
iflock='1'andlock'eventthen
reg12<=addata;
endif;
endprocess;
rddata<=reg12;
clkinc<=lock;--(或者为NOTLOCK,延后半个时钟)
endbehav;
5.已知adram的端口描述如下
ENTITYadramIS
PORT
(
data:
INSTD_LOGIC_VECTOR(11DOWNTO0);--写入数据
wraddress:
INSTD_LOGIC_VECTOR(9DOWNTO0);--写入地址
rdaddress:
INSTD_LOGIC_VECTOR(9DOWNTO0);--读地址
wren:
INSTD_LOGIC:
='1';--写使能
q:
OUTSTD_LOGIC_VECTOR(11DOWNTO0)--读出数据
);
ENDadram;
试用例化语句,对整个FPGA采集控制模块进行VHDL描述
libraryieee;
useieee.std_logic_1164.all;
entitydacois
port(clk,cntclr,status:
instd_logic;
addata:
instd_logic_vector(11downto0);
rdaddr:
instd_logic_vector(9downto0);
cs,ce,a0,rc,k12_8:
outstd_logic;
rddata:
outstd_logic_vector(11downto0));
enddaco;
architectureoneofdacois
componentcontrolis
port(addata:
instd_logic_vector(11downto0);
status,clk:
instd_logic;
cs,ce,a0,rc,k12_8,clkinc:
outstd_logic;
rddata:
outstd_logic_vector(11downto0));
endcomponent;
componentaddr_cntis
port(clkinc,cntclr:
instd_logic;
wraddr:
outstd_logic_vector(9downto0));
endcomponent;
componentadramIS
PORT
(
data:
INSTD_LOGIC_VECTOR(11DOWNTO0);--写入数据
wraddress:
INSTD_LOGIC_VECTOR(9DOWNTO0);--写入地址
rdaddress:
INSTD_LOGIC_VECTOR(9DOWNTO0);--读地址
wren:
INSTD_LOGIC:
='1';--写使能
q:
OUTSTD_LOGIC_VECTOR(11DOWNTO0)--读出数据
);
ENDcomponent;
signalrds:
std_logic_vector(11downto0);
signalclkinc:
std_logic;
signalwraddr:
std_logic_vector(9downto0);
begin
u1:
controlportmap(addata=>addata,status=>status,
clk=>clk,cs=>cs,ce=>ce,a0=>a0,rc=>rc,
k12_8=>k12_8,clkinc=>clkinc,rddata=>rds);
u2:
addr_cntportmap(clkinc=>clkinc,cntclr=>cntclr,wraddr=>wraddr);
u3:
adramportmap(data=>rds,wraddress=>wraddr,
rdaddress=>rdaddr,wren=>'1',q=>rddata);
endone;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA期末复习资料 EDA 期末 复习资料