您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VHDL程序练习题(含答案)
VHDL程序填空题(一)在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;1MUX21ISPORT(SEL:INSTD_LOGIC;A,B:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDMUX21;2BHVOFMUX21ISBEGINQ=AWHENSEL=’1’ELSEB;ENDBHV;(二)在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYBCD_7SEGISPORT(BCD_LED:INSTD_LOGIC_VECTOR(3DOWNTO0);LEDSEG:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDBCD_7SEG;ARCHITECTUREBEHAVIOROFBCD_7SEGISBEGINPROCESS(BCD_LED)3IFBCD_LED=0000THENLEDSEG=0111111;ELSIFBCD_LED=0001THENLEDSEG=0000110;ELSIFBCD_LED=0010THENLEDSEG=4;ELSIFBCD_LED=0011THENLEDSEG=1001111;ELSIFBCD_LED=0100THENLEDSEG=1100110;ELSIFBCD_LED=0101THENLEDSEG=1101101;ELSIFBCD_LED=0110THENLEDSEG=1111101;ELSIFBCD_LED=0111THENLEDSEG=0000111;ELSIFBCD_LED=1000THENLEDSEG=1111111;ELSIFBCD_LED=1001THENLEDSEG=1101111;ELSELEDSEG=5;ENDIF;ENDPROCESS;ENDBEHAVIOR;(三)在下面横线上填上合适的语句,完成数据选择器的设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUX16ISPORT(D0,D1,D2,D3:INSTD_LOGIC_VECTOR(15DOWNTO0);SEL:INSTD_LOGIC_VECTOR(6DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(15DOWNTO0));END;ARCHITECTUREONEOFMUX16ISBEGINWITH7SELECTY=D0WHEN00,D1WHEN01,D2WHEN10,D3WHEN8;END;(四)在下面横线上填上合适的语句,完成JK触发器的设计。说明:设计一个异步复位/置位JK触发器,其真值表如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYJKFF1ISPORT(PSET,CLR,CLK,J,K:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDJKFF1;ARCHITECTUREMAXPLDOFJKFF1ISSIGNALTEMP:STD_LOGIC;BEGINPROCESS(PSET,CLR,CLK)BEGINIF(PSET='0'ANDCLR='1')THENTEMP='1';ELSIF(PSET='1'ANDCLR='0')THENTEMP='0';ELSIF(PSET='0'ANDCLR='0')THENNULL;9(CLK'EVENTANDCLK='1')THEN10(J='0'ANDK='0')THENTEMP=TEMP;INPUTOUTPUTPSETCLRCLKJKQ01XXX110XXX000XXX不定11上升沿01011上升沿10111上升沿11翻转11上升沿00保持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;ENTITYCNT6ISPORT(EN,CLR,LD,CLK:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNT6;ARCHITECTUREBEHAOFCNT6ISSIGNALQTEMP:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,CLR,LD)BEGINIFCLR='1'THENQTEMP=0000;--CLR=1清零ELSIF(CLK'EVENTANDCLK='1')THEN--判断是否上升沿IFLD='1'THENQTEMP=12;--判断是否置位ELSIFEN='1'THEN--判断是否允许计数IFQTEMP=0000THENQTEMP=13;--等于0,计数值置5ELSEQTEMP=14;--否则,计数值减1ENDIF;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;ENTITYMOORE1ISPORT(DATAIN:INSTD_LOGIC_VECTOR(1DOWNTO0);CLK,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREONEOFMOORE1ISTYPEST_TYPEIS(ST0,ST1,ST2,ST3);--定义4个状态SIGNALCST,NST:ST_TYPE;--定义两个信号(现态和次态)SIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINREG:PROCESS(CLK,RST)--主控时序进程BEGINIFRST='1'THENCST=15;--异步复位为状态0ELSIFCLK'EVENTANDCLK='1'THENCST=16;--现态=次态ENDIF;ENDPROCESS;COM:PROCESS(CST,DATAIN)BEGINCASECSTISWHENST0=IFDATAIN=10THENNST=ST1;ELSENST=ST0;Q1=1001;ENDIF;WHENST1=IFDATAIN=11THENNST=ST2;ELSENST=ST1;Q1=0101;ENDIF;WHENST2=IFDATAIN=01THENNST=ST3;ELSENST=ST2;Q1=1100;ENDIF;WHENST3=IFDATAIN=00THENNST=ST0;ELSENST=ST3;Q1=0010;ENDIF;17;ENDPROCESS;Q=Q1;END;(七)在下面横线上填上合适的语句,完成减法器的设计。由两个1位的半减器组成一个1位的全减器--1位半减器的描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYHALF_SUBISPORT(A,B:INSTD_LOGIC;DIFF,COUT:OUTSTD_LOGIC);ENDHALF_SUB;ARCHITECTUREARTOFHALF_SUBISBEGINCOUT=18;--借位DIFF=19;--差END;--1位全减器描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFALF_SUBISPORT(A,B,CIN:INSTD_LOGIC;DIFF,COUT:OUTSTD_LOGIC);ENDFALF_SUB;ARCHITECTUREARTOFFALF_SUBISCOMPONENTHALF_SUBPORT(A,B:INSTD_LOGIC;DIFF,COUT:OUTSTD_LOGIC);ENDCOMPONENT;20T0,T1,T2:STD_LOGIC;BEGINU1: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_1TO2ISPORT(CLK:INSTD_LOGIC;CLKOUT:OUTSTD_LOGIC);ENDCLKDIV8_1TO2;ARCHITECTURETWOOFCLKDIV8_1TO2ISSIGNALCNT:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALCK:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFRISING_EDGE(25)THENIFCNT=11THENCNT=00;CK=26;ELSECNT=27;ENDIF;ENDIF;CLKOUT=CK;ENDPROCESS;END;(九)在下面横线上填上合适的语句,完成60进制减计数器的设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTISPORT(CLK:INSTD_LOGIC;H,L:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOUNT;ARCHITECTUREBHVOFCOUNTISBEGINPROCESS(CLK)VARIABLEHH,LL:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFLL=0ANDHH=0THENHH:=0101;LL:=1001;ELSIFLL=0THENLL:=28;HH:=29;ELSELL:=30;ENDIF;ENDIF;H=HH;L=LL;ENDPROCESS;ENDBHV;(十)在下面横线上填上合适的语句,完成4-2优先编码器的设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCODE4ISPORT(A,B,C,D:INSTD_LOGIC;Y0,Y1:OUTSTD_LOGIC);ENDCODE4;ARCHITECTURECODE4OFCODE4ISSIGNALDDD:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALQ:STD_LOGIC_VECTOR(31DOWNTO0);BEGINDDD=32;PROCESS(DDD)BEGINIF(DDD(0)='0')THENQ=11;ELSIF(DDD(1)='0')THENQ=10;ELSIF
本文标题:VHDL程序练习题(含答案)
链接地址:https://www.777doc.com/doc-7025612 .html