- added ram overflow bit
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@827 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -122,6 +122,7 @@ 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.rx_vld <= 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;
|
||||||
|
|
||||||
dout <= ram_dout_a;
|
dout <= ram_dout_a;
|
||||||
|
|
||||||
|
|||||||
@@ -111,26 +111,27 @@ registers_read:
|
|||||||
rx_ctrl_in.data_read <= '0';
|
rx_ctrl_in.data_read <= '0';
|
||||||
ACK_O <= rx_dout_vld and CYC_I and not WE_I;
|
ACK_O <= rx_dout_vld and CYC_I and not WE_I;
|
||||||
DAT_O <= rx_dout;
|
DAT_O <= rx_dout;
|
||||||
if (STB_I and CYC_I) = '1' then
|
if (STB_I and CYC_I) = '1' and WE_I = '0' then
|
||||||
case ADDR_I(5 downto 2) is
|
case ADDR_I(5 downto 2) is
|
||||||
|
|
||||||
when "0000" =>
|
when "0000" =>
|
||||||
ACK_O <= not WE_I;
|
ACK_O <= '1';
|
||||||
DAT_O <= (others => '0');
|
DAT_O <= (others => '0');
|
||||||
DAT_O(31) <= tx_ctrl_in.tx_er;
|
DAT_O(31) <= tx_ctrl_in.tx_er;
|
||||||
DAT_O(30) <= mii_rx_er;
|
DAT_O(30) <= mii_rx_er;
|
||||||
DAT_O(29) <= mii_col;
|
DAT_O(29) <= mii_col;
|
||||||
DAT_O(28) <= mii_crs;
|
DAT_O(28) <= mii_crs;
|
||||||
|
DAT_O(18) <= rx_ctrl_out.ram_ovf;
|
||||||
DAT_O(17) <= tx_ctrl_out.tx_req;
|
DAT_O(17) <= tx_ctrl_out.tx_req;
|
||||||
DAT_O(16) <= rx_ctrl_out.rx_vld;
|
DAT_O(16) <= rx_ctrl_out.rx_vld;
|
||||||
DAT_O(5) <= tx_int_en;
|
DAT_O(5) <= tx_int_en;
|
||||||
DAT_O(4) <= rx_int_en;
|
DAT_O(4) <= rx_int_en;
|
||||||
when "0001" =>
|
when "0001" =>
|
||||||
ACK_O <= not WE_I;
|
ACK_O <= '1';
|
||||||
DAT_O <= tx_ctrl_out.tx_size & rx_ctrl_out.rx_size;
|
DAT_O <= tx_ctrl_out.tx_size & rx_ctrl_out.rx_size;
|
||||||
|
|
||||||
when "0010" =>
|
when "0010" =>
|
||||||
rx_ctrl_in.data_read <= not WE_I;
|
rx_ctrl_in.data_read <= '1';
|
||||||
|
|
||||||
when others => null;
|
when others => null;
|
||||||
end case;
|
end case;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ package emac_types is
|
|||||||
type rx_ctrl_out_t is record
|
type rx_ctrl_out_t is record
|
||||||
rx_er : std_logic;
|
rx_er : std_logic;
|
||||||
rx_vld : std_logic;
|
rx_vld : std_logic;
|
||||||
|
ram_ovf : std_logic;
|
||||||
rx_size : unsigned(15 downto 0);
|
rx_size : unsigned(15 downto 0);
|
||||||
end record;
|
end record;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user