1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài tập thiết kế logic số hay

7 1,3K 15
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 250,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập thiết kế logic số hay

Trang 1

1.Bộ MUX 8-1

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use

IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Mux_v3 is

port(

D_in : in std_logic_vector(7 downto 0);

sel :in std_logic_vector (2 downto 0);

y :out std_logic );

end Mux_v3;

architecture Behavioral of Mux_v3 is

begin

with sel select

y <= D_in(0) when "000",

D_in(1) when "001",

D_in(2) when "010",

D_in(3) when "011",

D_in(4) when "100",

D_in(5) when "101",

D_in(6) when "110",

D_in(7) when others;

end Behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY test_mux_v2 IS

END test_mux_v2;

ARCHITECTURE behavior OF

test_mux_v2 IS

COMPONENT MUX_8V2

PORT(

D_IN : IN std_logic_vector(7 downto

0);

SEL : IN std_logic_vector(2 downto

0);

Y_OUT : OUT std_logic

);

END COMPONENT;

signal D_IN : std_logic_vector(7

downto 0) := (others => '0');

signal SEL : std_logic_vector(2 downto

0) := (others => '0');

signal Y_OUT : std_logic;

BEGIN

uut: MUX_8V2 PORT MAP (

D_IN => D_IN,

SEL => SEL,

Y_OUT => Y_OUT

);

D_in<="11001001";

sel <=”000”, ”001” after 20ns, “010”

after 40ns, “011” after 60ns, “100” after

80ns;

END;

2.Bộ DEMUX 1-8

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Demux_v1 is Port ( D : in STD_LOGIC;

sel : in STD_LOGIC_VECTOR (2 downto 0);

Y : out STD_LOGIC_VECTOR (7 downto 0));

end Demux_v1;

architecture Behavioral of Demux_v1 is begin

process(D,Sel) begin case (sel)is when "000"

=>y<=(0=>D,others=>‟0‟);

when "001"

=>y<=(1=>D,others=>‟0‟);

when "010"

=>y<=(2=>D,others=>‟0‟);

when "011"

=>y<=(3=>D,others=>‟0‟);

when "100"

=>y<=(4=>D,others=>‟0‟);

when "101"

=>y<=(5=>D,others=>‟0‟);

when "110"

=>y<=(6=>D,others=>‟0‟);

when others

=>y<=(7=>D,others=>‟0‟);

end case;

end process;

end Behavioral;

Testbench:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY test_dmuxv1 IS END test_dmuxv1;

ARCHITECTURE behavior OF test_dmuxv1 IS

COMPONENT Demux_v1 PORT(

D : IN std_logic;

sel : IN std_logic_vector(2 downto 0);

Y : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

signal D : std_logic := '0';

signal sel : std_logic_vector(2 downto 0) := (others => '0');

signal Y : std_logic_vector(7 downto 0);

BEGIN uut: Demux_v1 PORT MAP (

D => D, sel => sel,

Y => Y );

D<='1', „0‟ after 30ns, „1‟ after 60ns, „0‟

after 80ns, „1‟ after 200ns;

sel<="000", “001” after 100ns;

END;

3.Giải mã BCD-7Seg

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity BCD_7seg is Port ( input : in STD_LOGIC_VECTOR (3 downto 0);

output : out STD_LOGIC_VECTOR (6 downto 0));

end BCD_7seg;

architecture Behavioral of BCD_7seg is begin

output<="1111110" when input = x"0"

else "0110000" when input = x"1" else "1101101" when input = x"2" else "1111001" when input = x"3" else "0110011" when input = x"4" else "1011011" when input = x"5" else "1011111" when input = x"6" else "1110000" when input = x"7" else "1111111" when input = x"8" else "1111011" when input = x"9" else "1110111" when input = x"A" else "0011111" when input = x"B" else "1001110" when input = x"C" else "0111101" when input = x"D" else "1001111" when input = x"E" else "0000001" ;

end Behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY test_BCD IS END test_BCD;

ARCHITECTURE behavior OF test_BCD IS

COMPONENT BCD_7seg PORT(input : IN std_logic_vector(3 downto 0);

output : OUT std_logic_vector(6 downto 0)

);

END COMPONENT;

signal input : std_logic_vector(3 downto 0) := (others => '0');

signal output : std_logic_vector(6 downto 0);

BEGIN uut: BCD_7seg PORT MAP ( input => input,

output => output );

input <= x"0",x"1" after 10 ns ,x"3" after

30 ns ,x"4" after 50 ns ; END;

4.Mã hóa n-to-2 n với n=3

Library IEEE;

Use IEEE.STD_LOGIC_1164.ALL; Use IEEE.STD_LOGIC_ARITH.ALL; Use

IEEE.STD_LOGIC_UNSIGNED.ALL; Entity encoder_n_2n is

Port (X: in STD_LOGIC_VECTOR (2 downto 0);

Y: out STD_LOGIC_VECTOR (7 downto 0); End encoder_n_2n;

Architecture Behavioral of encoder_n_2n

is Begin Y<=”00000001” when (X=”000”) else “00000010” when (X=”001”) else “00000100” when (X=”010”) else “00001000” when (X=”011”) else “00010000” when (X=”100”) else “00100000” when (X=”101”) else “01000000” when (X=”110”) else “10000000”;

End behavioral;

TestBench

Library IEEE;

Use IEEE.STD_LOGIC_1164.ALL; Use

IEEE.STD_LOGIC_UNSIGNED.ALL; Use IEEE.NUMERIC_STD.ALL; Entity test_encoder_n_2n is End test_encoder_n_2n;

Architecture behavior of test_encoder_n_2n is Component encoder_n_2n Port (X: in std_logic_vector (2 downto 0);

Y: out std_logic_vector (7 downto 0)

);

End component;

Signal X: std_logic_vector (2 downto 0) := (others => „0‟);

Signal Y: std_logic_vector (7 downto 0); Signal clk: std_logic :=‟0‟;

Begin Uut: encoder_n_2n PORT MAP(

X=>X, Y=>Y );

Clk<=not clk after 1ns;

Process (clk) Begin

Trang 2

If (clk‟event and clk=‟1‟) then

X<=X+1;

End if;

End process;

End;

5.Mã hóa ưu tiên 8-3 hoạt động ở mức

tích cực cao

Library IEEE;

Use IEEE.STD_LOGIC_1164.ALL;

Use IEEE.STD_LOGIC_ARITH.ALL;

Use

IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity uutien_encoder is

Port (y: in std_logic_vector (7 downto

0);

Z: out std_logic_vector (2

downto 0);

End uutien_encoder;

Architecture behavioral of

uutien_encoder is

Begin

Process (y)

Begin

If y(0)=‟1‟ then z<=”000”;

Elsif y(1)=‟1‟ then z<=”001”;

Elsif y(2)=‟1‟ then z<=”010”;

Elsif y(3)=‟1‟ then z<=”011”;

Elsif y(4)=‟1‟ then z<=”100”;

Elsif y(5)=‟1‟ then z<=”101”;

Elsif y(6)=‟1‟ then z<=”110”;

Elsif y(7)=‟1‟ then z<=”111”;

End if;

End process;

End behavioral;

TestBench

Library IEEE;

Use IEEE.STD_LOGIC_1164.ALL;

Use

IEEE.STD_LOGIC_UNSIGNED.ALL;

Use IEEE.NUMERIC_STD.ALL;

Entity test_encoder_uutien is

End test_encoder_uutien;

Architecture behavior of

test_encoder_uutien is

Component encoder_uutien

Port (Y: in std_logic_vector (7 downto

0);

Z: out std_logic_vector (2

downto 0)

);

End component;

Signal Y: std_logic_vector (7 downto 0)

:= (others => „0‟);

Signal Z: std_logic_vector (2 downto 0);

Begin

Uut: uutien_encoder PORT MAP(

Y=>Y,

Z=>Z

);

Y<=”00001110”;

End;

6.Bộ tính toán số học ALU cơ bản dùng các toán tử trong VHDL

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity ALU_dongian is Port ( a : in STD_LOGIC_VECTOR (7 downto 0);

b : in STD_LOGIC_VECTOR (7 downto 0);

cin : in STD_LOGIC;

sel : in STD_LOGIC_VECTOR (3 downto 0);

y : out STD_LOGIC_VECTOR (7 downto 0));

end ALU_dongian;

architecture Behavioral of ALU_dongian

is signal y_lg,y_art:std_logic_vector(7 downto 0);

begin ALU_unit: process(sel,a,b) begin

case sel is when "0000"=>y_lg<= not a;

when "0001"=>y_lg<= not b;

when "0010"=>y_lg<= a and b;

when "0011"=>y_lg<= a or b;

when "0100"=>y_lg<= a nand b;

when "0101"=>y_lg<= a xor b;

when "0110"=>y_lg<= a nor b;

when "0111"=>y_lg<= a xnor b;

when "1000"=>y_art<= a;

when "1001"=>y_art<= a+1;

when "1010"=>y_art<= a -1;

when "1011"=>y_art<= b;

when "1100"=>y_art<= b+1;

when "1101"=>y_art<= b-1;

when "1110"=>y_art<= a + b;

when others=>y_art<= a + b + cin;

end case;

end process;

y<=y_lg when sel(3)='0' else y_art ; end Behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY testALU IS END testALU;

ARCHITECTURE behavior OF testALU

IS COMPONENT ALU_dongian PORT(

a : IN std_logic_vector(7 downto 0);

b : IN std_logic_vector(7 downto 0);

cin : IN std_logic;

sel : IN std_logic_vector(3 downto 0);

y : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

signal a : std_logic_vector(7 downto 0) := (others => '0');

signal b : std_logic_vector(7 downto 0) := (others => '0');

signal cin : std_logic := '0';

signal sel : std_logic_vector(3 downto 0) := (others => '0');

signal y : std_logic_vector(7 downto 0);

BEGIN uut: ALU_dongian PORT MAP (

a => a,

b => b, cin => cin, sel => sel,

y => y );

cin<='0';

a <="00000011";

b <="00001000";

sel <="1110";

END;

7.Bộ cộng 8bit có dấu

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity congcodau is port (A: in std_logic_vector (7 downto 0);

B: in std_logic_vector (7 downto 0);

Ci: in std_logic;

Co: out std_logic;

E: in std_logic);

End congcodau;

Architecture behavioral of congcodau is Signal A1, B1, C1, S1: std_logic_vector (7 downto 0) := x”00”;

Signal sel: std_logic_vector (1 downto 0);

Signal dau: std_logic :=‟0‟;

Begin Sel<=A(7)&B(7);

C1(0)<=Ci;

A1(6 downto 0) <= A(6 downto 0);

B1(6 downto 0) <= B(6 downto 0);

Process (A1, B1, sel) Begin

Case sel is When “11”=>s1<=A1+B1-C1;

dau<=‟1‟;

When “00”=>s1<=A1+B1+C1;

dau<=‟0‟;

When “10”=>if(A1>B1) then S1<=A1-B1-C1; dau<=‟1‟;

Else S1<=B1-A1+C1;

dau<=‟0‟;

End if;

When others=>if(A1>=B1) then S1<=A1-B1+C1; dau<=‟0‟;

Else S1<=B1-A1-C1; dau<=‟1‟;

End if;

End case;

End process;

Process (E, dau, s1, A, B) Begin

If (E=‟1‟) then s(6 downto 0) <= s1(6 downto 0); s(7)<=dau; Co<=S1(7); End if;

Else s<=(others=>‟Z‟); Co<=‟Z‟; End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL;

Entity tb is End tb;

Architecture behavioral of tb is Component congcodau Port(

A: in std_logic_vector (7 downto 0);

B: in std_logic_vector (7 downto 0);

S: out std_logic_vector (7 downto 0);

Ci: in std_logic;

Co: out std_logic;

E: in std_logic;

);

End component;

Signal A: std_logic_vector (7 downto 0) := (others=>‟0‟);

Signal B: std_logic_vector (7 downto 0) := (others=>‟0‟);

Signal Ci: std_logic := „0‟;

Signal E: std_logic := „0‟;

Signal S: std_logic_vector (7 downto 0); Signal Co: std_logic;

Begin Uut: congcodau PORT MAP(

A=>A, B=>B, S=>S, Ci=>Ci, Co=>Co, E=>E );

E<=‟1‟;

Ci<=‟0‟;

A<=”10000101”, “00000011” after 100ns;

B<=”10000011”;

End;

Trang 3

8.Bộ cộng 8bit ko dấu

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use

IEEE.STD_LOGIC_UNSIGNED.ALL;

entity congkodau is

port (A: in std_logic_vector (7 downto

0);

B: in std_logic_vector (7

downto 0);

S: out std_logic_vector (7

downto 0);

Ci: in std_logic;

Co: out std_logic;

E: in std_logic);

End congkodau;

Architecture behavioral of congkodau is

Signal A1, B1, C1, S1: std_logic_vector

(8 downto 0) := ”000000000”;

Begin

C1(0)<=Ci;

A1(7 downto 0) <= A;

B1(7 downto 0) <= B;

S1<=A1+B1+C1;

Process (E)

Begin

If (E=‟1‟) then

S<=S1(7 downto 0);

Co<=S1(8);

Else S<=(others=>‟Z‟; Co<=‟Z‟;

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

Entity tb_kodau is

End tb_kodau;

Architecture behavioral of tb_kodau is

Component congkodau

Port(

A: in std_logic_vector (7

downto 0);

B: in std_logic_vector (7

downto 0);

S: out std_logic_vector (7

downto 0);

Ci: in std_logic;

Co: out std_logic;

E: in std_logic;

);

End component;

Signal A: std_logic_vector (7 downto 0)

:= (others=>‟0‟);

Signal B: std_logic_vector (7 downto 0)

:= (others=>‟0‟);

Signal Ci: std_logic := „0‟;

Signal E: std_logic := „0‟;

Signal S: std_logic_vector (7 downto 0);

Signal Co: std_logic;

Begin Uut: cong8bit PORT MAP(

A=>A, B=>B, S=>S, Ci=>Ci, Co=>Co, E=>E );

E<=‟1‟, „0‟ after 100ns;

Ci<=‟0‟, „1‟ after 50ns;

A<=x”15”, x“37” after 10ns, x”10” after 50ns, x”25” after 70ns;

B<=x”17”, x”30” after 10ns, x”28” after 50ns, x”13” after 70ns;

End;

9.So sánh 2 số 8bit ko dấu

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity ss8bit is Port ( a : in STD_LOGIC_VECTOR (7 downto 0);

b : in STD_LOGIC_VECTOR (7 downto 0);

sel : in STD_LOGIC_VECTOR (2 downto 0);

FL : out STD_LOGIC;

FB : out STD_LOGIC;

FN : out STD_LOGIC;

FK : out STD_LOGIC;

FLB : out STD_LOGIC;

FNB : out STD_LOGIC);

end ss8bit;

architecture Behavioral of ss8bit is signal F:std_logic_vector(5 downto 0);

begin (FL,FB,FN,FK,FLB,FNB)<=F;

process(sel,a,b) begin case sel is

when "000" => if (a > b) then

F <="100000";

else

F <="000000";

end if;

when "001" => if (a = b) then

F <="010000";

else

F <="000000";

end if;

when "010" => if (a < b) then

F <="001000";

else

F <="000000";

end if;

when "011" => if (a /= b) then F <="000100";

else

F <="000000";

end if;

when "100" => if (a >= b) then F <="000010";

else

F <="000000";

end if;

when "101" => if (a <= b) then F <="000001";

else

F <="000000";

end if;

when others => f<="000000";

end case;

end process;

end Behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY testss_8bit IS END testss_8bit;

ARCHITECTURE behavior OF testss_8bit IS

COMPONENT ss8bit PORT(

a : IN std_logic_vector(7 downto 0);

b : IN std_logic_vector(7 downto 0);

sel : IN std_logic_vector(2 downto 0);

FL : OUT std_logic;

FB : OUT std_logic;

FN : OUT std_logic;

FK : OUT std_logic;

FLB : OUT std_logic;

FNB : OUT std_logic );

END COMPONENT;

signal a : std_logic_vector(7 downto 0) := (others => '0');

signal b : std_logic_vector(7 downto 0) := (others => '0');

signal sel : std_logic_vector(2 downto 0) := (others => '0');

signal FL : std_logic;

signal FB : std_logic;

signal FN : std_logic;

signal FK : std_logic;

signal FLB : std_logic;

signal FNB : std_logic;

BEGIN uut: ss8bit PORT MAP (

a => a,

b => b, sel => sel,

FL => FL,

FB => FB,

FN => FN,

FK => FK, FLB => FLB, FNB => FNB );

a<="11111100";

b<="11110000";

sel<="001";

END;

10.Bộ đếm nhị phân 8bit đếm tiến+lùi

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use

IEEE.STD_LOGIC_UNSIGNED.ALL; Entity dem_tien_lui is

Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic; X: in std_logic_vector (7 downto 0);

Y: out std_logic_vector (7 downto 0);

F: out std_logic );

End dem_tien_lui;

Architecture behavioral of dem_tien_lui

is Signal count: std_logic_vector (7 downto 0) := x”00”;

Signal F1: std_logic:=‟0‟;

Begin Process (clk, reset, load, set, up_down, count)

Begin If(clk‟event and clk=‟1‟) then

If reset=‟1‟ then count<=x”00”; Else

If set=‟1‟ then count<=x”ff”; Else

If load=‟1‟ then count<=X; Else

If (up_down=‟1‟) then

If (count=x”ff”) then

Count<=x”00”;

F1<=‟1‟;

Else count<=count+1;

F1<=‟0‟;

End if;

Elsif (up_down=‟0‟) then

If count=x”00” then count<=x”ff”; F1<=‟1‟;

Else count<=count-1; F1<=‟0‟; End if;

End if;

End if;

End if;

End if;

End if;

End process;

Process (CE, count) Begin

If (CE=‟1‟) then y<=count; F<=F1; Else y<=(others=>‟Z‟); F<=‟Z‟; End if;

End process;

Trang 4

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

Entity test_tien_lui is

End test_tien_lui;

Architecture behavior of test_tien_lui is

Component dem_tien_lui

Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

X: in std_logic_vector (7

downto 0);

Y: out std_logic_vector (7

downto 0);

F: out std_logic

);

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟;

Signal X: std_logic_vector (7 downto 0)

:= (others=>‟0‟);

Signal Y: std_logic_vector (7 downto 0);

Signal F: std_logic;

Begin

Uut: dem_tien_lui PORT MAP(

Clk=>clk,

Reset=>reset,

Load=>load,

Set=>set,

CE=>CE,

Up_down=>up_down,

X=>X,

Y=>Y,

F=>F,

);

Clk<=not clk after 1ns;

CE<=‟1‟, „0‟ after 2000ns;

Reset<=‟0‟, „1‟ after 520ns, „0‟ after

530ns;

Set<=‟0‟, „1‟ after 530ns, „0‟ after 540ns;

Load<=‟0‟, „1‟ after 540ns, „0‟ after

550ns;

X<=x”f0”;

Up_down<=‟1‟, „0‟ after 1500ns;

End;

11.Đếm tiến nhị phân 8bit

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use

IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity dem_tien is Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

X: in std_logic_vector (7 downto 0);

Y: out std_logic_vector (7 downto 0);

F: out std_logic );

End dem_tien;

Architecture behavioral of dem_tien is Signal count: std_logic_vector (7 downto 0) := x”00”;

Signal F1: std_logic:=‟0‟;

Begin Process (clk, reset, load, set, count) Begin

If(clk‟event and clk=‟1‟) then

If reset=‟1‟ then count<=x”00”;

Else

If set=‟1‟ then count<=x”ff”;

Else

If load=‟1‟ then count<=X;

Else

If (count=x”ff”) then

count=x”00”; F1<=‟1‟;

Else count<=count+1; F1<=‟0‟;

End if;

End if;

End if;

End if;

End if;

End process;

Process (CE, count) Begin

If (CE=‟1‟) then y<=count; F<=F1;

Else y<=(others=>‟Z‟); F<=‟Z‟;

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

Entity test_tien is End test_tien;

Architecture behavior of test_tien is Component dem_tien

Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

X: in std_logic_vector (7 downto 0);

Y: out std_logic_vector (7 downto 0);

F: out std_logic );

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟;

Signal X: std_logic_vector (7 downto 0) := (others=>‟0‟);

Signal Y: std_logic_vector (7 downto 0);

Signal F: std_logic;

Begin Uut: dem_tien PORT MAP(

Clk=>clk,

Reset=>reset, Load=>load, Set=>set, CE=>CE, X=>X, Y=>Y, F=>F, );

Clk<=not clk after 1ns;

CE<=‟1‟, „0‟ after 2000ns;

Reset<=‟0‟, „1‟ after 520ns, „0‟ after 530ns;

Set<=‟0‟, „1‟ after 530ns, „0‟ after 540ns;

Load<=‟0‟, „1‟ after 540ns, „0‟ after 550ns;

X<=x”f0”;

End;

12.Đếm lùi nhị phân 8bit

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity dem_lui is Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

X: in std_logic_vector (7 downto 0);

Y: out std_logic_vector (7 downto 0);

F: out std_logic );

End dem_lui;

Architecture behavioral of dem_lui is Signal count: std_logic_vector (7 downto 0) := x”00”;

Signal F1: std_logic:=‟0‟;

Begin Process (clk, reset, load, set, count) Begin

If(clk‟event and clk=‟1‟) then

If reset=‟1‟ then count<=x”00”;

Else

If set=‟1‟ then count<=x”ff”; Else

If load=‟1‟ then count<=X; Else

If (count=x”00”) then count=x”ff”; F1<=‟1‟; Else count<=count-1; F1<=‟0‟;

End if;

End if;

End if;

End if;

End if;

End process;

Process (CE, count) Begin

If (CE=‟1‟) then y<=count; F<=F1; Else y<=(others=>‟Z‟); F<=‟Z‟; End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL;

Entity test_lui is End test_lui;

Architecture behavior of test_lui is Component dem_lui

Port(clk: in std_logic;

Reset: in std_logic; Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

X: in std_logic_vector (7 downto 0);

Y: out std_logic_vector (7 downto 0);

F: out std_logic );

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟; Signal X: std_logic_vector (7 downto 0) := (others=>‟0‟);

Signal Y: std_logic_vector (7 downto 0); Signal F: std_logic;

Begin Uut: dem_tien PORT MAP(

Clk=>clk,

Reset=>reset, Load=>load, Set=>set, CE=>CE, X=>X, Y=>Y,

Trang 5

F=>F,

);

Clk<=not clk after 1ns;

CE<=‟1‟, „0‟ after 2000ns;

Reset<=‟0‟, „1‟ after 520ns, „0‟ after

530ns;

Set<=‟0‟, „1‟ after 530ns, „0‟ after 540ns;

Load<=‟0‟, „1‟ after 540ns, „0‟ after

550ns;

X<=x”f0”;

End;

13.Bộ đếm thập phân (2 digits) chế độ

đếm tiến+lùi mode 100 có Reset, Load

đồng bộ

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use

IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity digit100 is

Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3

downto 0);

Hdv_in: in std_logic_vector (3

downto 0);

Hc_out: out std_logic_vector

(3 downto 0);

Hdv_out: out std_logic_vector

(3 downto 0);

);

End digit100;

Architecture behavioral of digit100 is

Signal hc1, hdv1: std_logic_vector (3

downto 0) := x”0”;

Begin

Process (clk, reset, set, load, up_down,

hc1, hdv1)

Begin

If (clk‟event and clk=‟1‟) then

If reset=‟1‟ then hc1<=x”0”;

hdv1<=x”0”;

elsif set=‟1‟ then hc1<=x”9”;

hdv1<=x”9”;

elsif load=‟1‟ then hc1<=hc_in;

hdv1<=hdv_in;

elsif up_down=‟1‟ then

if hdv1=9 then hdv1<=x”0”;

if hc1=9 then hc1<=x”0”;

else hc1<=hc1+1;

end if;

else hdv1<=hdv1+1;

end if;

elsif up_down=‟0‟ then

if hdv1=0 then hdv1<=x”9”;

if hc1=0 then hc1<=x”9”;

else hc1<=hc1-1;

end if;

else hdv1<=hdv1-1;

end if;

end if;

end if;

End process;

Process (hdv1, hc1, ce) Begin

If (ce=‟1‟) then hc<=hc1; hdv<=hdv1;

Else hc<=(others=>‟Z‟);

hdv<=(others=>‟Z‟);

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

Entity test_digit100 is End test_digit100;

Architecture behavior of test_digit100 is Component digit100

Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟;

Signal hc_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hdv_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hc: std_logic_vector (3 downto 0);

Signal hdv: std_logic_vector (3 downto 0);

Constant clk_period: time := 1us;

Begin Uut: digit100 PORT MAP(

Clk=>clk,

Ce=>ce, Reset=>reset, Set=>set, Load=>load, Up_down=>up_down, Hc_in=>hc_in, Hdv_in=>hdv_in, Hc=>hc, Hdv=>hdv

);

Clk<=not clk after 1ns;

Ce<=‟1‟, ‟0‟ after 500ns;

Reset<=‟0‟, „1‟ after 150ns, „0‟ after 170ns;

Set<=‟0‟, „1‟ after 170ns, „0‟ after 175ns;

Load<=‟0‟, „1‟ after 175ns, „0‟ after 180ns;

Up_down<=‟1‟, „0‟ after 300ns;

Hc_in<=x”2”;

Hdv_in<=x”4”;

End;

14.Bộ đếm thập phân (2 digits) chế độ đếm tiến+lùi mode 100 có Reset, Load

ko đồng bộ

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity digit100_kodongbo is Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End digit100_kodongbo;

Architecture behavioral of digit100_kodongbo is Signal hc1, hdv1: std_logic_vector (3 downto 0) := x”0”;

Begin Process (clk, reset, set, load, up_down, hc1, hdv1)

Begin

If reset=‟1‟ then hc1<=x”0”;

hdv1<=x”0”;

elsif set=‟1‟ then hc1<=x”9”;

hdv1<=x”9”;

elsif load=‟1‟ then hc1<=hc_in;

hdv1<=hdv_in;

elsif clk‟event and clk=‟1‟ then

if up_down=‟1‟ then

if hdv1=9 then hdv1<=x”0”;

if hc1=9 then hc1<=x”0”;

else hc1<=hc1+1;

end if;

else hdv1<=hdv1+1;

end if;

else

if hdv1=0 then hdv1<=x”9”;

if hc1=0 then hc1<=x”9”;

else hc1<=hc1-1;

end if;

else hdv1<=hdv1-1;

end if;

end if;

end if;

End process;

Process (hdv1, hc1, ce) Begin

If (ce=‟1‟) then hc<=hc1; hdv<=hdv1; Else hc<=(others=>‟Z‟);

hdv<=(others=>‟Z‟);

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL;

Entity test_kodongbo is End test_kodongbo;

Architecture behavior of test_kodongbo

is Component digit100_kodongbo Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic; Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟; Signal hc_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hdv_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hc: std_logic_vector (3 downto 0); Signal hdv: std_logic_vector (3 downto 0);

Constant clk_period: time := 1us; Begin

Uut: digit100_kodongbo PORT MAP(

Clk=>clk, Ce=>ce, Reset=>reset, Set=>set, Load=>load,

Trang 6

Up_down=>up_down,

Hc_in=>hc_in,

Hdv_in=>hdv_in,

Hc=>hc,

Hdv=>hdv

);

Clk<=not clk after 1ns;

Ce<=‟1‟, ‟0‟ after 500ns;

Reset<=‟0‟, „1‟ after 150ns, „0‟ after

170ns;

Set<=‟0‟, „1‟ after 170ns, „0‟ after 175ns;

Load<=‟0‟, „1‟ after 175ns, „0‟ after

180ns;

Up_down<=‟1‟, „0‟ after 300ns;

Hc_in<=x”2”;

Hdv_in<=x”4”;

End;

15.Đếm tiến ko đồng bộ (thập phân)

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use

IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity digit100_kodongbo is

Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3

downto 0);

Hdv_in: in std_logic_vector (3

downto 0);

Hc: out std_logic_vector (3

downto 0);

Hdv: out std_logic_vector (3

downto 0);

);

End digit100_kodongbo;

Architecture behavioral of

digit100_kodongbo is

Signal hc1, hdv1: std_logic_vector (3

downto 0) := x”0”;

Begin

Process (clk, reset, set, load, up_down,

hc1, hdv1)

Begin

If reset=‟1‟ then hc1<=x”0”;

hdv1<=x”0”;

elsif set=‟1‟ then hc1<=x”9”;

hdv1<=x”9”;

elsif load=‟1‟ then hc1<=hc_in;

hdv1<=hdv_in;

elsif clk‟event and clk=‟1‟ then

if hdv1=9 then hdv1<=x”0”;

if hc1=9 then hc1<=x”0”;

else hc1<=hc1+1;

end if;

else hdv1<=hdv1+1;

end if;

end if;

End process;

Process (hdv1, hc1, ce) Begin

If (ce=‟1‟) then hc<=hc1; hdv<=hdv1;

Else hc<=(others=>‟Z‟);

hdv<=(others=>‟Z‟);

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

Entity test_kodongbo is End test_kodongbo;

Architecture behavior of test_kodongbo

is Component digit100_kodongbo Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟;

Signal hc_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hdv_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hc: std_logic_vector (3 downto 0);

Signal hdv: std_logic_vector (3 downto 0);

Constant clk_period: time := 1us;

Begin Uut: digit100_kodongbo PORT MAP(

Clk=>clk, Ce=>ce, Reset=>reset, Set=>set, Load=>load, Up_down=>up_down, Hc_in=>hc_in, Hdv_in=>hdv_in, Hc=>hc, Hdv=>hdv );

Clk<=not clk after 1ns;

Ce<=‟1‟, ‟0‟ after 500ns;

Reset<=‟0‟, „1‟ after 150ns, „0‟ after 170ns;

Set<=‟0‟, „1‟ after 170ns, „0‟ after 175ns;

Load<=‟0‟, „1‟ after 175ns, „0‟ after 180ns;

Hc_in<=x”2”;

Hdv_in<=x”4”;

End;

16.Đếm lùi ko đồng bộ (thập phân)

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Entity digit100_kodongbo is Port (clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic;

Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End digit100_kodongbo;

Architecture behavioral of digit100_kodongbo is Signal hc1, hdv1: std_logic_vector (3 downto 0) := x”0”;

Begin Process (clk, reset, set, load, up_down, hc1, hdv1)

Begin

If reset=‟1‟ then hc1<=x”0”;

hdv1<=x”0”;

elsif set=‟1‟ then hc1<=x”9”;

hdv1<=x”9”;

elsif load=‟1‟ then hc1<=hc_in;

hdv1<=hdv_in;

elsif clk‟event and clk=‟1‟ then

if hdv1=0 then hdv1<=x”9”;

if hc1=0 then hc1<=x”9”;

else hc1<=hc1-1;

end if;

else hdv1<=hdv1-1;

end if;

end if;

End process;

Process (hdv1, hc1, ce) Begin

If (ce=‟1‟) then hc<=hc1; hdv<=hdv1;

Else hc<=(others=>‟Z‟);

hdv<=(others=>‟Z‟);

End if;

End process;

End behavioral;

TestBench

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL;

Entity test_kodongbo is End test_kodongbo;

Architecture behavior of test_kodongbo

is Component digit100_kodongbo Port(clk: in std_logic;

Reset: in std_logic;

Load: in std_logic;

Set: in std_logic;

CE: in std_logic;

Up_down: in std_logic; Hc_in: in std_logic_vector (3 downto 0);

Hdv_in: in std_logic_vector (3 downto 0);

Hc: out std_logic_vector (3 downto 0);

Hdv: out std_logic_vector (3 downto 0);

);

End component;

Signal clk: std_logic := „0‟;

Signal reset: std_logic := „0‟;

Signal load: std_logic := „0‟;

Signal set: std_logic := „0‟;

Signal CE: std_logic := „0‟;

Signal up_down: std_logic := „0‟; Signal hc_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hdv_in: std_logic_vector (3 downto 0) := (others =>‟0‟);

Signal hc: std_logic_vector (3 downto 0); Signal hdv: std_logic_vector (3 downto 0);

Constant clk_period: time := 1us; Begin

Uut: digit100_kodongbo PORT MAP(

Clk=>clk, Ce=>ce, Reset=>reset, Set=>set, Load=>load, Up_down=>up_down, Hc_in=>hc_in, Hdv_in=>hdv_in, Hc=>hc, Hdv=>hdv );

Clk<=not clk after 1ns;

Ce<=‟1‟, ‟0‟ after 500ns;

Reset<=‟0‟, „1‟ after 150ns, „0‟ after 170ns;

Set<=‟0‟, „1‟ after 170ns, „0‟ after 175ns; Load<=‟0‟, „1‟ after 175ns, „0‟ after 180ns;

Hc_in<=x”2”;

Trang 7

Hdv_in<=x”4”;

End;

17.Đèn giao thông ngã tư sở

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity dgt is

port( clk,rst,set: in std_logic;

L1,L2: out std_logic_vector(2

downto 0));

end dgt;

Architecture behavioral of dgt is

type my_state is(RG,RY,GR,YR);

signal seg,next_seg:my_state;

constant Trg: integer:=30;

constant Try: integer:=5;

constant Tgr: integer:=30;

constant Tyr: integer:=5;

signal cter,T: integer:='0';

signal clk_1s:std_logic:= '0';

begin

process(clk)

begin

if clk'event and clk='1' then

if rst='1' then cter<='0';

else

if (cter='9') then clk_1s='1'; cter<='0' ;

else cter<= cter+1; clk_1s='0';

end if;

end if;

end if;

end process;

syns: process(clk_1s)

begin

if (clk_1s'event and clk_1s='1') then

if (rst='1') then seg<= RG; T<=0;

else seg<=next_seg;

if T=69 then T<=0;

else T<= T+1;

end if;

end if;

end if;

end process;

comb:process(seg,clk_1s,T)

begin

case seg is

when RG=> if T=Trg-1 then

next_seg<= RY;

end if;

when RY => if T= Try+ Trg -1

then next_seg<= GR;

end if;

when GR => if T=Tgr+Try+Trg-1

then next_seg<=YR;

end if;

when YR => if

T=Tyr+Tgr+Try+Trg-1 then

next_seg<=RG;

end if;

end case;

end process;

outs:process(seg,set)

begin

if set='1' then

case seg is when RG=> L1<= '100'; L2<= '001';

when RY=> L1<= '100'; L2<= '010';

when GR=> L1<= '001'; L2<= '100';

when YR =>L1<= '010'; L2<= '100';

end case;

else case seg is when RG=> L1<= '010'; L2<= '010';

when RY=> L1<= '010'; L2<= '010';

when GR=> L1<= '010'; L2<= '010';

when others => L1<= '010'; L2<=

;010';

end case end if;

end process;

end behavioral;

TestBench

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.numeric_std.all;

entity dgt_tb is end dgt_tb;

architecture behavioral of dgt_tb is component dgt

port ( clk,rst,set:in std_logic;

L1,L2:out std_logic_vector(2 downto 0));

end component;

signal clk: std_logic: ='0';

signal rst: std_logic:='0';

signal set: std_logic:='0';

signal L1 :std_logic_vector(2downto 0);

signal L2 :std_logic_vector(2 downto 0);

constant clk_period:time='1us';

begin uut:dgt port map(

clk=>clk, rst=>rst, set=>set, L1=> L1, L2=>L2);

clk<= not clk after 2ns;

set<='1';

end;

18.Máy bán nước ngọt

Library IEEE;

Use IEEE.std_logic_1164.all;

Use IEEE.std_logic_arith.all;

Use IEEE.std_logic_unsigned.all;

Entity sell_coca is;

Port ( clk : in std_logic;

Cancel : in std_logic;

Coca :out std_logic;

Repay: out std_logic_vector(1 down to 0);

Pay:out std_logic_vector( 1 down to 0)

);

End sell_coca;

Architecture behavioral of sell_coca is

Type status is (s0,s1,s2,s3,s4,s5,s6);

Signal seg, next_seg:

status:=s0;

Signal flag: std_logic:=‟0‟;

Begin cap nhat trang thai

Syn:

Process(cancel,clk) Begin

If(cancel=‟1‟)then seg<=s0;

Elsif(clk‟event and clk=‟1‟) then

Seg<=next_seg;

End if;

End process;

Dieu kien chuyen trang thai Comb: Process(seg,pay,flag) Begin

Case seg is When s0=>

If (pay=1)then next_seg<=s1;

Elsif(pay=2)then next_seg<=s2;

Elsif(pay=3)then next_seg<=s3;

End if;

When s1=>

If (pay=1) then next_seg<=s2;

Elsif(pay=2) then next_seg<=s3;

Elsif(pay=3) then next_seg<=s4;

End if;

When s2=>

If(pay=1) then next_seg<=s3;

Elsif(pay=2) then next_seg<=s4;

Elsif(pay=3)then next_seg<=s5;

End if;

When s3=>

If(pay=1) then next_seg<=s4;

Elsif(pay=2)then next_seg<=s5;

Elsif(pay=3)then next_seg<=s6;

End if;

When s4=> if flag=‟1‟then next_seg<=s0;end if;

When s5=>if flag=‟1‟ then next_seg<=0

;end if;

When s6=>if flag=‟1‟ then next_seg<=s0;end if;

End case;

End process;

dau ra Output:

Process(seg) Begin If(seg=s4) then coca<=‟1‟;repay<=”00”;flag<=‟1‟;

Elsif(seg=s5)then coca<=‟1‟;repay<=”01”;flag<=‟1‟;

Elsif(seg=s6) then coca<=‟1‟;repay<=”10”;flag<=‟1‟;

Else coca<=‟0‟; repay<=”00”;flag<=‟0‟

End if;

End process;

End behavioral;

TestBench

Library IEEE;

Use IEEE.std_logic_1164.all; Use IEEE.numeric.all;

Use IEEE.std_logic_unsigned.all; Entity tb_coca is

End tb_coca;

Architecture behavioral of tb_coca is component sell_coca

Port ( clk : in std_logic;

Cancel : in std_logic;

Coca :out std_logic;

Repay: out std_logic_vector(1 down to 0);

Pay:out std_logic_vector( 1 down to 0) );

End component;

inputs Signal clk:std_logic:=‟0‟;

Signal cancel:std_logic:=‟0‟;

Signal pay:std_logic_vector(1 down to 0):=(others=>‟0‟);

outputs Signal coca:std_logic_;

Signal pay:std_logic_vector(1 down to 0);

check period definitions Constant clk_period:time:=1us; Begin

instantiate the unit under test(uut) Uut: sell_coca port map(

Clk=>clk, Cancel=>cancel, Coca=>coca, Repay=>repay, Pay=>pay, );

Cancel<=‟0‟;

Clk<=not clk after 1ns;

Pay<=”00”, “01” after 30ns, “00” after 31ns,”10” after 60ns,”00” after 61s,”10”after 90ns,”00” after 91ns,”11” after 350ns,”00” after 351ns,”11” after 370ns,”00” after 371ns;

End;

Ngày đăng: 30/05/2014, 22:58

TỪ KHÓA LIÊN QUAN

w