BUG FIX: Remove inferred Latches
This commit is contained in:
parent
e7ed1eab28
commit
fba065e59e
@ -741,12 +741,12 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Double Word 1/2
|
-- Double Word 1/2
|
||||||
when 0 =>
|
when 0 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, data_in_latch, 0, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, data_in_latch, 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Double Word 2/2
|
-- Double Word 2/2
|
||||||
when 1 =>
|
when 1 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, data_in_latch, 1, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, data_in_latch, 1, TRUE);
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Push Double Word
|
-- Push Double Word
|
||||||
when 2 =>
|
when 2 =>
|
||||||
@ -793,22 +793,22 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Quad Word 1/4
|
-- Quad Word 1/4
|
||||||
when 0 =>
|
when 0 =>
|
||||||
qw_latch_next <= write_sub_vector(qw_latch_next, data_in_latch, 0, TRUE);
|
qw_latch_next <= write_sub_vector(qw_latch, data_in_latch, 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Quad Word 2/4
|
-- Quad Word 2/4
|
||||||
when 1 =>
|
when 1 =>
|
||||||
qw_latch_next <= write_sub_vector(qw_latch_next, data_in_latch, 1, TRUE);
|
qw_latch_next <= write_sub_vector(qw_latch, data_in_latch, 1, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Quad Word 3/4
|
-- Quad Word 3/4
|
||||||
when 2 =>
|
when 2 =>
|
||||||
qw_latch_next <= write_sub_vector(qw_latch_next, data_in_latch, 2, TRUE);
|
qw_latch_next <= write_sub_vector(qw_latch, data_in_latch, 2, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Quad Word 4/4
|
-- Quad Word 4/4
|
||||||
when 3 =>
|
when 3 =>
|
||||||
qw_latch_next <= write_sub_vector(qw_latch_next, data_in_latch, 3, TRUE);
|
qw_latch_next <= write_sub_vector(qw_latch, data_in_latch, 3, TRUE);
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Push Quad Word
|
-- Push Quad Word
|
||||||
when 4 =>
|
when 4 =>
|
||||||
|
|||||||
@ -259,7 +259,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_STREAM;
|
stage_next <= ALIGN_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = F_GOAL_ID_MAX_DEPTH-1) then
|
if (uuid_cnt = F_GOAL_ID_MAX_DEPTH-1) then
|
||||||
|
|||||||
@ -337,7 +337,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_STREAM;
|
stage_next <= ALIGN_STREAM;
|
||||||
else
|
else
|
||||||
goal_id_latch_next <= write_sub_vector(goal_id_latch_next, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
goal_id_latch_next <= write_sub_vector(goal_id_latch, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- Need to fetch next Word
|
-- Need to fetch next Word
|
||||||
|
|||||||
@ -424,12 +424,12 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Double Word 1/2
|
-- Double Word 1/2
|
||||||
when 0 =>
|
when 0 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Double Word 2/2
|
-- Double Word 2/2
|
||||||
when 1 =>
|
when 1 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Push Double Word
|
-- Push Double Word
|
||||||
when 2 =>
|
when 2 =>
|
||||||
@ -624,7 +624,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_OUT_STREAM;
|
stage_next <= ALIGN_OUT_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = G_RQ_GOAL_ID_MAX_DEPTH-1) then
|
if (uuid_cnt = G_RQ_GOAL_ID_MAX_DEPTH-1) then
|
||||||
|
|||||||
@ -402,7 +402,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_IN_STREAM;
|
stage_next <= ALIGN_IN_STREAM;
|
||||||
else
|
else
|
||||||
goal_id_latch_next <= write_sub_vector(goal_id_latch_next, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
goal_id_latch_next <= write_sub_vector(goal_id_latch, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- Need to fetch next Word
|
-- Need to fetch next Word
|
||||||
|
|||||||
@ -687,7 +687,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_OUT_STREAM;
|
stage_next <= ALIGN_OUT_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = R_RQ_MAX_GOAL_ID_SIZE-1) then
|
if (uuid_cnt = R_RQ_MAX_GOAL_ID_SIZE-1) then
|
||||||
|
|||||||
@ -440,7 +440,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_IN_STREAM;
|
stage_next <= ALIGN_IN_STREAM;
|
||||||
else
|
else
|
||||||
goal_id_latch_next <= write_sub_vector(goal_id_latch_next, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
goal_id_latch_next <= write_sub_vector(goal_id_latch, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- Need to fetch next Word
|
-- Need to fetch next Word
|
||||||
@ -637,7 +637,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_OUT_STREAM;
|
stage_next <= ALIGN_OUT_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, endian_swap(LITTLE_ENDIAN, status), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, endian_swap(LITTLE_ENDIAN, status), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- ###GENERATED START###
|
-- ###GENERATED START###
|
||||||
|
|||||||
@ -777,6 +777,7 @@ begin
|
|||||||
cnt_next <= cnt;
|
cnt_next <= cnt;
|
||||||
result_index_latch_next <= result_index_latch;
|
result_index_latch_next <= result_index_latch;
|
||||||
-- DEFAULT Unregistered
|
-- DEFAULT Unregistered
|
||||||
|
index_result_ready <= '0';
|
||||||
r_sel_ack <= '0';
|
r_sel_ack <= '0';
|
||||||
abort_mem <= '0';
|
abort_mem <= '0';
|
||||||
-- ###GENERATED START###
|
-- ###GENERATED START###
|
||||||
@ -791,6 +792,9 @@ begin
|
|||||||
r_seq_mem_valid_in <= (others => '0');
|
r_seq_mem_valid_in <= (others => '0');
|
||||||
r_seq_mem_data_in <= (others => (others => '0'));
|
r_seq_mem_data_in <= (others => (others => '0'));
|
||||||
r_seq_mem_ready_out <= (others => '0');
|
r_seq_mem_ready_out <= (others => '0');
|
||||||
|
result_seq_r <= (others => '0');
|
||||||
|
result_seq_valid <= '0';
|
||||||
|
result_seq_ready <= '0';
|
||||||
seq_len_sig <= (others => '0');
|
seq_len_sig <= (others => '0');
|
||||||
seq_addr_sig <= (others => '0');
|
seq_addr_sig <= (others => '0');
|
||||||
seq_wen_sig <= '0';
|
seq_wen_sig <= '0';
|
||||||
|
|||||||
@ -569,12 +569,12 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Double Word 1/2
|
-- Double Word 1/2
|
||||||
when 0 =>
|
when 0 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Double Word 2/2
|
-- Double Word 2/2
|
||||||
when 1 =>
|
when 1 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Push Double Word
|
-- Push Double Word
|
||||||
when 2 =>
|
when 2 =>
|
||||||
@ -786,7 +786,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_OUT_STREAM;
|
stage_next <= ALIGN_OUT_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(goal_info_goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(goal_info_goal_id,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = RQ_GOAL_INFO_GOAL_ID_MAX_DEPTH-1) then
|
if (uuid_cnt = RQ_GOAL_INFO_GOAL_ID_MAX_DEPTH-1) then
|
||||||
|
|||||||
@ -485,7 +485,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_IN_STREAM;
|
stage_next <= ALIGN_IN_STREAM;
|
||||||
else
|
else
|
||||||
goal_info_goal_id_latch_next <= write_sub_vector(goal_info_goal_id_latch_next, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
goal_info_goal_id_latch_next <= write_sub_vector(goal_info_goal_id_latch, get_sub_vector(data_in_latch, to_integer(align_offset(1 downto 0)), CDR_INT8_WIDTH, TRUE), uuid_cnt, TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- Need to fetch next Word
|
-- Need to fetch next Word
|
||||||
@ -511,12 +511,12 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Double Word 1/2
|
-- Double Word 1/2
|
||||||
when 0 =>
|
when 0 =>
|
||||||
goal_info_stamp_latch_next <= write_sub_vector(goal_info_stamp_latch_next, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
goal_info_stamp_latch_next <= write_sub_vector(goal_info_stamp_latch, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Double Word 2/2
|
-- Double Word 2/2
|
||||||
when 1 =>
|
when 1 =>
|
||||||
goal_info_stamp_latch_next <= write_sub_vector(goal_info_stamp_latch_next, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
goal_info_stamp_latch_next <= write_sub_vector(goal_info_stamp_latch, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
align_offset_next <= align_offset + 8;
|
align_offset_next <= align_offset + 8;
|
||||||
|
|
||||||
@ -710,7 +710,7 @@ begin
|
|||||||
target_align_next <= ALIGN_1;
|
target_align_next <= ALIGN_1;
|
||||||
stage_next <= ALIGN_OUT_STREAM;
|
stage_next <= ALIGN_OUT_STREAM;
|
||||||
else
|
else
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, endian_swap(LITTLE_ENDIAN, return_code), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, endian_swap(LITTLE_ENDIAN, return_code), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
encode_stage_next <= WRITE_RR_GOALS_CANCELING_LENGTH;
|
encode_stage_next <= WRITE_RR_GOALS_CANCELING_LENGTH;
|
||||||
@ -763,7 +763,7 @@ begin
|
|||||||
when 1 =>
|
when 1 =>
|
||||||
-- Memory Operation Guard
|
-- Memory Operation Guard
|
||||||
if (goals_canceling_goal_id_mem_valid_out = '1') then
|
if (goals_canceling_goal_id_mem_valid_out = '1') then
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(goals_canceling_goal_id_mem_data_out,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(goals_canceling_goal_id_mem_data_out,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = RR_GOALS_CANCELING_GOAL_ID_MAX_DEPTH-1) then
|
if (uuid_cnt = RR_GOALS_CANCELING_GOAL_ID_MAX_DEPTH-1) then
|
||||||
|
|||||||
@ -365,7 +365,7 @@ begin
|
|||||||
when 1 =>
|
when 1 =>
|
||||||
-- Memory Operation Guard
|
-- Memory Operation Guard
|
||||||
if (status_list_goal_info_goal_id_mem_valid_out = '1') then
|
if (status_list_goal_info_goal_id_mem_valid_out = '1') then
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, get_sub_vector(status_list_goal_info_goal_id_mem_data_out,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, get_sub_vector(status_list_goal_info_goal_id_mem_data_out,uuid_cnt,CDR_INT8_WIDTH,TRUE), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
if (uuid_cnt = STATUS_LIST_GOAL_INFO_GOAL_ID_MAX_DEPTH-1) then
|
if (uuid_cnt = STATUS_LIST_GOAL_INFO_GOAL_ID_MAX_DEPTH-1) then
|
||||||
@ -445,7 +445,7 @@ begin
|
|||||||
status_list_status_mem_ready_out <= '1';
|
status_list_status_mem_ready_out <= '1';
|
||||||
-- Memory Operation Guard
|
-- Memory Operation Guard
|
||||||
if (status_list_status_mem_valid_out = '1') then
|
if (status_list_status_mem_valid_out = '1') then
|
||||||
data_out_latch_next <= write_sub_vector(data_out_latch_next, endian_swap(LITTLE_ENDIAN, status_list_status_mem_data_out), to_integer(align_offset(1 downto 0)), TRUE);
|
data_out_latch_next <= write_sub_vector(data_out_latch, endian_swap(LITTLE_ENDIAN, status_list_status_mem_data_out), to_integer(align_offset(1 downto 0)), TRUE);
|
||||||
align_offset_next <= align_offset + 1;
|
align_offset_next <= align_offset + 1;
|
||||||
|
|
||||||
-- All Elements processed
|
-- All Elements processed
|
||||||
|
|||||||
@ -471,12 +471,12 @@ begin
|
|||||||
case (cnt) is
|
case (cnt) is
|
||||||
-- Double Word 1/2
|
-- Double Word 1/2
|
||||||
when 0 =>
|
when 0 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 0, TRUE);
|
||||||
stage_next <= FETCH;
|
stage_next <= FETCH;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Double Word 2/2
|
-- Double Word 2/2
|
||||||
when 1 =>
|
when 1 =>
|
||||||
dw_latch_next <= write_sub_vector(dw_latch_next, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
dw_latch_next <= write_sub_vector(dw_latch, endian_swap(endian_flag, data_in_latch), 1, TRUE);
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
-- Push Double Word
|
-- Push Double Word
|
||||||
when 2 =>
|
when 2 =>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user