好文档 - 专业文书写作范文服务资料分享网站

VHDL程序练习题(含答案)

天下 分享 时间: 加入收藏 我要投稿 点赞

. .. . .

VHDL程序填空题

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

USE IEEE.STD_LOGIC_1164.ALL; 1 MUX21 IS PORT(SEL:IN STD_LOGIC; A,B:IN STD_LOGIC; Q: OUT STD_LOGIC ); END MUX21;

2 BHV OF MUX21 IS BEGIN

Q<=A WHEN SEL=’1’ ELSE B; END BHV;

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

USE IEEE.STD_LOGIC_1164.ALL; ENTITY BCD_7SEG IS

PORT( 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=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ 4 ; ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSIF BCD_LED=\ ELSE LEDSEG<= 5 ; END IF;

END PROCESS; END BEHAVIOR;

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

. . . w

. .. . .

USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX16 IS

PORT( 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 IS BEGIN

WITH 7 SELECT Y <= D0 WHEN \ D1 WHEN \ D2 WHEN \ D3 WHEN 8 ; 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 保持

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY JKFF1 IS

PORT (PSET,CLR,CLK,J,K : IN STD_LOGIC; Q : OUT STD_LOGIC); END JKFF1;

ARCHITECTURE MAXPLD OF JKFF1 IS SIGNAL TEMP:STD_LOGIC; BEGIN

PROCESS(PSET,CLR,CLK) BEGIN

IF (PSET='0'AND CLR='1' ) THEN TEMP<='1'; ELSIF (PSET='1'AND CLR='0' ) THEN TEMP<='0'; ELSIF (PSET='0'AND CLR='0' ) THEN NULL;

9 (CLK'EVENT AND CLK='1') THEN 10 (J='0' AND K='0') THEN TEMP<=TEMP; . . . w

. .. . .

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,电路的预置数据输入端为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 IS PORT(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 IS

SIGNAL QTEMP:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

PROCESS(CLK,CLR,LD) BEGIN

IF CLR='1' THEN QTEMP<=\ --CLR=1清零 ELSIF (CLK'EVENT AND CLK='1') THEN --判断是否上升沿

IF LD='1' THEN QTEMP<= 12 ; --判断是否置位

ELSIF EN='1' THEN --判断是否允许计数 IF QTEMP=\ 13 ; --等于0,计数值置5 ELSE QTEMP<= 14 ; --否则,计数值减1 END IF;

END IF; END IF; Q<=QTEMP; END PROCESS; END BEHA;

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

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

. . . w

. .. . .

为状态0。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MOORE1 IS

PORT (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:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

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

IF RST='1' THEN CST<= 15 ; --异步复位为状态0 ELSIF CLK'EVENT AND CLK='1' THEN

CST<= 16 ; --现态=次态 END IF; END PROCESS;

COM: PROCESS(CST, DATAIN) BEGIN CASE CST IS WHEN ST0 => IF DATAIN=\ ELSE NST<=ST0; Q1<=\ WHEN ST1 => IF DATAIN=\ ELSE NST<=ST1; Q1<=\ WHEN ST2 => IF DATAIN=\ ELSE NST<=ST2; Q1<=\ WHEN ST3 => IF DATAIN=\ ELSE NST<=ST3; Q1<=\

17 ; END PROCESS; Q<=Q1; END;

(七) 在下面横线上填上合适的语句,完成减法器的设计。 由两个1位的半减器组成一个1位的全减器 --1位半减器的描述 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY HALF_SUB IS

. . . w

. .. . .

PORT(A,B : IN STD_LOGIC; DIFF,COUT : OUT STD_LOGIC); END HALF_SUB;

ARCHITECTURE ART OF HALF_SUB IS BEGIN

COUT<= 18 ; --借位 DIFF<= 19 ; --差 END ;

--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 IS COMPONENT HALF_SUB PORT(A,B : IN STD_LOGIC; DIFF,COUT : OUT STD_LOGIC); END COMPONENT;

20 T0,T1,T2:STD_LOGIC; BEGIN U1: HALF_SUB PORT MAP(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 IS PORT(CLK:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC ); END CLKDIV8_1TO2;

ARCHITECTURE TWO OF CLKDIV8_1TO2 IS

SIGNAL CNT:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL CK:STD_LOGIC; BEGIN

PROCESS(CLK) BEGIN

IF RISING_EDGE( 25 ) THEN IF CNT=\

. . . w

VHDL程序练习题(含答案)

.....VHDL程序填空题(一)在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。LIBRARYIEEE;USEIEEE.STD_L
推荐度:
点击下载文档文档为doc格式
7xzmp7qwyn507xn0uyq64mg6283nbb00pwb
领取福利

微信扫码领取福利

微信扫码分享