- added din_vld which corressponds to din

- fixed wrong byte enables for first PISO (MSB_FIRST
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@822 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2010-03-25 21:09:59 +00:00
parent 0554714b52
commit ebdb4e1e2c
+7 -6
View File
@@ -16,6 +16,7 @@ ENTITY emac_tx IS
(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
din_vld : in STD_LOGIC;
din : in unsigned(31 downto 0);
ctrl_in : in tx_ctrl_in_t;
ctrl_out : out tx_ctrl_out_t;
@@ -118,9 +119,9 @@ ARCHITECTURE behavior OF emac_tx IS
constant piso_byte_mask_rom : piso_byte_mask_array_t :=
(
"1111",
"0001",
"0011",
"0111"
"1000",
"1100",
"1110"
);
@@ -165,7 +166,7 @@ host_state_next:
end process;
host_state:
process(host_s, alloc_req, alloc_OK, fill_rdy, ctrl_in.data_vld)
process(host_s, alloc_req, alloc_OK, fill_rdy, din_vld)
begin
flush_en <= '0';
@@ -210,8 +211,8 @@ host_state:
host_sn <= host_fill;
when host_fill =>
fill_cnt_adv <= ctrl_in.data_vld;
fill_ptr_adv <= not fill_rdy and ctrl_in.data_vld;
fill_cnt_adv <= din_vld;
fill_ptr_adv <= not fill_rdy and din_vld;
if alloc_req = '1' then
host_sn <= host_alloc;
elsif fill_rdy = '1' then