Thực hành VHDL Số 1 (Code và Mô phỏng)

Print

Tổng hợp các bài viết về lập trình VHDL

 

 

 

Bài 1: Thiết kế RSFF đồng bộ tín hiệu Rst

Code :

library IEEE;

use IEEE.STD_LOGIC_1164.all;

 

entity RSFF_DB is

port(

R : in STD_LOGIC;

S : in STD_LOGIC;

RST : in STD_LOGIC;

CLK : in STD_LOGIC;

Q : out STD_LOGIC

);

end RSFF_DB;

 

–}} End of automatically maintained section

 

architecture RSFF_DB of RSFF_DB is

signal q0: std_logic;

begin

process (CLK,RST,R,S)

variable RS:std_logic_vector (1 downto 0);

begin

RS:=R&S;

if (CLK’event and CLK=’1′) then

if (RST=’1′) then

q0<=’0′;

else

case RS is

when “00”=>q0<=q0;

when “01”=>q0<=’1′;

when “10”=>q0<=’0′;

when others=>q0<=’X’;

end case;

end if;

end if;

end process;

Q<=q0;

— enter your statements here —

end RSFF_DB;

Mô phỏng :

 

Bài 2: Thiết kế RSFF không đồng bộ tín hiệu Rst

Code :

 

library IEEE;

use IEEE.STD_LOGIC_1164.all;

 

entity RSFF is

port(

R : in STD_LOGIC;

S : in STD_LOGIC;

RST : in STD_LOGIC;

CLK : in STD_LOGIC;

Q : out STD_LOGIC

);

end RSFF;

 

–}} End of automatically maintained section

 

architecture RSFF of RSFF is

signal q0: std_logic;

begin

process (CLK,RST,R,S)

variable RS:std_logic_vector (1 downto 0);

begin

RS:=R&S;

if (RST=’1′) then

q0<=’0′;

else if (CLK’event and CLK=’1′) then

case RS is

when “00”=>q0<=q0;

when “01”=>q0<=’1′;

when “10”=>q0<=’0′;

when others=>q0<=’X’;

end case;

end if;

end if;

end process;

Q<=q0;

end RSFF;

Mô phỏng :

 

Bài 3: DFF đồng bộ tín hiệu RST

Code :

library IEEE;

use IEEE.STD_LOGIC_1164.all;

 

entity DFF is

port(

d : in STD_LOGIC;

rst : in STD_LOGIC;

clk : in STD_LOGIC;

q : out STD_LOGIC

);

end DFF;

 

–}} End of automatically maintained section

 

architecture DFF of DFF is

begin

process(clk,rst,d)

begin

if(clk’event and clk=’1′) then

if(rst=’1′) then

q<=’0′;

else

q<=d;

end if;

end if;

end process;

end DFF;

Mô phỏng :

Nguồn: phamthanh92

 

Last Updated ( Wednesday, 19 June 2019 19:57 )