- added WE_I for rom

- registered addr instead of registered output
Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@989 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2013-07-28 19:51:40 +00:00
parent 2a83979a5b
commit aef329e702
2 changed files with 7 additions and 2 deletions
+5 -1
View File
@@ -14,6 +14,8 @@ END rom;
ARCHITECTURE data OF rom IS
signal addr_r : unsigned(31 downto 0);
subtype word_t is unsigned(31 downto 0);
type word_array_t is array (0 to 2047) of word_t;
constant word_array : word_array_t :=
@@ -2071,11 +2073,13 @@ ARCHITECTURE data OF rom IS
begin
dout <= word_array(to_integer(addr_r(12 downto 2)));
PROM_READ:
process(clk)
begin
if rising_edge(clk) and ce = '1' then
dout <= word_array(to_integer(addr(12 downto 2)));
addr_r <= addr;
end if;
end process;
+2 -1
View File
@@ -8,6 +8,7 @@ ENTITY rom_wb IS
CLK_I : in STD_LOGIC;
RST_I : in STD_LOGIC;
CYC_I : in STD_LOGIC;
WE_I : in STD_LOGIC;
STB_I : in STD_LOGIC;
ACK_O : out STD_LOGIC;
MRDY_I : in STD_LOGIC;
@@ -43,7 +44,7 @@ data_valid_register:
if RST_I = '1' then
ACK_O <= '0';
else
ACK_O <= data_en; -- and not WE_I;
ACK_O <= data_en and not WE_I;
end if;
end if;
end process;