最新EDA程序设计试题及答案讲解资料文档格式.docx

上传人:b****5 文档编号:20330563 上传时间:2023-01-22 格式:DOCX 页数:36 大小:82.30KB
下载 相关 举报
最新EDA程序设计试题及答案讲解资料文档格式.docx_第1页
第1页 / 共36页
最新EDA程序设计试题及答案讲解资料文档格式.docx_第2页
第2页 / 共36页
最新EDA程序设计试题及答案讲解资料文档格式.docx_第3页
第3页 / 共36页
最新EDA程序设计试题及答案讲解资料文档格式.docx_第4页
第4页 / 共36页
最新EDA程序设计试题及答案讲解资料文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

最新EDA程序设计试题及答案讲解资料文档格式.docx

《最新EDA程序设计试题及答案讲解资料文档格式.docx》由会员分享,可在线阅读,更多相关《最新EDA程序设计试题及答案讲解资料文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

最新EDA程序设计试题及答案讲解资料文档格式.docx

eventANDclk='

1'

)THEN

IF(q=5)THENq<

ELSEq<

=q+1;

ENDIF;

ENDPROCESS;

ENDbd;

带进位借位的4位加/减法器。

…………………………………..3分

输入输出波形图如下:

………………………………………………………7分

m

a[3..0]

b[3..0]

c[3..0]

d

1.试用VHDL语言编程实现74LS273芯片的功能。

LIBRARYieee;

USEieee.std_logic_1164.ALL;

2’

ENTITYls273IS1’

PORT(

clr,clk:

INstd_logic;

d:

INstd_logic_vector(7DOWNTO0);

q:

OUTstd_logic_vector(7DOWNTO0);

4’

);

ENDls273;

ARCHITECTURElock8OFls273IS1’

BEGIN

PROCESS(clk)1’

BEGIN

IF(CLR=’0’)THENq<

=”00000000”;

2’

ELSEIF(clk’eventANDclk=’1’)THENq<

=d;

3’

ELSEIF(clk=’0’)THENq<

=q;

1’

ENDIF;

ENDPROCESS;

ENDlock8;

3.请用VHDL语言编程实现一个状态向量发生器。

ENTITYstasIS1’

cp,rst:

INstd_logic;

p:

BUFFERstd_logic_vector(7DOWNTO0);

2’

ENDstas;

ARCHITECTUREarstasOFstasIS1’

PROCESS(cp)1’

IF(rst=”0”)THENp<

=”00000000”;

1’

ELSEIF(cp’eventANDcp=’1’)1’

WITHpSELECT

p<

=”10101010”WHEN“00000000”;

”01010101”WHEN“10101010”;

”00001111”WHEN“01010101”;

”11110000”WHEN“00001111”;

”11111111”WHEN“11110000”;

”00000000”WHEN“11111111”;

”00000000”WHENOTHERS;

6’

ENDIF

ENDarstas;

1.阅读下段程序,画出该电路的真值表,并详细说明该电路的功能。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYab_8IS

PORT(a,b:

INSTD_LOGIC_VECTOR(7DOWNTO0);

ahb,alb,aeb:

OUTSTD_LOGIC);

ENDab_8;

ARCHITECTUREbdOFab_8IS

PROCESS(a,b)

IFa>

bTHENahb<

=’1’;

alb<

=’0’;

aeb<

ELSIFa<

ELSEahb<

1.

(1)真值表如下:

(5’)

输入

输出

a、b

ahb

alb

aeb

a>

b

1

a<

a=b

(2)该电路是一个8位两输入比较器,(2’)

a、b是两个8位输入端;

(1’)

ahb、alb和aeb为比较结果输出端,某种比较结果为真时,相应的输出端为“1”,其余端输出为“0”。

(2’)

1.试用VHDL语言编程实现一个2-4译码器,其真表如下:

输入端

输出端

en

select

y

XX

“1111”

00

“1110”

01

“1101”

10

“1011”

11

“0111”

2-4译码器码参考程序如下:

(答案不唯一,用case语句、with…select语句都可以。

(1’)

ENTITYym24IS

PORT(en:

select:

OUTSTD_LOGIC_VECTOR(1DOWNTO0);

y:

OUTSTD_LOGIC_VECTOR(3DOWNTO0)(3’)

ENDym24;

ARCHITECTUREbdOFym24IS

PROCESS(en)(1’)

IF(en=’1’)THEN

y<

=”1110”WHENselect=”00”ELSE

”1101”WHENselect=”01”ELSE

”1011”WHENselect=”10”ELSE

”0111”WHENselect=”11”ELSE(4’)

”1111”;

ELSEy<

=”1111”;

2.试用VHDL语言设计一个六路8位总线复用器,其中A、B、C、D、E、F都是8位输入总线,Q为8位输出总线,S为3位选择端,其功能如下:

S2

S1

S0

Q7~Q0

Q=A

Q=B

Q=C

Q=D

Q=E

Q=F

其它

B=“00000000”

六路8位总线复用器参考程序:

(答案不唯一)

USEieee.std_logic_1164.ALL;

ENTITYmux6IS(1’)

PORT(S:

INstd_logic_vector(2DOWNTO0);

A,B,C,D,E,F:

INstd_logic_vector(7DOWNTO0);

Q:

OUTstd_logic_vector(7DOWNTO0)

);

(3’)

ENDmux6;

ARCHITECTUREbdOFmux6IS

PROCESS(S)

BEGIN(1’)

CASESIS

WHEN"

=>

Q<

=A;

001"

=B;

010"

=C;

011"

=D;

100"

=E;

101"

=F;

WHENOTHERS=>

00000000"

(4’)

ENDCASE;

2、已知三选一电路如图,判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。

(10分)

libraryieee;

useieee.std_logic_1164.all;

ENTITYMAXis

port(a1,a2,a3,s0,s1:

inbit;

outy:

outbit);

endmax;

(2’)

architectureoneofmaxis

componentmux21a

port(a,b,s:

instd_logic;

y:

outstd_logic);

endcomponent;

signaltempstd_logic;

begin

u1:

mux21aportmap(a2,a3,s0,temp);

u2:

mux21aportmap(a1,temp,s1,outy);

endone;

1.已知电路原理图如下,请用VHDL语言编写其程序

答:

entitymux21is

endmux21;

(4’)

architectureoneofmux21is

singled,e:

bit;

d<

=aand(not)s;

e<

=bands;

=dore;

endone;

2.设计一个带有异步清零功能的十进制计数器。

计数器时钟clk上升沿有效、清零端CLRN、进位输出co。

entitycounter10is

port(clk,CLRN:

dout:

outintegerrange0to9);

endcounter10;

(5’)

architecturebehavofcounter10IS

process(clk)

variablecnt:

integerrange0to9;

(3’)

begin

IFCLRN='

THEN

CNT:

=0;

ELSIF

clk='

andclk'

eventthen

ifcnt=9then

cnt:

else

=cnt+1;

endif;

endif;

dout<

=cnt;

endprocess;

endbehav;

(7’)

3.1)用VHDL语言编写半加器和或门器件的程序,如图所示:

答:

半加器程序:

entityh_adderis

port(a,b:

co,so:

endh_adder;

architectureoneofh_adderis

so<

=not(axor(notb));

co<

=aandb;

或门程序:

entityor2ais

port(a,b:

c:

endor2a;

architectureoneofor2ais

c<

=aorb;

2)在上道题目的基础上用元件例化语句设计1位全加器。

主程序:

entityf_adderis

port(ain,bin,cin:

cout,sum:

endentityf_adder;

architecturefd1off_adderis

componenth_adder

endcomponent;

componentor2a

signald,e,f:

std_logic;

u1:

h_adderportmap(a=>

ain,b=>

bin,co=>

d,so=>

e);

u2:

e,b=>

cin,co=>

f,so=>

sum);

u3:

or2aportmap(d,f,cout);

endfd1;

1.试用VHDL语言编程实现一个总线开关,其真值表如下:

A0~A6

B0~B6

Y0~Y6

‘0’

‘x’

“ZZZZZZZ”

‘1’

A

B

1.总线开关的参考程序如下:

(1’)

PORT(en,select:

INSTD_LOGIC;

A,B:

INSTD_LOGIC_VECTOR(6DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(6DOWNTO0)

PROCESS(en,select)

IFen=’0’THENY<

=”ZZZZZZZ”;

ELSIFen=’1’THEN

IFselect=’0’THENY<

ELSIFselect=’1’THENY<

2.试用VHDL语言编程实现一个M10计数器,要求该计数器有一个时钟输入端clk,一个复位端rst(低电平复位),一个使能端en(高电平时允许计数),一个“计数到”输出端cout,一个4位二进制当前计数值输出口q;

cout端仅当计数满的一个时钟周期输出高电平,其余时刻全保持低电平。

2.M10计数器参考程序:

PORT(clk,rst,en:

cout:

OUTSTD_LOGIC;

BUFFERSTD_LOGIC_VECTOR(3DOWNTO0)

PROCESS(clk,reset,en)

BEGIN

IF(rst='

0000"

IFen=’1’THEN

IF(q=9)THENq<

(10’)

3.请用VHDL语言编程,用一个状态机模型实现一个七段码LED字符发生器。

该电路有一个复位输入端RST,一个时钟输入端CP,一组七段码输出端a~g。

在LED上七个段的排列位置如图所示。

该电路的功能为,当复位输入端RST为低电平时,输出端口输出全零,无显示;

当RST为高电平时,在时钟信号CP的每个上升沿,输出端依次轮流输出5个字符“HAPPY”的七段码(共阴极接法),周而复始。

3.用VHDL语言编程实现一个LED字符发生器参考程序:

ENTITYgencIS(1’)

PORT(rst,cp:

a,b,c,d,e,f,g:

OUTSTD_LOGIC

(1’)

ENDgenc;

ARCHITECTUREaaOFgencIS

TYPEstateIS(s0,s1,s2,s3,s4,s5);

SIGNALpstate:

state;

SIGNALdout:

STD_LOGIC_VECTOR(6DOWNTO0);

pr1:

PROCESS(cp,rst,)

IFrst='

THENpstate<

=s0;

ELSIF(cp'

eventANDcp='

)THEN

CASEpstateIS

WHENs0=>

pstate<

=s1;

WHENs1=>

=s2;

WHENs2=>

=s3;

WHENs3=>

=s4;

WHENs4=>

=s5;

WHENs5=>

WHENOTHERS=>

ENDIF;

(5’)

pr2:

PROCESS(pstate)

CASEstateIS

WHENs0=>

0000000"

--无显示

WHENs1=>

0110111"

--“H”

WHENs2=>

1110111"

--“A”

WHENs3=>

1100111"

--“P”

WHENs4=>

WHENs5=>

0111011"

--“Y”

--无显示

a<

=dout(6);

=dout(5);

c<

=dout(4);

=dout(3);

=dout

(2);

f<

=dout

(1);

g<

=dout(0);

ENDaa;

(1’)

2.试用VHDL语言和进程语句,编程实现一个3-8译码器。

该译码器的功能为,当使能信号EN为低电平时,输出端Y7~Y0全为高电平(没有输出端被选中);

当EN为高电平时,每一种ABC的输入状态组合能惟一地选中一路输出(被选中的端输出低电平)。

真值表如下:

C

EN

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

×

LIBRARYieee;

ENTITYym38IS1’

a,b,c,en:

y:

OUTstd_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1