Commit c211ed08 authored by Tristan Gingold's avatar Tristan Gingold

l2p_dma_master: minor refactoring (remove in-between signal).

parent d601caf2
...@@ -132,10 +132,6 @@ architecture behavioral of l2p_dma_master is ...@@ -132,10 +132,6 @@ architecture behavioral of l2p_dma_master is
signal l2p_last_packet : std_logic; signal l2p_last_packet : std_logic;
signal l2p_lbe_header : std_logic_vector(3 downto 0); signal l2p_lbe_header : std_logic_vector(3 downto 0);
signal ldm_arb_data_l : std_logic_vector(31 downto 0) := (others => '0');
signal ldm_arb_valid : std_logic;
signal data_fifo_valid : std_logic;
signal addr_fifo_valid : std_logic; signal addr_fifo_valid : std_logic;
-- Counter -- Counter
...@@ -164,9 +160,6 @@ begin ...@@ -164,9 +160,6 @@ begin
data_i => fifo_rst_n, data_i => fifo_rst_n,
synced_o => wb_fifo_rst_n); synced_o => wb_fifo_rst_n);
ldm_arb_valid_o <= ldm_arb_valid;
ldm_arb_data_o <= ldm_arb_data_l;
--------------------- ---------------------
-- L2P FSM -- L2P FSM
--------------------- ---------------------
...@@ -176,13 +169,12 @@ begin ...@@ -176,13 +169,12 @@ begin
if (rst_n_i = '0') then if (rst_n_i = '0') then
l2p_dma_current_state <= L2P_IDLE; l2p_dma_current_state <= L2P_IDLE;
ldm_arb_req_o <= '0'; ldm_arb_req_o <= '0';
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
data_fifo_rd <= '0'; data_fifo_rd <= '0';
dma_ctrl_done_o <= '0'; dma_ctrl_done_o <= '0';
l2p_edb_o <= '0'; l2p_edb_o <= '0';
fifo_rst_t <= '1'; fifo_rst_t <= '1';
data_fifo_valid <= '0';
else else
case l2p_dma_current_state is case l2p_dma_current_state is
...@@ -191,23 +183,20 @@ begin ...@@ -191,23 +183,20 @@ begin
l2p_edb_o <= '0'; l2p_edb_o <= '0';
fifo_rst_t <= '0'; fifo_rst_t <= '0';
ldm_arb_req_o <= '0'; ldm_arb_req_o <= '0';
ldm_arb_data_l <= (others => '0'); ldm_arb_data_o <= (others => '0');
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
data_fifo_rd <= '0'; data_fifo_rd <= '0';
data_fifo_valid <= '0';
dma_ctrl_done_o <= '0'; dma_ctrl_done_o <= '0';
data_fifo_valid <= '0';
if (dma_ctrl_start_l2p_i = '1') then if (dma_ctrl_start_l2p_i = '1') then
l2p_dma_current_state <= L2P_SETUP; l2p_dma_current_state <= L2P_SETUP;
end if; end if;
when L2P_SETUP => when L2P_SETUP =>
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
data_fifo_rd <= '0'; data_fifo_rd <= '0';
data_fifo_valid <= '0';
l2p_timeout_cnt <= (others => '0'); l2p_timeout_cnt <= (others => '0');
if (l2p_rdy_i = '1') then if (l2p_rdy_i = '1') then
l2p_dma_current_state <= L2P_HEADER; l2p_dma_current_state <= L2P_HEADER;
...@@ -215,12 +204,12 @@ begin ...@@ -215,12 +204,12 @@ begin
end if; end if;
when L2P_HEADER => when L2P_HEADER =>
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
if (arb_ldm_gnt_i = '1' and l_wr_rdy_i = '1') then if (arb_ldm_gnt_i = '1' and l_wr_rdy_i = '1') then
ldm_arb_req_o <= '0'; -- Bus has been granted ldm_arb_req_o <= '0'; -- Bus has been granted
-- Send header -- Send header
ldm_arb_data_l <= s_l2p_header; ldm_arb_data_o <= s_l2p_header;
ldm_arb_valid <= '1'; ldm_arb_valid_o <= '1';
ldm_arb_dframe_o <= '1'; -- Keep asserted to stay bus master ldm_arb_dframe_o <= '1'; -- Keep asserted to stay bus master
if (l2p_64b_address = '1') then if (l2p_64b_address = '1') then
l2p_dma_current_state <= L2P_ADDR_H; l2p_dma_current_state <= L2P_ADDR_H;
...@@ -230,15 +219,15 @@ begin ...@@ -230,15 +219,15 @@ begin
end if; end if;
when L2P_ADDR_H => when L2P_ADDR_H =>
ldm_arb_data_l <= l2p_address_h; ldm_arb_data_o <= l2p_address_h;
l2p_dma_current_state <= L2P_ADDR_L; l2p_dma_current_state <= L2P_ADDR_L;
when L2P_ADDR_L => when L2P_ADDR_L =>
ldm_arb_data_l <= l2p_address_l; ldm_arb_data_o <= l2p_address_l;
l2p_dma_current_state <= L2P_DATA; l2p_dma_current_state <= L2P_DATA;
when L2P_DATA => when L2P_DATA =>
ldm_arb_data_l <= x"DEADBEEF"; ldm_arb_data_o <= x"DEADBEEF";
if (data_fifo_empty = '0' and l2p_rdy_i = '1') then if (data_fifo_empty = '0' and l2p_rdy_i = '1') then
data_fifo_rd <= '1'; data_fifo_rd <= '1';
else else
...@@ -246,18 +235,19 @@ begin ...@@ -246,18 +235,19 @@ begin
end if; end if;
if (data_fifo_rd = '1' and data_fifo_empty = '0' and l2p_data_cnt = 1) then if (data_fifo_rd = '1' and data_fifo_empty = '0' and l2p_data_cnt = 1) then
ldm_arb_data_l <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap); ldm_arb_data_o <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap);
ldm_arb_valid <= '1'; ldm_arb_valid_o <= '1';
-- DFRAME is released one clock before the packet ends.
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
l2p_dma_current_state <= L2P_LAST_DATA; l2p_dma_current_state <= L2P_LAST_DATA;
data_fifo_rd <= '0'; -- Don't read too much data_fifo_rd <= '0'; -- Don't read too much
elsif (data_fifo_rd = '1' and data_fifo_empty = '0' and l2p_data_cnt > 1) then elsif (data_fifo_rd = '1' and data_fifo_empty = '0' and l2p_data_cnt > 1) then
ldm_arb_data_l <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap); ldm_arb_data_o <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap);
ldm_arb_valid <= '1'; ldm_arb_valid_o <= '1';
ldm_arb_dframe_o <= '1'; ldm_arb_dframe_o <= '1';
else else
ldm_arb_data_l <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap); ldm_arb_data_o <= f_byte_swap(g_BYTE_SWAP, data_fifo_dout, l2p_byte_swap);
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
ldm_arb_dframe_o <= '1'; ldm_arb_dframe_o <= '1';
end if; end if;
...@@ -274,11 +264,10 @@ begin ...@@ -274,11 +264,10 @@ begin
end if; end if;
when L2P_LAST_DATA => when L2P_LAST_DATA =>
ldm_arb_data_l <= x"DEADBEEF"; ldm_arb_data_o <= x"DEADBEEF";
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
ldm_arb_valid <= '0'; ldm_arb_valid_o <= '0';
data_fifo_rd <= '0'; data_fifo_rd <= '0';
data_fifo_valid <= '0';
if (dma_ctrl_abort_i = '1' or tx_error_i = '1') then if (dma_ctrl_abort_i = '1' or tx_error_i = '1') then
l2p_dma_current_state <= L2P_IDLE; l2p_dma_current_state <= L2P_IDLE;
dma_ctrl_done_o <= '1'; dma_ctrl_done_o <= '1';
...@@ -290,9 +279,9 @@ begin ...@@ -290,9 +279,9 @@ begin
end if; end if;
when L2P_ERROR => when L2P_ERROR =>
ldm_arb_data_l <= x"DEADBEEF"; ldm_arb_data_o <= x"DEADBEEF";
ldm_arb_dframe_o <= '0'; ldm_arb_dframe_o <= '0';
ldm_arb_valid <= '1'; ldm_arb_valid_o <= '1';
l2p_edb_o <= '1'; l2p_edb_o <= '1';
fifo_rst_t <= '1'; fifo_rst_t <= '1';
l2p_dma_current_state <= L2P_IDLE; l2p_dma_current_state <= L2P_IDLE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment