Professional Documents
Culture Documents
Sơ đồ khối :
Code:
1. Package : pkg_led7doan
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
package pkg_led7doan is
function dem7seg (X1: in STD_LOGIC_VECTOR (3 downto 0 )) return
STD_LOGIC_VECTOR;
end pkg_led7doan;
package body pkg_led7doan is
function dem7seg (X1: in STD_LOGIC_VECTOR (3 downto 0 )) return
STD_LOGIC_VECTOR is
variable Z1: STD_LOGIC_VECTOR ( 6 downto 0 );
begin
case X1 is
when "0000"=>Z1:="1000000";
when "0001"=>Z1:="1111001";
when "0010"=>Z1:="0100100";
when "0011"=>Z1:="0110000";
when "0100"=>Z1:="0011001";
when "0101"=>Z1:="0010010";
when "0110"=>Z1:="0000010";
when "0111"=>Z1:="1111000";
when "1000"=>Z1:="0000000";
when "1001"=>Z1:="0010000";
when others=>Z1:="1111111";
end case;
return Z1;
end dem7seg;
END pkg_led7doan;
Check syntax:
Chạy mô phỏng:
Input Output
CS RE Address Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
0 0 x x x x x x x x x x x x
1 1 x x x x 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 1 0 0 0 1 1 0 1 0
1 1 0 0 1 0 0 0 1 0 1 1 1 1
1 1 0 0 1 1 0 0 1 0 0 0 0 1
1 1 0 1 0 0 0 1 0 1 0 0 0 0
1 1 0 1 0 1 1 1 1 1 1 1 1 1
1 1 0 1 1 0 0 0 0 1 0 0 0 1
1 1 0 1 1 1 0 0 0 0 0 0 0 1
1 1 1 0 0 0 0 0 0 1 0 1 0 1
1 1 1 0 0 1 0 0 0 0 0 0 0 1
1 1 1 0 1 0 0 0 0 1 0 0 0 0
1 1 1 0 1 1 0 0 0 1 0 1 1 1
1 1 1 1 0 0 0 1 0 1 0 0 0 0
1 1 1 1 0 1 1 0 0 0 0 0 0 0
1 1 1 1 1 0 1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 0 0 0
Code:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity rom16x8bit is
port (
cs :in std_logic;
re :in std_logic;
address :in std_logic_vector (3 downto 0);
data :out std_logic_vector (7 downto 0)
);
end entity;
architecture behavioral of rom16x8bit is
begin
process (re, cs, address) begin
if re = '1' and cs = '1' then
case (address) is
when x"0" => data <= x"5f";
when x"1" => data <= x"a3";
when x"2" => data <= x"c5";
when x"3" => data <= x"c6";
when x"4" => data <= x"1c";
when x"5" => data <= x"3b";
when x"6" => data <= x"8d";
when x"7" => data <= x"4b";
when x"8" => data <= x"11";
when x"9" => data <= x"4f";
when x"A" => data <= x"99";
when x"B" => data <= x"55";
when x"C" => data <= x"15";
when x"D" => data <= x"d5";
when x"E" => data <= x"3c";
when x"F" => data <= x"44";
when others => data <= x"ff";
end case; end if;
end process;
end architecture;
Check syntax:
Chạy mô phỏng: