Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1050038
  • 博文数量: 178
  • 博客积分: 10222
  • 博客等级: 上将
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-03 11:27
个人简介

有所追求

文章分类

全部博文(178)

文章存档

2012年(1)

2011年(5)

2010年(3)

2009年(78)

2008年(91)

我的朋友

分类:

2009-03-15 21:07:17

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY bidir IS
  PORT(
    bidir : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
    oe, clk : IN STD_LOGIC;
    inp : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
    outp : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END bidir;

ARCHITECTURE cpld OF bidir IS
SIGNAL a : STD_LOGIC_VECTOR (7 DOWNTO 0); -- DFF that stores
-- value from input.
SIGNAL b : STD_LOGIC_VECTOR (7 DOWNTO 0);

-- DFF that stores
BEGIN -- feedback value.
  PROCESS(clk)
  BEGIN
    IF clk = '1' AND clk'EVENT THEN -- Creates the flipflops
      a <= inp;
      outp <= b;
    END IF;
  END PROCESS;

  PROCESS (oe, bidir) -- Behavioral representation
  BEGIN -- of tri-states.
    IF( oe = '0') THEN   --bidir->input,outp enable
      bidir <= "ZZZZZZZZ";
      b <= bidir;
    ELSE
      bidir <= a;   --if simulate bidir as output , bidir(with io flag) must be set to 'Z'
      b <= bidir;
    END IF;
  END PROCESS;
END cpld;

阅读(1764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~