jimmyhua的笔记 https://passport2.21ic.com/?74262 [收藏] [复制] [RSS]

日志

ram

已有 580 次阅读2007-2-14 17:20 |个人分类:单片机|系统分类:EDA/PLD

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;


ENTITY ram IS
 GENERIC
 (
  ADDRESS_WIDTH : integer := 4;
  DATA_WIDTH : integer := 8
 );
 PORT
 (
  clock   : IN  std_logic;
  data   : IN  std_logic_vector(DATA_WIDTH - 1 DOWNTO 0);
  write_address   : IN  std_logic_vector(ADDRESS_WIDTH - 1 DOWNTO 0);
  read_address   : IN  std_logic_vector(ADDRESS_WIDTH - 1 DOWNTO 0);
  we   : IN  std_logic;
  q   : OUT std_logic_vector(DATA_WIDTH - 1 DOWNTO 0)
 );
END ram;


ARCHITECTURE rtl OF ram IS
 TYPE RAM IS ARRAY(0 TO 2 ** ADDRESS_WIDTH - 1) OF std_logic_vector(DATA_WIDTH - 1 DOWNTO 0);


 SIGNAL ram_block : RAM;
BEGIN
 PROCESS (clock)
 BEGIN
  IF (clock'event AND clock = '1') THEN
   IF (we = '1') THEN
       ram_block(to_integer(unsigned(write_address))) <= data;
   END IF;


   q <= ram_block(to_integer(unsigned(read_address)));
  END IF;
 END PROCESS;
END rtl;


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (1 个评论)

访客L52Sk8 2008-5-24 08:41
这么强 何不去做网上兼职呢 http://www.yesban.com/?friend=15845