Thông báo

Collapse
No announcement yet.

giúp với+pld+modelsim+mô phỏng

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp với+pld+modelsim+mô phỏng

    có ai biết chương trình(code) đồng hồ số viết bằng VHDL và mô phỏng bằng modelsim giúp em với.
    không thi có code viết bằng VHDL chương trình từ 00 đến 59 hiển thị trên led 7 đoạn bằng pp quét led cũng được.
    em cám ơn trước nha.

  • #2
    bai cho chu em ne

    entity DEM0059 is
    Port (CLR, CLK : in std_logic;
    anod : out std_logic_vector(3 downto 0);
    ma7d : out std_logic_vector( 7 downto 0));
    end DEM0059;

    architecture Behavioral of DEM0059 is
    signal FTANG: std_logic_vector(19 downto 0);
    signal FHTHI: std_logic_vector(9 downto 0);

    signal mabl: std_logic_vector(7 downto 0);
    signal mabh: std_logic_vector(7 downto 0);

    function giai_ma(x1: in std_logic_vector(3 downto 0)) return std_logic_vector is
    variable z1: std_logic_vector(7 downto 0);
    begin
    case x1 is
    when "0000" => z1 := "11000000"; -- so 0
    when "0001" => z1 := "11111001"; -- so 1
    when "0010" => z1 := "10100100"; -- so 2
    when "0011" => z1 := "10110000"; -- so 3

    when "0100" => z1 := "10011001"; -- so 4
    when "0101" => z1 := "10010010"; -- so 5
    when "0110" => z1 := "10000010"; -- so 6
    when "0111" => z1 := "11111000"; -- so 7

    when "1000" => z1 := "10000000"; -- so 8
    when "1001" => z1 := "10010000"; -- so 9
    when others =>z1 := "11111111"; -- so
    end case;
    return z1;
    end giai_ma;
    begin
    process (CLR,CLK,F,mabl,mabh)
    variable BCD1,BCD2: std_logic_vector(3 downto 0);
    VARIABLE AN: std_logic;
    begin
    IF CLR = '0' THEN BCD1:="0000"; BCD2:="0000";
    FTANG <= (others => ‘0’);
    FHTHI <= (others => ‘0’);
    AN:=’0’;

    ELSIF RISING_EDGE(CLK) THEN
    FTANG <= FTANG + 1;
    FHTHI <= FHTHI + 1;
    IF FTANG = X"1E8480" THEN
    FTANG <= (others => ‘0’);
    BCD1:= BCD1+1;
    END IF;

    IF BCD1 = "1010" THEN BCD1:="0000"; BCD2:= BCD2+1;
    IF BCD2 = "0110" THEN BCD2:="0000";
    END IF;
    END IF;
    END IF;
    mabh <= giai_ma(bcd2);
    mabl <= giai_ma(bcd1);

    IF FHTHI = X"7D0" THEN FHTHI <= (others => ‘0’);
    AN:= NOT AN;
    END IF;
    case AN is
    when "0" => ma7d <= mabh; anod <="0010";
    when "1" => ma7d <= mabl;
    anod <="0001";
    when others => null;
    end case;
    END PROCESS;
    end Behavioral;
    00 0000 0000
    00 0000 0001
    00 0000 0010

    01 1111 1111
    10 0000 0000
    10 0000 0001
    10 0000 0010

    11 1111 1111

    Thôøi gian taêng giaù trò laø 524288 * 0,5425 µs = 284426,24 µs=0,3s

    Comment


    • #3
      Anh anhdi_timem cho em hỏi câu này IF FTANG = X"1E8480" THEN nghĩa là gì ạ?
      Cái đoạn cuối cùng
      00 0000 0000
      00 0000 0001
      00 0000 0010

      01 1111 1111
      10 0000 0000
      10 0000 0001
      10 0000 0010

      11 1111 1111
      mình phải ngồi gõ vào hết ạ?

      Comment

      Về tác giả

      Collapse

      ngocthanh068 Tìm hiểu thêm về ngocthanh068

      Bài viết mới nhất

      Collapse

      Đang tải...
      X