Aligner Updated
This commit is contained in:
parent
28514f598d
commit
e22d45277f
|
@ -1995,7 +1995,7 @@ circuit el2_ifu_aln_ctl :
|
|||
|
||||
module el2_ifu_aln_ctl :
|
||||
input clock : Clock
|
||||
input reset : UInt<1>
|
||||
input reset : AsyncReset
|
||||
output io : {flip scan_mode : UInt<1>, flip active_clk : Clock, flip ifu_async_error_start : UInt<1>, flip iccm_rd_ecc_double_err : UInt<1>, flip ic_access_fault_f : UInt<1>, flip ic_access_fault_type_f : UInt<2>, flip ifu_bp_fghr_f : UInt<8>, flip ifu_bp_btb_target_f : UInt<31>, flip ifu_bp_poffset_f : UInt<12>, flip ifu_bp_hist0_f : UInt<2>, flip ifu_bp_hist1_f : UInt<2>, flip ifu_bp_pc4_f : UInt<2>, flip ifu_bp_way_f : UInt<2>, flip ifu_bp_valid_f : UInt<2>, flip ifu_bp_ret_f : UInt<2>, flip exu_flush_final : UInt<1>, flip dec_i0_decode_d : UInt<1>, flip ifu_fetch_data_f : UInt<32>, flip ifu_fetch_val : UInt<2>, flip ifu_fetch_pc : UInt<31>, ifu_i0_valid : UInt<1>, ifu_i0_icaf : UInt<1>, ifu_i0_icaf_type : UInt<2>, ifu_i0_icaf_f1 : UInt<1>, ifu_i0_dbecc : UInt<1>, ifu_i0_instr : UInt<32>, ifu_i0_pc : UInt<31>, ifu_i0_pc4 : UInt<1>, ifu_fb_consume1 : UInt<1>, ifu_fb_consume2 : UInt<1>, ifu_i0_bp_index : UInt<8>, ifu_i0_bp_fghr : UInt<8>, ifu_i0_bp_btag : UInt<5>, ifu_pmu_instr_aligned : UInt<1>, ifu_i0_cinst : UInt<16>, i0_brp : {valid : UInt<1>, toffset : UInt<12>, hist : UInt<2>, br_error : UInt<1>, br_start_error : UInt<1>, bank : UInt<1>, prett : UInt<31>, way : UInt<1>, ret : UInt<1>}}
|
||||
|
||||
io.ifu_i0_valid <= UInt<1>("h00") @[el2_ifu_aln_ctl.scala 47:19]
|
||||
|
|
|
@ -583,7 +583,6 @@ module el2_ifu_aln_ctl(
|
|||
reg error_stall; // @[el2_ifu_aln_ctl.scala 128:51]
|
||||
wire _T = error_stall | io_ifu_async_error_start; // @[el2_ifu_aln_ctl.scala 126:34]
|
||||
wire _T_1 = ~io_exu_flush_final; // @[el2_ifu_aln_ctl.scala 126:64]
|
||||
wire error_stall_in = _T & _T_1; // @[el2_ifu_aln_ctl.scala 126:62]
|
||||
reg [1:0] wrptr; // @[el2_ifu_aln_ctl.scala 129:48]
|
||||
reg [1:0] rdptr; // @[el2_ifu_aln_ctl.scala 130:48]
|
||||
reg [1:0] f2val; // @[el2_ifu_aln_ctl.scala 132:48]
|
||||
|
@ -754,7 +753,6 @@ module el2_ifu_aln_ctl(
|
|||
wire [1:0] _T_88 = _T_86 | _T_82; // @[Mux.scala 27:72]
|
||||
wire [1:0] _GEN_15 = {{1'd0}, _T_71}; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_90 = _T_88 | _GEN_15; // @[Mux.scala 27:72]
|
||||
wire [1:0] rdptr_in = _T_90 | _T_85; // @[Mux.scala 27:72]
|
||||
wire _T_95 = qwen[0] & _T_1; // @[el2_ifu_aln_ctl.scala 171:34]
|
||||
wire _T_99 = qwen[1] & _T_1; // @[el2_ifu_aln_ctl.scala 172:14]
|
||||
wire _T_105 = ~ifvalid; // @[el2_ifu_aln_ctl.scala 174:6]
|
||||
|
@ -763,7 +761,6 @@ module el2_ifu_aln_ctl(
|
|||
wire [1:0] _T_112 = _T_107 ? wrptr : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _GEN_16 = {{1'd0}, _T_95}; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_113 = _GEN_16 | _T_110; // @[Mux.scala 27:72]
|
||||
wire [1:0] wrptr_in = _T_113 | _T_112; // @[Mux.scala 27:72]
|
||||
wire _T_118 = ~qwen[2]; // @[el2_ifu_aln_ctl.scala 176:26]
|
||||
wire _T_120 = _T_118 & _T_188; // @[el2_ifu_aln_ctl.scala 176:35]
|
||||
wire _T_795 = shift_2B & f0val[0]; // @[Mux.scala 27:72]
|
||||
|
@ -779,7 +776,6 @@ module el2_ifu_aln_ctl(
|
|||
wire _T_135 = _T_126 & _T_128; // @[Mux.scala 27:72]
|
||||
wire _T_136 = _T_132 & q2off; // @[Mux.scala 27:72]
|
||||
wire _T_137 = _T_134 | _T_135; // @[Mux.scala 27:72]
|
||||
wire q2off_in = _T_137 | _T_136; // @[Mux.scala 27:72]
|
||||
wire _T_141 = ~qwen[1]; // @[el2_ifu_aln_ctl.scala 180:26]
|
||||
wire _T_143 = _T_141 & _T_187; // @[el2_ifu_aln_ctl.scala 180:35]
|
||||
wire _T_145 = q1off | f0_shift_2B; // @[el2_ifu_aln_ctl.scala 180:74]
|
||||
|
@ -790,7 +786,6 @@ module el2_ifu_aln_ctl(
|
|||
wire _T_158 = _T_149 & _T_151; // @[Mux.scala 27:72]
|
||||
wire _T_159 = _T_155 & q1off; // @[Mux.scala 27:72]
|
||||
wire _T_160 = _T_157 | _T_158; // @[Mux.scala 27:72]
|
||||
wire q1off_in = _T_160 | _T_159; // @[Mux.scala 27:72]
|
||||
wire _T_164 = ~qwen[0]; // @[el2_ifu_aln_ctl.scala 184:26]
|
||||
wire _T_166 = _T_164 & _T_186; // @[el2_ifu_aln_ctl.scala 184:35]
|
||||
wire _T_168 = q0off | f0_shift_2B; // @[el2_ifu_aln_ctl.scala 184:76]
|
||||
|
@ -801,7 +796,6 @@ module el2_ifu_aln_ctl(
|
|||
wire _T_181 = _T_172 & _T_174; // @[Mux.scala 27:72]
|
||||
wire _T_182 = _T_178 & q0off; // @[Mux.scala 27:72]
|
||||
wire _T_183 = _T_180 | _T_181; // @[Mux.scala 27:72]
|
||||
wire q0off_in = _T_183 | _T_182; // @[Mux.scala 27:72]
|
||||
wire [109:0] _T_211 = {misc1,misc0}; // @[Cat.scala 29:58]
|
||||
wire [109:0] _T_214 = {misc2,misc1}; // @[Cat.scala 29:58]
|
||||
wire [109:0] _T_217 = {misc0,misc2}; // @[Cat.scala 29:58]
|
||||
|
@ -866,7 +860,6 @@ module el2_ifu_aln_ctl(
|
|||
wire _T_407 = _T_405 & _T_1; // @[el2_ifu_aln_ctl.scala 291:68]
|
||||
wire [1:0] _T_409 = _T_399 ? io_ifu_fetch_val : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_410 = _T_407 ? f2val : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] f2val_in = _T_409 | _T_410; // @[Mux.scala 27:72]
|
||||
wire _T_422 = fetch_to_f1 & _T_1; // @[el2_ifu_aln_ctl.scala 295:39]
|
||||
wire _T_425 = _T_353 & _T_1; // @[el2_ifu_aln_ctl.scala 296:54]
|
||||
wire _T_431 = _T_373 & _T_387; // @[el2_ifu_aln_ctl.scala 297:54]
|
||||
|
@ -875,7 +868,6 @@ module el2_ifu_aln_ctl(
|
|||
wire [1:0] _T_436 = _T_425 ? f2val : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_437 = _T_433 ? sf1val : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_438 = _T_435 | _T_436; // @[Mux.scala 27:72]
|
||||
wire [1:0] f1val_in = _T_438 | _T_437; // @[Mux.scala 27:72]
|
||||
wire _T_453 = fetch_to_f0 & _T_1; // @[el2_ifu_aln_ctl.scala 302:38]
|
||||
wire _T_456 = _T_337 & _T_1; // @[el2_ifu_aln_ctl.scala 303:54]
|
||||
wire _T_459 = _T_352 & _T_1; // @[el2_ifu_aln_ctl.scala 304:69]
|
||||
|
@ -886,7 +878,6 @@ module el2_ifu_aln_ctl(
|
|||
wire [1:0] _T_472 = _T_467 ? sf0val : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_473 = _T_469 | _T_470; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_474 = _T_473 | _T_471; // @[Mux.scala 27:72]
|
||||
wire [1:0] f0val_in = _T_474 | _T_472; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_530 = {f1val[0],1'h1}; // @[Cat.scala 29:58]
|
||||
wire [1:0] _T_531 = f0val[1] ? 2'h3 : 2'h0; // @[Mux.scala 27:72]
|
||||
wire [1:0] _T_532 = _T_515 ? _T_530 : 2'h0; // @[Mux.scala 27:72]
|
||||
|
@ -1085,115 +1076,216 @@ initial begin
|
|||
_RAND_20 = {2{`RANDOM}};
|
||||
misc0 = _RAND_20[54:0];
|
||||
`endif // RANDOMIZE_REG_INIT
|
||||
if (reset) begin
|
||||
error_stall = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
wrptr = 2'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
rdptr = 2'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f2val = 2'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f1val = 2'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f0val = 2'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q2off = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q1off = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q0off = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q1 = 32'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q0 = 32'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
q2 = 32'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f2pc = 31'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f1pc = 31'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
f0pc = 31'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
brdata2 = 12'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
brdata1 = 12'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
brdata0 = 12'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
misc2 = 55'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
misc1 = 55'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
misc0 = 55'h0;
|
||||
end
|
||||
`endif // RANDOMIZE
|
||||
end // initial
|
||||
`ifdef FIRRTL_AFTER_INITIAL
|
||||
`FIRRTL_AFTER_INITIAL
|
||||
`endif
|
||||
`endif // SYNTHESIS
|
||||
always @(posedge io_active_clk) begin
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
error_stall <= 1'h0;
|
||||
end else begin
|
||||
error_stall <= error_stall_in;
|
||||
error_stall <= _T & _T_1;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
wrptr <= 2'h0;
|
||||
end else begin
|
||||
wrptr <= wrptr_in;
|
||||
wrptr <= _T_113 | _T_112;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
rdptr <= 2'h0;
|
||||
end else begin
|
||||
rdptr <= rdptr_in;
|
||||
rdptr <= _T_90 | _T_85;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
f2val <= 2'h0;
|
||||
end else begin
|
||||
f2val <= f2val_in;
|
||||
f2val <= _T_409 | _T_410;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
f1val <= 2'h0;
|
||||
end else begin
|
||||
f1val <= f1val_in;
|
||||
f1val <= _T_438 | _T_437;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
f0val <= 2'h0;
|
||||
end else begin
|
||||
f0val <= f0val_in;
|
||||
f0val <= _T_474 | _T_472;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
q2off <= 1'h0;
|
||||
end else begin
|
||||
q2off <= q2off_in;
|
||||
q2off <= _T_137 | _T_136;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
q1off <= 1'h0;
|
||||
end else begin
|
||||
q1off <= q1off_in;
|
||||
q1off <= _T_160 | _T_159;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
q0off <= 1'h0;
|
||||
end else begin
|
||||
q0off <= q0off_in;
|
||||
q0off <= _T_183 | _T_182;
|
||||
end
|
||||
end
|
||||
always @(posedge clock) begin
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
q1 <= 32'h0;
|
||||
end else if (qwen[1]) begin
|
||||
q1 <= io_ifu_fetch_data_f;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
q0 <= 32'h0;
|
||||
end else if (qwen[0]) begin
|
||||
q0 <= io_ifu_fetch_data_f;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
q2 <= 32'h0;
|
||||
end else if (qwen[2]) begin
|
||||
q2 <= io_ifu_fetch_data_f;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
f2pc <= 31'h0;
|
||||
end else if (fetch_to_f2) begin
|
||||
f2pc <= io_ifu_fetch_pc;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
f1pc <= 31'h0;
|
||||
end else if (f1_shift_wr_en) begin
|
||||
f1pc <= f1pc_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
f0pc <= 31'h0;
|
||||
end else if (f0_shift_wr_en) begin
|
||||
f0pc <= f0pc_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
brdata2 <= 12'h0;
|
||||
end else if (qwen[2]) begin
|
||||
brdata2 <= brdata_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
brdata1 <= 12'h0;
|
||||
end else if (qwen[1]) begin
|
||||
brdata1 <= brdata_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
brdata0 <= 12'h0;
|
||||
end else if (qwen[0]) begin
|
||||
brdata0 <= brdata_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
misc2 <= 55'h0;
|
||||
end else if (qwen[2]) begin
|
||||
misc2 <= misc_data_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
misc1 <= 55'h0;
|
||||
end else if (qwen[1]) begin
|
||||
misc1 <= misc_data_in;
|
||||
end
|
||||
end
|
||||
always @(posedge clock or posedge reset) begin
|
||||
if (reset) begin
|
||||
misc0 <= 55'h0;
|
||||
end else if (qwen[0]) begin
|
||||
|
|
|
@ -4,7 +4,7 @@ import chisel3._
|
|||
import chisel3.util._
|
||||
import include._
|
||||
|
||||
class el2_ifu_aln_ctl extends Module with el2_lib {
|
||||
class el2_ifu_aln_ctl extends Module with el2_lib with RequireAsyncReset {
|
||||
val io = IO(new Bundle{
|
||||
val scan_mode = Input(Bool())
|
||||
val active_clk = Input(Clock())
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue