Minor changes

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@808 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2010-03-21 15:17:09 +00:00
parent 8960bc52e7
commit 433676de7d
+7 -7
View File
@@ -71,6 +71,7 @@ ARCHITECTURE behavior OF emac_jb IS
signal host_data_reg : unsigned(31 downto 0);
signal host_tx_size : unsigned(15 downto 0);
signal tx_fill_size : word_ptr_t;
signal tx_fill_cnt : word_ptr_t;
signal tx_fill_ptr : word_ptr_t;
signal tx_fill_rdy : std_logic;
@@ -91,7 +92,6 @@ ARCHITECTURE behavior OF emac_jb IS
signal tx_free_en : std_logic;
signal tx_uncommit_en : std_logic;
signal tx_host_size_adj : word_ptr_t;
signal tx_fill_remain : unsigned(1 downto 0);
signal tx_xfer_size : word_ptr_t;
@@ -170,7 +170,7 @@ begin
tx_ram_en_a <= '1';
tx_ram_we_a <= tx_commit_en or tx_fill_cnt_adv;
tx_ram_tag_in_a <= tx_fill_remain & "01" when tx_commit_en = '1' else "0000";
tx_ram_data_in_a <= resize(tx_host_size_adj, 16) & resize(tx_alloc_base, 16) when tx_commit_en = '1' else host_data_reg;
tx_ram_data_in_a <= resize(tx_fill_size, 16) & resize(tx_alloc_base, 16) when tx_commit_en = '1' else host_data_reg;
tx_ram_addr_a <= tx_alloc_base when tx_commit_en = '1' else tx_fill_ptr;
piso_din_be <= (others => '1');
@@ -275,13 +275,13 @@ alloc_request_logic:
elsif tx_alloc_req_en = '1' and tx_alloc_req = '0' then
tx_alloc_req <= '1';
tx_fill_remain <= host_tx_size(1 downto 0);
tx_host_size_adj <= host_tx_size(word_ptr_t'left+2 downto 2);
tx_fill_size <= host_tx_size(word_ptr_t'left+2 downto 2);
if host_tx_size(1 downto 0) /= "00" then
tx_host_size_adj <= host_tx_size(word_ptr_t'left+2 downto 2) + 1;
tx_fill_size <= host_tx_size(word_ptr_t'left+2 downto 2) + 1;
end if;
elsif tx_alloc_ack = '1' then
tx_alloc_req <= '0';
tx_alloc_size <= tx_host_size_adj;
tx_alloc_size <= tx_fill_size;
end if;
end if;
end process;
@@ -306,7 +306,7 @@ alloc_eval_logic:
if rising_edge(CLK_I) then
tx_alloc_OK <= '0';
if tx_alloc_req = '1' then
if tx_host_size_adj < tx_nwords_free then
if tx_fill_size < tx_nwords_free then
tx_alloc_OK <= '1';
end if;
end if;
@@ -321,7 +321,7 @@ tx_nwords_free_counter:
if tx_flush_en = '1' then
tx_nwords_free <= (others => '1');
elsif tx_alloc_en = '1' then
tx_nwords_free <= tx_nwords_free - tx_host_size_adj;
tx_nwords_free <= tx_nwords_free - tx_fill_size;
elsif tx_free_en = '1' then
tx_nwords_free <= tx_nwords_free + tx_xfer_size;
end if;