VHDL程序练习题含答案Word文档格式.docx

上传人:b****6 文档编号:17943075 上传时间:2022-12-12 格式:DOCX 页数:47 大小:99.53KB
下载 相关 举报
VHDL程序练习题含答案Word文档格式.docx_第1页
第1页 / 共47页
VHDL程序练习题含答案Word文档格式.docx_第2页
第2页 / 共47页
VHDL程序练习题含答案Word文档格式.docx_第3页
第3页 / 共47页
VHDL程序练习题含答案Word文档格式.docx_第4页
第4页 / 共47页
VHDL程序练习题含答案Word文档格式.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

VHDL程序练习题含答案Word文档格式.docx

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

VHDL程序练习题含答案Word文档格式.docx

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:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCNT6;

ARCHITECTUREBEHAOFCNT6IS

SIGNALQTEMP:

STD_LOGIC_VECTOR(3DOWNTO0);

PROCESS(CLK,CLR,LD)

BEGIN

IFCLR='

THENQTEMP<

--CLR=1清零

ELSIF(CLK'

)THEN--判断是否上升沿

IFLD='

=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='

THENCST<

=15;

--异步复位为状态0

ELSIFCLK'

THEN

CST<

=16;

--现态=次态

ENDIF;

COM:

PROCESS(CST,DATAIN)

CASECSTIS

WHENST0=>

IFDATAIN="

THENNST<

=ST1;

ELSENST<

=ST0;

Q1<

WHENST1=>

11"

=ST2;

WHENST2=>

=ST3;

1100"

WHENST3=>

17;

=Q1;

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

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

--1位半减器的描述

ENTITYHALF_SUBIS

PORT(A,B:

DIFF,COUT:

ENDHALF_SUB;

ARCHITECTUREARTOFHALF_SUBIS

COUT<

=18;

--借位

DIFF<

=19;

--差

--1位全减器描述

ENTITYFALF_SUBIS

PORT(A,B,CIN:

ENDFALF_SUB;

ARCHITECTUREARTOFFALF_SUBIS

COMPONENTHALF_SUB

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;

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

=28;

=29;

ELSE

=30;

H<

=HH;

L<

=LL;

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

ENTITYCODE4IS

PORT(A,B,C,D:

Y0,Y1:

ENDCODE4;

ARCHITECTURECODE4OFCODE4IS

SIGNALDDD:

SIGNALQ:

STD_LOGIC_VECTOR(31DOWNTO0);

DDD<

=32;

PROCESS(DDD)

IF(DDD(0)='

)THENQ<

="

ELSIF(DDD

(1)='

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:

ENDCNT8;

ARCHITECTUREBEHAVOFCNT8IS

PROCESS(CLK,RST,EN)

44CQI:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IFRST='

THENCQI:

=“000”;

45CLK'

THEN

IFEN='

IFCQI<

"

111"

=46;

ELSECQI:

=47;

ENDIF;

IFCQI="

THENCOUT<

='

ELSECOUT<

CQ<

=CQI;

ENDPROCESS;

ENDBEHAV;

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

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

ENTITYXULIEIS

PORT(RES,CLK:

ARCHITECTUREARCHOFXULIEIS

SIGNALREG:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(CLK,RES)

IF(CLK’EVENTANDCLK=’1’)THEN

IFRES=’1’THEN

Y<

=’0’;

REG<

=48;

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

ELSEY<

=49;

--高位输出

REG<

=50;

--左移,低位补0

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

采用元件例化的设计方法,先设计一个2选1多路选择器,再使用3个2选1多路选择器构成一个4选1多路选择器。

--2选1多路选择器的描述

ENTITYMUX21IS

PORT(A,B,SEL:

Y:

ARCHITECTUREARTOFMUX21IS

=AWHENSEL='

ELSEB;

--4选1多路选择器的描述

ENTITYMUX41IS

S1,S2:

Y:

OUTSTD_LOGIC);

ARCHITECTUREARTOFMUX41IS

COMPONENTMUX41

PORT(A,B,SEL:

51Y1,Y2:

MUX21PORTMAP(A,B,S1,52);

MUX21PORTMAP(C,D,52,Y2);

MUX21PORTMAP(Y1,Y2,54,Y);

(十六)在下面横线上填上合适的语句,完成8位奇偶校验电路的设计。

ENTITYPCIS

PORT(A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

Y:

OUTSTD_LOGIC

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

当前位置:首页 > 表格模板 > 书信模板

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

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