您的当前位置:首页正文

VHDL试题

2022-11-14 来源:我们爱旅游
VHDL试题

1.结构体的三种描述⽅式:-⾏为描述-数据流描述-结构化描述2.⼀般将⼀个完整的VHDL程序称为设计实体

3. VHDL设计实体的基本结构由库、程序包、实体、结构体和配置组成。4.VHDL不区分⼤⼩写。

5.常⽤的库:library ieee ,程序包:use ieee.std_logic_1164.all6.VHDL程序的基本结构⾄少应包括实体、结构体和对库的引⽤声明。7.在VHDL程序中使⽤的⽂字、数据对象、数据类型都需要事先声明。

8. VHDL的实体由实体声明和结构体组成。VHDL的实体声明部分指定了设计单元的输⼊出端⼝或引脚,它是设计实体对外的⼀个通信界⾯,是外界可以看到的部分。VHDL的结构体⽤来描述实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。

9.端⼝⽅向模式:IN(输⼊)、OUT(输出<构造体内部不能再使⽤>)、INOUT(双向)、BUFFER (缓冲<构造体内部可再使⽤>)10.VHDL的标识符名必须以(字母开头),后跟若⼲字母、数字或单个下划线构成,但最后不能为(下划线),不能连续两个下划线相连。11. 为信号赋初值的符号是(:=);程序中,为变量赋值的符号是(:=),为信号赋值的符号是(<=)12. VHDL的数据类型包括标量类型、复合类型、存储类型和⽂件类型

请列出3个VHDL语⾔的数据类型,如实数、位等。位⽮量,字符,布尔量,整数,字符串,时间,错误等级,⾃然数,正整数。13. VHDL的操作符包括逻辑、算术、关系和并置四类

14.可编程逻辑器件:CPLD、FPGA、GAL、PLA、PAL(早期)

CPLD(复杂可编程逻辑器件):基于乘机项技术构造的可编程逻辑器件,不需要配置外部程序寄存芯⽚

FPGA(现场可编程门阵列):基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄存芯⽚

15.VHDL客体或数据对象:常量、信号、变量(可被多次赋值)、⽂件。

16.⼀个VHDL程序中可以使⽤多个进程process语句,⼀个设计实体可以拥有多个结构体。17.VHDL的预算操作包括:逻辑运算符、关系运算符、乘法运算符(优先级<<<)逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、18.VHDL中std_logic类型:‘Z’表⽰⾼阻,‘X’表⽰不确定

19.将⼀个信width定义为⼀个4位标准逻辑向量为:signal width :std_logic_vector(3 downto 0) 定义⼀个变量a,数据类型为4位位向量:variable a :bit_vector(3 downto 0)20.赋值语句是并⾏执⾏,IF语句是串⾏执⾏。21.标准逻辑是⼀个具有九值逻辑的数据类型

22.表⽰‘0’‘1’两值逻辑的数据类型是bit,表⽰‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic ,表⽰空操作的数据类型是NULL23.<=是⼩于等于关系运算符,⼜是赋值运算操作符

/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。NOT是逻辑运算符,表⽰取反,在所有操作符中优先级最⾼。30.并置运算符 & 的功能是把多个位或位向量合并为⼀个位向量。24.位类型的初始化采⽤字符,位⽮量⽤字符串

25.进程必须位于结构体内部,变量必须定义于进程内部26.进程执⾏的机制是敏感信号发⽣跳变

27. VHDL语⾔可以有以下3种形式的⼦结构描述语句: BLOCK语句结构; PROCESS语句结构和SUBPROGRAMS结构。

29整型对象的范围约束通常⽤ range 关键词,位⽮量⽤ downto/to 关键词。31. 判断CLK信号上升沿到达的语句是 if clk’event and clk = ‘1’ then .32. IF语句各条件间具有不同的优先级。

33、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时,其状态才发⽣改变。

34、 Moore状态机输出只依赖于器件的当前状态,与输⼊信号⽆关。

35.、IF语句根据指定的条件来确定语句执⾏顺序,共有3种类型:⽤于门闩控制的IF语句、⽤于⼆选⼀控制的IF语句、⽤于多选择控制的IF语句。简答题:

1、简述信号与变量的区别。a.信号延时赋值,变量⽴即赋值

b.信号的代⼊使⽤<=,变量的代⼊使⽤:=;c.信号在实际的硬件当中有对应的连线,变量没有2、简述可编程逻辑器件的优点。

a.集成度⾼,可以替代多⾄⼏千块通⽤IC芯⽚.极⼤减⼩电路的⾯积,降低功耗,提⾼可靠性

b.具有完善先进的开发⼯具.提供语⾔、图形等设计⽅法,⼗分灵活.通过仿真⼯具来验证设计的正确性c.可以反复地擦除、编程,⽅便设计的修改和升级

d.灵活地定义管脚功能,减轻设计⼯作量,缩短系统开发时间f.保密性好3、试⽐较moore状态机与mealy状态机的异同。

Moore输出只是状态机当前状态的函数. Mealy输出为有限状态机当前值和输⼊值的函数3、简述VHDL语⾔与计算机语⾔的差别。

a.运⾏的基础。计算机语⾔是在CPU+RAM构建的平台上运⾏。VHDL设计的结果是由具体的逻辑、触发器组成的数字电路b.执⾏⽅式.计算机语⾔基本上以串⾏的⽅式执

⾏.VHDL在总体上是以并⾏⽅式⼯作c.验证⽅式.计算机语⾔主要关注于变量值的变化.VHDL要实现严格的时序逻辑关系4、简述实体端⼝的模式

输⼊(Input):clk、reset、en、addr等输出(Output):输出信号,不能内部引⽤

双向(Inout):可代替所有其他模式,⽤于设计双向总线

缓冲(Buffer):与Output类似,但允许该管脚名作为⼀些逻辑的输⼊信号5、进程语句是设计⼈员描述结构体时使⽤最为频繁的语句,简述其特点。a.它可以与其它进程并发执⾏,并可存取结构体或实体中所定义的信号;b.进程结构中的所有语句都是按顺序执⾏的

c.为了启动进程,在进程结构中必须包含⼀个显式的敏感信号量表或者包含⼀个wait语句;d.进程之间的通信是通过信号量的传递来实现的6、简述如何利⽤计数器精确控制时序。a.只要知道晶振频率f,即可知道周期T=1/f;

b.使⽤⼀个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT;上例中以n为控制条件,可以控制其它信号在某时刻变⾼,某时刻变低,从⽽产⽣精确时序编程题:1.3-8译码器0LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 IS

PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder_3_to_8;

ARCHITECTURE rtl OF decoder_3_to_8 IS

SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGIN

indata <= c & b & a;

PROCESS (indata,g1,g2a,g2b)BEGIN

IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THENCASE indata IS

WHEN \"000\"=> y <= \"11111110\";WHEN \"001\" => y <= \"11111101\";WHEN \"010\" => y <= \"11111011\";WHEN \"011\" => y <= \"11110111\";WHEN \"100\" => y <= \"11101111\";WHEN \"101\" => y <= \"11011111\";WHEN \"110\" => y <= \"10111111\";

WHEN \"111\" => y <= \"01111111\";WHEN OTHERS=> y <= \"XXXXXXXX\";END CASE;ELSE

y <= \"11111111\";END IF;

END PROCESS;END rtl;

3、填写完成⼀个3-8线译码器的真值表(5分),并写出其VHDL程序(10分)。3-8译码器的真值表en a2a1a0 y1 000 000000011 001 000000101 010 ********1 011 000010001 100 000100001 101 001000001 110 010000001 111 100000000 xxx 00000000entity tri_eight isport(

a: in std_logic_vector (2 downto 0);en: in std_logic;

y: out std_logic_vector (7 downto 0));

end tri_eight; (2) architecture a of tri_eight issignal sel: std_logic_vector (3 downto 0); (4) begin

sel(0) <= a(0); sel(1) <= a(1); sel(2) <= a(2); sel(3) <= en; (5) with sel selecty <= \"00000001\" when \"1000\\"00000010\" when \"1001\\"00000100\" when \"1010\\"00001000\" when \"1011\\"00010000\" when \"1100\\"00100000\" when \"1101\\"01000000\" when \"1110\\"10000000\" when \"1111\

\"00000000\" when others; (9) end a; (10) 3、根据下表填写完成⼀个3-8线译码器的VHDL程序(16分)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 IS

PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;

y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); (2)END decoder_3_to_8;

ARCHITECTURE rtl OF decoder_3_to_8 IS

SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); (4)BEGIN

indata <= c & b & a; (6)PROCESS (indata,g1,g2a,g2b)BEGIN

IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN (8)CASE indata ISWHEN \"000\"=> y <= \"11111110\";WHEN \"001\" => y <= \"11111101\";WHEN \"010\" => y <= \"11111011\"; (10)WHEN \"011\" => y <= \"11110111\";

WHEN \"100\" => y <= \"11101111\";WHEN \"101\" => y <= \"11011111\";WHEN \"110\" => y <= \"10111111\"; (12)WHEN \"111\" => y <= \"01111111\";WHEN OTHERS=> y <= \"XXXXXXXX\";END CASE;ELSE

y <= \"11111111\"; (14)END IF;

END PROCESS; (16)END rtl;

2.⼆选⼀VHDL程序Entity mux isport(d0,d1,sel:in bit;q:out BIT );end mux;

architecture connect of MUX issignal tmp1, TMP2 ,tmp3:bit;begincale:blockbegin

tmp1<=d0 and sel;tmp2<=d1 and (not sel)tmp3<= tmp1 and tmp2;q <= tmp3;end block cale;end CONNECT;2.2⼆选⼀IF语句编写Entity sel2 is

Port (a,b : in std_logic;sel : in std_logic;q : out std_logic);End sel2;

Architecture a of sel2 isbegin

if sel = ‘0’ then q <= a;else q <= b;end if;end a;

3.三态门电原理图如右图所⽰,真值表如左图所⽰,请完成其VHDL程序构造体部分。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri_gate IS

PORT(din,en:IN STD_LOGIC;

dout : OUT STD_LOGIC);END tri_gate ;

ARCHITECTURE zas OF tri_gate ISBEGIN

PROCESS (din,en)BEGIN

IF (en=‘1') THEN dout <= din;ELSE dout <= ‘Z’;END IF;

END PROCESS ;END zas ;

4.四选⼀、⽤IF语句编写⼀个四选⼀电路,要求输⼊d0~d3, s为选择端,输出y。entity MUX4 isport( (2)

s: in std_logic_vector(1 downto 0); (4)d: in std_logic_vector(3 downto 0); (6)y: out std_logic (8));

end MUX4;

architecture behave of MUX4 isbeginprocess(s)beginif (s=\"00\") theny<=d(0);

elsif (s=\"01\") theny<=d(1);

elsif (s=\"10\") theny<=d(2);

elsif (s=\"11\") theny<=d(3);elsenull;end if;end process;end behave;

5、填写完成⼀个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。8 -3线编码器真值表en b y0y1y21 00000000 0001 00000010 0011 00000100 0101 00001000 0111 00010000 1001 00100000 1011 01000000 1101 10000000 1110 xxxxxxxx ⾼阻态entity eight_tri isport(

b: in std_logic_vector(7 downto 0);

en: in std_logic;

y: out std_logic_vector(2 downto 0));

end eight_tri; (3)

architecture a of eight_tri is

signal sel: std_logic_vector(8 downto 0); (4)beginsel<=en & b;

y<= “000” when (sel=”100000001”)else“001” when (sel=”100000010”)else“010” when (sel=”100000100”)else“011” when (sel=”100001000”)else“100” when (sel=”100010000”)else“101” when (sel=”100100000”)else“110” when (sel=”101000000”)else“111” when (sel=”110000000”)else(9)“zzz”;(10)end a;

6. 图中给出了4位逐位进位全加器,请完成其VHDL程序。(本题16分)

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all;

entity full_add is port (a,b: in std_logic_vector (3 downto 0); carr: inout std_logic_vector (4 downto 0); sum: out std_logic_vector (3 downto 0)); end full_add;

architecture full_add_arch of full_add is component adder port (a,b,c: in std_logic; carr: inout std_logic; sum: out std_logic); end component; begin carr(0)<='0'; u0:adder portmap(a(0),b(0),carr(0),carr(1),sum(0)); u1:adder port map(a(1),b(1),carr(1),carr(2),sum(1)); u2:adder port map(a(2),b(2),carr(2),carr(3),sum(2)); u3:adder portmap(a(3),b(3),carr(3),carr(4),sum(3)); end full_add_arch;

7.数值⽐较器VHDL 程序的进程(不必写整个结构框架),要求使能信号g 低电平时⽐较器开始⼯作,输⼊信号p = q ,输出equ 为‘0’,否则为‘1’。(本题10分) process(p,q)begin if g='0' then if p = q then equ_tmp <= '0'; else equ_tmp <= '1'; end if; else equ_tmp <= '1'; end if; end process;

8. 编写⼀个2输⼊与门的VHDL 程序,请写出库、程序包、实体、构造体相关语句,将端⼝定义为标准逻辑型数据结构(本题10分)LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand2 IS&a by

PORT (a ,b:IN STD_LOGIC; y:OUT STD_LOGIC); END nand2;ARCHITECTURE nand2_1 OF nand2 IS BEGINy <= a NAND b;END nand2_1;

9设计异或门逻辑:(本题20分)

如下异或门,填写右边的真值表。(此项5分)其表达式可以表⽰为:这⼀关系图⽰如下:

试编写完整的VHDL 代码实现以上逻辑。可以采⽤任何描述法。library ieee;

use ieee.std_logic_1164.all; entity yihuo1 is port( a,b :in std_logic;y :out std_logic );end yihuo1;

architecture yihuo1_behavior of yihuo1 is

begin y<=a xor b;end yihuo1_behavior;A B Y 0 0 0 0 1 1 1 0 1 11&&+a baby

10. 4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变⾼后,在上升沿开始⼯作;输⼊时钟信号为clk,输出为q。(本题10分)Process(reset,clk)begin

if reset = ‘0’ then q <= “0000”;

elsif clk’event and clk = ‘1’ then q <= q + 1;end if;end process;

11、根据已给出的⼆-⼗(BCD)进制优先权编码器功能表,试写出其VHDL程序。(本题15分)⼆-⼗(BCD)进制优先权编码器功能表输⼊输出

I1 I2 I3 I4 I5 I6 I7 I8 I9 Y3 Y2 Y1 Y01 1 1 1 1 1 1 1 1 1 1 1 1X X X X X X X X 0 0 1 1 0X X X X X X X 0 1 0 1 1 1X X X X X X 0 1 1 1 0 0 0X X X X X 0 1 1 1 1 0 0 1X X X X 0 1 1 1 1 1 0 1 0X X X 0 1 1 1 1 1 1 0 1 1X X 0 1 1 1 1 1 1 1 1 0 0X 0 1 1 1 1 1 1 1 1 1 0 10 1 1 1 1 1 1 1 1 1 1 1 0entity prior isport(

d : in std_logic_vector(9 downto 1);q : out std_logic_vector(3 downto 0));

end prior; (2)

architecture behavior of prior isbeginprocess(d)begin

if d = \"111111111\" thenq <= \"1111\";elsif d(9) = '0' thenq <= \"0110\";elsif d(8) = '0' thenq <= \"0111\";elsif d(7) = '0' thenq <= \"1000\";

elsif d(6) = '0' then q <= \"1001\"; elsif d(5) = '0' then q <= \"1010\"; elsif d(4) = '0' then q <= \"1011\"; elsif d(3) = '0' then q <= \"1100\"; elsif d(2) = '0' then q <= \"1101\"; elsif d(1) = '0' then q

<= \"1110\"; end if; end process ;end behavior ;1、完成下图所⽰的触发器。(本题10分)library IEEE;

use IEEE.std_logic_1164.all;entity VposDff is

port (CLK, CLR, D: in STD_LOGIC; ----------2分 Q, QN: out STD_LOGIC ); ----------4分 end VposDff;architecture VposDff_arch of VposDff is beginprocess ( CLK, CLR ) ----------6分 begin

if CLR='1' then Q <= '0'; QN <='1'; elsif CLK'event and CLK='1' thenQ <= D; QN <= not D; ----------8分end if;

end process; ----------10分 end VposDff_arch;⼀、 填空题

1. 在VHDL 中最常⽤的IEEE 标准库是 std_logic_1164 数据包。CLR CLK DQQN

VHDL是⼀种硬件描述语⾔。

3. 可编程控制器所使⽤的软件主要是Alter公司的Quartus_软件进⾏开发设计和仿真。

4. 可编程控制器是针对PLD的可编程使⽤HDL语⾔,其中PLD的意思是_ 可编程逻辑器件_,HDL的意思是____硬件描述语⾔___________。VHDL中,下降沿的描述语⾔是___clk'event and clk='0'(下降沿)clk'event and clk='1'(上升沿)____________。6. 实体的关键字是___Entity________,变量的关键字是___Port____________。PLA是同时对__与____和“或”阵列,⽽PAL只对__与_______进⾏变成。

8. 两位逻辑变量的取值有四个,分别是___“00”“01”“10”“11”__________________(要求⽤程序中的书写格式表⽰)。9. 在可VHDL语⾔中,‘Z’表⽰______⾼阻抗_______状态,‘-’表⽰______忽略________________。

10. 调⽤标准程序包的调⽤语句是____use ieee.std_logic_1164.all_____________________________________。process语句中必须加上敏感信号_________列表,以__End process;____________结束。12. 信号的赋值⽤___<=______,变量的赋值⽤____:=______。

VHDL程序的基本结构由库、程序包、__实体________、__结构体______和配置等部分组成。

14. 可编程控制器是针对PLD的可编程使⽤HDL语⾔,其中PLD的意思是__可编程逻辑器件______,HDL的意思是____硬件描述语⾔_________。

15. 可编程逻辑器件在编程是必须调⽤ieee库,ieee是___Institute of Electrical and Electronics Engineers (IEEE)电⽓和电⼦⼯程师协会___________的简称。16. 可编程逻辑器件的程序主要包括调⽤程序包、_实体_______、__结构体________和配置四个部分。17. 结构体的关键字是__architecture____________信号的关键字是______signal_____________。PROM只对___或_____阵列编程,PAL只对___与_____阵列编程。

19. 调⽤标准程序包的调⽤语句是___use ieee._std_logic_1164.all;_____________________________________。20. 布尔变量的两个结果是__ture________和___false_______。

21. 在VHDL中,除了‘0’和‘1’外,还⽤__‘L’__和__‘H’___表⽰同样的状态。

22. 上升沿的VHDL描述语⾔是___clk'event and clk=‘1’_____________,下降沿描述语⾔为__clk'event and clk='0'____________。23. 条件判断语句必须放在___过程______________中,⽽不能独⽴使⽤。process是⼀个________________过程,他还暗含⼀个wait语句。25. 变量有____________和______________之分。⼆、选择

1. VHDL常⽤的库是(A)标准库。A、IEEE;B、STD;C、WORK;D、PACKAGE

2.在VHDL的端⼝声明语句中,⽤(A )声明端⼝为输⼊⽅向。A、IN;B、OUT;

C、INOUT;D、BUFFER

3. 在VHDL的端⼝声明语句中,⽤(C)声明端⼝为双向⽅向。A、IN;B、OUT;C、INOUT;D、BUFFER

4. 在VHDL中,为⽬标变量赋值的符号是(C)。A、=:;B、= ;C、:= ;D、<=

5. 下列(不)可作为信号的数据类型是。A、bitB、std_logicC、integerD、max

6 下列可⽤作项⽬名称的是( C)。A. and1B.whenC. entityD.banjiaqi

7. 下列语句正确的是( D )。A. signal a;b;c: std_logic;B. Variable ab : integer;C. Port( a : in bit; b: out bit;)D. Use ieee.std_logic_1164.all;8. 下列语句不正确的是( A )。A. if a=0 then y<=b; end if;

B. Q<=D when CP’event and CP=’1’;C. Q<=d ; Y<= a and b;D. Library ieee;

9 下列哪些关键字在相应的程序段不可缺少。(A )A.Entity B. port C. and D. process

三写出实现下列操作的VHDL程序语句(只写出该操作的语句,每⼩题4分,共20分)。当时钟cp的上升沿到来时将信号D赋给输出Q;1cp“event and cp=‘1’函数

把低电平赋给信号Data;Data<=‘L'把数字0赋给变量B。B:=‘0’

四、判断下列程序段是否有错,如果有,指出错误并写出改正后的程序1. Architecture DDD of DDD isSignal A, En: std_logic;Process (A , En);Variable B : std_logic;Begin

If En = 1then B <= A;EN=‘1’End if;End process;

Architecture one of one is

Variable a ,b , c: std_logic;Beginc<= a + b;End one;Library ieee;

Use ieee.std_logic_1164.all;Entity mux21 is

Port ( a, b : in std_logic;Sel : in std_logic;C : out std_logic;);End mox21;

Architecture one of mux21 isBegin

If sel=‘0’then C:= a;Else C:= b;End if;End;

五, 编写程序,实现下列逻辑功能。(要求只写完整程序)1. 编写实现⼋选⼀数据选择器的VHDL程序,项⽬名称⽤mux81;LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux81 IS

PORT (A,B,C,D,E,F,G,H:IN STD_LOGIC;S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC);end mux81;

ARCHITECTURE mux OF mux81 ISbegin

Y<= A when S=\"000\" ELSEB when S=\"001\" ELSEC when S=\"010\" ELSED when S=\"011\" ELSEE when S=\"100\" ELSEF when S=\"101\" ELSEG when S=\"110\" ELSEH ;end mux;

⼋选⼀须具选择器:⽤CASE语句。LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux_8_1 IS

PORT (A,B,C,D,E,F,G,H,En:IN STD_LOGIC;S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC);end mux_8_1;

ARCHITECTURE mux OF mux_8_1 IS beginprocess( S,A,B,C,D,E,F,G,H,En)beginif En='0' thencase S is

when \"000\" => Y<=A;when \"001\" => Y<=B;when \"010\" => Y<=C;when \"011\" => Y<=D;when \"100\" => Y<=E;when \"101\" => Y<=F;when \"110\" => Y<=G;when \"111\" => Y<=H;end case;end if;end process;end mux;

2. 编写实现三-⼋译码器的VHDL程序;1。⽤CASE语句LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS138 IS

PORT ( S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC_vector(7 downto 0));end LS138;

ARCHITECTURE mux_behave OF LS138 ISbegin

PROCESS(S) ISBEGINCASE S IS

when \"000\"=>Y<=(0=>'0',OTHERS=>'1');when \"001\"=>Y<=(1=>'0',OTHERS=>'1');when \"010\"=>Y<=(2=>'0',OTHERS=>'1');when \"011\"=>Y<=(3=>'0',OTHERS=>'1');when \"100\"=>Y<=(4=>'0',OTHERS=>'1');when \"101\"=>Y<=(5=>'0',OTHERS=>'1');when \"110\"=>Y<=(6=>'0',OTHERS=>'1');when \"111\"=>Y<=(7=>'0',OTHERS=>'1');END CASE;END PROCESS;end mux_behave;

3. 编写实现全加器的VHDL程序,项⽬名称⽤fulladder,输⼊⽤Ain,Bin ,Cin,输出⽤Sum和Co;全加器:LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS

PORT (Ain,Bin ,Cin :IN STD_LOGIC;Sum,Co: out STD_LOGIC );end full_adder;

ARCHITECTURE rtl OF full_adder ISBEGIN

Sum<=Ain Xor Bin xor Cin ;

Co<= (Ain and Bin) or ( Ain Xor Bin ) and Cin ; END rtl;4. 编写实现半加器的VHDL程序。半加器1LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY halfadder ISPORT (A,B:IN STD_LOGIC;Co: out STD_LOGIC;S: out STD_LOGIC);end halfadder;

ARCHITECTURE rtl OF halfadder ISBEGINS <=A XOR B;Co <=A AND B;END rtl;

因篇幅问题不能全部显示,请点此查看更多更全内容