Line 80... |
Line 80... |
reg a_rip, nxt_a_rip; // read in progress by A
|
reg a_rip, nxt_a_rip; // read in progress by A
|
reg a_wip, nxt_a_wip; // write (read-cache-fill) in progress by A
|
reg a_wip, nxt_a_wip; // write (read-cache-fill) in progress by A
|
reg b_rip, nxt_b_rip; // read in progress by B
|
reg b_rip, nxt_b_rip; // read in progress by B
|
wire t_ram_nwrt, t_ram_nce;
|
wire t_ram_nwrt, t_ram_nce;
|
wire [35:0] t_ram_din;
|
wire [35:0] t_ram_din;
|
wire c_rip = lcfg_data_rd_ack;
|
wire c_rip = cfgi_trdy;
|
wire a_cache_hit, b_cache_hit;
|
wire a_cache_hit, b_cache_hit;
|
wire [12:0] t_ram_addr;
|
wire [12:0] t_ram_addr;
|
|
|
/*AUTOWIRE*/
|
/*AUTOWIRE*/
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
Line 109... |
Line 109... |
.rd_data (dout),
|
.rd_data (dout),
|
// Inputs
|
// Inputs
|
.wr_en (!t_ram_nce & !t_ram_nwrt),
|
.wr_en (!t_ram_nce & !t_ram_nwrt),
|
.rd_en (!t_ram_nce & t_ram_nwrt),
|
.rd_en (!t_ram_nce & t_ram_nwrt),
|
.clk (clk),
|
.clk (clk),
|
.wr_data (t_ram_din[]),
|
.d_in (t_ram_din[]),
|
.addr (t_ram_addr[]),
|
.addr (t_ram_addr[]),
|
);
|
);
|
*/
|
*/
|
|
|
behave1p_mem #(.width(32),
|
behave1p_mem #(.width(32),
|
Line 124... |
Line 124... |
.d_out (d_out[31:0]),
|
.d_out (d_out[31:0]),
|
// Inputs
|
// Inputs
|
.wr_en (!t_ram_nce & !t_ram_nwrt), // Templated
|
.wr_en (!t_ram_nce & !t_ram_nwrt), // Templated
|
.rd_en (!t_ram_nce & t_ram_nwrt), // Templated
|
.rd_en (!t_ram_nce & t_ram_nwrt), // Templated
|
.clk (clk), // Templated
|
.clk (clk), // Templated
|
.d_in (d_in[31:0]),
|
.d_in (t_ram_din[31:0]), // Templated
|
.addr (t_ram_addr[12:0])); // Templated
|
.addr (t_ram_addr[12:0])); // Templated
|
|
|
always @*
|
always @*
|
begin
|
begin
|
nxt_ca_addr = ca_addr;
|
nxt_ca_addr = ca_addr;
|
Line 146... |
Line 146... |
nxt_cvld = cvld;
|
nxt_cvld = cvld;
|
nxt_wcvld = wcvld;
|
nxt_wcvld = wcvld;
|
nxt_wc_data = wc_data;
|
nxt_wc_data = wc_data;
|
nxt_wc_addr = wc_addr;
|
nxt_wc_addr = wc_addr;
|
nxt_cfgi_trdy = 0;
|
nxt_cfgi_trdy = 0;
|
//nxt_lcfg_data_rd_ack = 0;
|
|
//nxt_lcfg_data_wr_ack = 0;
|
|
|
|
if (a_cache_hit)
|
if (a_cache_hit)
|
begin
|
begin
|
case (a_addr[1:0])
|
case (a_addr[1:0])
|
0 : a_rdata = ca_data[7:0];
|
0 : a_rdata = ca_data[7:0];
|
Line 344... |
Line 342... |
if (cfgi_write & !cfgi_trdy)
|
if (cfgi_write & !cfgi_trdy)
|
begin
|
begin
|
nxt_cfgi_trdy = 1;
|
nxt_cfgi_trdy = 1;
|
ram_nce = 0;
|
ram_nce = 0;
|
ram_nwrt = 0;
|
ram_nwrt = 0;
|
ram_addr = lcfg_cfg_addr;
|
ram_addr = cfgi_addr;
|
ram_din = lcfg_data_wr_data;
|
ram_din = cfgi_wr_data;
|
// invalidate caches as precaution
|
// invalidate caches as precaution
|
nxt_cvld = 0;
|
nxt_cvld = 0;
|
nxt_wcvld = 0;
|
nxt_wcvld = 0;
|
end
|
end
|
else if (!cfgi_write & !cfgi_trdy)
|
else if (!cfgi_write & !cfgi_trdy)
|
begin
|
begin
|
ram_nce = 0;
|
ram_nce = 0;
|
ram_addr = lcfg_cfg_addr;
|
ram_addr = cfgi_addr;
|
nxt_cfgi_trdy = 1;
|
nxt_cfgi_trdy = 1;
|
end
|
end
|
end
|
end
|
end
|
end
|
end // if (lcfg_init)
|
end // if (lcfg_init)
|