《VHDL程序练习题.doc》由会员分享,可在线阅读,更多相关《VHDL程序练习题.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VHDL程序填空题(一) 在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 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 SEL=1 ELSE B;END BHV;(二) 在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL
2、; ENTITY BCD_7SEG ISPORT( BCD_LED : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDSEG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END BCD_7SEG;ARCHITECTURE BEHAVIOR OF BCD_7SEG IS BEGIN PROCESS(BCD_LED) 3 IF BCD_LED=0000 THEN LEDSEG=;ELSIF BCD_LED=0001 THEN LEDSEG=;ELSIF BCD_LED=0010 THEN LEDSEG= 4 ;ELSIF BCD_LED=0011
3、 THEN LEDSEG=;ELSIF BCD_LED=0100 THEN LEDSEG=;ELSIF BCD_LED=0101 THEN LEDSEG=;ELSIF BCD_LED=0110 THEN LEDSEG=;ELSIF BCD_LED=0111 THEN LEDSEG=;ELSIF BCD_LED=1000 THEN LEDSEG=;ELSIF BCD_LED=1001 THEN LEDSEG=;ELSE LEDSEG= 5 ;END IF; END PROCESS; END BEHAVIOR;(三) 在下面横线上填上合适的语句,完成数据选择器的设计。LIBRARY IEEE;US
4、E IEEE.STD_LOGIC_1164.ALL;ENTITY MUX16 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触发器的设
5、计。说明:设计一个异步复位/置位JK触发器,其真值表如下:INPUTOUTPUTPSETCLRCLKJKQ01XXX110XXX000XXX不定11上升沿01011上升沿10111上升沿11翻转11上升沿00保持LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JKFF1 ISPORT (PSET,CLR,CLK,J,K: IN STD_LOGIC; Q: OUT STD_LOGIC);END JKFF1;ARCHITECTURE MAXPLD OF JKFF1 ISSIGNAL TEMP:STD_LOGIC;BEGINPROCESS(PSET,C
6、LR,CLK)BEGINIF (PSET=0AND CLR=1 ) THEN TEMP=1;ELSIF (PSET=1AND CLR=0 ) THEN TEMP=0;ELSIF (PSET=0AND CLR=0 ) THEN NULL; 9 (CLKEVENT AND CLK=1) THEN 10 (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 PR
7、OCESS; Q=TEMP;END ;(五) 在下面横线上填上合适的语句,完成计数器的设计。说明:设电路的控制端均为高电平有效,时钟端CLK,电路的预置数据输入端为4位D,计数输出端也为4位Q,带同步始能EN、异步复位CLR和预置控制LD的六进制减法计数器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 ISPORT(EN,CLR,LD,CLK:IN STD_LOGIC;D: IN STD_LOGIC_VECTOR(
8、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 QTEMP=0000; -CLR=1清零ELSIF (CLKEVENT AND CLK=1) THEN -判断是否上升沿IF LD=1 THENQTEMP= 12 ; -判断是否置位ELSIF EN=1 THEN -判断是否允许计数 IF QTEMP=0000
9、 THEN QTEMP= 13 ;-等于0,计数值置5 ELSE QTEMP= 14 ; -否则,计数值减1END IF; END IF;END IF;Q=QTEMP;END PROCESS; END BEHA;(六) 在下面横线上填上合适的语句,完成状态机的设计。说明:设计一个双进程状态机,状态0时如果输入”10”则转为下一状态,否则输出”1001”; 状态1时如果输入”11”则转为下一状态,否则输出”0101”;状态2时如果输入”01”则转为下一状态,否则输出”1100”; 状态3时如果输入”00”则转为状态0,否则输出”0010”。复位时为状态0。LIBRARY IEEE;USE IEE
10、E.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY 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 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3);-定义4个状态SIGNAL CST, NST: ST_TYPE;-定义两个信号(现态和次态)SIGNAL Q1:
11、STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN REG: PROCESS(CLK, RST)-主控时序进程BEGIN IF RST=1 THEN CST= 15 ; -异步复位为状态0ELSIF CLKEVENT AND CLK=1 THEN CST IF DATAIN=10 THEN NST=ST1;ELSE NST=ST0; Q1 IF DATAIN=11 THEN NST=ST2;ELSE NST=ST1; Q1 IF DATAIN=01 THEN NST=ST3; ELSE NST=ST2; Q1 IF DATAIN=00 THEN NST=ST0; ELSE N
12、ST=ST3; Q1=0010; END IF; 17 ;END PROCESS;Q=Q1;END;(七) 在下面横线上填上合适的语句,完成减法器的设计。由两个1位的半减器组成一个1位的全减器-1位半减器的描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HALF_SUB IS PORT(A,B : IN STD_LOGIC; DIFF,COUT : OUT STD_LOGIC); END HALF_SUB;ARCHITECTURE ART OF HALF_SUB ISBEGINCOUT= 18 ; -借位DIFF= 19 ; -差END ;-
13、1位全减器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FALF_SUB IS PORT(A,B,CIN: IN STD_LOGIC; DIFF,COUT : OUT STD_LOGIC);END FALF_SUB;ARCHITECTURE ART OF FALF_SUB ISCOMPONENT HALF_SUB PORT(A,B : IN STD_LOGIC; DIFF,COUT : OUT STD_LOGIC); END COMPONENT; 20 T0,T1,T2:STD_LOGIC;BEGINU1: HALF_SUB PORT MA
14、P(A,B, 21 ,T1);U2: HALF_SUB PORT MAP(T0, 22 , 23 ,T2);COUT= 24 ;END ;(八) 在下面横线上填上合适的语句,完成分频器的设计。说明:占空比为1:2的8分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLKDIV8_1TO2 ISPORT(CLK:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC );END CLKDIV8_1TO2;ARCHITECTURE TWO OF CLKDIV8_1TO
15、2 ISSIGNAL CNT:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL CK:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF RISING_EDGE( 25 ) THEN IF CNT=11 THENCNT=00;CK= 26 ; ELSE CNT= 27 ; END IF;END IF;CLKOUT=CK;END PROCESS;END;(九) 在下面横线上填上合适的语句,完成60进制减计数器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.AL
16、L;ENTITY 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_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLKEVENT AND CLK=1 THENIF LL=0 AND HH=0 THENHH:=0101;LL:=1001; ELSIF LL=0 THEN LL:= 28 ; HH:= 29 ; ELSE LL:=
17、30 ; END IF; END IF; H=HH; L=LL;END PROCESS;END BHV;(十) 在下面横线上填上合适的语句,完成4-2优先编码器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CODE4 IS PORT(A,B,C,D : IN STD_LOGIC; Y0,Y1 : OUT STD_LOGIC);END CODE4;ARCHITECTURE CODE4 OF CODE4 ISSIGNAL DDD:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL Q:STD_LOGIC_VECTOR(
18、 31 DOWNTO 0);BEGIN DDD= 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位二进制加法器电路的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ 34 .ALL;ENTITY ADDER1 I
19、SPORT(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 DOWNTO 0);BEGIN ATEMP=0& A;BTEMP=0& B;SUMTEMP
20、= 36 ;SUM=SUMTEMP(9 DOWNTO 0);COUT= 37 ;END JG;(十二) 在下面横线上填上合适的语句,完成移位寄存器的设计。说明:8位的移位寄存器,具有左移一位或右移一位、并行输入和同步复位的功能。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SHIFTER ISPORT(DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK:IN STD_LOGIC; SHIFT
21、LEFT,SHIFTRIGHT:IN STD_LOGIC; RESET:IN STD_LOGIC; MODE:IN STD_LOGIC_VECTOR(1 DOWNTO 0); QOUT:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END SHIFTER;ARCHITECTURE ART OF SHIFTER ISBEGIN PROCESSBEGIN 38 (RISING_EDGE(CLK);-等待上升沿IF RESET=1 THEN QOUTQOUTQOUTQOUTNULL; 42 ; END IF; END PROCESS; END ART;(十三) 在下面横线上
22、填上合适的语句,完成计数器的设计。说明:设计一个带有异步复位和时钟使能的一位八进制加法计数器(带进位输出端)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT8 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR( 43 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT8;ARCHITECTURE BEHAV OF CNT8 ISBEGIN PROCESS(CLK, RS
23、T, EN) 44 CQI : STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINIF RST = 1 THEN CQI := “000”; 45 CLKEVENT AND CLK=1 THEN IF EN = 1 THEN IF CQI 111 THEN 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; (十四) 在下面横线上填上合适的语句,完成序列信号
24、发生器的设计。说明:已知发送信号为”,要求以由高到低的序列形式一位一位的发送,发送开始前及发送完为低电平。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XULIE ISPORT (RES, CLK: IN STD_LOGIC; Y: OUT STD_LOGIC );END;ARCHITECTURE ARCH OF XULIE IS SIGNAL REG:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CLK, RES) BEGINIF(CLKEVENT AND CLK=1) THENIF RES=1 THE
25、N Y=0;REG= 48 ;-同步复位,并加载输入ELSE Y= 49 ; -高位输出REG= 50 ;-左移,低位补0END IF;END IF;END PROCESS; END;(十五) 在下面横线上填上合适的语句,完成数据选择器的设计。说明:采用元件例化的设计方法,先设计一个2选1多路选择器,再使用3个2选1多路选择器构成一个4选1多路选择器。LIBRARY IEEE; -2选1多路选择器的描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX21 IS PORT(A,B,SEL : IN STD_LOGIC; Y : OUT STD_LOGIC);END M
26、UX21;ARCHITECTURE ART OF MUX21 ISBEGINY=A WHEN SEL=0 ELSE B;END ;LIBRARY IEEE; -4选1多路选择器的描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 IS PORT(A,B,C,D : IN STD_LOGIC; S1,S2 : IN STD_LOGIC; Y:OUT STD_LOGIC) ;END;ARCHITECTURE ART OF MUX41 ISCOMPONENT MUX41 PORT(A,B,SEL : IN STD_LOGIC; Y : OUT STD_LOGIC);
27、END COMPONENT; 51 Y1,Y2:STD_LOGIC;BEGINU1: MUX21 PORT MAP(A,B,S1, 52 );U2: MUX21 PORT MAP(C,D, 52 ,Y2);U2: MUX21 PORT MAP(Y1,Y2, 54 ,Y);END ;(十六) 在下面横线上填上合适的语句,完成8位奇偶校验电路的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PC ISPORT (A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y : OUT STD_LOGIC); END PC;ARCH
28、ITECTURE A OF PC IS BEGINPROCESS(A). VARIABLE TMP: STD_LOGIC; BEGINTMP 55 0;FOR I IN 0 TO 7 LOOPTMP:= 56 ;END LOOP;Y= 57 ;END PROCESS;END;(十七)在下面横线上填上合适的语句,完成一个逻辑电路的设计,其布尔方程为Y=(A+B)(CD)+(BF).LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY COMB ISPORT(A, B,C,D,E,F,: IN STD_LOGIC; Y: OUT STD_LOGIC);
29、END COMB;ARCHITECTURE ONE OF COMB ISBEGINY POUT POUT POUT POUT POUT POUT POUT POUT POUT POUT POUT=;END CASE;END IF;END PROCESS;END;(十九)在下面横线上填上合适的语句,完成下降沿触发的D触发器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF IS PORT(D,CLK:IN STD_LOGIC; Q, QB: OUT STD_LOGIC);END DFF;ARCHITECTURE BEHAVE OF D
30、FF ISBEGIN PROCESS(CLK)BEGINIF 61 AND CLKEVENT THEN Q = 62 ; QB=NOT D;END IF; END PROCESS; END BEHAVE;(二十)在下面横线上填上合适的语句,完成移位寄存器的设计。说明:4位串入-串出移位寄存器有有1个串行数据输入端(DI)、1个串行数据输出输出端(DO)和1个时钟输入端(CLK)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY SISO ISPORT(DI: IN STD_LOGIC; CLK:IN STD_LOGIC; DO:OUT STD_LO
31、GIC);END SISO;ARCHITECTURE A OF SISO ISSIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK,DI)BEGIN IF CLK EVENT AND CLK=1 THENQ(0)= 63 ; FOR 64 LOOP Q(I)= 65 ;END IF; END PROCESS; DO=Q(3);END A;(二十一)在下面横线上填上合适的语句,完成同步22进制计数器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGN
32、ED.ALL;ENTITY 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 IS SIGNAL QB, QA: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CIN: STD_LOGIC;BEGIN QB1=QB; QA1=QA;PROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENIF (QA= 66 ) OR (
33、QB=2 AND QA=1) THEN QA=0000; CIN=0;ELSIF QA= 67 THEN CIN=1; QA=QA+1;ELSE QA= 68 ; CIN=0; END IF; END IF; END PROCESS;PROCESS(CIN, CLK)BEGIN IF CLKEVENT AND CLK=1 THENIF (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;(二十二)在下面横线上填上合适的
34、语句,完成一个“”序列发生器的设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SENQGEN ISPORT(CLK,CLR,CLOCK:IN STD_LOGIC; ZO:OUT STD_LOGIC);END;ARCHITECTURE ART OF SENQGEN ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL Z:STD_LOGIC:=0;BEGINPROCESS(CLK,CLR)BEGINIF CLR=1 THEN COUNT=000; ELSE IF CLK=1 AND CLKEVENT THEN IF COUNT= 72 THEN COUNT=000; ELSE COUNTZZZZZZZZ= 73 ;END CASE;END PROCESS;PROCESS(CLOCK,Z) BEGIN IF CLOCK=1 AND CLOCKEVENT THEN ZO= 74 ; END IF;END PROCESS;END ART;(二十三)在下面横线上填上合适的语句,完成一个“”序列信号检测器的设计。LIBRARY IEEE;USE IEEE.STD_