双向总线(注2).txt
上传用户:easylife05
上传日期:2013-03-21
资源大小:42k
文件大小:1k
源码类别:

VHDL/FPGA/Verilog

开发平台:

C/C++

  1. VHDL: Bidirectional Bus
  2. download from: http://www.fpga.com.cn
  3. bidir.vhd (Tri-state bus implementation) 
  4. LIBRARY ieee;
  5. USE ieee.std_logic_1164.ALL;
  6. ENTITY bidir IS
  7.     PORT(
  8.         bidir   : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
  9.         oe, clk : IN STD_LOGIC;
  10.         inp     : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
  11.         outp    : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
  12. END bidir;
  13. ARCHITECTURE cpld OF bidir IS
  14. SIGNAL  a  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores 
  15.                                              -- value from input.
  16. SIGNAL  b  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores 
  17. BEGIN                                        -- feedback value.
  18.     PROCESS(clk)
  19.     BEGIN
  20.     IF clk = '1' AND clk'EVENT THEN  -- Creates the flipflops
  21.         a <= inp;                    
  22.         outp <= b;                  
  23.         END IF;
  24.     END PROCESS;    
  25.     PROCESS (oe, bidir)          -- Behavioral representation 
  26.         BEGIN                    -- of tri-states.
  27.         IF( oe = '0') THEN
  28.             bidir <= "ZZZZZZZZ";
  29.             b <= bidir;
  30.         ELSE
  31.             bidir <= a; 
  32.             b <= bidir;
  33.         END IF;
  34.     END PROCESS;
  35. END cpld;