VHDL程序练习题含答案.docx

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

VHDL程序练习题含答案.docx

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

VHDL程序练习题含答案.docx

VHDL程序练习题含答案

VHDL程序填空题

(一)在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

1MUX21IS

PORT(SEL:

INSTD_LOGIC;

A,B:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDMUX21;

2BHVOFMUX21IS

BEGIN

Q<=AWHENSEL=’1’ELSEB;

ENDBHV;

(二)在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYBCD_7SEGIS

PORT(BCD_LED:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LEDSEG:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDBCD_7SEG;

ARCHITECTUREBEHAVIOROFBCD_7SEGIS

BEGIN

PROCESS(BCD_LED)

3

IFBCD_LED="0000"THENLEDSEG<="0111111";

ELSIFBCD_LED="0001"THENLEDSEG<="0000110";

ELSIFBCD_LED="0010"THENLEDSEG<=4;

ELSIFBCD_LED="0011"THENLEDSEG<="1001111";

ELSIFBCD_LED="0100"THENLEDSEG<="1100110";

ELSIFBCD_LED="0101"THENLEDSEG<="1101101";

ELSIFBCD_LED="0110"THENLEDSEG<="1111101";

ELSIFBCD_LED="0111"THENLEDSEG<="0000111";

ELSIFBCD_LED="1000"THENLEDSEG<="1111111";

ELSIFBCD_LED="1001"THENLEDSEG<="1101111";

ELSELEDSEG<=5;

ENDIF;

ENDPROCESS;

ENDBEHAVIOR;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX16IS

PORT(D0,D1,D2,D3:

INSTD_LOGIC_VECTOR(15DOWNTO0);

SEL:

INSTD_LOGIC_VECTOR(6DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

END;

ARCHITECTUREONEOFMUX16IS

BEGIN

WITH7SELECT

Y<=D0WHEN"00",

D1WHEN"01",

D2WHEN"10",

D3WHEN8;

END;

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

说明:

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

INPUT

OUTPUT

PSET

CLR

CLK

J

K

Q

0

1

X

X

X

1

1

0

X

X

X

0

0

0

X

X

X

不定

1

1

上升沿

0

1

0

1

1

上升沿

1

0

1

1

1

上升沿

1

1

翻转

1

1

上升沿

0

0

保持

 

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJKFF1IS

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

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDJKFF1;

ARCHITECTUREMAXPLDOFJKFF1IS

SIGNALTEMP:

STD_LOGIC;

BEGIN

PROCESS(PSET,CLR,CLK)

BEGIN

IF(PSET='0'ANDCLR='1')THENTEMP<='1';

ELSIF(PSET='1'ANDCLR='0')THENTEMP<='0';

ELSIF(PSET='0'ANDCLR='0')THENNULL;

9(CLK'EVENTANDCLK='1')THEN

10(J='0'ANDK='0')THENTEMP<=TEMP;

ELSIF(J='0'ANDK='1')THENTEMP<='0';

ELSIF(J='1'ANDK='0')THENTEMP<='1';

ELSIF(J='1'ANDK='1')THENTEMP<=11;

ENDIF;

ENDIF;

ENDPROCESS;

Q<=TEMP;

END;

 

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

说明:

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT6IS

PORT(EN,CLR,LD,CLK:

INSTD_LOGIC;

D:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCNT6;

ARCHITECTUREBEHAOFCNT6IS

SIGNALQTEMP:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(CLK,CLR,LD)

BEGIN

IFCLR='1'THENQTEMP<="0000";--CLR=1清零

ELSIF(CLK'EVENTANDCLK='1')THEN--判断是否上升沿

IFLD='1'THENQTEMP<=12;--判断是否置位

ELSIFEN='1'THEN--判断是否允许计数

IFQTEMP="0000"THENQTEMP<=13;--等于0,计数值置5

ELSEQTEMP<=14;--否则,计数值减1

ENDIF;

ENDIF;

ENDIF;

Q<=QTEMP;

ENDPROCESS;

ENDBEHA;

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

说明:

设计一个双进程状态机,状态0时如果输入”10”则转为下一状态,否则输出”1001”;状态1时如果输入”11”则转为下一状态,否则输出”0101”;状态2时如果输入”01”则转为下一状态,否则输出”1100”;状态3时如果输入”00”则转为状态0,否则输出”0010”。

复位时为状态0。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYMOORE1IS

PORT(DATAIN:

INSTD_LOGIC_VECTOR(1DOWNTO0);

CLK,RST:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

END;

ARCHITECTUREONEOFMOORE1IS

TYPEST_TYPEIS(ST0,ST1,ST2,ST3);--定义4个状态

SIGNALCST,NST:

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

SIGNALQ1:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

REG:

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

BEGIN

IFRST='1'THENCST<=15;--异步复位为状态0

ELSIFCLK'EVENTANDCLK='1'THEN

CST<=16;--现态=次态

ENDIF;

ENDPROCESS;

COM:

PROCESS(CST,DATAIN)

BEGIN

CASECSTIS

WHENST0=>IFDATAIN="10"THENNST<=ST1;

ELSENST<=ST0;Q1<="1001";ENDIF;

WHENST1=>IFDATAIN="11"THENNST<=ST2;

ELSENST<=ST1;Q1<="0101";ENDIF;

WHENST2=>IFDATAIN="01"THENNST<=ST3;

ELSENST<=ST2;Q1<="1100";ENDIF;

WHENST3=>IFDATAIN="00"THENNST<=ST0;

ELSENST<=ST3;Q1<="0010";ENDIF;

17;

ENDPROCESS;

Q<=Q1;

END;

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

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

--1位半减器的描述

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYHALF_SUBIS

PORT(A,B:

INSTD_LOGIC;

DIFF,COUT:

OUTSTD_LOGIC);

ENDHALF_SUB;

ARCHITECTUREARTOFHALF_SUBIS

BEGIN

COUT<=18;--借位

DIFF<=19;--差

END;

--1位全减器描述

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFALF_SUBIS

PORT(A,B,CIN:

INSTD_LOGIC;

DIFF,COUT:

OUTSTD_LOGIC);

ENDFALF_SUB;

ARCHITECTUREARTOFFALF_SUBIS

COMPONENTHALF_SUB

PORT(A,B:

INSTD_LOGIC;

DIFF,COUT:

OUTSTD_LOGIC);

ENDCOMPONENT;

20T0,T1,T2:

STD_LOGIC;

BEGIN

U1:

HALF_SUBPORTMAP(A,B,21,T1);

U2:

HALF_SUBPORTMAP(T0,22,23,T2);

COUT<=24;

END;

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

说明:

占空比为1:

2的8分频器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCLKDIV8_1TO2IS

PORT(CLK:

INSTD_LOGIC;

CLKOUT:

OUTSTD_LOGIC);

ENDCLKDIV8_1TO2;

ARCHITECTURETWOOFCLKDIV8_1TO2IS

SIGNALCNT:

STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALCK:

STD_LOGIC;

BEGIN

PROCESS(CLK)

BEGIN

IFRISING_EDGE(25)THEN

IFCNT="11"THEN

CNT<="00";

CK<=26;

ELSECNT<=27;

ENDIF;

ENDIF;

CLKOUT<=CK;

ENDPROCESS;

END;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTIS

PORT(CLK:

INSTD_LOGIC;

H,L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0)

);

ENDCOUNT;

ARCHITECTUREBHVOFCOUNTIS

BEGIN

PROCESS(CLK)

VARIABLEHH,LL:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFLL=0ANDHH=0THEN

HH:

="0101";LL:

="1001";

ELSIFLL=0THEN

LL:

=28;

HH:

=29;

ELSE

LL:

=30;

ENDIF;

ENDIF;

H<=HH;

L<=LL;

ENDPROCESS;

ENDBHV;

 

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCODE4IS

PORT(A,B,C,D:

INSTD_LOGIC;

Y0,Y1:

OUTSTD_LOGIC);

ENDCODE4;

ARCHITECTURECODE4OFCODE4IS

SIGNALDDD:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALQ:

STD_LOGIC_VECTOR(31DOWNTO0);

BEGIN

DDD<=32;

PROCESS(DDD)

BEGIN

IF(DDD(0)='0')THENQ<="11";

ELSIF(DDD

(1)='0')THENQ<="10";

ELSIF(DDD

(2)='0')THENQ<="01";

ELSEQ<="00";

ENDIF;

33;

Y1<=Q(0);Y0<=Q

(1);

ENDCODE4;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_34.ALL;

ENTITYADDER1IS

PORT(A,B:

INSTD_LOGIC_VECTOR(9DOWNTO0);

COUT:

OUTSTD_LOGIC;

SUM:

OUTSTD_LOGIC_VECTOR(9DOWNTO0));

END;

ARCHITECTUREJGOFADDER1IS

SIGNALATEMP:

STD_LOGIC_VECTOR(10DOWNTO0);

SIGNALBTEMP:

STD_LOGIC_VECTOR(10DOWNTO0);

SIGNALSUMTEMP:

STD_LOGIC_VECTOR(35DOWNTO0);

BEGIN

ATEMP<=’0’&A;BTEMP<=’0’&B;

SUMTEMP<=36;

SUM<=SUMTEMP(9DOWNTO0);

COUT<=37;

ENDJG;

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

说明:

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYSHIFTERIS

PORT(DATA:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CLK:

INSTD_LOGIC;

SHIFTLEFT,SHIFTRIGHT:

INSTD_LOGIC;

RESET:

INSTD_LOGIC;

MODE:

INSTD_LOGIC_VECTOR(1DOWNTO0);

QOUT:

BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));

ENDSHIFTER;

ARCHITECTUREARTOFSHIFTERIS

BEGIN

PROCESS

BEGIN

38(RISING_EDGE(CLK));--等待上升沿

IFRESET='1'THENQOUT<="00000000";--同步复位

ELSE

CASEMODEIS

WHEN"01"=>QOUT<=SHIFTRIGHT&39;--右移一位

WHEN"10"=>QOUT<=QOUT(6DOWNTO0)&40;--左移一位

WHEN"11"=>QOUT<=41;--不移,并行输入

WHENOTHERS=>NULL;

42;

ENDIF;

ENDPROCESS;

ENDART;

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

说明:

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT8IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

CQ:

OUTSTD_LOGIC_VECTOR(43DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT8;

ARCHITECTUREBEHAVOFCNT8IS

BEGIN

PROCESS(CLK,RST,EN)

44CQI:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IFRST='1'THENCQI:

=“000”;

45CLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFCQI<"111"THENCQI:

=46;

ELSECQI:

=47;

ENDIF;

ENDIF;

ENDIF;

IFCQI="111"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

CQ<=CQI;

ENDPROCESS;

ENDBEHAV;

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

说明:

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYXULIEIS

PORT(RES,CLK:

INSTD_LOGIC;

Y:

OUTSTD_LOGIC);

END;

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

ENDIF;

ENDIF;

ENDPROCESS;

END;

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

说明:

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

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

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX21IS

PORT(A,B,SEL:

INSTD_LOGIC;

Y:

OUTSTD_LOGIC);

ENDMUX21;

ARCHITECTUREARTOFMUX21IS

BEGIN

Y<=AWHENSEL='0'ELSEB;

END;

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

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX41IS

PORT(A,B,C,D:

INSTD_LOGIC;

S1,S2:

INSTD_LOGIC;

Y:

OUTSTD_LOGIC);

END;

ARCHITECTUREARTOFMUX41IS

COMPONENTMUX41

PORT(A,B,SEL:

INSTD_LOGIC;

Y:

OUTSTD_LOGIC);

ENDCOMPONENT;

51Y1,Y2:

STD_LOGIC;

BEGIN

U1:

MUX21PORTMAP(A,B,S1,52);

U2:

MUX21PORTMAP(C,D,52,Y2);

U2:

MUX21PORTMAP(Y1,Y2,54,Y);

END;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYPCIS

PORT(A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

Y:

OUTST

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

当前位置:首页 > 表格模板 > 合同协议

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

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