⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buffer_display.vhd

📁 buffer_display是4X4KEYPAD的输出显示模块。可以显示6个连续的按键
💻 VHD
字号:
-- WARNING: Do NOT edit the input and output ports in this file in a text
-- editor if you plan to continue editing the block that represents it in
-- the Block Editor! File corruption is VERY likely to occur.

-- Copyright (C) 1991-2004 Altera Corporation
-- Any  megafunction  design,  and related netlist (encrypted  or  decrypted),
-- support information,  device programming or simulation file,  and any other
-- associated  documentation or information  provided by  Altera  or a partner
-- under  Altera's   Megafunction   Partnership   Program  may  be  used  only
-- to program  PLD  devices (but not masked  PLD  devices) from  Altera.   Any
-- other  use  of such  megafunction  design,  netlist,  support  information,
-- device programming or simulation file,  or any other  related documentation
-- or information  is prohibited  for  any  other purpose,  including, but not
-- limited to  modification,  reverse engineering,  de-compiling, or use  with
-- any other  silicon devices,  unless such use is  explicitly  licensed under
-- a separate agreement with  Altera  or a megafunction partner.  Title to the
-- intellectual property,  including patents,  copyrights,  trademarks,  trade
-- secrets,  or maskworks,  embodied in any such megafunction design, netlist,
-- support  information,  device programming or simulation file,  or any other
-- related documentation or information provided by  Altera  or a megafunction
-- partner, remains with Altera, the megafunction partner, or their respective
-- licensors. No other licenses, including any licenses needed under any third
-- party's intellectual property, are provided herein.


-- Generated by Quartus II Version 4.1 (Build Build 208 09/10/2004)
-- Created on Sun Oct 24 18:41:06 2004

-- read a number and display to 7segement display;
-- uses one-hot state machine;

LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY buffer_display IS
	PORT
	(
	   signal din10,din1: in std_logic_vector (3 downto 0);
	   signal done,RE,clk,reset: in std_logic;
	   signal dout10,dout1: out std_logic_vector (3 downto 0);
       signal start: out std_logic
	);
END buffer_display;

ARCHITECTURE buffer_display_architecture OF buffer_display IS
   constant s0: std_logic_vector (2 downto 0):="001";
   constant s1: std_logic_vector (2 downto 0):="010";
   constant s2: std_logic_vector (2 downto 0):="100";
   signal n_state,p_state: std_logic_vector (2 downto 0);
BEGIN
state:process(clk,reset)
begin
   if (reset='0') then  -- initial
        p_state<=s0;
   elsif (clk'event and clk='1') then
        p_state<=n_state;
   end if;
end process state;

comb:process(p_state,done,RE,din10,din1)
variable store1: std_logic_vector (3 downto 0);
variable store10: std_logic_vector (3 downto 0);
begin
    n_state<=p_state;
    if (p_state=s0) then -- initial state
       start<='0';
       dout10<="0000";
       dout1<="0000";
       if RE='0' then 
          n_state<=s1;
       else
          n_state<=s0;
       end if;
    end if;

    if (p_state=s1) then
       start<='0';
       if RE='0' then  -- read a number when RE# is 0
          n_state<=s1;
          store10:=din10;
          store1:=din1;
          dout10<=din10;
          dout1<=din1;
       elsif RE='1' then -- stop read when RE# become 1
          n_state<=s2;
       end if;
     end if;
     
     if (p_state=s2) then
        start<='1';      -- start the display_delay
        dout10<=store10;
        dout1<=store1;
        if done='0' then
              n_state<=s2;
        else
              n_state<=s0;
        end if;
       end if;
end process comb;
END buffer_display_architecture;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -