- renamed signal names
- receiver commands: packet request : sets fill pointer to next packet from queue packet free : removes packet from queue 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@828 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -120,9 +120,9 @@ ARCHITECTURE behavior OF emac_rx IS
|
|||||||
begin
|
begin
|
||||||
|
|
||||||
ctrl_out.rx_size <= cmd_fifo_dout(31 downto 16);
|
ctrl_out.rx_size <= cmd_fifo_dout(31 downto 16);
|
||||||
ctrl_out.rx_vld <= not cmd_fifo_empty;
|
ctrl_out.pkt_avail <= not cmd_fifo_empty;
|
||||||
ctrl_out.rx_er <= mii_rx_er;
|
ctrl_out.rx_er <= mii_rx_er;
|
||||||
ctrl_out.ram_ovf <= xfer_ram_full;
|
ctrl_out.pkt_lost <= xfer_ram_full;
|
||||||
|
|
||||||
dout <= ram_dout_a;
|
dout <= ram_dout_a;
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ begin
|
|||||||
ram_we_b <= xfer_cnt_adv;
|
ram_we_b <= xfer_cnt_adv;
|
||||||
|
|
||||||
cmd_fifo_we <= commit_en;
|
cmd_fifo_we <= commit_en;
|
||||||
cmd_fifo_re <= uncommit_en;
|
cmd_fifo_re <= ctrl_in.pkt_free_en;
|
||||||
cmd_fifo_din <= "0000" & resize(byte_count_reg_s, 16) & resize(xfer_base, 16);
|
cmd_fifo_din <= "0000" & resize(byte_count_reg_s, 16) & resize(xfer_base, 16);
|
||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
@@ -157,13 +157,12 @@ host_state_next:
|
|||||||
end process;
|
end process;
|
||||||
|
|
||||||
host_state:
|
host_state:
|
||||||
process(host_s, cmd_fifo_empty, ctrl_in.data_read, ctrl_in.uncommit)
|
process(host_s, cmd_fifo_empty, ctrl_in.pkt_read_en, ctrl_in.pkt_req_en)
|
||||||
begin
|
begin
|
||||||
|
|
||||||
flush_en <= '0';
|
flush_en <= '0';
|
||||||
fill_ptr_set <= '0';
|
fill_ptr_set <= '0';
|
||||||
fill_ptr_adv <= '0';
|
fill_ptr_adv <= '0';
|
||||||
uncommit_en <= '0';
|
|
||||||
|
|
||||||
host_sn <= host_s;
|
host_sn <= host_s;
|
||||||
|
|
||||||
@@ -190,13 +189,12 @@ host_state:
|
|||||||
host_sn <= host_fill;
|
host_sn <= host_fill;
|
||||||
|
|
||||||
when host_fill =>
|
when host_fill =>
|
||||||
fill_ptr_adv <= ctrl_in.data_read;
|
fill_ptr_adv <= ctrl_in.pkt_read_en;
|
||||||
if ctrl_in.uncommit = '1' then
|
if ctrl_in.pkt_req_en = '1' then
|
||||||
host_sn <= host_uncommit;
|
host_sn <= host_uncommit;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
when host_uncommit =>
|
when host_uncommit =>
|
||||||
uncommit_en <= '1';
|
|
||||||
host_sn <= host_idle;
|
host_sn <= host_idle;
|
||||||
|
|
||||||
when others =>
|
when others =>
|
||||||
@@ -212,10 +210,10 @@ fill_pointer:
|
|||||||
process(clk)
|
process(clk)
|
||||||
begin
|
begin
|
||||||
if rising_edge(clk) then
|
if rising_edge(clk) then
|
||||||
dout_vld <= ctrl_in.data_read;
|
dout_vld <= ctrl_in.pkt_read_en;
|
||||||
if fill_ptr_set = '1' then
|
if ctrl_in.pkt_req_en = '1' then
|
||||||
fill_ptr <= resize(cmd_fifo_dout(15 downto 0), word_ptr_t'length);
|
fill_ptr <= resize(cmd_fifo_dout(15 downto 0), word_ptr_t'length);
|
||||||
elsif fill_ptr_adv = '1' then
|
elsif ctrl_in.pkt_read_en = '1' then
|
||||||
fill_ptr <= fill_ptr + 1;
|
fill_ptr <= fill_ptr + 1;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
|
|||||||
Reference in New Issue
Block a user