- STB_O now deasserts only if SRDY active (fixes bus freezes during heavy traffic)
git-svn-id: http://moon:8086/svn/vhdl/trunk@34 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -345,11 +345,11 @@ cache_state:
|
|||||||
end if;
|
end if;
|
||||||
when mem_access =>
|
when mem_access =>
|
||||||
data_write <= '1';
|
data_write <= '1';
|
||||||
CYC_O <= '1';
|
|
||||||
if SRDY_I = '1' then
|
|
||||||
mem_index_count_en <= '1';
|
mem_index_count_en <= '1';
|
||||||
|
CYC_O <= '1';
|
||||||
STB_O <= '1';
|
STB_O <= '1';
|
||||||
if mem_index_count = 2**word_index_width-1 then
|
if mem_index_count = 2**word_index_width-1 then
|
||||||
|
if SRDY_I = '1' then
|
||||||
sn <= mem_data;
|
sn <= mem_data;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
@@ -419,7 +419,7 @@ mem_index_counter:
|
|||||||
if rising_edge(CLK_I) then
|
if rising_edge(CLK_I) then
|
||||||
if mem_index_count_rst = '1' then
|
if mem_index_count_rst = '1' then
|
||||||
mem_index_count <= 0;
|
mem_index_count <= 0;
|
||||||
elsif mem_index_count_en = '1' then
|
elsif mem_index_count_en = '1' and SRDY_I = '1' then
|
||||||
if mem_index_count /= 2**word_index_width-1 then
|
if mem_index_count /= 2**word_index_width-1 then
|
||||||
mem_index_count <= mem_index_count + 1;
|
mem_index_count <= mem_index_count + 1;
|
||||||
end if;
|
end if;
|
||||||
|
|||||||
@@ -278,12 +278,12 @@ cache_state:
|
|||||||
sn <= mem_access;
|
sn <= mem_access;
|
||||||
end if;
|
end if;
|
||||||
when mem_access =>
|
when mem_access =>
|
||||||
|
mem_index_count_en <= '1';
|
||||||
data_write <= '1';
|
data_write <= '1';
|
||||||
CYC_O <= '1';
|
CYC_O <= '1';
|
||||||
if SRDY_I = '1' then
|
|
||||||
mem_index_count_en <= '1';
|
|
||||||
STB_O <= '1';
|
STB_O <= '1';
|
||||||
if mem_index_count = 2**word_index_width-1 then
|
if mem_index_count = 2**word_index_width-1 then
|
||||||
|
if SRDY_I = '1' then
|
||||||
sn <= mem_data;
|
sn <= mem_data;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
@@ -345,7 +345,7 @@ mem_index_counter:
|
|||||||
if rising_edge(CLK_I) then
|
if rising_edge(CLK_I) then
|
||||||
if mem_index_count_rst = '1' then
|
if mem_index_count_rst = '1' then
|
||||||
mem_index_count <= 0;
|
mem_index_count <= 0;
|
||||||
elsif mem_index_count_en = '1' then
|
elsif mem_index_count_en = '1' and SRDY_I = '1' then
|
||||||
if mem_index_count /= 2**word_index_width-1 then
|
if mem_index_count /= 2**word_index_width-1 then
|
||||||
mem_index_count <= mem_index_count + 1;
|
mem_index_count <= mem_index_count + 1;
|
||||||
end if;
|
end if;
|
||||||
|
|||||||
Reference in New Issue
Block a user