Commit 1652bb2a authored by Wesley W. Terpstra's avatar Wesley W. Terpstra

eca: on IO channels, report delayed as valid (there is no delayed on a_io_o)

parent 10a4b973
......@@ -442,6 +442,7 @@ begin
io_channel : eca_channel
generic map(
g_support_io => true,
g_never_delayed => true,
g_num_channels => g_num_ios,
g_log_size => g_log_queue_size,
g_log_multiplier => g_log_multiplier,
......@@ -478,6 +479,7 @@ begin
tag_channel : eca_channel
generic map(
g_support_io => false,
g_never_delayed => false,
g_num_channels => f_num(i-1),
g_log_size => g_log_queue_size,
g_log_multiplier => g_log_multiplier,
......
......@@ -62,6 +62,7 @@ use work.eca_internals_pkg.all;
entity eca_channel is
generic(
g_support_io : boolean := false; -- Should io_o be driven?
g_never_delayed : boolean := false; -- Report delayed as valid?
g_num_channels : natural := 1; -- Number of channels emulated by this instance (must be >= 1)
g_log_size : natural := 8; -- 2**g_log_size = maximum number of pending actions
g_log_multiplier : natural := 3; -- 2**g_log_multiplier = ticks per cycle
......@@ -302,6 +303,7 @@ begin
channel : eca_tag_channel
generic map(
g_support_io => g_support_io,
g_never_delayed => g_never_delayed,
g_num_channels => g_num_channels,
g_log_size => g_log_size,
g_log_multiplier => g_log_multiplier,
......
......@@ -105,6 +105,7 @@ begin
channel : eca_channel
generic map(
g_support_io => true,
g_never_delayed => false,
g_num_channels => c_num_channels,
g_log_size => c_log_size,
g_log_multiplier => c_log_multiplier,
......
......@@ -365,6 +365,7 @@ package eca_internals_pkg is
component eca_tag_channel is
generic(
g_support_io : boolean := false; -- Should io_o be driven?
g_never_delayed : boolean := false; -- Report delayed as valid?
g_num_channels : natural := 1; -- Number of channels emulated by this instance
g_log_size : natural := 8; -- 2**g_log_size = maximum number of pending actions
g_log_multiplier : natural := 3; -- 2**g_log_multiplier = ticks per cycle
......@@ -407,6 +408,7 @@ package eca_internals_pkg is
component eca_channel is
generic(
g_support_io : boolean := false; -- Should io_o be driven?
g_never_delayed : boolean := false; -- Report delayed as valid?
g_num_channels : natural := 1; -- Number of channels emulated by this instance (must be >= 1)
g_log_size : natural := 8; -- 2**g_log_size = maximum number of pending actions
g_log_multiplier : natural := 3; -- 2**g_log_multiplier = ticks per cycle
......
......@@ -31,6 +31,7 @@ use work.eca_internals_pkg.all;
entity eca_tag_channel is
generic(
g_support_io : boolean := false; -- Should io_o be driven?
g_never_delayed : boolean := false; -- Report delayed as valid?
g_num_channels : natural := 1; -- Number of channels emulated by this instance
g_log_size : natural := 8; -- 2**g_log_size = maximum number of pending actions
g_log_multiplier : natural := 3; -- 2**g_log_multiplier = ticks per cycle
......@@ -648,7 +649,8 @@ begin
s_late <= r_mux_valid and r_mux_late;
s_early <= r_mux_valid and r_mux_early;
s_conflict <= (r_mux_valid and r_mux_next and s_saw_valid) and not (s_late or s_early);
s_delayed <= (r_mux_valid and (r_mux_delay or r_stall)) and not (s_late or s_early or s_conflict);
s_delayed <= (r_mux_valid and (r_mux_delay or r_stall)) and not (s_late or s_early or s_conflict)
and not f_eca_active_high(g_never_delayed);
-- Only valid if the errors are accepted by the condition rule
s_valid <= r_mux_valid and
......
......@@ -99,6 +99,7 @@ begin
channel : eca_tag_channel
generic map(
g_support_io => true,
g_never_delayed => false,
g_num_channels => c_num_channels,
g_log_size => c_log_size,
g_log_multiplier => c_log_multiplier,
......
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