VHDL程序练习题.docx

上传人:scccc 文档编号:14041751 上传时间:2022-01-31 格式:DOCX 页数:50 大小:235.31KB
返回 下载 相关 举报
VHDL程序练习题.docx_第1页
第1页 / 共50页
VHDL程序练习题.docx_第2页
第2页 / 共50页
VHDL程序练习题.docx_第3页
第3页 / 共50页
VHDL程序练习题.docx_第4页
第4页 / 共50页
VHDL程序练习题.docx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

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

1、VHDLg序填空题(一)在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。LIBRARY IEEE;USE 1 MUX21 ISPORT(SEL:IN STD_LOGIC;A,B:IN STD_LOGIC;Q: OUT STD_LOGIC );END MUX21;2 BHV OF MUX21 ISBEGINQ=A WHEN SE L=T ELSE B;END BHV;(二)在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。LIBRARY IEEE ;USEENTITY BCD_7SEG ISPORT( BCD_LED : IN STD_LOGIC_VECTOR

2、(3 DOWNTO 0);LEDSEG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END BCD_7SEG;ARCHITECTURE BEHAVIOR OF BCD_7SEG ISBEGINPROCESS(BCD_LED)3IF BCD_LED=0000 THEN LEDSEG=0111111;ELSIF BCD_LED=0001 THEN LEDSEG=0000110;ELSIF BCD LED=0010 THEN LEDSEG= 4ELSIF BCD_LED=0011 THEN LEDSEG=1001111;ELSIF BCD_LED=0100 THEN LED

3、SEG=1100110;ELSIF BCD_LED=0101 THEN LEDSEG=1101101;ELSIF BCD_LED=0110 THEN LEDSEG=1111101;ELSIF BCD_LED=0111 THEN LEDSEG=0000111;ELSIF BCD_LED=1000 THEN LEDSEG=1111111;ELSIF BCD_LED=1001 THEN_LEDSEG=1101111;ELSE LEDSEG= 5;END IF;END PROCESS;END BEHAVIOR;(三)在下面横线上填上合适的语句,完成数据选择器的设计。LIBRARY IEEE;USE M

4、UX16 ISPORT( D0, D1, D2, D3: IN STD_LOGIC_VECTOR(15 DOWNTO 0);SEL: IN STD_LOGIC_VECTOR( 6 DOWNTO 0);Y: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END;ARCHITECTURE ONE OF MUX16 ISBEGINWITH 7 SELECTY = D0 WHEN 00,D1 WHEN 01,D2 WHEN 10,D3 WHEN 8;END;(四)在下面横线上填上合适的语句,完成JK触发器的设计。说明:设计一个异步复位/置位JK触发器,其真值表如下:INPUTOU

5、TPUTLIBRARY IEEE;USE JKFF1 ISPORT (PSET,CLR,CLK,J,KPSETCLRCLKJKQ01XXX110XXX000XXX不定11上升沿01011上升沿10111上升沿11翻转11上升沿00保持:IN STD_LOGIC;Q : OUT STD_LOGIC);END JKFF1;ARCHITECTURE MAXPLD OF JKFF1 ISSIGNAL TEMP:STD_LOGIC;BEGINPROCESS(PSET,CLR,CLK)BEGINIF (PSET=0AND CLR=1 ) THEN TEMP=1;ELSIF (PSET=1AND CLR=0

6、 ) THEN TEMP=0;ELSIF (PSET=0AND CLR=0 ) THEN NULL;9 (CLKEVENT AND CLK=1) THEN10 (J=0 AND K=0) THEN TEMP=TEMP;ELSIF (J=0 AND K=1) THEN TEMP=0;ELSIF (J=1 AND K=0) THEN TEMP=1;ELSIF (J=1 AND K=1) THEN TEMP= 11;END IF;END IF;END PROCESS;Q=TEMP;END ;(五)在下面横线上填上合适的语句,完成计数器的设计。说明:设电路的控制端均为高电平有效,时钟端CLK,电路的预

7、置数据输入端为4位D,计数输出端也为4位Q带同步始能EN异步复位CLR和预置控制LD的六进制减法计数器。LIBRARY IEEE;USE CNT6 ISPORT(EN,CLR,LD,CLK:IN STD_LOGIC;D: IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CNT6;ARCHITECTURE BEHA OF CNT6 ISSIGNAL QTEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,LD)BEGINIF CLR=1 THEN

8、QTEMP=0000”;-CLR=1 清零ELSIF (CLKEVENT AND CLK=1) THEN-判断是否上升沿IF LD=1 THENQTEMP= 12-判断是否置位ELSIF EN=1 THEN-判断是否允许计数IF QTEMP=0000 THEN QTEMP= 13;等于 0,计数值置 5ELSE QTEMP= 14;-否贝U,计数值减 1END IF;END IF;END IF;Q=QTEMP;END PROCESS;END BEHA;(六)在下面横线上填上合适的语句,完成状态机的设计。说明:设计一个双进程斗态机,状态 0时如果输入“ 10”则转为下一状态,否则输出“ 1001

9、” ; 状态1时如果输入“ 11”则转为下一状态,否则输出“ 0101” ;状态 2时如果输入“ 01”则转为下一状态,否则输出“ 1100” ; 状态3时如果输入“ 00”则转为状态0,否则输出“ 0010”。复位时为状态 0。LIBRARY IEEE;USE MOORE1 ISPORT (DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0);CLK, RST:IN STD_LOGIC;Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE ONE OF MOORE1 ISTYPE ST_TYPE IS (ST0,

10、ST1, ST2, ST3);-定义 4 个状态SIGNAL CST, NST: ST_TYPE;-定义两个信号(现态和次态)SIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINREG: PROCESS(CLK, RST)-主控时序进程BEGINIF RST=1 THEN CST= 15;-异步复位为状态 0ELSIF CLKEVENT AND CLK=1 THENCST IF DATAIN=10 THEN NST=ST1;ELSE NST=ST0; Q1 IF DATAIN=11 THEN NST=ST2;ELSE NST=ST1; Q1 IF DATAI

11、N=01 THEN NST=ST3;ELSE NST=ST2; Q1 IF DATAIN=00 THEN NST=ST0;ELSE NST=ST3; Q1=0010; END IF;END PROCESS;Q=Q1;END;(七)在下面横线上填上合适的语句,完成减法器的设计。由两个1位的半减器组成一个 1位的全减器-1位半减器的描述LIBRARY IEEE;USE HALF SUB ISPORT(A,B : IN STD_LOGIC;DIFF,COUT : OUT STD_LOGIC);END HALF_SUB;ARCHITECTURE ART OF HALF_SUB ISBEGINCOUT=

12、 18;-借位DIFF= 19;-差END ;-1位全减器描述LIBRARY IEEE;USE FALF_SUB ISPORT(A,B,CIN: IN STD_LOGIC;DIFF,COUT : OUT STD_LOGIC);END FALF_SUB;ARCHITECTURE ART OF FALF_SUB ISCOMPONENT HALF_SUBPORT(A,B : IN STD_LOGIC;DIFF,COUT : OUT STD_LOGIC);END COMPONENT;20 T0,T1,T2:STD LOGIC;BEGINU1: HALF_SUB PORT MAP(A,B, 21,T1)

13、;U2: HALF_SUB PORT MAP(T0, 22,23,T2);COUT= 24;END ;(八)在下面横线上填上合适的语句,完成分频器的设计。说明:占空比为1:2的8分频器LIBRARY IEEE;USE CLKDIV8_1TO2 ISPORT(CLK:IN STD_LOGIC;CLKOUT:OUT STD_LOGIC );END CLKDIV8_1TO2;ARCHITECTURE TWO OF CLKDIV8_1TO2 ISSIGNAL CNT:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL CK:STD_LOGIC;BEGINPROCESS(CLK)BE

14、GINIF RISING EDGE( 25) THENIF CNT=11 THENCNT=00;CK= 26;ELSE CNT= 27;END IF;END IF;CLKOUT=CK;END PROCESS;END;(九)在下面横线上填上合适的语句,完成60进制减计数器的设计。LIBRARY IEEE;USE COUNT ISPORT(CLK: IN STD_LOGIC;H,L: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COUNT;ARCHITECTURE BHV OF COUNT ISBEGINPROCESS(CLK)VARIABLE HH,LL: STD_

15、LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF LL=0 AND HH=0 THENHHk0101; LLk1001;ELSIF LL=0 THENLL:=28;HH:=29;ELSELL:=30;END IF;END IF;H=HH;L=LL;END PROCESS;END BHV;(十) 在下面横线上填上合适的语句,完成 4-2优先编码器的设计。LIBRARY IEEE;USE CODE4 ISPORT(A,B,C,D : IN STD_LOGIC;Y0,Y1 : OUT STD_LOGIC);END CODE4;ARC

16、HITECTURE CODE4 OF CODE4 ISSIGNAL DDD:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL Q:STD LOGIC VECTOR( 31 DOWNTO 0);BEGINDDD= 32;PROCESS(DDD)BEGINIF (DDD(0)=0) THEN Q = 11;ELSIF (DDD(1)=0) THEN Q = 10;ELSIF(DDD(2)=0) THEN Q=01;ELSE Q = 00;END IF;33;Y1=Q(0);Y0=Q(1);END CODE4;(十一)在下面横线上填上合适的语句,完成10位二进制加法器电路的设计

17、。LIBRARY IEEE;USE 34 .ALL;ENTITY ADDER1 ISPORT(A,B:IN STD_LOGIC_VECTOR(9 DOWNTO 0);COUT:OUT STD_LOGIC;SUM:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);END;ARCHITECTURE JG OF ADDER1 ISSIGNAL ATEMP: STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL BTEMP: STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL SUMTEMP: STD_LOGIC_VECTOR( 35 DOWN

18、TO 0);BEGINATEMPW =0 & A;BTEMPW =0 & B;SUMTEMP= 36;SUM=SUMTEMP(9 DOWNTO 0);COUT= 37;END JG;(十二)在下面横线上填上合适的语句,完成移位寄存器的设计。说明:8位的移位寄存器,具有左移一位或右移一位、并行输入和同步复位的功能。LIBRARY IEEE;USE SHIFTER ISPORT(DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK:IN STD_LOGIC;SHIFTLEFT , SHIFTRIGHT:IN STD_LOGIC;RESET:IN STD_LOGIC;M

19、ODE:IN STD_LOGIC_VECTOR(1 DOWNTO 0);QOUT:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END SHIFTER;ARCHITECTURE ART OF SHIFTER ISBEGINPROCESSBEGIN38 (RISING_EDGE(CLK);-等待上升沿IF RESET=1 THEN QOUTQOUTQOUTQOUTNULL;END IF;END PROCESS;END ART;(十三)在下面横线上填上合适的语句,完成计数器的设计。说明:设计一个带有异步复位和时钟使能的一位八进制加法计数器(带进位输出端)LIBRARY I

20、EEE;USE CNT8 ISPORT (CLK,RST,EN : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR( 43 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT8;ARCHITECTURE BEHAV OF CNT8 ISBEGINPROCESS(CLK, RST, EN)44 CQI : STD LOGIC VECTOR(2 DOWNTO 0);BEGINIF RST = 1 THEN CQI :=000” ;45 CLKEVENT AND CLK=1 THENIF EN = 1 THENIF CQI 111 THEN

21、 CQI :=46;ELSE CQI :=47;END IF;END IF;END IF;IF CQI = 111 THEN COUT = 1;ELSE COUT = 0;END IF;CQ = CQI;END PROCESS;END BEHAV;(十四)在下面横线上填上合适的语句,完成序列信号发生器的设计。说明:已知发送信号为 ”,要求以由高到低的序列形式一位一位的发送,发送开始前及发送完为低电平。LIBRARY IEEE;USE XULIE ISPORT (RES, CLK: IN STD_LOGIC;Y: OUT STD_LOGIC );END;ARCHITECTURE ARCH OF

22、XULIE ISSIGNAL REG:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(CLK, RES)BEGINIF(CLK EVENT AND CLK =1 ) THENIF RES= 1 THENY= 0 ; REG= 48;-同步复位,并加载输入ELSE Y=49;-高位输出REG= 50;-左移,彳氐位补0END IF;END IF;END PROCESS;END;(十五)在下面横线上填上合适的语句,完成数据选择器的设计。说明:采用元件例化的设计方法,先设计一个2选1多路选择器,再使用3个2选1多路选择器构成一个4选1多路选择器。LIBRARY I

23、EEE;-2选1多路选择器的描述USE MUX21 ISPORT(A,B,SEL : IN STD_LOGIC;Y : OUT STD_LOGIC);END MUX21;ARCHITECTURE ART OF MUX21 ISBEGINY=A WHEN SEL=0 ELSE B;END ;LIBRARY IEEE;-4选1多路选择器的描述USE MUX41 ISPORT(A,B,C,D : IN STD_LOGIC;S1,S2 : IN STD_LOGIC;Y:OUT STD_LOGIC);END;ARCHITECTURE ART OF MUX41 ISCOMPONENT MUX41PORT(

24、A,B,SEL : IN STD_LOGIC;Y : OUT STD_LOGIC);END COMPONENT;51 Y1,Y2:STD_LOGIC;BEGINU1: MUX21 PORT MAP(A,B,S1, 52);U2: MUX21 PORT MAP(C,D, 52,丫2);U2: MUX21 PORT MAP(Y1,Y2, 54,Y);END ;(十六)在下面横线上填上合适的语句,完成8位奇偶校验电路的设计。LIBRARY IEEE;USE PC ISPORT ( A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y : OUT STD_LOGIC );END

25、PC;ARCHITECTURE A OF PC ISBEGINPROCESS(A).VARIABLE TMP: STD_LOGIC;BEGINTMP 550;FOR I IN 0 TO 7 LOOPTMPk56END LOOP;Y=57;END PROCESS;END;(十七)在下面横线上填上合适的语句,完成一个逻辑电路的设计,其布尔方程为 Y=(A+B)( CO D)+(B F).LIBRARY IEEE;USEENTITY COMB ISPORT(A, B,C,D,E,F,: IN STD_LOGIC;Y: OUT STD_LOGIC);END COMB;ARCHITECTURE ONE

26、OF COMB ISBEGINY POUT POUT POUT POUT POUT POUT POUT POUT POUT POUT POUT=0000000000;END CASE;END IF;END PROCESS;D 触发器的设计。END;(十九)在下面横线上填上合适的语句,完成下降沿触发的LIBRARY IEEE;USE ;ENTITY DFF ISPORT(D,CLK:IN STD_LOGIC;Q, QB: OUT STD_LOGIC);END DFF;ARCHITECTURE BEHAVE OF DFF ISBEGINPROCESS(CLK)BEGINIF 61 AND CLKE

27、VENT THENQ =62;QB=NOT D;END IF;END PROCESS;END BEHAVE;(二十)在下面横线上填上合适的语句,完成移位寄存器的设计。说明:4位串入-串出移位寄存器有有1个串行数据输入端(DI)、1个串行数据输出输出端(DQ和1个时钟输入端(CLRLIBRARY IEEE;USE ENTITY SISO ISPORT(DI: IN STD_LOGIC;CLK:IN STD_LOGIC;DO:OUT STD_LOGIC);END SISO;ARCHITECTURE A OF SISO ISSIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0)

28、;BEGINPROCESS(CLK,DI)BEGINIF CLK EVENT AND CLK=1 THENQ(0)=63;FOR 64 LOOPQ(I)=65;END IF;END PROCESS;DO=Q(3);END A;(二十一)在下面横线上填上合适的语句,完成同步 22进制计数器的设计。LIBRARY IEEE;USE COUNTER22 ISPORT( CLK: IN STD_LOGIC;CH, C: OUT STD_LOGIC;QB1, QA1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE BEHAV OF COUNTER22

29、 ISSIGNAL QB, QA: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CIN: STD_LOGIC;BEGINQB1=QB;QA1=QA;PROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF (QA= 66)OR(QB=2 ANDQA=1) THENQA=0000; CIN=0;ELSIF QA=67THEN CIN=1; QA=QA+1;ELSE QA=68;CIN=0;END IF;END IF;END PROCESS;PROCESS(CIN, CLK)BEGINIF CLKEVENT AND CLK=1 THEN

30、IF (QB=2 AND QA=1) THEN QB= 69; C=1;ELSE C=70;END IF;IF CIN=1 THEN QB= 71;END IF;END IF;END PROCESS;CH=CIN;END;(二十二)在下面横线上填上合适的语句,完成一个“01111110序列发生器的设计。LIBRARY IEEE;USE SENQGEN ISPORT(CLK,CLR,CLOCK:IN STD_LOGIC;ZO:OUT STD_LOGIC);END;ARCHITECTURE ART OF SENQGEN ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNT

31、O 0);SIGNAL Z:STD_LOGIC:=0;BEGINPROCESS(CLK,CLR)BEGINIF CLR=1 THEN COUNT=000;ELSEIF CLK=1 AND CLKEVENT THENIF COUNT= 72 THEN COUNT=000;ELSE COUNTZZZZZZZZ= 73;END CASE;END PROCESS;PROCESS(CLOCK,Z)BEGINIF CLOCK=1 AND CLOCKEVENT THENZO= 74;END IF;END PROCESS;END ART;(二十三)在下面横线上填上合适的语句,完成一个“01111110序列信号

32、检测器的设计。LIBRARY IEEE;USE DETECT ISPORT( DATAIN:IN STD_LOGIC;CLK:IN STD_LOGIC;Q:BUFFER STD_LOGIC);END DETECT;ARCHITECTURE ART OF DETECT ISTYPE STATETYPE IS (S0,S1,S2,S3,S4,S5,S6,S7,S8);BEGINPROCESS(CLK)VARIABLE 75:76;BEGINQIF DATAIN=0 THEN PRESENT_STATE:=S1;ELSE PRESENT_STATE:=S0; END IF;WHEN S1=IF DA

33、TAIN=1 THEN PRESENT_STATE:=S2;ELSE PRESENT_STATE:=S1; END IF;WHEN S2=IF DATAIN=1 THEN PRESENT_STATE:=S3;ELSE PRESENT_STATE:=S1; END IF;WHEN S3=IF DATAIN=1 THEN PRESENT_STATE:=S4;ELSE PRESENT_STATE:=S1; END IF;WHEN S4=IF DATAIN=1 THEN PRESENT_STATE:=S5;ELSE PRESENT_STATE:=S1; END IF;WHEN S5=IF DATAIN

34、=1 THEN PRESENT_STATE:=S6;ELSE PRESENT_STATE:=S1; END IF;WHEN S6=IF DATAIN=1 THEN PRESENT_STATE:=S7;ELSE PRESENT_STATE:=S1; END IF;WHEN S7=IF DATAIN=0 THEN PRESENT_STATE:=S8;QELSE PRESENT_STATE:= 78; END IF;END CASE;79CLK=1;END PROCESS;END ART;(二十四)在下面横线上填上合适的语句,完成序列信号发生器的设计。说明:带异步复位为 CLR时钟端为CLK输出端为

35、Q,串行输出指定序列(低位先出) LIBRARY IEEE;USE SENQGEN ISPORT(CLR,CLK:IN STD_LOGIC;Q:OUT STD_LOGIC);END SENQGEN;ARCHITECTURE BEHA OF SENQGEN ISSIGNAL Q_TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINPROCESS(CLK,CLR) BEGINIF CLR=1 THEN Q_TEMP=000;80 (CLKEVENT AND CLK=1) THENIF Q_TEMP=111 THENQ_TEMP=000;81Q TEMPQQQQQQQQ

36、83;END CASE;END PROCESS;END BEHA;(二十五)在下面横线上填上合适的语句,完成七人表决器的设计。说明:一个带输出显示的七人表决器(两种结果:同意,反对)。LIBRARY IEEE;USE BIAOJUE7 ISPORT(D:IN STD_LOGIC_VECTOR(0 TO 6);RLED,GLED:OUT STD_LOGIC;LEDSEG:OUT STD_LOGIC_VECTOR( 6 DOWNTO 0);END;ARCHITECTURE BEV OF BIAOJUE7 ISBEGINPROCESS(D)VARIABLE COUNT:INTEGER RANGE 0

37、 TO 7 ;BEGINCOUNT:=84FOR 85 LOOPIF D(I)=1 THEN COUNTk 86;ELSE COUNTkCOUNT;END IF;END LOOP;IF COUNT 87 THENGLED=1;RLED=0;ELSE GLED=0;RLED LEDSEG LEDSEG LEDSEG LEDSEG LEDSEG LEDSEG LEDSEG LEDSEG=0100111;END CASE;END PROCESS;END BEV;(二十六)在下面横线上填上合适的语句,完成有限状态机的设计。说明:状态转换图如右图,S0S3为状态号,圈内为输出。LIBRARY 1EEE

38、;ENTITY S MACHINE ISS314SO 511S1 8S21211USE IEEE. STD_ LOGIC_1164 ALL;00ELSE NEXT STATE=S2PORT( CLK,RESET : IN STD_LOGIC;INPUTS : IN STD_LOGIC_VECTOR (0 TO 1);OUTPUTS : OUT INTEGER RANGE (0 TO 15 );END S_ MACHINEARCHITECTURE BEHAV OF S_MACHINE ISTYPE STATES IS (S0, S1, S2 , S3);SIGNAL CURCENT_STATE , NEXT_STATE STA

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1