- modifications for improved SIPOs and PISOs

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@818 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2010-03-25 09:34:01 +00:00
parent 80f57311e4
commit 3b014c19ca
2 changed files with 111 additions and 44 deletions
+36 -11
View File
@@ -101,6 +101,10 @@ ARCHITECTURE behavior OF emac_tx IS
signal piso_din_be : unsigned(3 downto 0);
signal piso_din_rdy : std_logic;
signal data_vld : std_logic;
signal piso_dout : unsigned(7 downto 0);
signal piso_dout_vld : std_logic;
signal piso_10mbps_din_rdy : std_logic;
subtype inter_frame_gap_cnt_t is natural range 0 to natural(1.0*f_sysclk)-1;
signal inter_frame_gap_cnt : inter_frame_gap_cnt_t;
@@ -134,7 +138,7 @@ begin
ram_din_a <= din;
ram_addr_a <= fill_ptr;
piso_din_be <= (others => '1');
piso_din_be <= mii_fifo_dout(35 downto 32);
mii_fifo_re <= piso_din_rdy;
data_vld <= not mii_fifo_empty;
@@ -474,7 +478,7 @@ xfer_pointer:
end process;
------------------------------------------------------------------
inst_ram : entity work.dpram_2w2r
inst_ram : entity work.dpram_1w1r
GENERIC MAP
(
addr_width => RAM_ADDR_WIDTH,
@@ -482,17 +486,14 @@ inst_ram : entity work.dpram_2w2r
)
PORT MAP
(
clk_a => clk,
clk_b => clk,
clka => clk,
clkb => clk,
en_a => ram_en_a,
en_b => ram_en_b,
we_a => ram_we_a,
we_b => ram_we_b,
addr_a => ram_addr_a,
addr_b => ram_addr_b,
din_a => ram_din_a,
din_b => ram_din_b,
dout_a => ram_dout_a,
dout_b => ram_dout_b
);
@@ -546,7 +547,7 @@ inst_piso : entity work.piso
(
data_width_in => 32,
data_width_out => 8,
msb_first => false
msb_first => true
)
PORT MAP
(
@@ -554,11 +555,35 @@ inst_piso : entity work.piso
clk => mii_tx_clk,
din_vld => data_vld,
din_rdy => piso_din_rdy,
din_be => mii_fifo_dout(35 downto 32),
din_be => piso_din_be,
din => mii_fifo_dout(31 downto 0),
dout_en => mii_tx_en,
dout => mii_tx
dout_vld => piso_dout_vld,
dout_en => piso_10mbps_din_rdy,
dout => piso_dout
);
inst_piso_10mbps : entity work.piso
GENERIC MAP
(
data_width_in => 8,
data_width_out => 4,
msb_first => false
)
PORT MAP
(
rst => rst,
clk => mii_tx_clk,
din_vld => piso_dout_vld,
din_rdy => piso_10mbps_din_rdy,
din_be => "11",
din => piso_dout,
dout_vld => mii_tx_en,
dout_en => '1',
dout => mii_tx(3 downto 0)
);
mii_tx(7 downto 4) <= "0000";
end behavior;