VHDL程序练习题(含答案)文档格式.doc

上传人:聆听****声音 文档编号:667164 上传时间:2023-04-29 格式:DOC 页数:35 大小:1.26MB
下载 相关 举报
VHDL程序练习题(含答案)文档格式.doc_第1页
第1页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第2页
第2页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第3页
第3页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第4页
第4页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第5页
第5页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第6页
第6页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第7页
第7页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第8页
第8页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第9页
第9页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第10页
第10页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第11页
第11页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第12页
第12页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第13页
第13页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第14页
第14页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第15页
第15页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第16页
第16页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第17页
第17页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第18页
第18页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第19页
第19页 / 共35页
VHDL程序练习题(含答案)文档格式.doc_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VHDL程序练习题(含答案)文档格式.doc

《VHDL程序练习题(含答案)文档格式.doc》由会员分享,可在线阅读,更多相关《VHDL程序练习题(含答案)文档格式.doc(35页珍藏版)》请在冰点文库上搜索。

VHDL程序练习题(含答案)文档格式.doc

0100"

1100110"

0101"

1101101"

0110"

1111101"

0111"

0000111"

1000"

1111111"

1001"

1101111"

ELSELEDSEG<

=5;

ENDIF;

ENDPROCESS;

ENDBEHAVIOR;

(三)在下面横线上填上合适的语句,完成数据选择器的设计。

ENTITYMUX16IS

PORT(D0,D1,D2,D3:

INSTD_LOGIC_VECTOR(15DOWNTO0);

SEL:

INSTD_LOGIC_VECTOR(6DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

END;

ARCHITECTUREONEOFMUX16IS

WITH7SELECT

Y<

=D0WHEN"

00"

D1WHEN"

01"

D2WHEN"

10"

D3WHEN8;

(四)在下面横线上填上合适的语句,完成JK触发器的设计。

说明:

设计一个异步复位/置位JK触发器,其真值表如下:

INPUT

OUTPUT

PSET

CLR

CLK

J

K

Q

1

X

不定

上升沿

翻转

保持

ENTITYJKFF1IS

PORT(PSET,CLR,CLK,J,K :

INSTD_LOGIC;

Q :

OUTSTD_LOGIC);

ENDJKFF1;

ARCHITECTUREMAXPLDOFJKFF1IS

SIGNALTEMP:

STD_LOGIC;

PROCESS(PSET,CLR,CLK)

IF(PSET='

0'

ANDCLR='

1'

)THENTEMP<

='

ELSIF(PSET='

)THENNULL;

9(CLK'

EVENTANDCLK='

)THEN

10(J='

ANDK='

)THENTEMP<

=TEMP;

ELSIF(J='

=11;

END;

(五)在下面横线上填上合适的语句,完成计数器的设计。

设电路的控制端均为高电平有效,时钟端CLK,电路的预置数据输入端为4位D,计数输出端也为4位Q,带同步始能EN、异步复位CLR和预置控制LD的六进制减法计数器。

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT6IS

PORT(EN,CLR,LD,CLK:

D:

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCNT6;

ARCHITECTUREBEHAOFCNT6IS

SIGNALQTEMP:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(CLK,CLR,LD)

BEGIN

IFCLR='

THEN QTEMP<

--CLR=1清零

ELSIF(CLK'

)THEN --判断是否上升沿

IFLD='

THEN QTEMP<

=12;

--判断是否置位

ELSIFEN='

THEN --判断是否允许计数

IFQTEMP="

THENQTEMP<

=13;

--等于0,计数值置5

ELSEQTEMP<

=14;

--否则,计数值减1

ENDIF;

=QTEMP;

ENDBEHA;

(六)在下面横线上填上合适的语句,完成状态机的设计。

设计一个双进程状态机,状态0时如果输入”10”则转为下一状态,否则输出”1001”;

状态1时如果输入”11”则转为下一状态,否则输出”0101”;

状态2时如果输入”01”则转为下一状态,否则输出”1100”;

状态3时如果输入”00”则转为状态0,否则输出”0010”。

复位时为状态0。

ENTITYMOORE1IS

PORT(DATAIN:

INSTD_LOGIC_VECTOR(1DOWNTO0);

CLK,RST:

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ARCHITECTUREONEOFMOORE1IS

TYPEST_TYPEIS(ST0,ST1,ST2,ST3);

--定义4个状态

SIGNALCST,NST:

ST_TYPE;

--定义两个信号(现态和次态)

SIGNALQ1:

REG:

PROCESS(CLK,RST) --主控时序进程

IFRST='

THEN CST<

=15;

--异步复位为状态0

ELSIFCLK'

THEN

CST<

=16;

--现态=次态

ENDIF;

COM:

PROCESS(CST,DATAIN)

BEGIN

CASECSTIS

WHENST0=>

IFDATAIN="

THENNST<

=ST1;

ELSENST<

=ST0;

Q1<

ENDIF;

WHENST1=>

11"

=ST2;

WHENST2=>

=ST3;

1100"

WHENST3=>

17;

=Q1;

(七)在下面横线上填上合适的语句,完成减法器的设计。

由两个1位的半减器组成一个1位的全减器

--1位半减器的描述

ENTITYHALF_SUBIS

PORT(A,B:

INSTD_LOGIC;

DIFF,COUT:

ENDHALF_SUB;

ARCHITECTUREARTOFHALF_SUBIS

COUT<

=18;

--借位

DIFF<

=19;

--差

--1位全减器描述

ENTITYFALF_SUBIS

PORT(A,B,CIN:

ENDFALF_SUB;

ARCHITECTUREARTOFFALF_SUBIS

COMPONENTHALF_SUB

PORT(A,B:

ENDCOMPONENT;

20T0,T1,T2:

BEGIN

U1:

HALF_SUBPORTMAP(A,B,21,T1);

U2:

HALF_SUBPORTMAP(T0,22,23,T2);

=24;

(八)在下面横线上填上合适的语句,完成分频器的设计。

占空比为1:

2的8分频器

ENTITYCLKDIV8_1TO2IS

PORT(CLK:

CLKOUT:

OUTSTD_LOGIC);

ENDCLKDIV8_1TO2;

ARCHITECTURETWOOFCLKDIV8_1TO2IS

SIGNALCNT:

STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALCK:

PROCESS(CLK)

IFRISING_EDGE(25)THEN

IFCNT="

THEN

CNT<

CK<

=26;

ELSECNT<

=27;

ENDIF;

CLKOUT<

=CK;

(九)在下面横线上填上合适的语句,完成60进制减计数器的设计。

ENTITYCOUNTIS

PORT(CLK:

H,L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0)

);

ENDCOUNT;

ARCHITECTUREBHVOFCOUNTIS

VARIABLEHH,LL:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFCLK'

IFLL=0ANDHH=0THEN

HH:

LL:

ELSIFLL=0THEN

LL:

=28;

HH:

=29;

ELSE

LL:

=30;

ENDIF;

H<

=HH;

L<

=LL;

(十)在下面横线上填上合适的语句,完成4-2优先编码器的设计。

ENTITYCODE4IS

PORT(A,B,C,D:

Y0,Y1:

ENDCODE4;

ARCHITECTURECODE4OFCODE4IS

SIGNALDDD:

SIGNALQ:

STD_LOGIC_VECTOR(31DOWNTO0);

BEGIN

DDD<

=32;

PROCESS(DDD)

IF(DDD(0)='

)THENQ<

="

ELSIF(DDD

(1)='

)THENQ<

ELSIF(DDD

(2)='

)THENQ<

ELSEQ<

33;

Y1<

=Q(0);

Y0<

=Q

(1);

(十一)在下面横线上填上合适的语句,完成10位二进制加法器电路的设计。

USEIEEE.STD_LOGIC_34.ALL;

ENTITYADDER1IS

PORT(A,B:

INSTD_LOGIC_VECTOR(9DOWNTO0);

COUT:

OUTSTD_LOGIC;

SUM:

OUTSTD_LOGIC_VECTOR(9DOWNTO0));

ARCHITECTUREJGOFADDER1IS

SIGNALATEMP:

STD_LOGIC_VECTOR(10DOWNTO0);

SIGNALBTEMP:

SIGNALSUMTEMP:

STD_LOGIC_VECTOR(35DOWNTO0);

ATEMP<

=’0’&

A;

BTEMP<

B;

SUMTEMP<

=36;

SUM<

=SUMTEMP(9DOWNTO0);

=37;

ENDJG;

(十二)在下面横线上填上合适的语句,完成移位寄存器的设计。

8位的移位寄存器,具有左移一位或右移一位、并行输入和同步复位的功能。

ENTITYSHIFTERIS

PORT(DATA:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CLK:

SHIFTLEFT,SHIFTRIGHT:

RESET:

MODE:

INSTD_LOGIC_VECTOR(1DOWNTO0);

QOUT:

BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));

ENDSHIFTER;

ARCHITECTUREARTOFSHIFTERIS

PROCESS

38(RISING_EDGE(CLK));

--等待上升沿

IFRESET='

THENQOUT<

00000000"

--同步复位

ELSE

CASEMODEIS

WHEN"

=>

QOUT<

=SHIFTRIGHT&

39;

--右移一位

=QOUT(6DOWNTO0)&

40;

--左移一位

=41;

--不移,并行输入

WHENOTHERS=>

NULL;

42;

ENDART;

(十三)在下面横线上填上合适的语句,完成计数器的设计。

设计一个带有异步复位和时钟使能的一位八进制加法计数器(带进位输出端)。

ENTITYCNT8IS

PORT(CLK,RST,EN:

CQ:

OUTSTD_LOGIC_VECTOR(43DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT8;

ARCHITECTUREBEHAVOFCNT8IS

PROCESS(CLK,RST,EN)

44CQI:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IFRST='

THENCQI:

=“000”;

45CLK'

THEN

IFEN='

THEN

IFCQI<

"

111"

=46;

ELSECQI:

=47;

ENDIF;

IFCQI="

THENCOUT<

='

ELSECOUT<

CQ<

=CQI;

ENDPROCESS;

ENDBEHAV;

(十四)在下面横线上填上合适的语句,完成序列信号发生器的设计。

已知发送信号为”10011010”,要求以由高到低的序列形式一位一位的发送,发送开始前及发送完为低电平。

ENTITYXULIEIS

PORT(RES,CLK:

Y:

ARCHITECTUREARCHOFXULIEIS

SIGNALREG:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(CLK,RES)

BEGIN

IF(CLK’EVENTANDCLK=’1’)THEN

IFRES=’1’THEN

Y<

=’0’;

REG<

=48;

--同步复位,并加载输入

ELSEY<

=49;

--高位输出

REG<

=50;

--左移,低位补0

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2