EDA考试题目+答案.docx
- 文档编号:7347640
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:10
- 大小:97.95KB
EDA考试题目+答案.docx
《EDA考试题目+答案.docx》由会员分享,可在线阅读,更多相关《EDA考试题目+答案.docx(10页珍藏版)》请在冰豆网上搜索。
EDA考试题目+答案
EDA考试题目+答案
这种顺序仅是指语句执行上的顺序(针对于HDL的行为仿真),并不意味着PROCESS语句在综合后所对应的硬件逻辑行为也同样具有顺序性。
VHDL程序无法进行诸如软件语言那样的“单步”调试,因为整个程序是一个整体,不能割裂每一句,只能通过仿真波形来了解程序的问题。
(3)进程有启动与挂起两种状态。
(4)进程与进程,或其它并行语句之间通过信号交流。
(5)时序电路必须由进程中的顺序语句描述,而此顺序语句必须由不完整的条件语句构成。
推荐在一个进程中只描述针对同一时钟的同步时序逻辑,而异步时序逻辑或多时钟逻辑必须由多个进程来表达。
6.实体定义时端口方向OUT与BUFFER有何不同?
OUT:
输出端口。
定义的通道为单向输出(写)模式,即通过此端口只能将实体内的数据流向外部。
BUFFER:
缓冲端口。
其功能与INOUT类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈。
如:
在计数器的设计中,将计数器输出的计数信号回读,作为下一次计数的初值。
与OUT模式相比,BUFFER回读信号不是由外部输入的,而是由内部产生、向外输出信号。
即OUT结构体内部不能再使用,BUFFER结构体内部可再使用。
半加器的完整VHDL描述
ENTITYhalf_adderIS
PORT(x,y:
INBIT;
s:
OUTBIT;
c:
OUTBIT);
ENDENTITYhalf_adder;
ARCHITECTUREdataflowOFhalf_adderIS
BEGIN
s<=xXORy;
c<=xANDy;
ENDARCHITECTUREdataflow;
改错
1.PROCESS
……
ENDPROCESS;
BEGIN
WITHsSELECT
yout<=0WHEN“00”;
1WHEN“01”;
2WHEN“10”;
'Z'WHENothers
2.SIGNALq:
INTEGERrange0to50;
……
CASEqIS
WHEN0TO15=>sel<=”001”;
WHEN16TO50=>sel<=”110”;
ENDCASE;
4.什么是函数的重载?
举例说明。
VHDL允许以相同的函数名定义函数,但要求函数中定义的操作数具有不同的数据类型,以便调用时用以分辨不同功能的同名函数,以此定义的函数称为重载函数
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
PACKAGEpackexpIS
FUNCTIONmax(a,b:
INSTD_LOGIC_VECTOR)
RETURNSTD_LOGIC_VECTOR;
FUNCTIONmax(a,b:
INBIT_VECTOR)
RETURNBIT_VECTOR;
FUNCTIONmax(a,b:
ININTEGER)
RETURNINTEGER;
END;
7.Moore型状态机与Mealy型状态机有何区别
从输出时序上看,前者属于同步输出状态机,而后者属于异步输出状态机。
Moore型状态机的输出仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟使状态发生变化后才导致输出的变化,所以比Mealy机要多等待一个时钟周期。
Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生,不依赖时钟的同步。
编程:
3-8译码器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYdec38IS
PORT(sel:
INSTD_LOGIC_VECTOR(2DOWNTO0);
en:
INSTD_LOGIC;
y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdec38;
ARCHITECTURErt1OFdec38IS
BEGIN
PROCESS(sel,en)
BEGIN
IF(en='1')THEN
y<=(OTHERS=>'0');
y(CONV_INTEGER(sel))<='1';
ENDIF;
ENDPROCESS;
ENDrt1;
8位移位寄存器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYshiftIS
PORT(clk,load:
INSTD_LOGIC;
din:
INSTD_LOGIC_VECTOR(7DOWNTO0);
dout:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
qb:
OUTSTD_LOGIC);
ENDshift;
ARCHITECTUREbehavOFshiftIS
SIGNALreg8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(clk,load)
BEGIN
IFclk'EVENTANDclk='1'THEN
IFload='1'THENreg8<=din;
ELSEreg8(6DOWNTO0)<=reg8(7DOWNTO1);
ENDIF;
ENDIF;
ENDPROCESS;
qb<=reg8(0);dout<=reg8;
ENDbehav;
31进制计数器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT31IS
PORT(CLK,RST,EN,LOAD:
INSTD_LOGIC;
DATA:
INSTD_LOGIC_VECTOR(4DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(4DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDENTITYCNT31;
ARCHITECTUREbehavOFCNT31IS
BEGIN
PROCESS(CLK,RST,EN,LOAD)
VARIABLEQ:
STD_LOGIC_VECTOR(4DOWNTO0);
BEGIN
IFRST='0'THENQ:
=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='1'THEN
IF(LOAD='0')THENQ:
=DATA;
ELSE
IFQ<30THENQ:
=Q+1;
ELSEQ:
=(OTHERS=>'0');
ENDIF;
ENDIF;
ENDIF;
ENDIF;
IFQ=30THENCOUT<='1';
ELSECOUT<='0';
ENDIF;
DOUT<=Q;
ENDPROCESS;
ENDbehav;
8位奇偶校验电路
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYparity_checkIS
PORT(a:
INSTD_LOGIC_VECTOR(7DOWNTO0);
y:
OUTSTD_LOGIC);
ENDparity_check;
ARCHITECTUREarchOFparity_checkIS
BEGIN
PROCESS(a)
VARIABLEtemp:
STD_LOGIC;
BEGIN
temp:
='0';
FORiIN0TO7LOOP
temp:
=tempXORa(i);
ENDLOOP;
y<=temp;
ENDPROCESS;
ENDarch;
编程实现下图所示的控制时序,K为输入信号;处于状态St2时输出信号yout=’1’,其他状态下yout=’0’。
(此题也会反过来考,给出程序要求画出对应时序图)
C_S
input
n-s
output
st0
k=0
st0
0
k=1
st2
st1
k=0
st2
0
k=1
st0
st2
k=0
st2
1
k=1
st0
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYs_machineIS
PORT(clk,reset:
INSTD_LOGIC;
k:
INSTD_LOGIC_VECTOR(1DOWNTO0);
comb_outputs:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYs_machine;
ARCHITECTUREbehvOFs_machineIS
TYPEFSM_STIS(st0,st1,st2);
SIGNALcurrent_state,next_state:
FSM_ST;
BEGIN
REG:
PROCESS(reset,clk)BEGIN
IFreset='1'THENcurrent_state<=st0;--检测异步复位信号
ELSIFclk='1'ANDclk'EVENTTHEN
current_state<=next_state;
ENDIF;
ENDPROCESS;
COM:
PROCESS(current_state,state_Inputs)--主控组合进程
BEGIN
CASEcurrent_stateIS
WHENst0=>comb_outputs<='0'
IFk='0'THENnext_state<=st0;
ELSEnext_state<=st2;
ENDIF;
WHENst1=>comb_outputs<='0';
IFstate_inputs='0'THENnext_state<=st2;
ELSEnext_state<=st0;
ENDIF;
WHENst2=>comb_outputs<='1';
IFstate_inputs='0'THENnext_state<=st2;
ELSEnext_state<=st0;
ENDIF;
ENDcase;
ENDPROCESS;
ENDbehv;
:
4位二进制加法计数器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYcnt4IS
PORT(clk:
INSTD_LOGIC;
P:
INOUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDcnt4;
ARCHITECTUREbehvOFcnt4IS
BEGIN
PROCESS(clk)
BEGIN
IFclk=’1’ANDclk’EVENTTHEN
P<=CONV_STD_LOGIC_VECTOR(CONV_INTEGER(P)+1,4);
ENDIF
ENDPROCESS;
ENDbehv;(利用IF多选择语句自顶向下的优先特性。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYpriority83IS
PORT(y0,y1,y2,y3,y4,y5,y6,y7:
INSTD_LOGIC;
vec:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDpriority83;
ARCHITECTUREbehaviorOFpriority83IS
BEGIN
PROCESS(y0,y1,y2,y3,y4,y5,y6,y7)
BEGIN
IF(y7='1')THENvec<="111";
ELSIF(y6='1')THENvec<="110";
ELSIF(y5='1')THENvec<="101";
ELSIF(y4='1')THENvec<="100";
ELSIF(y3='1')THENvec<="011";
ELSIF(y2='1')THENvec<="010";
ELSIF(y1='1')THENvec<="001";
ELSIF(y0='1')THENvec<="000";
ELSEvec<=“XXX";
ENDIF;
ENDPROCESS;
ENDbehavior;
JK
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYjkff1IS
PORT(clk,j,k:
INSTD_LOGIC;
q,qn:
BUFFERSTD_LOGIC);
ENDjkff1;
ARCHITECTUREhavOFjkff1IS
BEGIN
PROCESS(clk,j,k)
VARIABLED:
std_logic;
BEGIN
IF(clk'eventANDclk='1')THEN
IF(j='1'ANDk='0')THEN
D:
='1';
ELSIF(j='0'ANDk='1')THEN
D:
='0';
ELSIF(j='0'ANDk='0')THEN
D:
=D;
ELSE
D:
=NOTD;
ENDIF;
ENDIF;
q<=D;qn<=NOTD;
ENDPROCESS;
ENDhav;(下面门电路)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL
ENTITYgateIS
PORT(a,b:
INSTD_LOGIC;
yand,yor,ynand,ynor,ynot,yxor);
ENDgate;
ARCHITECTUREartOFgateIS
BEGIN
yand<=aANDb;
yor<=aORb;
ynand<=aNANDb;
ynor<=aNORb;
ynot<=NOTb;
yxor<=aXORb;
ENDart;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 考试 题目 答案