summaryrefslogtreecommitdiff
path: root/platform/wavelet3d
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--platform/wavelet3d/GenW3DHost.scala36
-rw-r--r--platform/wavelet3d/w3d_host.sv12
-rw-r--r--platform/wavelet3d/w3d_host_vexriscv.v15233
-rw-r--r--platform/wavelet3d/w3d_top.sv4
4 files changed, 14609 insertions, 676 deletions
diff --git a/platform/wavelet3d/GenW3DHost.scala b/platform/wavelet3d/GenW3DHost.scala
index c8ec29e..3aa181a 100644
--- a/platform/wavelet3d/GenW3DHost.scala
+++ b/platform/wavelet3d/GenW3DHost.scala
@@ -1,15 +1,17 @@
// $ sbt "runMain vexriscv.demo.GenW3DHost" :((git)-[master] 03:59:49
// Agregar a mano: verilator tracing_off
// Quitar `timescale
-// TODO: FPU? Quitar excesos?
+// TODO: Quitar excesos?
package vexriscv.demo
import spinal.core._
import spinal.lib._
import spinal.lib.bus.amba4.axi.Axi4ReadOnly
+import spinal.lib.cpu.riscv.debug.DebugTransportModuleParameter
import spinal.lib.eda.altera.{InterruptReceiverTag, QSysify, ResetEmitterTag}
import vexriscv.ip.{DataCacheConfig, InstructionCacheConfig}
+import vexriscv.ip.fpu.FpuParameter
import vexriscv.plugin._
import vexriscv.{VexRiscv, VexRiscvConfig, plugin}
@@ -22,13 +24,13 @@ object GenW3DHost extends App{
).generateVerilog({
val cpuConfig = VexRiscvConfig(
plugins = List(
- new PcManagerSimplePlugin(
- resetVector = 0x80000000l,
- relaxedPcCalculation = false
- ),
new IBusCachedPlugin(
prediction = DYNAMIC_TARGET,
+ resetVector = 0x00000000l,
historyRamSizeLog2 = 8,
+ compressedGen = true,
+ injectorStage = true,
+ relaxedPcCalculation = true,
config = InstructionCacheConfig(
cacheSize = 4096*2,
bytePerLine =32,
@@ -67,6 +69,14 @@ object GenW3DHost extends App{
zeroBoot = false
),
new IntAluPlugin,
+ new FpuPlugin(
+ p = new FpuParameter(
+ withDouble = false,
+ asyncRegFile = false,
+ mulWidthA = 17,
+ mulWidthB = 17
+ )
+ ),
new SrcPlugin(
separatedAddSub = false,
executeInsertion = true
@@ -83,8 +93,20 @@ object GenW3DHost extends App{
),
new MulPlugin,
new DivPlugin,
- new CsrPlugin(CsrPluginConfig.small),
- //new DebugPlugin(ClockDomain.current.clone(reset = Bool().setName("debugReset"))),
+ new CsrPlugin(CsrPluginConfig.small(0x00000000l).copy(
+ ebreakGen = true,
+ withPrivilegedDebug = true
+ )),
+ new EmbeddedRiscvJtag(
+ p = DebugTransportModuleParameter(
+ addressWidth = 7,
+ version = 1,
+ idle = 7
+ ),
+ debugCd = ClockDomain.current,
+ withTunneling = false,
+ withTap = true
+ ),
new BranchPlugin(
earlyBranch = false,
catchAddressMisaligned = true
diff --git a/platform/wavelet3d/w3d_host.sv b/platform/wavelet3d/w3d_host.sv
index 72f2ed0..5bd5b92 100644
--- a/platform/wavelet3d/w3d_host.sv
+++ b/platform/wavelet3d/w3d_host.sv
@@ -4,7 +4,9 @@ module w3d_host
rst_n,
if_axib.m dbus,
- ibus
+ ibus,
+
+ if_tap.s jtag
);
assign dbus.arid = '0;
@@ -20,6 +22,14 @@ module w3d_host
.externalInterrupt(0),
.softwareInterrupt(0),
+ .ndmreset(),
+ .stoptime(),
+
+ .jtag_tck(jtag.tck),
+ .jtag_tms(jtag.tms),
+ .jtag_tdi(jtag.tdi),
+ .jtag_tdo(jtag.tdo),
+
.iBusAxi_ar_valid(ibus.arvalid),
.iBusAxi_ar_ready(ibus.arready),
.iBusAxi_ar_payload_addr(ibus.araddr),
diff --git a/platform/wavelet3d/w3d_host_vexriscv.v b/platform/wavelet3d/w3d_host_vexriscv.v
index d4485fc..415a0ac 100644
--- a/platform/wavelet3d/w3d_host_vexriscv.v
+++ b/platform/wavelet3d/w3d_host_vexriscv.v
@@ -6,6 +6,13 @@ module w3d_host_vexriscv (
input wire timerInterrupt,
input wire externalInterrupt,
input wire softwareInterrupt,
+ input wire jtag_tms,
+ input wire jtag_tdi,
+ output wire jtag_tdo,
+ input wire jtag_tck,
+ output wire ndmreset,
+ input wire resetn,
+ output reg stoptime,
output wire iBusAxi_ar_valid,
input wire iBusAxi_ar_ready,
output wire [31:0] iBusAxi_ar_payload_addr,
@@ -63,18 +70,34 @@ module w3d_host_vexriscv (
input wire [0:0] dBusAxi_r_payload_id,
input wire [1:0] dBusAxi_r_payload_resp,
input wire dBusAxi_r_payload_last,
- input wire clk,
- input wire resetn
+ input wire clk
);
// verilator tracing_off
// verilator lint_off WIDTHTRUNC
+ localparam FpuOpcode_LOAD = 4'd0;
+ localparam FpuOpcode_STORE = 4'd1;
+ localparam FpuOpcode_MUL = 4'd2;
+ localparam FpuOpcode_ADD = 4'd3;
+ localparam FpuOpcode_FMA = 4'd4;
+ localparam FpuOpcode_I2F = 4'd5;
+ localparam FpuOpcode_F2I = 4'd6;
+ localparam FpuOpcode_CMP = 4'd7;
+ localparam FpuOpcode_DIV = 4'd8;
+ localparam FpuOpcode_SQRT = 4'd9;
+ localparam FpuOpcode_MIN_MAX = 4'd10;
+ localparam FpuOpcode_SGNJ = 4'd11;
+ localparam FpuOpcode_FMV_X_W = 4'd12;
+ localparam FpuOpcode_FMV_W_X = 4'd13;
+ localparam FpuOpcode_FCLASS = 4'd14;
+ localparam FpuOpcode_FCVT_X_X = 4'd15;
localparam BranchCtrlEnum_INC = 2'd0;
localparam BranchCtrlEnum_B = 2'd1;
localparam BranchCtrlEnum_JAL = 2'd2;
localparam BranchCtrlEnum_JALR = 2'd3;
- localparam EnvCtrlEnum_NONE = 1'd0;
- localparam EnvCtrlEnum_XRET = 1'd1;
+ localparam EnvCtrlEnum_NONE = 2'd0;
+ localparam EnvCtrlEnum_XRET = 2'd1;
+ localparam EnvCtrlEnum_EBREAK = 2'd2;
localparam ShiftCtrlEnum_DISABLE_1 = 2'd0;
localparam ShiftCtrlEnum_SLL_1 = 2'd1;
localparam ShiftCtrlEnum_SRL_1 = 2'd2;
@@ -93,6 +116,21 @@ module w3d_host_vexriscv (
localparam Src1CtrlEnum_IMU = 2'd1;
localparam Src1CtrlEnum_PC_INCREMENT = 2'd2;
localparam Src1CtrlEnum_URS1 = 2'd3;
+ localparam FpuFormat_FLOAT = 1'd0;
+ localparam FpuFormat_DOUBLE = 1'd1;
+ localparam FpuRoundMode_RNE = 3'd0;
+ localparam FpuRoundMode_RTZ = 3'd1;
+ localparam FpuRoundMode_RDN = 3'd2;
+ localparam FpuRoundMode_RUP = 3'd3;
+ localparam FpuRoundMode_RMM = 3'd4;
+ localparam DebugDmToHartOp_DATA = 2'd0;
+ localparam DebugDmToHartOp_EXECUTE = 2'd1;
+ localparam DebugDmToHartOp_REG_WRITE = 2'd2;
+ localparam DebugDmToHartOp_REG_READ = 2'd3;
+ localparam CsrPlugin_dcsr_stepLogic_enumDef_BOOT = 2'd0;
+ localparam CsrPlugin_dcsr_stepLogic_enumDef_IDLE = 2'd1;
+ localparam CsrPlugin_dcsr_stepLogic_enumDef_SINGLE = 2'd2;
+ localparam CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 = 2'd3;
wire IBusCachedPlugin_cache_io_flush;
wire IBusCachedPlugin_cache_io_cpu_prefetch_isValid;
@@ -110,7 +148,7 @@ module w3d_host_vexriscv (
reg dataCache_1_io_cpu_memory_mmuRsp_isIoAccess;
reg dataCache_1_io_cpu_writeBack_isValid;
wire dataCache_1_io_cpu_writeBack_isUser;
- wire [31:0] dataCache_1_io_cpu_writeBack_storeData;
+ reg [31:0] dataCache_1_io_cpu_writeBack_storeData;
wire [31:0] dataCache_1_io_cpu_writeBack_address;
wire dataCache_1_io_cpu_writeBack_fence_SW;
wire dataCache_1_io_cpu_writeBack_fence_SR;
@@ -124,7 +162,8 @@ module w3d_host_vexriscv (
wire dataCache_1_io_cpu_flush_valid;
wire dataCache_1_io_cpu_flush_payload_singleLine;
wire [7:0] dataCache_1_io_cpu_flush_payload_lineId;
- reg [55:0] _zz_IBusCachedPlugin_predictor_history_port1;
+ wire bufferCC_4_io_dataIn;
+ reg [56:0] _zz_IBusCachedPlugin_predictor_history_port1;
reg [31:0] _zz_RegFilePlugin_regFile_port0;
reg [31:0] _zz_RegFilePlugin_regFile_port1;
wire IBusCachedPlugin_cache_io_cpu_prefetch_haltIt;
@@ -161,6 +200,38 @@ module w3d_host_vexriscv (
wire [3:0] dataCache_1_io_mem_cmd_payload_mask;
wire [2:0] dataCache_1_io_mem_cmd_payload_size;
wire dataCache_1_io_mem_cmd_payload_last;
+ wire FpuPlugin_fpu_io_port_0_cmd_ready;
+ wire FpuPlugin_fpu_io_port_0_commit_ready;
+ wire FpuPlugin_fpu_io_port_0_rsp_valid;
+ wire [31:0] FpuPlugin_fpu_io_port_0_rsp_payload_value;
+ wire FpuPlugin_fpu_io_port_0_rsp_payload_NV;
+ wire FpuPlugin_fpu_io_port_0_rsp_payload_NX;
+ wire FpuPlugin_fpu_io_port_0_completion_valid;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_flags_NX;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_flags_UF;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_flags_OF;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_flags_DZ;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_flags_NV;
+ wire FpuPlugin_fpu_io_port_0_completion_payload_written;
+ wire bufferCC_4_io_dataOut;
+ wire debugModule_1_io_ctrl_cmd_ready;
+ wire debugModule_1_io_ctrl_rsp_valid;
+ wire debugModule_1_io_ctrl_rsp_payload_error;
+ wire [31:0] debugModule_1_io_ctrl_rsp_payload_data;
+ wire debugModule_1_io_ndmreset;
+ wire debugModule_1_io_harts_0_resume_cmd_valid;
+ wire debugModule_1_io_harts_0_dmToHart_valid;
+ wire [1:0] debugModule_1_io_harts_0_dmToHart_payload_op;
+ wire [4:0] debugModule_1_io_harts_0_dmToHart_payload_address;
+ wire [31:0] debugModule_1_io_harts_0_dmToHart_payload_data;
+ wire [2:0] debugModule_1_io_harts_0_dmToHart_payload_size;
+ wire debugModule_1_io_harts_0_haltReq;
+ wire debugModule_1_io_harts_0_ackReset;
+ wire debugTransportModuleJtagTap_1_io_jtag_tdo;
+ wire debugTransportModuleJtagTap_1_io_bus_cmd_valid;
+ wire debugTransportModuleJtagTap_1_io_bus_cmd_payload_write;
+ wire [31:0] debugTransportModuleJtagTap_1_io_bus_cmd_payload_data;
+ wire [6:0] debugTransportModuleJtagTap_1_io_bus_cmd_payload_address;
wire [51:0] _zz_memory_MUL_LOW;
wire [51:0] _zz_memory_MUL_LOW_1;
wire [51:0] _zz_memory_MUL_LOW_2;
@@ -169,6 +240,8 @@ module w3d_host_vexriscv (
wire [49:0] _zz_memory_MUL_LOW_5;
wire [51:0] _zz_memory_MUL_LOW_6;
wire [49:0] _zz_memory_MUL_LOW_7;
+ wire [31:0] _zz_execute_NEXT_PC2;
+ wire [2:0] _zz_execute_NEXT_PC2_1;
wire [31:0] _zz_execute_SHIFT_RIGHT;
wire [32:0] _zz_execute_SHIFT_RIGHT_1;
wire [32:0] _zz_execute_SHIFT_RIGHT_2;
@@ -177,24 +250,49 @@ module w3d_host_vexriscv (
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_2;
wire _zz_decode_LEGAL_INSTRUCTION_3;
wire [0:0] _zz_decode_LEGAL_INSTRUCTION_4;
- wire [11:0] _zz_decode_LEGAL_INSTRUCTION_5;
+ wire [21:0] _zz_decode_LEGAL_INSTRUCTION_5;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_6;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_7;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_8;
wire _zz_decode_LEGAL_INSTRUCTION_9;
wire [0:0] _zz_decode_LEGAL_INSTRUCTION_10;
- wire [5:0] _zz_decode_LEGAL_INSTRUCTION_11;
+ wire [15:0] _zz_decode_LEGAL_INSTRUCTION_11;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_12;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_13;
wire [31:0] _zz_decode_LEGAL_INSTRUCTION_14;
wire _zz_decode_LEGAL_INSTRUCTION_15;
- wire _zz_decode_LEGAL_INSTRUCTION_16;
+ wire [0:0] _zz_decode_LEGAL_INSTRUCTION_16;
+ wire [9:0] _zz_decode_LEGAL_INSTRUCTION_17;
+ wire [31:0] _zz_decode_LEGAL_INSTRUCTION_18;
+ wire [31:0] _zz_decode_LEGAL_INSTRUCTION_19;
+ wire [31:0] _zz_decode_LEGAL_INSTRUCTION_20;
+ wire _zz_decode_LEGAL_INSTRUCTION_21;
+ wire [0:0] _zz_decode_LEGAL_INSTRUCTION_22;
+ wire [3:0] _zz_decode_LEGAL_INSTRUCTION_23;
wire [2:0] _zz__zz_IBusCachedPlugin_jump_pcLoad_payload_1;
reg [31:0] _zz_IBusCachedPlugin_jump_pcLoad_payload_4;
wire [1:0] _zz_IBusCachedPlugin_jump_pcLoad_payload_5;
wire [31:0] _zz_IBusCachedPlugin_fetchPc_pc;
wire [2:0] _zz_IBusCachedPlugin_fetchPc_pc_1;
- wire [55:0] _zz_IBusCachedPlugin_predictor_history_port;
+ wire [31:0] _zz_IBusCachedPlugin_decodePc_pcPlus;
+ wire [2:0] _zz_IBusCachedPlugin_decodePc_pcPlus_1;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_27;
+ wire [0:0] _zz_IBusCachedPlugin_decompressor_decompressed_28;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_29;
+ wire [31:0] _zz_IBusCachedPlugin_decompressor_decompressed_30;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_31;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_32;
+ wire [6:0] _zz_IBusCachedPlugin_decompressor_decompressed_33;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_34;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_35;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_36;
+ wire [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_37;
+ wire [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_38;
+ wire [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_39;
+ wire [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_40;
+ wire [31:0] _zz__zz_decode_FORMAL_PC_NEXT;
+ wire [2:0] _zz__zz_decode_FORMAL_PC_NEXT_1;
+ wire [56:0] _zz_IBusCachedPlugin_predictor_history_port;
wire [7:0] _zz_IBusCachedPlugin_predictor_history_port_1;
wire [7:0] _zz__zz_IBusCachedPlugin_predictor_buffer_line_source_1;
wire [7:0] _zz_IBusCachedPlugin_predictor_buffer_hazard;
@@ -210,6 +308,7 @@ module w3d_host_vexriscv (
wire [0:0] _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_7;
wire [1:0] _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_8;
wire [0:0] _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_9;
+ wire [29:0] _zz_IBusCachedPlugin_predictor_historyWrite_payload_address;
wire [26:0] _zz_io_cpu_flush_payload_lineId;
wire [26:0] _zz_io_cpu_flush_payload_lineId_1;
wire [2:0] _zz_DBusCachedPlugin_exceptionBus_payload_code;
@@ -223,59 +322,59 @@ module w3d_host_vexriscv (
wire [31:0] _zz__zz_decode_IS_CSR_2;
wire [31:0] _zz__zz_decode_IS_CSR_3;
wire _zz__zz_decode_IS_CSR_4;
- wire [1:0] _zz__zz_decode_IS_CSR_5;
- wire [31:0] _zz__zz_decode_IS_CSR_6;
+ wire [0:0] _zz__zz_decode_IS_CSR_5;
+ wire _zz__zz_decode_IS_CSR_6;
wire [31:0] _zz__zz_decode_IS_CSR_7;
- wire _zz__zz_decode_IS_CSR_8;
- wire [0:0] _zz__zz_decode_IS_CSR_9;
- wire [24:0] _zz__zz_decode_IS_CSR_10;
- wire _zz__zz_decode_IS_CSR_11;
- wire [0:0] _zz__zz_decode_IS_CSR_12;
- wire _zz__zz_decode_IS_CSR_13;
- wire [31:0] _zz__zz_decode_IS_CSR_14;
+ wire [31:0] _zz__zz_decode_IS_CSR_8;
+ wire [31:0] _zz__zz_decode_IS_CSR_9;
+ wire [31:0] _zz__zz_decode_IS_CSR_10;
+ wire [0:0] _zz__zz_decode_IS_CSR_11;
+ wire [35:0] _zz__zz_decode_IS_CSR_12;
+ wire [0:0] _zz__zz_decode_IS_CSR_13;
+ wire _zz__zz_decode_IS_CSR_14;
wire [0:0] _zz__zz_decode_IS_CSR_15;
- wire _zz__zz_decode_IS_CSR_16;
- wire _zz__zz_decode_IS_CSR_17;
- wire [20:0] _zz__zz_decode_IS_CSR_18;
+ wire [31:0] _zz__zz_decode_IS_CSR_16;
+ wire [31:0] _zz__zz_decode_IS_CSR_17;
+ wire _zz__zz_decode_IS_CSR_18;
wire _zz__zz_decode_IS_CSR_19;
wire [0:0] _zz__zz_decode_IS_CSR_20;
- wire _zz__zz_decode_IS_CSR_21;
+ wire [0:0] _zz__zz_decode_IS_CSR_21;
wire [31:0] _zz__zz_decode_IS_CSR_22;
- wire [0:0] _zz__zz_decode_IS_CSR_23;
+ wire [3:0] _zz__zz_decode_IS_CSR_23;
wire _zz__zz_decode_IS_CSR_24;
- wire _zz__zz_decode_IS_CSR_25;
- wire [16:0] _zz__zz_decode_IS_CSR_26;
- wire _zz__zz_decode_IS_CSR_27;
- wire [1:0] _zz__zz_decode_IS_CSR_28;
- wire [31:0] _zz__zz_decode_IS_CSR_29;
- wire [31:0] _zz__zz_decode_IS_CSR_30;
- wire [31:0] _zz__zz_decode_IS_CSR_31;
+ wire [0:0] _zz__zz_decode_IS_CSR_25;
+ wire [31:0] _zz__zz_decode_IS_CSR_26;
+ wire [0:0] _zz__zz_decode_IS_CSR_27;
+ wire [31:0] _zz__zz_decode_IS_CSR_28;
+ wire _zz__zz_decode_IS_CSR_29;
+ wire [0:0] _zz__zz_decode_IS_CSR_30;
+ wire [0:0] _zz__zz_decode_IS_CSR_31;
wire [31:0] _zz__zz_decode_IS_CSR_32;
- wire _zz__zz_decode_IS_CSR_33;
- wire _zz__zz_decode_IS_CSR_34;
- wire [0:0] _zz__zz_decode_IS_CSR_35;
- wire [0:0] _zz__zz_decode_IS_CSR_36;
+ wire [1:0] _zz__zz_decode_IS_CSR_33;
+ wire [31:0] _zz__zz_decode_IS_CSR_34;
+ wire [31:0] _zz__zz_decode_IS_CSR_35;
+ wire [31:0] _zz__zz_decode_IS_CSR_36;
wire [31:0] _zz__zz_decode_IS_CSR_37;
- wire [0:0] _zz__zz_decode_IS_CSR_38;
- wire _zz__zz_decode_IS_CSR_39;
- wire [12:0] _zz__zz_decode_IS_CSR_40;
- wire [4:0] _zz__zz_decode_IS_CSR_41;
+ wire [26:0] _zz__zz_decode_IS_CSR_38;
+ wire [1:0] _zz__zz_decode_IS_CSR_39;
+ wire [31:0] _zz__zz_decode_IS_CSR_40;
+ wire [31:0] _zz__zz_decode_IS_CSR_41;
wire [31:0] _zz__zz_decode_IS_CSR_42;
wire [31:0] _zz__zz_decode_IS_CSR_43;
- wire [0:0] _zz__zz_decode_IS_CSR_44;
- wire [31:0] _zz__zz_decode_IS_CSR_45;
- wire [1:0] _zz__zz_decode_IS_CSR_46;
- wire [31:0] _zz__zz_decode_IS_CSR_47;
+ wire _zz__zz_decode_IS_CSR_44;
+ wire _zz__zz_decode_IS_CSR_45;
+ wire [31:0] _zz__zz_decode_IS_CSR_46;
+ wire [0:0] _zz__zz_decode_IS_CSR_47;
wire [31:0] _zz__zz_decode_IS_CSR_48;
- wire _zz__zz_decode_IS_CSR_49;
- wire [0:0] _zz__zz_decode_IS_CSR_50;
- wire [0:0] _zz__zz_decode_IS_CSR_51;
+ wire [31:0] _zz__zz_decode_IS_CSR_49;
+ wire [1:0] _zz__zz_decode_IS_CSR_50;
+ wire _zz__zz_decode_IS_CSR_51;
wire [31:0] _zz__zz_decode_IS_CSR_52;
- wire [0:0] _zz__zz_decode_IS_CSR_53;
- wire [0:0] _zz__zz_decode_IS_CSR_54;
- wire [4:0] _zz__zz_decode_IS_CSR_55;
- wire [31:0] _zz__zz_decode_IS_CSR_56;
- wire [31:0] _zz__zz_decode_IS_CSR_57;
+ wire _zz__zz_decode_IS_CSR_53;
+ wire [31:0] _zz__zz_decode_IS_CSR_54;
+ wire [0:0] _zz__zz_decode_IS_CSR_55;
+ wire [0:0] _zz__zz_decode_IS_CSR_56;
+ wire [3:0] _zz__zz_decode_IS_CSR_57;
wire _zz__zz_decode_IS_CSR_58;
wire [31:0] _zz__zz_decode_IS_CSR_59;
wire [0:0] _zz__zz_decode_IS_CSR_60;
@@ -283,55 +382,140 @@ module w3d_host_vexriscv (
wire [31:0] _zz__zz_decode_IS_CSR_62;
wire [1:0] _zz__zz_decode_IS_CSR_63;
wire _zz__zz_decode_IS_CSR_64;
- wire _zz__zz_decode_IS_CSR_65;
- wire [9:0] _zz__zz_decode_IS_CSR_66;
- wire [1:0] _zz__zz_decode_IS_CSR_67;
- wire [31:0] _zz__zz_decode_IS_CSR_68;
- wire [31:0] _zz__zz_decode_IS_CSR_69;
+ wire [31:0] _zz__zz_decode_IS_CSR_65;
+ wire _zz__zz_decode_IS_CSR_66;
+ wire [31:0] _zz__zz_decode_IS_CSR_67;
+ wire [23:0] _zz__zz_decode_IS_CSR_68;
+ wire [1:0] _zz__zz_decode_IS_CSR_69;
wire _zz__zz_decode_IS_CSR_70;
- wire _zz__zz_decode_IS_CSR_71;
+ wire [0:0] _zz__zz_decode_IS_CSR_71;
wire [31:0] _zz__zz_decode_IS_CSR_72;
- wire [0:0] _zz__zz_decode_IS_CSR_73;
- wire _zz__zz_decode_IS_CSR_74;
- wire [31:0] _zz__zz_decode_IS_CSR_75;
- wire [6:0] _zz__zz_decode_IS_CSR_76;
- wire [0:0] _zz__zz_decode_IS_CSR_77;
+ wire [31:0] _zz__zz_decode_IS_CSR_73;
+ wire [1:0] _zz__zz_decode_IS_CSR_74;
+ wire _zz__zz_decode_IS_CSR_75;
+ wire [31:0] _zz__zz_decode_IS_CSR_76;
+ wire _zz__zz_decode_IS_CSR_77;
wire [31:0] _zz__zz_decode_IS_CSR_78;
- wire [31:0] _zz__zz_decode_IS_CSR_79;
- wire _zz__zz_decode_IS_CSR_80;
- wire [0:0] _zz__zz_decode_IS_CSR_81;
+ wire [0:0] _zz__zz_decode_IS_CSR_79;
+ wire [1:0] _zz__zz_decode_IS_CSR_80;
+ wire _zz__zz_decode_IS_CSR_81;
wire [31:0] _zz__zz_decode_IS_CSR_82;
- wire [3:0] _zz__zz_decode_IS_CSR_83;
- wire _zz__zz_decode_IS_CSR_84;
- wire [0:0] _zz__zz_decode_IS_CSR_85;
- wire [31:0] _zz__zz_decode_IS_CSR_86;
- wire [0:0] _zz__zz_decode_IS_CSR_87;
+ wire _zz__zz_decode_IS_CSR_83;
+ wire [31:0] _zz__zz_decode_IS_CSR_84;
+ wire [20:0] _zz__zz_decode_IS_CSR_85;
+ wire _zz__zz_decode_IS_CSR_86;
+ wire _zz__zz_decode_IS_CSR_87;
wire [31:0] _zz__zz_decode_IS_CSR_88;
wire [0:0] _zz__zz_decode_IS_CSR_89;
wire [0:0] _zz__zz_decode_IS_CSR_90;
wire [31:0] _zz__zz_decode_IS_CSR_91;
- wire [3:0] _zz__zz_decode_IS_CSR_92;
- wire _zz__zz_decode_IS_CSR_93;
+ wire [31:0] _zz__zz_decode_IS_CSR_92;
+ wire [18:0] _zz__zz_decode_IS_CSR_93;
wire _zz__zz_decode_IS_CSR_94;
- wire [0:0] _zz__zz_decode_IS_CSR_95;
- wire [31:0] _zz__zz_decode_IS_CSR_96;
- wire [0:0] _zz__zz_decode_IS_CSR_97;
+ wire _zz__zz_decode_IS_CSR_95;
+ wire [0:0] _zz__zz_decode_IS_CSR_96;
+ wire [1:0] _zz__zz_decode_IS_CSR_97;
wire [31:0] _zz__zz_decode_IS_CSR_98;
- wire [0:0] _zz__zz_decode_IS_CSR_99;
- wire [0:0] _zz__zz_decode_IS_CSR_100;
- wire [31:0] _zz__zz_decode_IS_CSR_101;
- wire [0:0] _zz__zz_decode_IS_CSR_102;
- wire [1:0] _zz__zz_decode_IS_CSR_103;
- wire [1:0] _zz__zz_decode_IS_CSR_104;
- wire [31:0] _zz__zz_decode_IS_CSR_105;
- wire [31:0] _zz__zz_decode_IS_CSR_106;
+ wire [31:0] _zz__zz_decode_IS_CSR_99;
+ wire [16:0] _zz__zz_decode_IS_CSR_100;
+ wire _zz__zz_decode_IS_CSR_101;
+ wire [31:0] _zz__zz_decode_IS_CSR_102;
+ wire [0:0] _zz__zz_decode_IS_CSR_103;
+ wire _zz__zz_decode_IS_CSR_104;
+ wire _zz__zz_decode_IS_CSR_105;
+ wire [14:0] _zz__zz_decode_IS_CSR_106;
wire [0:0] _zz__zz_decode_IS_CSR_107;
wire [31:0] _zz__zz_decode_IS_CSR_108;
+ wire [1:0] _zz__zz_decode_IS_CSR_109;
+ wire [31:0] _zz__zz_decode_IS_CSR_110;
+ wire [31:0] _zz__zz_decode_IS_CSR_111;
+ wire [0:0] _zz__zz_decode_IS_CSR_112;
+ wire _zz__zz_decode_IS_CSR_113;
+ wire [0:0] _zz__zz_decode_IS_CSR_114;
+ wire [31:0] _zz__zz_decode_IS_CSR_115;
+ wire [2:0] _zz__zz_decode_IS_CSR_116;
+ wire [31:0] _zz__zz_decode_IS_CSR_117;
+ wire [31:0] _zz__zz_decode_IS_CSR_118;
+ wire _zz__zz_decode_IS_CSR_119;
+ wire [31:0] _zz__zz_decode_IS_CSR_120;
+ wire [0:0] _zz__zz_decode_IS_CSR_121;
+ wire [0:0] _zz__zz_decode_IS_CSR_122;
+ wire [1:0] _zz__zz_decode_IS_CSR_123;
+ wire [31:0] _zz__zz_decode_IS_CSR_124;
+ wire [31:0] _zz__zz_decode_IS_CSR_125;
+ wire [10:0] _zz__zz_decode_IS_CSR_126;
+ wire [6:0] _zz__zz_decode_IS_CSR_127;
+ wire _zz__zz_decode_IS_CSR_128;
+ wire [31:0] _zz__zz_decode_IS_CSR_129;
+ wire [0:0] _zz__zz_decode_IS_CSR_130;
+ wire [31:0] _zz__zz_decode_IS_CSR_131;
+ wire [31:0] _zz__zz_decode_IS_CSR_132;
+ wire [3:0] _zz__zz_decode_IS_CSR_133;
+ wire _zz__zz_decode_IS_CSR_134;
+ wire [31:0] _zz__zz_decode_IS_CSR_135;
+ wire [0:0] _zz__zz_decode_IS_CSR_136;
+ wire [1:0] _zz__zz_decode_IS_CSR_137;
+ wire _zz__zz_decode_IS_CSR_138;
+ wire _zz__zz_decode_IS_CSR_139;
+ wire _zz__zz_decode_IS_CSR_140;
+ wire [0:0] _zz__zz_decode_IS_CSR_141;
+ wire [1:0] _zz__zz_decode_IS_CSR_142;
+ wire _zz__zz_decode_IS_CSR_143;
+ wire [31:0] _zz__zz_decode_IS_CSR_144;
+ wire [0:0] _zz__zz_decode_IS_CSR_145;
+ wire [0:0] _zz__zz_decode_IS_CSR_146;
+ wire [1:0] _zz__zz_decode_IS_CSR_147;
+ wire _zz__zz_decode_IS_CSR_148;
+ wire [31:0] _zz__zz_decode_IS_CSR_149;
+ wire [7:0] _zz__zz_decode_IS_CSR_150;
+ wire [0:0] _zz__zz_decode_IS_CSR_151;
+ wire [31:0] _zz__zz_decode_IS_CSR_152;
+ wire [31:0] _zz__zz_decode_IS_CSR_153;
+ wire _zz__zz_decode_IS_CSR_154;
+ wire _zz__zz_decode_IS_CSR_155;
+ wire [31:0] _zz__zz_decode_IS_CSR_156;
+ wire [0:0] _zz__zz_decode_IS_CSR_157;
+ wire [6:0] _zz__zz_decode_IS_CSR_158;
+ wire _zz__zz_decode_IS_CSR_159;
+ wire [0:0] _zz__zz_decode_IS_CSR_160;
+ wire [31:0] _zz__zz_decode_IS_CSR_161;
+ wire [4:0] _zz__zz_decode_IS_CSR_162;
+ wire [31:0] _zz__zz_decode_IS_CSR_163;
+ wire [31:0] _zz__zz_decode_IS_CSR_164;
+ wire [0:0] _zz__zz_decode_IS_CSR_165;
+ wire [1:0] _zz__zz_decode_IS_CSR_166;
+ wire [31:0] _zz__zz_decode_IS_CSR_167;
+ wire [31:0] _zz__zz_decode_IS_CSR_168;
+ wire [4:0] _zz__zz_decode_IS_CSR_169;
+ wire _zz__zz_decode_IS_CSR_170;
+ wire [0:0] _zz__zz_decode_IS_CSR_171;
+ wire [2:0] _zz__zz_decode_IS_CSR_172;
+ wire [31:0] _zz__zz_decode_IS_CSR_173;
+ wire [31:0] _zz__zz_decode_IS_CSR_174;
+ wire _zz__zz_decode_IS_CSR_175;
+ wire _zz__zz_decode_IS_CSR_176;
+ wire [2:0] _zz__zz_decode_IS_CSR_177;
+ wire _zz__zz_decode_IS_CSR_178;
+ wire [0:0] _zz__zz_decode_IS_CSR_179;
+ wire [0:0] _zz__zz_decode_IS_CSR_180;
+ wire [0:0] _zz__zz_decode_IS_CSR_181;
+ wire [0:0] _zz__zz_decode_IS_CSR_182;
+ wire [0:0] _zz__zz_decode_IS_CSR_183;
+ wire [0:0] _zz__zz_decode_IS_CSR_184;
+ wire _zz__zz_decode_IS_CSR_185;
wire _zz_RegFilePlugin_regFile_port;
wire _zz_decode_RegFilePlugin_rs1Data;
wire _zz_RegFilePlugin_regFile_port_1;
wire _zz_decode_RegFilePlugin_rs2Data;
wire [0:0] _zz__zz_execute_REGFILE_WRITE_DATA;
+ wire [5:0] _zz_FpuPlugin_pendings;
+ wire [5:0] _zz_FpuPlugin_pendings_1;
+ wire [5:0] _zz_FpuPlugin_pendings_2;
+ wire [0:0] _zz_FpuPlugin_pendings_3;
+ wire [5:0] _zz_FpuPlugin_pendings_4;
+ wire [0:0] _zz_FpuPlugin_pendings_5;
+ wire [5:0] _zz_FpuPlugin_pendings_6;
+ wire [0:0] _zz_FpuPlugin_pendings_7;
wire [2:0] _zz__zz_execute_SRC1;
wire [4:0] _zz__zz_execute_SRC1_1;
wire [11:0] _zz__zz_execute_SRC2_2;
@@ -359,12 +543,22 @@ module w3d_host_vexriscv (
wire [0:0] _zz_memory_DivPlugin_rs1_3;
wire [31:0] _zz_memory_DivPlugin_rs2_1;
wire [0:0] _zz_memory_DivPlugin_rs2_2;
+ wire [2:0] _zz_CsrPlugin_timeout_counter_valueNext;
+ wire [0:0] _zz_CsrPlugin_timeout_counter_valueNext_1;
+ wire [0:0] _zz_when;
+ wire [1:0] _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext;
+ wire [0:0] _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext_1;
+ wire [63:0] _zz_CsrPlugin_mcycle;
+ wire [0:0] _zz_CsrPlugin_mcycle_1;
wire [1:0] _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1;
wire [1:0] _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1_1;
- wire _zz_when;
+ wire _zz_when_1;
wire [19:0] _zz__zz_execute_BRANCH_SRC22;
wire [11:0] _zz__zz_execute_BRANCH_SRC22_4;
+ reg [31:0] _zz__zz_CsrPlugin_csrMapping_readDataInit_10;
+ wire [7:0] _zz_when_CsrPlugin_l1718;
wire [2:0] _zz_dbus_axi_arw_payload_len;
+ wire [31:0] writeBack_MEMORY_LOAD_DATA;
wire [51:0] memory_MUL_LOW;
wire execute_TARGET_MISSMATCH2;
wire [31:0] execute_NEXT_PC2;
@@ -380,18 +574,25 @@ module w3d_host_vexriscv (
wire decode_CSR_READ_OPCODE;
wire decode_CSR_WRITE_OPCODE;
wire decode_SRC2_FORCE_ZERO;
+ wire memory_FPU_COMMIT_LOAD;
+ wire execute_FPU_COMMIT_LOAD;
+ wire decode_FPU_COMMIT_LOAD;
+ wire memory_FPU_FORKED;
+ wire execute_FPU_FORKED;
+ wire decode_FPU_FORKED;
+ wire [31:0] memory_RS1;
wire [1:0] decode_BRANCH_CTRL;
wire [1:0] _zz_decode_BRANCH_CTRL;
wire [1:0] _zz_decode_to_execute_BRANCH_CTRL;
wire [1:0] _zz_decode_to_execute_BRANCH_CTRL_1;
- wire [0:0] _zz_memory_to_writeBack_ENV_CTRL;
- wire [0:0] _zz_memory_to_writeBack_ENV_CTRL_1;
- wire [0:0] _zz_execute_to_memory_ENV_CTRL;
- wire [0:0] _zz_execute_to_memory_ENV_CTRL_1;
- wire [0:0] decode_ENV_CTRL;
- wire [0:0] _zz_decode_ENV_CTRL;
- wire [0:0] _zz_decode_to_execute_ENV_CTRL;
- wire [0:0] _zz_decode_to_execute_ENV_CTRL_1;
+ wire [1:0] _zz_memory_to_writeBack_ENV_CTRL;
+ wire [1:0] _zz_memory_to_writeBack_ENV_CTRL_1;
+ wire [1:0] _zz_execute_to_memory_ENV_CTRL;
+ wire [1:0] _zz_execute_to_memory_ENV_CTRL_1;
+ wire [1:0] decode_ENV_CTRL;
+ wire [1:0] _zz_decode_ENV_CTRL;
+ wire [1:0] _zz_decode_to_execute_ENV_CTRL;
+ wire [1:0] _zz_decode_to_execute_ENV_CTRL_1;
wire decode_IS_CSR;
wire decode_IS_RS2_SIGNED;
wire decode_IS_RS1_SIGNED;
@@ -403,6 +604,22 @@ module w3d_host_vexriscv (
wire [1:0] _zz_decode_SHIFT_CTRL;
wire [1:0] _zz_decode_to_execute_SHIFT_CTRL;
wire [1:0] _zz_decode_to_execute_SHIFT_CTRL_1;
+ wire [3:0] memory_FPU_OPCODE;
+ wire [3:0] _zz_memory_FPU_OPCODE;
+ wire [3:0] _zz_memory_to_writeBack_FPU_OPCODE;
+ wire [3:0] _zz_memory_to_writeBack_FPU_OPCODE_1;
+ wire [3:0] execute_FPU_OPCODE;
+ wire [3:0] _zz_execute_FPU_OPCODE;
+ wire [3:0] _zz_execute_to_memory_FPU_OPCODE;
+ wire [3:0] _zz_execute_to_memory_FPU_OPCODE_1;
+ wire [3:0] _zz_decode_to_execute_FPU_OPCODE;
+ wire [3:0] _zz_decode_to_execute_FPU_OPCODE_1;
+ wire memory_FPU_RSP;
+ wire execute_FPU_RSP;
+ wire decode_FPU_RSP;
+ wire memory_FPU_COMMIT;
+ wire execute_FPU_COMMIT;
+ wire decode_FPU_COMMIT;
wire [1:0] decode_ALU_BITWISE_CTRL;
wire [1:0] _zz_decode_ALU_BITWISE_CTRL;
wire [1:0] _zz_decode_to_execute_ALU_BITWISE_CTRL;
@@ -431,18 +648,19 @@ module w3d_host_vexriscv (
wire execute_PREDICTION_CONTEXT_hit;
wire [21:0] execute_PREDICTION_CONTEXT_line_source;
wire [1:0] execute_PREDICTION_CONTEXT_line_branchWish;
+ wire execute_PREDICTION_CONTEXT_line_last2Bytes;
wire [31:0] execute_PREDICTION_CONTEXT_line_target;
wire decode_PREDICTION_CONTEXT_hazard;
wire decode_PREDICTION_CONTEXT_hit;
wire [21:0] decode_PREDICTION_CONTEXT_line_source;
wire [1:0] decode_PREDICTION_CONTEXT_line_branchWish;
+ wire decode_PREDICTION_CONTEXT_line_last2Bytes;
wire [31:0] decode_PREDICTION_CONTEXT_line_target;
wire [31:0] writeBack_FORMAL_PC_NEXT;
wire [31:0] memory_FORMAL_PC_NEXT;
wire [31:0] execute_FORMAL_PC_NEXT;
wire [31:0] decode_FORMAL_PC_NEXT;
wire [31:0] memory_NEXT_PC2;
- wire [31:0] memory_PC;
wire [31:0] memory_BRANCH_CALC;
wire memory_TARGET_MISSMATCH2;
wire memory_BRANCH_DO;
@@ -453,13 +671,13 @@ module w3d_host_vexriscv (
wire [1:0] _zz_execute_BRANCH_CTRL;
wire execute_CSR_READ_OPCODE;
wire execute_CSR_WRITE_OPCODE;
- wire execute_IS_CSR;
- wire [0:0] memory_ENV_CTRL;
- wire [0:0] _zz_memory_ENV_CTRL;
- wire [0:0] execute_ENV_CTRL;
- wire [0:0] _zz_execute_ENV_CTRL;
- wire [0:0] writeBack_ENV_CTRL;
- wire [0:0] _zz_writeBack_ENV_CTRL;
+ wire [1:0] memory_ENV_CTRL;
+ wire [1:0] _zz_memory_ENV_CTRL;
+ wire [1:0] execute_ENV_CTRL;
+ wire [1:0] _zz_execute_ENV_CTRL;
+ wire [1:0] writeBack_ENV_CTRL;
+ wire [1:0] _zz_writeBack_ENV_CTRL;
+ reg CsrPlugin_running_aheadValue;
wire execute_IS_RS1_SIGNED;
wire execute_IS_DIV;
wire execute_IS_RS2_SIGNED;
@@ -491,10 +709,28 @@ module w3d_host_vexriscv (
wire [31:0] _zz_execute_to_memory_PC;
wire [1:0] execute_SRC2_CTRL;
wire [1:0] _zz_execute_SRC2_CTRL;
+ wire execute_IS_RVC;
+ wire [31:0] _zz_execute_to_memory_RS1;
wire [1:0] execute_SRC1_CTRL;
wire [1:0] _zz_execute_SRC1_CTRL;
wire decode_SRC_USE_SUB_LESS;
wire decode_SRC_ADD_ZERO;
+ reg _zz_memory_to_writeBack_FPU_FORKED;
+ reg _zz_execute_to_memory_FPU_FORKED;
+ reg _zz_decode_to_execute_FPU_FORKED;
+ wire [3:0] writeBack_FPU_OPCODE;
+ wire [3:0] _zz_writeBack_FPU_OPCODE;
+ wire [31:0] writeBack_RS1;
+ wire writeBack_FPU_COMMIT_LOAD;
+ reg DBusBypass0_cond;
+ wire writeBack_FPU_COMMIT;
+ wire writeBack_FPU_RSP;
+ wire writeBack_FPU_FORKED;
+ wire [1:0] decode_FPU_ARG;
+ wire [3:0] decode_FPU_OPCODE;
+ wire [3:0] _zz_decode_FPU_OPCODE;
+ reg decode_FPU_ENABLE;
+ wire execute_IS_CSR;
wire [31:0] execute_SRC_ADD_SUB;
wire execute_SRC_LESS;
wire [1:0] execute_ALU_CTRL;
@@ -508,10 +744,12 @@ module w3d_host_vexriscv (
reg _zz_1;
wire [31:0] decode_INSTRUCTION_ANTICIPATED;
reg decode_REGFILE_WRITE_VALID;
- wire decode_LEGAL_INSTRUCTION;
+ reg decode_LEGAL_INSTRUCTION;
wire [1:0] _zz_decode_BRANCH_CTRL_1;
- wire [0:0] _zz_decode_ENV_CTRL_1;
+ wire [1:0] _zz_decode_ENV_CTRL_1;
wire [1:0] _zz_decode_SHIFT_CTRL_1;
+ wire [3:0] _zz_decode_FPU_OPCODE_1;
+ wire _zz_decode_FPU_ENABLE;
wire [1:0] _zz_decode_ALU_BITWISE_CTRL_1;
wire [1:0] _zz_decode_SRC2_CTRL_1;
wire [1:0] _zz_decode_ALU_CTRL_1;
@@ -537,15 +775,20 @@ module w3d_host_vexriscv (
reg IBusCachedPlugin_rsp_issueDetected_3;
reg IBusCachedPlugin_rsp_issueDetected_2;
reg IBusCachedPlugin_rsp_issueDetected_1;
- wire [31:0] decode_INSTRUCTION;
+ wire memory_IS_RVC;
+ wire [31:0] memory_PC;
wire memory_PREDICTION_CONTEXT_hazard;
wire memory_PREDICTION_CONTEXT_hit;
wire [21:0] memory_PREDICTION_CONTEXT_line_source;
wire [1:0] memory_PREDICTION_CONTEXT_line_branchWish;
+ wire memory_PREDICTION_CONTEXT_line_last2Bytes;
wire [31:0] memory_PREDICTION_CONTEXT_line_target;
reg _zz_2;
reg [31:0] _zz_memory_to_writeBack_FORMAL_PC_NEXT;
wire [31:0] decode_PC;
+ reg [31:0] _zz_decode_FORMAL_PC_NEXT;
+ wire [31:0] decode_INSTRUCTION;
+ wire decode_IS_RVC;
wire [31:0] writeBack_PC;
wire [31:0] writeBack_INSTRUCTION;
reg decode_arbitration_haltItself;
@@ -563,7 +806,7 @@ module w3d_host_vexriscv (
reg execute_arbitration_haltByOther;
reg execute_arbitration_removeIt;
wire execute_arbitration_flushIt;
- wire execute_arbitration_flushNext;
+ reg execute_arbitration_flushNext;
reg execute_arbitration_isValid;
wire execute_arbitration_isStuck;
wire execute_arbitration_isStuckByOthers;
@@ -582,7 +825,7 @@ module w3d_host_vexriscv (
wire memory_arbitration_isMoving;
wire memory_arbitration_isFiring;
reg writeBack_arbitration_haltItself;
- wire writeBack_arbitration_haltByOther;
+ reg writeBack_arbitration_haltByOther;
reg writeBack_arbitration_removeIt;
reg writeBack_arbitration_flushIt;
reg writeBack_arbitration_flushNext;
@@ -662,14 +905,42 @@ module w3d_host_vexriscv (
wire decodeExceptionPort_valid;
wire [3:0] decodeExceptionPort_payload_code;
wire [31:0] decodeExceptionPort_payload_badAddr;
+ wire FpuPlugin_port_cmd_valid /* verilator public */ ;
+ wire FpuPlugin_port_cmd_ready /* verilator public */ ;
+ wire [3:0] FpuPlugin_port_cmd_payload_opcode /* verilator public */ ;
+ wire [1:0] FpuPlugin_port_cmd_payload_arg /* verilator public */ ;
+ wire [4:0] FpuPlugin_port_cmd_payload_rs1 /* verilator public */ ;
+ wire [4:0] FpuPlugin_port_cmd_payload_rs2 /* verilator public */ ;
+ wire [4:0] FpuPlugin_port_cmd_payload_rs3 /* verilator public */ ;
+ wire [4:0] FpuPlugin_port_cmd_payload_rd /* verilator public */ ;
+ wire [0:0] FpuPlugin_port_cmd_payload_format /* verilator public */ ;
+ wire [2:0] FpuPlugin_port_cmd_payload_roundMode /* verilator public */ ;
+ wire FpuPlugin_port_commit_valid /* verilator public */ ;
+ wire FpuPlugin_port_commit_ready /* verilator public */ ;
+ wire [3:0] FpuPlugin_port_commit_payload_opcode /* verilator public */ ;
+ wire [4:0] FpuPlugin_port_commit_payload_rd /* verilator public */ ;
+ wire FpuPlugin_port_commit_payload_write /* verilator public */ ;
+ wire [31:0] FpuPlugin_port_commit_payload_value /* verilator public */ ;
+ wire FpuPlugin_port_rsp_valid /* verilator public */ ;
+ reg FpuPlugin_port_rsp_ready /* verilator public */ ;
+ wire [31:0] FpuPlugin_port_rsp_payload_value /* verilator public */ ;
+ wire FpuPlugin_port_rsp_payload_NV /* verilator public */ ;
+ wire FpuPlugin_port_rsp_payload_NX /* verilator public */ ;
+ wire FpuPlugin_port_completion_valid /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_flags_NX /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_flags_UF /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_flags_OF /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_flags_DZ /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_flags_NV /* verilator public */ ;
+ wire FpuPlugin_port_completion_payload_written /* verilator public */ ;
wire [31:0] CsrPlugin_csrMapping_readDataSignal;
wire [31:0] CsrPlugin_csrMapping_readDataInit;
wire [31:0] CsrPlugin_csrMapping_writeDataSignal;
reg CsrPlugin_csrMapping_allowCsrSignal;
wire CsrPlugin_csrMapping_hazardFree;
- wire CsrPlugin_csrMapping_doForceFailCsr;
+ reg CsrPlugin_csrMapping_doForceFailCsr;
wire CsrPlugin_inWfi /* verilator public */ ;
- wire CsrPlugin_thirdPartyWake;
+ reg CsrPlugin_thirdPartyWake;
reg CsrPlugin_jumpInterface_valid;
reg [31:0] CsrPlugin_jumpInterface_payload;
wire CsrPlugin_exceptionPendings_0;
@@ -679,16 +950,41 @@ module w3d_host_vexriscv (
wire contextSwitching;
reg [1:0] CsrPlugin_privilege;
wire CsrPlugin_forceMachineWire;
- wire CsrPlugin_allowInterrupts;
+ reg CsrPlugin_selfException_valid;
+ reg [3:0] CsrPlugin_selfException_payload_code;
+ wire [31:0] CsrPlugin_selfException_payload_badAddr;
+ reg CsrPlugin_allowInterrupts;
wire CsrPlugin_allowException;
wire CsrPlugin_allowEbreakException;
- wire CsrPlugin_xretAwayFromMachine;
+ reg CsrPlugin_xretAwayFromMachine;
+ wire CsrPlugin_injectionPort_valid;
+ reg CsrPlugin_injectionPort_ready;
+ wire [31:0] CsrPlugin_injectionPort_payload;
+ wire debugMode;
+ wire debugBus_halted;
+ wire debugBus_running;
+ wire debugBus_unavailable;
+ reg debugBus_exception;
+ wire debugBus_commit;
+ reg debugBus_ebreak;
+ wire debugBus_redo;
+ wire debugBus_regSuccess;
+ wire debugBus_ackReset;
+ wire debugBus_haveReset;
+ wire debugBus_resume_cmd_valid;
+ reg debugBus_resume_rsp_valid;
+ wire debugBus_haltReq;
+ wire debugBus_dmToHart_valid;
+ wire [1:0] debugBus_dmToHart_payload_op;
+ wire [4:0] debugBus_dmToHart_payload_address;
+ wire [31:0] debugBus_dmToHart_payload_data;
+ wire [2:0] debugBus_dmToHart_payload_size;
+ wire debugBus_hartToDm_valid;
+ wire [3:0] debugBus_hartToDm_payload_address;
+ wire [31:0] debugBus_hartToDm_payload_data;
wire BranchPlugin_jumpInterface_valid;
wire [31:0] BranchPlugin_jumpInterface_payload;
- wire BranchPlugin_branchExceptionPort_valid;
- wire [3:0] BranchPlugin_branchExceptionPort_payload_code;
- wire [31:0] BranchPlugin_branchExceptionPort_payload_badAddr;
- wire BranchPlugin_inDebugNoFetchFlag;
+ reg BranchPlugin_inDebugNoFetchFlag;
wire IBusCachedPlugin_externalFlush;
wire IBusCachedPlugin_jump_pcLoad_valid;
wire [31:0] IBusCachedPlugin_jump_pcLoad_payload;
@@ -713,9 +1009,18 @@ module w3d_host_vexriscv (
wire IBusCachedPlugin_fetchPc_predictionPcLoad_valid;
wire [31:0] IBusCachedPlugin_fetchPc_predictionPcLoad_payload;
wire IBusCachedPlugin_fetchPc_redo_valid;
- wire [31:0] IBusCachedPlugin_fetchPc_redo_payload;
+ reg [31:0] IBusCachedPlugin_fetchPc_redo_payload;
reg IBusCachedPlugin_fetchPc_flushed;
wire when_Fetcher_l160;
+ reg IBusCachedPlugin_decodePc_flushed;
+ reg [31:0] IBusCachedPlugin_decodePc_pcReg /* verilator public */ ;
+ wire [31:0] IBusCachedPlugin_decodePc_pcPlus;
+ reg IBusCachedPlugin_decodePc_injectedDecode;
+ wire when_Fetcher_l182;
+ wire IBusCachedPlugin_decodePc_predictionPcLoad_valid;
+ wire [31:0] IBusCachedPlugin_decodePc_predictionPcLoad_payload;
+ wire when_Fetcher_l188;
+ wire when_Fetcher_l194;
reg IBusCachedPlugin_iBusRsp_redoFetch;
wire IBusCachedPlugin_iBusRsp_stages_0_input_valid;
wire IBusCachedPlugin_iBusRsp_stages_0_input_ready;
@@ -723,7 +1028,7 @@ module w3d_host_vexriscv (
wire IBusCachedPlugin_iBusRsp_stages_0_output_valid;
wire IBusCachedPlugin_iBusRsp_stages_0_output_ready;
wire [31:0] IBusCachedPlugin_iBusRsp_stages_0_output_payload;
- reg IBusCachedPlugin_iBusRsp_stages_0_halt;
+ wire IBusCachedPlugin_iBusRsp_stages_0_halt;
wire IBusCachedPlugin_iBusRsp_stages_1_input_valid;
wire IBusCachedPlugin_iBusRsp_stages_1_input_ready;
wire [31:0] IBusCachedPlugin_iBusRsp_stages_1_input_payload;
@@ -738,9 +1043,17 @@ module w3d_host_vexriscv (
wire IBusCachedPlugin_iBusRsp_stages_2_output_ready;
wire [31:0] IBusCachedPlugin_iBusRsp_stages_2_output_payload;
reg IBusCachedPlugin_iBusRsp_stages_2_halt;
+ wire IBusCachedPlugin_iBusRsp_stages_3_input_valid;
+ wire IBusCachedPlugin_iBusRsp_stages_3_input_ready;
+ wire [31:0] IBusCachedPlugin_iBusRsp_stages_3_input_payload;
+ wire IBusCachedPlugin_iBusRsp_stages_3_output_valid;
+ wire IBusCachedPlugin_iBusRsp_stages_3_output_ready;
+ wire [31:0] IBusCachedPlugin_iBusRsp_stages_3_output_payload;
+ reg IBusCachedPlugin_iBusRsp_stages_3_halt;
wire _zz_IBusCachedPlugin_iBusRsp_stages_0_input_ready;
wire _zz_IBusCachedPlugin_iBusRsp_stages_1_input_ready;
wire _zz_IBusCachedPlugin_iBusRsp_stages_2_input_ready;
+ wire _zz_IBusCachedPlugin_iBusRsp_stages_3_input_ready;
wire IBusCachedPlugin_iBusRsp_flush;
wire IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid;
wire IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_ready;
@@ -752,6 +1065,11 @@ module w3d_host_vexriscv (
wire [31:0] IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_payload;
reg _zz_IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_valid;
reg [31:0] _zz_IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_payload;
+ wire IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid;
+ wire IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_ready;
+ wire [31:0] IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload;
+ reg _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid;
+ reg [31:0] _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload;
reg IBusCachedPlugin_iBusRsp_readyForError;
wire IBusCachedPlugin_iBusRsp_output_valid;
wire IBusCachedPlugin_iBusRsp_output_ready;
@@ -760,7 +1078,81 @@ module w3d_host_vexriscv (
wire [31:0] IBusCachedPlugin_iBusRsp_output_payload_rsp_inst;
wire IBusCachedPlugin_iBusRsp_output_payload_isRvc;
wire when_Fetcher_l242;
- wire when_Fetcher_l322;
+ wire IBusCachedPlugin_decompressor_input_valid;
+ reg IBusCachedPlugin_decompressor_input_ready;
+ wire [31:0] IBusCachedPlugin_decompressor_input_payload_pc;
+ wire IBusCachedPlugin_decompressor_input_payload_rsp_error;
+ wire [31:0] IBusCachedPlugin_decompressor_input_payload_rsp_inst;
+ wire IBusCachedPlugin_decompressor_input_payload_isRvc;
+ wire IBusCachedPlugin_decompressor_output_valid;
+ wire IBusCachedPlugin_decompressor_output_ready;
+ wire [31:0] IBusCachedPlugin_decompressor_output_payload_pc;
+ wire IBusCachedPlugin_decompressor_output_payload_rsp_error;
+ wire [31:0] IBusCachedPlugin_decompressor_output_payload_rsp_inst;
+ wire IBusCachedPlugin_decompressor_output_payload_isRvc;
+ wire IBusCachedPlugin_decompressor_flushNext;
+ wire IBusCachedPlugin_decompressor_consumeCurrent;
+ reg IBusCachedPlugin_decompressor_bufferValid;
+ reg [15:0] IBusCachedPlugin_decompressor_bufferData;
+ wire IBusCachedPlugin_decompressor_isInputLowRvc;
+ wire IBusCachedPlugin_decompressor_isInputHighRvc;
+ reg IBusCachedPlugin_decompressor_throw2BytesReg;
+ wire IBusCachedPlugin_decompressor_throw2Bytes;
+ wire IBusCachedPlugin_decompressor_unaligned;
+ reg IBusCachedPlugin_decompressor_bufferValidLatch;
+ reg IBusCachedPlugin_decompressor_throw2BytesLatch;
+ wire IBusCachedPlugin_decompressor_bufferValidPatched;
+ wire IBusCachedPlugin_decompressor_throw2BytesPatched;
+ wire [31:0] IBusCachedPlugin_decompressor_raw;
+ wire IBusCachedPlugin_decompressor_isRvc;
+ wire [15:0] _zz_IBusCachedPlugin_decompressor_decompressed;
+ reg [31:0] IBusCachedPlugin_decompressor_decompressed;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_1;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_2;
+ wire [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_3;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ reg [11:0] _zz_IBusCachedPlugin_decompressor_decompressed_5;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ reg [9:0] _zz_IBusCachedPlugin_decompressor_decompressed_7;
+ wire [20:0] _zz_IBusCachedPlugin_decompressor_decompressed_8;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ reg [14:0] _zz_IBusCachedPlugin_decompressor_decompressed_10;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_11;
+ reg [2:0] _zz_IBusCachedPlugin_decompressor_decompressed_12;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ reg [9:0] _zz_IBusCachedPlugin_decompressor_decompressed_14;
+ wire [20:0] _zz_IBusCachedPlugin_decompressor_decompressed_15;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ reg [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_17;
+ wire [12:0] _zz_IBusCachedPlugin_decompressor_decompressed_18;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_19;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_20;
+ wire [4:0] _zz_IBusCachedPlugin_decompressor_decompressed_21;
+ wire [4:0] switch_Misc_l44;
+ wire when_Misc_l47;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_22;
+ wire [1:0] switch_Misc_l241;
+ wire [1:0] switch_Misc_l241_1;
+ reg [2:0] _zz_IBusCachedPlugin_decompressor_decompressed_23;
+ reg [2:0] _zz_IBusCachedPlugin_decompressor_decompressed_24;
+ wire _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ reg [6:0] _zz_IBusCachedPlugin_decompressor_decompressed_26;
+ wire IBusCachedPlugin_decompressor_output_fire;
+ wire IBusCachedPlugin_decompressor_bufferFill;
+ wire when_Fetcher_l285;
+ wire when_Fetcher_l288;
+ wire when_Fetcher_l293;
+ wire IBusCachedPlugin_injector_decodeInput_valid;
+ wire IBusCachedPlugin_injector_decodeInput_ready;
+ wire [31:0] IBusCachedPlugin_injector_decodeInput_payload_pc;
+ wire IBusCachedPlugin_injector_decodeInput_payload_rsp_error;
+ wire [31:0] IBusCachedPlugin_injector_decodeInput_payload_rsp_inst;
+ wire IBusCachedPlugin_injector_decodeInput_payload_isRvc;
+ reg _zz_IBusCachedPlugin_injector_decodeInput_valid;
+ reg [31:0] _zz_IBusCachedPlugin_injector_decodeInput_payload_pc;
+ reg _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_error;
+ reg [31:0] _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_inst;
+ reg _zz_IBusCachedPlugin_injector_decodeInput_payload_isRvc;
reg IBusCachedPlugin_injector_nextPcCalc_valids_0;
wire when_Fetcher_l331;
reg IBusCachedPlugin_injector_nextPcCalc_valids_1;
@@ -769,57 +1161,83 @@ module w3d_host_vexriscv (
wire when_Fetcher_l331_2;
reg IBusCachedPlugin_injector_nextPcCalc_valids_3;
wire when_Fetcher_l331_3;
- reg IBusCachedPlugin_injector_nextPcCalc_valids_4;
- wire when_Fetcher_l331_4;
+ reg [31:0] IBusCachedPlugin_injector_formal_rawInDecode;
wire IBusCachedPlugin_predictor_historyWriteDelayPatched_valid;
wire [7:0] IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_address;
wire [21:0] IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_source;
wire [1:0] IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_branchWish;
+ wire IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_target;
reg IBusCachedPlugin_predictor_historyWrite_valid;
- wire [7:0] IBusCachedPlugin_predictor_historyWrite_payload_address;
+ reg [7:0] IBusCachedPlugin_predictor_historyWrite_payload_address;
wire [21:0] IBusCachedPlugin_predictor_historyWrite_payload_data_source;
reg [1:0] IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish;
+ wire IBusCachedPlugin_predictor_historyWrite_payload_data_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_historyWrite_payload_data_target;
reg IBusCachedPlugin_predictor_writeLast_valid;
reg [7:0] IBusCachedPlugin_predictor_writeLast_payload_address;
reg [21:0] IBusCachedPlugin_predictor_writeLast_payload_data_source;
reg [1:0] IBusCachedPlugin_predictor_writeLast_payload_data_branchWish;
+ reg IBusCachedPlugin_predictor_writeLast_payload_data_last2Bytes;
reg [31:0] IBusCachedPlugin_predictor_writeLast_payload_data_target;
wire [29:0] _zz_IBusCachedPlugin_predictor_buffer_line_source;
wire [21:0] IBusCachedPlugin_predictor_buffer_line_source;
wire [1:0] IBusCachedPlugin_predictor_buffer_line_branchWish;
+ wire IBusCachedPlugin_predictor_buffer_line_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_buffer_line_target;
- wire [55:0] _zz_IBusCachedPlugin_predictor_buffer_line_source_1;
+ wire [56:0] _zz_IBusCachedPlugin_predictor_buffer_line_source_1;
reg IBusCachedPlugin_predictor_buffer_pcCorrected;
wire IBusCachedPlugin_predictor_buffer_hazard;
reg [21:0] IBusCachedPlugin_predictor_line_source;
reg [1:0] IBusCachedPlugin_predictor_line_branchWish;
+ reg IBusCachedPlugin_predictor_line_last2Bytes;
reg [31:0] IBusCachedPlugin_predictor_line_target;
reg IBusCachedPlugin_predictor_buffer_hazard_regNextWhen;
wire IBusCachedPlugin_predictor_hazard;
- wire IBusCachedPlugin_predictor_hit;
+ reg IBusCachedPlugin_predictor_hit;
+ wire when_Fetcher_l573;
wire IBusCachedPlugin_predictor_fetchContext_hazard;
wire IBusCachedPlugin_predictor_fetchContext_hit;
wire [21:0] IBusCachedPlugin_predictor_fetchContext_line_source;
wire [1:0] IBusCachedPlugin_predictor_fetchContext_line_branchWish;
+ wire IBusCachedPlugin_predictor_fetchContext_line_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_fetchContext_line_target;
+ reg IBusCachedPlugin_predictor_fetchContext_regNextWhen_hazard;
+ reg IBusCachedPlugin_predictor_fetchContext_regNextWhen_hit;
+ reg [21:0] IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_source;
+ reg [1:0] IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_branchWish;
+ reg IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_last2Bytes;
+ reg [31:0] IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_target;
reg IBusCachedPlugin_predictor_iBusRspContext_hazard;
reg IBusCachedPlugin_predictor_iBusRspContext_hit;
reg [21:0] IBusCachedPlugin_predictor_iBusRspContext_line_source;
reg [1:0] IBusCachedPlugin_predictor_iBusRspContext_line_branchWish;
+ reg IBusCachedPlugin_predictor_iBusRspContext_line_last2Bytes;
reg [31:0] IBusCachedPlugin_predictor_iBusRspContext_line_target;
wire IBusCachedPlugin_predictor_iBusRspContextOutput_hazard;
- wire IBusCachedPlugin_predictor_iBusRspContextOutput_hit;
+ reg IBusCachedPlugin_predictor_iBusRspContextOutput_hit;
wire [21:0] IBusCachedPlugin_predictor_iBusRspContextOutput_line_source;
wire [1:0] IBusCachedPlugin_predictor_iBusRspContextOutput_line_branchWish;
+ wire IBusCachedPlugin_predictor_iBusRspContextOutput_line_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_iBusRspContextOutput_line_target;
+ reg IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hazard;
+ reg IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hit;
+ reg [21:0] IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_source;
+ reg [1:0] IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_branchWish;
+ reg IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_last2Bytes;
+ reg [31:0] IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_target;
wire IBusCachedPlugin_predictor_injectorContext_hazard;
wire IBusCachedPlugin_predictor_injectorContext_hit;
wire [21:0] IBusCachedPlugin_predictor_injectorContext_line_source;
wire [1:0] IBusCachedPlugin_predictor_injectorContext_line_branchWish;
+ wire IBusCachedPlugin_predictor_injectorContext_line_last2Bytes;
wire [31:0] IBusCachedPlugin_predictor_injectorContext_line_target;
wire when_Fetcher_l619;
+ wire IBusCachedPlugin_predictor_compressor_predictionBranch;
+ wire IBusCachedPlugin_predictor_compressor_unalignedWordIssue;
+ wire when_Fetcher_l634;
+ wire IBusCachedPlugin_injector_decodeInput_fire;
+ wire when_Fetcher_l640;
wire iBus_cmd_valid;
wire iBus_cmd_ready;
reg [31:0] iBus_cmd_payload_address;
@@ -856,26 +1274,32 @@ module w3d_host_vexriscv (
wire [7:0] writeBack_DBusCachedPlugin_rspSplits_3;
reg [31:0] writeBack_DBusCachedPlugin_rspShifted;
wire [31:0] writeBack_DBusCachedPlugin_rspRf;
- wire [1:0] switch_Misc_l241;
+ wire [1:0] switch_Misc_l241_2;
wire _zz_writeBack_DBusCachedPlugin_rspFormated;
reg [31:0] _zz_writeBack_DBusCachedPlugin_rspFormated_1;
wire _zz_writeBack_DBusCachedPlugin_rspFormated_2;
reg [31:0] _zz_writeBack_DBusCachedPlugin_rspFormated_3;
reg [31:0] writeBack_DBusCachedPlugin_rspFormated;
wire when_DBusCachedPlugin_l581;
- wire [30:0] _zz_decode_IS_CSR;
+ wire [41:0] _zz_decode_IS_CSR;
wire _zz_decode_IS_CSR_1;
wire _zz_decode_IS_CSR_2;
wire _zz_decode_IS_CSR_3;
wire _zz_decode_IS_CSR_4;
wire _zz_decode_IS_CSR_5;
wire _zz_decode_IS_CSR_6;
+ wire _zz_decode_IS_CSR_7;
+ wire _zz_decode_IS_CSR_8;
+ wire _zz_decode_IS_CSR_9;
+ wire _zz_decode_IS_CSR_10;
+ wire _zz_decode_IS_CSR_11;
wire [1:0] _zz_decode_SRC1_CTRL_2;
wire [1:0] _zz_decode_ALU_CTRL_2;
wire [1:0] _zz_decode_SRC2_CTRL_2;
wire [1:0] _zz_decode_ALU_BITWISE_CTRL_2;
+ wire [3:0] _zz_decode_FPU_OPCODE_2;
wire [1:0] _zz_decode_SHIFT_CTRL_2;
- wire [0:0] _zz_decode_ENV_CTRL_2;
+ wire [1:0] _zz_decode_ENV_CTRL_2;
wire [1:0] _zz_decode_BRANCH_CTRL_2;
wire when_RegFilePlugin_l63;
wire [4:0] decode_RegFilePlugin_regFileReadAddress1;
@@ -888,6 +1312,72 @@ module w3d_host_vexriscv (
reg _zz_8;
reg [31:0] execute_IntAluPlugin_bitwise;
reg [31:0] _zz_execute_REGFILE_WRITE_DATA;
+ reg [5:0] FpuPlugin_pendings;
+ wire FpuPlugin_port_cmd_fire;
+ wire FpuPlugin_port_rsp_fire;
+ wire FpuPlugin_hasPending;
+ reg FpuPlugin_flags_NX;
+ reg FpuPlugin_flags_UF;
+ reg FpuPlugin_flags_OF;
+ reg FpuPlugin_flags_DZ;
+ reg FpuPlugin_flags_NV;
+ wire when_FpuPlugin_l215;
+ wire when_FpuPlugin_l216;
+ wire when_FpuPlugin_l217;
+ wire when_FpuPlugin_l218;
+ wire when_FpuPlugin_l219;
+ reg [2:0] FpuPlugin_rm;
+ wire FpuPlugin_csrActive;
+ wire when_FpuPlugin_l229;
+ reg [1:0] FpuPlugin_fs;
+ wire FpuPlugin_sd;
+ wire when_FpuPlugin_l234;
+ reg _zz_when_FpuPlugin_l237;
+ reg _zz_when_FpuPlugin_l237_1;
+ reg _zz_when_FpuPlugin_l237_2;
+ wire when_FpuPlugin_l237;
+ reg FpuPlugin_accessFpuCsr;
+ wire when_FpuPlugin_l253;
+ wire _zz_decode_FPU_FORKED;
+ wire decode_FpuPlugin_trap;
+ reg decode_FpuPlugin_forked;
+ wire when_FpuPlugin_l268;
+ wire when_FpuPlugin_l268_1;
+ wire decode_FpuPlugin_hazard;
+ wire when_FpuPlugin_l272;
+ wire when_FpuPlugin_l273;
+ wire FpuPlugin_port_cmd_isStall;
+ wire [2:0] decode_FpuPlugin_iRoundMode;
+ wire [2:0] decode_FpuPlugin_roundMode;
+ wire [2:0] _zz_FpuPlugin_port_cmd_payload_roundMode;
+ wire [2:0] _zz_FpuPlugin_port_cmd_payload_roundMode_1;
+ wire writeBack_FpuPlugin_isRsp;
+ wire writeBack_FpuPlugin_isCommit;
+ wire [31:0] writeBack_FpuPlugin_storeFormated;
+ wire [31:0] DBusBypass0_value;
+ wire when_FpuPlugin_l315;
+ wire when_FpuPlugin_l318;
+ wire when_FpuPlugin_l323;
+ wire when_FpuPlugin_l325;
+ wire writeBack_FpuPlugin_commit_valid /* verilator public */ ;
+ wire writeBack_FpuPlugin_commit_ready /* verilator public */ ;
+ wire [3:0] writeBack_FpuPlugin_commit_payload_opcode /* verilator public */ ;
+ wire [4:0] writeBack_FpuPlugin_commit_payload_rd /* verilator public */ ;
+ wire writeBack_FpuPlugin_commit_payload_write /* verilator public */ ;
+ wire [31:0] writeBack_FpuPlugin_commit_payload_value /* verilator public */ ;
+ wire when_FpuPlugin_l339;
+ wire writeBack_FpuPlugin_commit_s2mPipe_valid;
+ wire writeBack_FpuPlugin_commit_s2mPipe_ready;
+ wire [3:0] writeBack_FpuPlugin_commit_s2mPipe_payload_opcode;
+ wire [4:0] writeBack_FpuPlugin_commit_s2mPipe_payload_rd;
+ wire writeBack_FpuPlugin_commit_s2mPipe_payload_write;
+ wire [31:0] writeBack_FpuPlugin_commit_s2mPipe_payload_value;
+ reg writeBack_FpuPlugin_commit_rValidN;
+ reg [3:0] writeBack_FpuPlugin_commit_rData_opcode;
+ reg [4:0] writeBack_FpuPlugin_commit_rData_rd;
+ reg writeBack_FpuPlugin_commit_rData_write;
+ reg [31:0] writeBack_FpuPlugin_commit_rData_value;
+ wire [3:0] _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode;
reg [31:0] _zz_execute_SRC1;
wire _zz_execute_SRC2;
reg [19:0] _zz_execute_SRC2_1;
@@ -972,6 +1462,118 @@ module w3d_host_vexriscv (
wire _zz_memory_DivPlugin_rs2;
wire _zz_memory_DivPlugin_rs1;
reg [32:0] _zz_memory_DivPlugin_rs1_1;
+ reg when_CsrPlugin_l818;
+ reg [1:0] _zz_CsrPlugin_privilege;
+ reg CsrPlugin_running;
+ wire when_CsrPlugin_l711;
+ reg CsrPlugin_reseting;
+ reg _zz_debugBus_haveReset;
+ reg CsrPlugin_running_aheadValue_regNext;
+ wire CsrPlugin_enterHalt;
+ reg CsrPlugin_doHalt;
+ wire when_CsrPlugin_l729;
+ wire CsrPlugin_forceResume;
+ reg _zz_CsrPlugin_doResume;
+ wire CsrPlugin_doResume;
+ reg CsrPlugin_timeout_state;
+ reg CsrPlugin_timeout_stateRise;
+ wire CsrPlugin_timeout_counter_willIncrement;
+ reg CsrPlugin_timeout_counter_willClear;
+ reg [2:0] CsrPlugin_timeout_counter_valueNext;
+ reg [2:0] CsrPlugin_timeout_counter_value;
+ wire CsrPlugin_timeout_counter_willOverflowIfInc;
+ wire CsrPlugin_timeout_counter_willOverflow;
+ wire when_CsrPlugin_l735;
+ reg _zz_debugBus_hartToDm_valid;
+ reg [31:0] CsrPlugin_dataCsrw_value_0;
+ wire when_CsrPlugin_l750;
+ wire CsrPlugin_inject_cmd_valid;
+ wire [1:0] CsrPlugin_inject_cmd_payload_op;
+ wire [4:0] CsrPlugin_inject_cmd_payload_address;
+ wire [31:0] CsrPlugin_inject_cmd_payload_data;
+ wire [2:0] CsrPlugin_inject_cmd_payload_size;
+ wire CsrPlugin_inject_cmd_toStream_valid;
+ reg CsrPlugin_inject_cmd_toStream_ready;
+ wire [1:0] CsrPlugin_inject_cmd_toStream_payload_op;
+ wire [4:0] CsrPlugin_inject_cmd_toStream_payload_address;
+ wire [31:0] CsrPlugin_inject_cmd_toStream_payload_data;
+ wire [2:0] CsrPlugin_inject_cmd_toStream_payload_size;
+ wire CsrPlugin_inject_buffer_valid;
+ wire CsrPlugin_inject_buffer_ready;
+ wire [1:0] CsrPlugin_inject_buffer_payload_op;
+ wire [4:0] CsrPlugin_inject_buffer_payload_address;
+ wire [31:0] CsrPlugin_inject_buffer_payload_data;
+ wire [2:0] CsrPlugin_inject_buffer_payload_size;
+ reg CsrPlugin_inject_cmd_toStream_rValid;
+ reg [1:0] CsrPlugin_inject_cmd_toStream_rData_op;
+ reg [4:0] CsrPlugin_inject_cmd_toStream_rData_address;
+ reg [31:0] CsrPlugin_inject_cmd_toStream_rData_data;
+ reg [2:0] CsrPlugin_inject_cmd_toStream_rData_size;
+ wire when_Stream_l369;
+ wire CsrPlugin_injectionPort_fire;
+ reg CsrPlugin_inject_pending;
+ wire when_CsrPlugin_l786;
+ wire when_CsrPlugin_l786_1;
+ reg [31:0] CsrPlugin_dpc;
+ reg [1:0] CsrPlugin_dcsr_prv;
+ reg CsrPlugin_dcsr_step;
+ wire CsrPlugin_dcsr_nmip;
+ wire CsrPlugin_dcsr_mprven;
+ reg [2:0] CsrPlugin_dcsr_cause;
+ reg CsrPlugin_dcsr_stoptime;
+ reg CsrPlugin_dcsr_stopcount;
+ reg CsrPlugin_dcsr_stepie;
+ reg CsrPlugin_dcsr_ebreakm;
+ wire [3:0] CsrPlugin_dcsr_xdebugver;
+ wire CsrPlugin_dcsr_stepLogic_wantExit;
+ reg CsrPlugin_dcsr_stepLogic_wantStart;
+ wire CsrPlugin_dcsr_stepLogic_wantKill;
+ reg [1:0] CsrPlugin_dcsr_stepLogic_stateReg;
+ reg [1:0] CsrPlugin_dcsr_stepLogic_stateNext;
+ wire when_CsrPlugin_l812;
+ wire when_CsrPlugin_l830;
+ wire when_CsrPlugin_l862;
+ reg [0:0] CsrPlugin_trigger_tselect_index;
+ wire CsrPlugin_trigger_tselect_outOfRange;
+ reg CsrPlugin_trigger_decodeBreak_enabled;
+ reg CsrPlugin_trigger_decodeBreak_timeout_state;
+ reg CsrPlugin_trigger_decodeBreak_timeout_stateRise;
+ wire CsrPlugin_trigger_decodeBreak_timeout_counter_willIncrement;
+ reg CsrPlugin_trigger_decodeBreak_timeout_counter_willClear;
+ reg [1:0] CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext;
+ reg [1:0] CsrPlugin_trigger_decodeBreak_timeout_counter_value;
+ wire CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflowIfInc;
+ wire CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflow;
+ wire when_Utils_l657;
+ wire CsrPlugin_trigger_slots_0_selected;
+ reg [31:0] CsrPlugin_trigger_slots_0_tdata1_read;
+ wire [3:0] CsrPlugin_trigger_slots_0_tdata1_tpe;
+ reg CsrPlugin_trigger_slots_0_tdata1_dmode;
+ reg CsrPlugin_trigger_slots_0_tdata1_execute;
+ reg CsrPlugin_trigger_slots_0_tdata1_m;
+ reg CsrPlugin_trigger_slots_0_tdata1_s;
+ reg CsrPlugin_trigger_slots_0_tdata1_u;
+ reg [3:0] CsrPlugin_trigger_slots_0_tdata1_action;
+ reg _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit;
+ wire CsrPlugin_trigger_slots_0_tdata1_privilegeHit;
+ reg [31:0] CsrPlugin_trigger_slots_0_tdata2_value;
+ wire CsrPlugin_trigger_slots_0_tdata2_execute_enabled;
+ wire CsrPlugin_trigger_slots_0_tdata2_execute_hit;
+ wire CsrPlugin_trigger_slots_1_selected;
+ reg [31:0] CsrPlugin_trigger_slots_1_tdata1_read;
+ wire [3:0] CsrPlugin_trigger_slots_1_tdata1_tpe;
+ reg CsrPlugin_trigger_slots_1_tdata1_dmode;
+ reg CsrPlugin_trigger_slots_1_tdata1_execute;
+ reg CsrPlugin_trigger_slots_1_tdata1_m;
+ reg CsrPlugin_trigger_slots_1_tdata1_s;
+ reg CsrPlugin_trigger_slots_1_tdata1_u;
+ reg [3:0] CsrPlugin_trigger_slots_1_tdata1_action;
+ reg _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit;
+ wire CsrPlugin_trigger_slots_1_tdata1_privilegeHit;
+ reg [31:0] CsrPlugin_trigger_slots_1_tdata2_value;
+ wire CsrPlugin_trigger_slots_1_tdata2_execute_enabled;
+ wire CsrPlugin_trigger_slots_1_tdata2_execute_hit;
+ wire when_CsrPlugin_l958;
wire [1:0] CsrPlugin_misa_base;
wire [25:0] CsrPlugin_misa_extensions;
wire [1:0] CsrPlugin_mtvec_mode;
@@ -1020,6 +1622,7 @@ module w3d_host_vexriscv (
wire when_CsrPlugin_l1302;
wire when_CsrPlugin_l1302_1;
wire when_CsrPlugin_l1302_2;
+ wire when_CsrPlugin_l1315;
wire CsrPlugin_exception;
wire CsrPlugin_lastStageWasWfi;
reg CsrPlugin_pipelineLiberator_pcValids_0;
@@ -1036,14 +1639,19 @@ module w3d_host_vexriscv (
reg CsrPlugin_hadException /* verilator public */ ;
reg [1:0] CsrPlugin_targetPrivilege;
reg [3:0] CsrPlugin_trapCause;
- wire CsrPlugin_trapCauseEbreakDebug;
+ reg CsrPlugin_trapCauseEbreakDebug;
+ wire when_CsrPlugin_l1373;
+ wire when_CsrPlugin_l1375;
reg [1:0] CsrPlugin_xtvec_mode;
reg [29:0] CsrPlugin_xtvec_base;
- wire CsrPlugin_trapEnterDebug;
+ reg CsrPlugin_trapEnterDebug;
+ wire when_CsrPlugin_l1389;
wire when_CsrPlugin_l1390;
wire when_CsrPlugin_l1398;
+ wire when_CsrPlugin_l1428;
wire when_CsrPlugin_l1456;
wire [1:0] switch_CsrPlugin_l1460;
+ wire when_CsrPlugin_l1468;
reg execute_CsrPlugin_wfiWake;
wire when_CsrPlugin_l1527;
wire execute_CsrPlugin_blockedBySideEffects;
@@ -1051,18 +1659,24 @@ module w3d_host_vexriscv (
reg execute_CsrPlugin_illegalInstruction;
wire when_CsrPlugin_l1547;
wire when_CsrPlugin_l1548;
+ wire when_CsrPlugin_l1565;
reg execute_CsrPlugin_writeInstruction;
reg execute_CsrPlugin_readInstruction;
wire execute_CsrPlugin_writeEnable;
wire execute_CsrPlugin_readEnable;
wire [31:0] execute_CsrPlugin_readToWriteData;
- wire switch_Misc_l241_1;
+ wire switch_Misc_l241_3;
reg [31:0] _zz_CsrPlugin_csrMapping_writeDataSignal;
wire when_CsrPlugin_l1587;
wire when_CsrPlugin_l1591;
wire [11:0] execute_CsrPlugin_csrAddress;
+ reg toplevel_debugModule_1_io_harts_0_dmToHart_regNext_valid;
+ reg [1:0] toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op;
+ reg [4:0] toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_address;
+ reg [31:0] toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_data;
+ reg [2:0] toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_size;
wire execute_BranchPlugin_eq;
- wire [2:0] switch_Misc_l241_2;
+ wire [2:0] switch_Misc_l241_4;
reg _zz_execute_BRANCH_DO;
reg _zz_execute_BRANCH_DO_1;
wire [31:0] execute_BranchPlugin_branch_src1;
@@ -1088,126 +1702,166 @@ module w3d_host_vexriscv (
wire when_Pipeline_l124_5;
reg [31:0] memory_to_writeBack_INSTRUCTION;
wire when_Pipeline_l124_6;
- reg [31:0] decode_to_execute_FORMAL_PC_NEXT;
+ reg decode_to_execute_IS_RVC;
wire when_Pipeline_l124_7;
- reg [31:0] execute_to_memory_FORMAL_PC_NEXT;
+ reg execute_to_memory_IS_RVC;
wire when_Pipeline_l124_8;
- reg [31:0] memory_to_writeBack_FORMAL_PC_NEXT;
+ reg [31:0] decode_to_execute_FORMAL_PC_NEXT;
wire when_Pipeline_l124_9;
+ reg [31:0] execute_to_memory_FORMAL_PC_NEXT;
+ wire when_Pipeline_l124_10;
+ reg [31:0] memory_to_writeBack_FORMAL_PC_NEXT;
+ wire when_Pipeline_l124_11;
reg decode_to_execute_PREDICTION_CONTEXT_hazard;
reg decode_to_execute_PREDICTION_CONTEXT_hit;
reg [21:0] decode_to_execute_PREDICTION_CONTEXT_line_source;
reg [1:0] decode_to_execute_PREDICTION_CONTEXT_line_branchWish;
+ reg decode_to_execute_PREDICTION_CONTEXT_line_last2Bytes;
reg [31:0] decode_to_execute_PREDICTION_CONTEXT_line_target;
- wire when_Pipeline_l124_10;
+ wire when_Pipeline_l124_12;
reg execute_to_memory_PREDICTION_CONTEXT_hazard;
reg execute_to_memory_PREDICTION_CONTEXT_hit;
reg [21:0] execute_to_memory_PREDICTION_CONTEXT_line_source;
reg [1:0] execute_to_memory_PREDICTION_CONTEXT_line_branchWish;
+ reg execute_to_memory_PREDICTION_CONTEXT_line_last2Bytes;
reg [31:0] execute_to_memory_PREDICTION_CONTEXT_line_target;
- wire when_Pipeline_l124_11;
- reg decode_to_execute_MEMORY_FORCE_CONSTISTENCY;
- wire when_Pipeline_l124_12;
- reg [1:0] decode_to_execute_SRC1_CTRL;
wire when_Pipeline_l124_13;
- reg decode_to_execute_SRC_USE_SUB_LESS;
+ reg decode_to_execute_MEMORY_FORCE_CONSTISTENCY;
wire when_Pipeline_l124_14;
- reg decode_to_execute_MEMORY_ENABLE;
+ reg [1:0] decode_to_execute_SRC1_CTRL;
wire when_Pipeline_l124_15;
- reg execute_to_memory_MEMORY_ENABLE;
+ reg decode_to_execute_SRC_USE_SUB_LESS;
wire when_Pipeline_l124_16;
- reg memory_to_writeBack_MEMORY_ENABLE;
+ reg decode_to_execute_MEMORY_ENABLE;
wire when_Pipeline_l124_17;
- reg [1:0] decode_to_execute_ALU_CTRL;
+ reg execute_to_memory_MEMORY_ENABLE;
wire when_Pipeline_l124_18;
- reg [1:0] decode_to_execute_SRC2_CTRL;
+ reg memory_to_writeBack_MEMORY_ENABLE;
wire when_Pipeline_l124_19;
- reg decode_to_execute_REGFILE_WRITE_VALID;
+ reg [1:0] decode_to_execute_ALU_CTRL;
wire when_Pipeline_l124_20;
- reg execute_to_memory_REGFILE_WRITE_VALID;
+ reg [1:0] decode_to_execute_SRC2_CTRL;
wire when_Pipeline_l124_21;
- reg memory_to_writeBack_REGFILE_WRITE_VALID;
+ reg decode_to_execute_REGFILE_WRITE_VALID;
wire when_Pipeline_l124_22;
- reg decode_to_execute_BYPASSABLE_EXECUTE_STAGE;
+ reg execute_to_memory_REGFILE_WRITE_VALID;
wire when_Pipeline_l124_23;
- reg decode_to_execute_BYPASSABLE_MEMORY_STAGE;
+ reg memory_to_writeBack_REGFILE_WRITE_VALID;
wire when_Pipeline_l124_24;
- reg execute_to_memory_BYPASSABLE_MEMORY_STAGE;
+ reg decode_to_execute_BYPASSABLE_EXECUTE_STAGE;
wire when_Pipeline_l124_25;
- reg decode_to_execute_MEMORY_WR;
+ reg decode_to_execute_BYPASSABLE_MEMORY_STAGE;
wire when_Pipeline_l124_26;
- reg execute_to_memory_MEMORY_WR;
+ reg execute_to_memory_BYPASSABLE_MEMORY_STAGE;
wire when_Pipeline_l124_27;
- reg memory_to_writeBack_MEMORY_WR;
+ reg decode_to_execute_MEMORY_WR;
wire when_Pipeline_l124_28;
- reg decode_to_execute_MEMORY_MANAGMENT;
+ reg execute_to_memory_MEMORY_WR;
wire when_Pipeline_l124_29;
- reg decode_to_execute_SRC_LESS_UNSIGNED;
+ reg memory_to_writeBack_MEMORY_WR;
wire when_Pipeline_l124_30;
- reg [1:0] decode_to_execute_ALU_BITWISE_CTRL;
+ reg decode_to_execute_MEMORY_MANAGMENT;
wire when_Pipeline_l124_31;
- reg [1:0] decode_to_execute_SHIFT_CTRL;
+ reg decode_to_execute_SRC_LESS_UNSIGNED;
wire when_Pipeline_l124_32;
- reg decode_to_execute_IS_MUL;
+ reg [1:0] decode_to_execute_ALU_BITWISE_CTRL;
wire when_Pipeline_l124_33;
- reg execute_to_memory_IS_MUL;
+ reg decode_to_execute_FPU_COMMIT;
wire when_Pipeline_l124_34;
- reg memory_to_writeBack_IS_MUL;
+ reg execute_to_memory_FPU_COMMIT;
wire when_Pipeline_l124_35;
- reg decode_to_execute_IS_DIV;
+ reg memory_to_writeBack_FPU_COMMIT;
wire when_Pipeline_l124_36;
- reg execute_to_memory_IS_DIV;
+ reg decode_to_execute_FPU_RSP;
wire when_Pipeline_l124_37;
- reg decode_to_execute_IS_RS1_SIGNED;
+ reg execute_to_memory_FPU_RSP;
wire when_Pipeline_l124_38;
- reg decode_to_execute_IS_RS2_SIGNED;
+ reg memory_to_writeBack_FPU_RSP;
wire when_Pipeline_l124_39;
- reg decode_to_execute_IS_CSR;
+ reg [3:0] decode_to_execute_FPU_OPCODE;
wire when_Pipeline_l124_40;
- reg [0:0] decode_to_execute_ENV_CTRL;
+ reg [3:0] execute_to_memory_FPU_OPCODE;
wire when_Pipeline_l124_41;
- reg [0:0] execute_to_memory_ENV_CTRL;
+ reg [3:0] memory_to_writeBack_FPU_OPCODE;
wire when_Pipeline_l124_42;
- reg [0:0] memory_to_writeBack_ENV_CTRL;
+ reg [1:0] decode_to_execute_SHIFT_CTRL;
wire when_Pipeline_l124_43;
- reg [1:0] decode_to_execute_BRANCH_CTRL;
+ reg decode_to_execute_IS_MUL;
wire when_Pipeline_l124_44;
- reg [31:0] decode_to_execute_RS1;
+ reg execute_to_memory_IS_MUL;
wire when_Pipeline_l124_45;
- reg [31:0] decode_to_execute_RS2;
+ reg memory_to_writeBack_IS_MUL;
wire when_Pipeline_l124_46;
- reg decode_to_execute_SRC2_FORCE_ZERO;
+ reg decode_to_execute_IS_DIV;
wire when_Pipeline_l124_47;
- reg decode_to_execute_CSR_WRITE_OPCODE;
+ reg execute_to_memory_IS_DIV;
wire when_Pipeline_l124_48;
- reg decode_to_execute_CSR_READ_OPCODE;
+ reg decode_to_execute_IS_RS1_SIGNED;
wire when_Pipeline_l124_49;
- reg [31:0] execute_to_memory_MEMORY_STORE_DATA_RF;
+ reg decode_to_execute_IS_RS2_SIGNED;
wire when_Pipeline_l124_50;
- reg [31:0] memory_to_writeBack_MEMORY_STORE_DATA_RF;
+ reg decode_to_execute_IS_CSR;
wire when_Pipeline_l124_51;
- reg [31:0] execute_to_memory_REGFILE_WRITE_DATA;
+ reg [1:0] decode_to_execute_ENV_CTRL;
wire when_Pipeline_l124_52;
- reg [31:0] memory_to_writeBack_REGFILE_WRITE_DATA;
+ reg [1:0] execute_to_memory_ENV_CTRL;
wire when_Pipeline_l124_53;
- reg [31:0] execute_to_memory_MUL_LL;
+ reg [1:0] memory_to_writeBack_ENV_CTRL;
wire when_Pipeline_l124_54;
- reg [33:0] execute_to_memory_MUL_LH;
+ reg [1:0] decode_to_execute_BRANCH_CTRL;
wire when_Pipeline_l124_55;
- reg [33:0] execute_to_memory_MUL_HL;
+ reg [31:0] decode_to_execute_RS1;
wire when_Pipeline_l124_56;
- reg [33:0] execute_to_memory_MUL_HH;
+ reg [31:0] execute_to_memory_RS1;
wire when_Pipeline_l124_57;
- reg [33:0] memory_to_writeBack_MUL_HH;
+ reg [31:0] memory_to_writeBack_RS1;
wire when_Pipeline_l124_58;
- reg execute_to_memory_BRANCH_DO;
+ reg [31:0] decode_to_execute_RS2;
wire when_Pipeline_l124_59;
- reg [31:0] execute_to_memory_BRANCH_CALC;
+ reg decode_to_execute_FPU_FORKED;
wire when_Pipeline_l124_60;
- reg [31:0] execute_to_memory_NEXT_PC2;
+ reg execute_to_memory_FPU_FORKED;
wire when_Pipeline_l124_61;
- reg execute_to_memory_TARGET_MISSMATCH2;
+ reg memory_to_writeBack_FPU_FORKED;
wire when_Pipeline_l124_62;
+ reg decode_to_execute_FPU_COMMIT_LOAD;
+ wire when_Pipeline_l124_63;
+ reg execute_to_memory_FPU_COMMIT_LOAD;
+ wire when_Pipeline_l124_64;
+ reg memory_to_writeBack_FPU_COMMIT_LOAD;
+ wire when_Pipeline_l124_65;
+ reg decode_to_execute_SRC2_FORCE_ZERO;
+ wire when_Pipeline_l124_66;
+ reg decode_to_execute_CSR_WRITE_OPCODE;
+ wire when_Pipeline_l124_67;
+ reg decode_to_execute_CSR_READ_OPCODE;
+ wire when_Pipeline_l124_68;
+ reg [31:0] execute_to_memory_MEMORY_STORE_DATA_RF;
+ wire when_Pipeline_l124_69;
+ reg [31:0] memory_to_writeBack_MEMORY_STORE_DATA_RF;
+ wire when_Pipeline_l124_70;
+ reg [31:0] execute_to_memory_REGFILE_WRITE_DATA;
+ wire when_Pipeline_l124_71;
+ reg [31:0] memory_to_writeBack_REGFILE_WRITE_DATA;
+ wire when_Pipeline_l124_72;
+ reg [31:0] execute_to_memory_MUL_LL;
+ wire when_Pipeline_l124_73;
+ reg [33:0] execute_to_memory_MUL_LH;
+ wire when_Pipeline_l124_74;
+ reg [33:0] execute_to_memory_MUL_HL;
+ wire when_Pipeline_l124_75;
+ reg [33:0] execute_to_memory_MUL_HH;
+ wire when_Pipeline_l124_76;
+ reg [33:0] memory_to_writeBack_MUL_HH;
+ wire when_Pipeline_l124_77;
+ reg execute_to_memory_BRANCH_DO;
+ wire when_Pipeline_l124_78;
+ reg [31:0] execute_to_memory_BRANCH_CALC;
+ wire when_Pipeline_l124_79;
+ reg [31:0] execute_to_memory_NEXT_PC2;
+ wire when_Pipeline_l124_80;
+ reg execute_to_memory_TARGET_MISSMATCH2;
+ wire when_Pipeline_l124_81;
reg [51:0] memory_to_writeBack_MUL_LOW;
wire when_Pipeline_l151;
wire when_Pipeline_l154;
@@ -1215,30 +1869,69 @@ module w3d_host_vexriscv (
wire when_Pipeline_l154_1;
wire when_Pipeline_l151_2;
wire when_Pipeline_l154_2;
+ reg [2:0] IBusCachedPlugin_injector_port_state;
+ wire when_Fetcher_l373;
+ wire when_Fetcher_l391;
+ wire when_Fetcher_l411;
wire when_CsrPlugin_l1669;
- reg execute_CsrPlugin_csr_768;
+ reg execute_CsrPlugin_csr_3;
wire when_CsrPlugin_l1669_1;
- reg execute_CsrPlugin_csr_836;
+ reg execute_CsrPlugin_csr_2;
wire when_CsrPlugin_l1669_2;
- reg execute_CsrPlugin_csr_772;
+ reg execute_CsrPlugin_csr_1;
wire when_CsrPlugin_l1669_3;
- reg execute_CsrPlugin_csr_833;
+ reg execute_CsrPlugin_csr_256;
wire when_CsrPlugin_l1669_4;
- reg execute_CsrPlugin_csr_834;
+ reg execute_CsrPlugin_csr_768;
wire when_CsrPlugin_l1669_5;
+ reg execute_CsrPlugin_csr_1972;
+ wire when_CsrPlugin_l1669_6;
+ reg execute_CsrPlugin_csr_1969;
+ wire when_CsrPlugin_l1669_7;
+ reg execute_CsrPlugin_csr_1968;
+ wire when_CsrPlugin_l1669_8;
+ reg execute_CsrPlugin_csr_1952;
+ wire when_CsrPlugin_l1669_9;
+ reg execute_CsrPlugin_csr_1956;
+ wire when_CsrPlugin_l1669_10;
+ reg execute_CsrPlugin_csr_1953;
+ wire when_CsrPlugin_l1669_11;
+ reg execute_CsrPlugin_csr_1954;
+ wire when_CsrPlugin_l1669_12;
+ reg execute_CsrPlugin_csr_836;
+ wire when_CsrPlugin_l1669_13;
+ reg execute_CsrPlugin_csr_772;
+ wire when_CsrPlugin_l1669_14;
+ reg execute_CsrPlugin_csr_833;
+ wire when_CsrPlugin_l1669_15;
+ reg execute_CsrPlugin_csr_834;
+ wire when_CsrPlugin_l1669_16;
reg execute_CsrPlugin_csr_835;
- wire [1:0] switch_CsrPlugin_l1031;
+ wire [4:0] _zz_FpuPlugin_flags_NX;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_1;
+ wire [4:0] _zz_FpuPlugin_flags_NX_1;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_2;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_3;
+ wire [1:0] switch_CsrPlugin_l1031;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_4;
reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_5;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_6;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_7;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_8;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_9;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_10;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_11;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_12;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_13;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_14;
+ reg [31:0] _zz_CsrPlugin_csrMapping_readDataInit_15;
wire when_CsrPlugin_l1702;
wire [11:0] _zz_when_CsrPlugin_l1709;
wire when_CsrPlugin_l1709;
reg when_CsrPlugin_l1719;
wire when_CsrPlugin_l1717;
+ wire when_CsrPlugin_l1718;
wire when_CsrPlugin_l1725;
wire [0:0] _zz_iBusAxi_ar_payload_id;
wire [3:0] _zz_iBusAxi_ar_payload_region;
@@ -1299,18 +1992,28 @@ module w3d_host_vexriscv (
reg [31:0] _zz_decode_BRANCH_CTRL_string;
reg [31:0] _zz_decode_to_execute_BRANCH_CTRL_string;
reg [31:0] _zz_decode_to_execute_BRANCH_CTRL_1_string;
- reg [31:0] _zz_memory_to_writeBack_ENV_CTRL_string;
- reg [31:0] _zz_memory_to_writeBack_ENV_CTRL_1_string;
- reg [31:0] _zz_execute_to_memory_ENV_CTRL_string;
- reg [31:0] _zz_execute_to_memory_ENV_CTRL_1_string;
- reg [31:0] decode_ENV_CTRL_string;
- reg [31:0] _zz_decode_ENV_CTRL_string;
- reg [31:0] _zz_decode_to_execute_ENV_CTRL_string;
- reg [31:0] _zz_decode_to_execute_ENV_CTRL_1_string;
+ reg [47:0] _zz_memory_to_writeBack_ENV_CTRL_string;
+ reg [47:0] _zz_memory_to_writeBack_ENV_CTRL_1_string;
+ reg [47:0] _zz_execute_to_memory_ENV_CTRL_string;
+ reg [47:0] _zz_execute_to_memory_ENV_CTRL_1_string;
+ reg [47:0] decode_ENV_CTRL_string;
+ reg [47:0] _zz_decode_ENV_CTRL_string;
+ reg [47:0] _zz_decode_to_execute_ENV_CTRL_string;
+ reg [47:0] _zz_decode_to_execute_ENV_CTRL_1_string;
reg [71:0] decode_SHIFT_CTRL_string;
reg [71:0] _zz_decode_SHIFT_CTRL_string;
reg [71:0] _zz_decode_to_execute_SHIFT_CTRL_string;
reg [71:0] _zz_decode_to_execute_SHIFT_CTRL_1_string;
+ reg [63:0] memory_FPU_OPCODE_string;
+ reg [63:0] _zz_memory_FPU_OPCODE_string;
+ reg [63:0] _zz_memory_to_writeBack_FPU_OPCODE_string;
+ reg [63:0] _zz_memory_to_writeBack_FPU_OPCODE_1_string;
+ reg [63:0] execute_FPU_OPCODE_string;
+ reg [63:0] _zz_execute_FPU_OPCODE_string;
+ reg [63:0] _zz_execute_to_memory_FPU_OPCODE_string;
+ reg [63:0] _zz_execute_to_memory_FPU_OPCODE_1_string;
+ reg [63:0] _zz_decode_to_execute_FPU_OPCODE_string;
+ reg [63:0] _zz_decode_to_execute_FPU_OPCODE_1_string;
reg [39:0] decode_ALU_BITWISE_CTRL_string;
reg [39:0] _zz_decode_ALU_BITWISE_CTRL_string;
reg [39:0] _zz_decode_to_execute_ALU_BITWISE_CTRL_string;
@@ -1329,51 +2032,78 @@ module w3d_host_vexriscv (
reg [95:0] _zz_decode_to_execute_SRC1_CTRL_1_string;
reg [31:0] execute_BRANCH_CTRL_string;
reg [31:0] _zz_execute_BRANCH_CTRL_string;
- reg [31:0] memory_ENV_CTRL_string;
- reg [31:0] _zz_memory_ENV_CTRL_string;
- reg [31:0] execute_ENV_CTRL_string;
- reg [31:0] _zz_execute_ENV_CTRL_string;
- reg [31:0] writeBack_ENV_CTRL_string;
- reg [31:0] _zz_writeBack_ENV_CTRL_string;
+ reg [47:0] memory_ENV_CTRL_string;
+ reg [47:0] _zz_memory_ENV_CTRL_string;
+ reg [47:0] execute_ENV_CTRL_string;
+ reg [47:0] _zz_execute_ENV_CTRL_string;
+ reg [47:0] writeBack_ENV_CTRL_string;
+ reg [47:0] _zz_writeBack_ENV_CTRL_string;
reg [71:0] execute_SHIFT_CTRL_string;
reg [71:0] _zz_execute_SHIFT_CTRL_string;
reg [23:0] execute_SRC2_CTRL_string;
reg [23:0] _zz_execute_SRC2_CTRL_string;
reg [95:0] execute_SRC1_CTRL_string;
reg [95:0] _zz_execute_SRC1_CTRL_string;
+ reg [63:0] writeBack_FPU_OPCODE_string;
+ reg [63:0] _zz_writeBack_FPU_OPCODE_string;
+ reg [63:0] decode_FPU_OPCODE_string;
+ reg [63:0] _zz_decode_FPU_OPCODE_string;
reg [63:0] execute_ALU_CTRL_string;
reg [63:0] _zz_execute_ALU_CTRL_string;
reg [39:0] execute_ALU_BITWISE_CTRL_string;
reg [39:0] _zz_execute_ALU_BITWISE_CTRL_string;
reg [31:0] _zz_decode_BRANCH_CTRL_1_string;
- reg [31:0] _zz_decode_ENV_CTRL_1_string;
+ reg [47:0] _zz_decode_ENV_CTRL_1_string;
reg [71:0] _zz_decode_SHIFT_CTRL_1_string;
+ reg [63:0] _zz_decode_FPU_OPCODE_1_string;
reg [39:0] _zz_decode_ALU_BITWISE_CTRL_1_string;
reg [23:0] _zz_decode_SRC2_CTRL_1_string;
reg [63:0] _zz_decode_ALU_CTRL_1_string;
reg [95:0] _zz_decode_SRC1_CTRL_1_string;
+ reg [63:0] FpuPlugin_port_cmd_payload_opcode_string;
+ reg [47:0] FpuPlugin_port_cmd_payload_format_string;
+ reg [23:0] FpuPlugin_port_cmd_payload_roundMode_string;
+ reg [63:0] FpuPlugin_port_commit_payload_opcode_string;
+ reg [71:0] debugBus_dmToHart_payload_op_string;
reg [95:0] _zz_decode_SRC1_CTRL_2_string;
reg [63:0] _zz_decode_ALU_CTRL_2_string;
reg [23:0] _zz_decode_SRC2_CTRL_2_string;
reg [39:0] _zz_decode_ALU_BITWISE_CTRL_2_string;
+ reg [63:0] _zz_decode_FPU_OPCODE_2_string;
reg [71:0] _zz_decode_SHIFT_CTRL_2_string;
- reg [31:0] _zz_decode_ENV_CTRL_2_string;
+ reg [47:0] _zz_decode_ENV_CTRL_2_string;
reg [31:0] _zz_decode_BRANCH_CTRL_2_string;
+ reg [23:0] _zz_FpuPlugin_port_cmd_payload_roundMode_string;
+ reg [23:0] _zz_FpuPlugin_port_cmd_payload_roundMode_1_string;
+ reg [63:0] writeBack_FpuPlugin_commit_payload_opcode_string;
+ reg [63:0] writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string;
+ reg [63:0] writeBack_FpuPlugin_commit_rData_opcode_string;
+ reg [63:0] _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string;
+ reg [71:0] CsrPlugin_inject_cmd_payload_op_string;
+ reg [71:0] CsrPlugin_inject_cmd_toStream_payload_op_string;
+ reg [71:0] CsrPlugin_inject_buffer_payload_op_string;
+ reg [71:0] CsrPlugin_inject_cmd_toStream_rData_op_string;
+ reg [47:0] CsrPlugin_dcsr_stepLogic_stateReg_string;
+ reg [47:0] CsrPlugin_dcsr_stepLogic_stateNext_string;
+ reg [71:0] toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string;
reg [95:0] decode_to_execute_SRC1_CTRL_string;
reg [63:0] decode_to_execute_ALU_CTRL_string;
reg [23:0] decode_to_execute_SRC2_CTRL_string;
reg [39:0] decode_to_execute_ALU_BITWISE_CTRL_string;
+ reg [63:0] decode_to_execute_FPU_OPCODE_string;
+ reg [63:0] execute_to_memory_FPU_OPCODE_string;
+ reg [63:0] memory_to_writeBack_FPU_OPCODE_string;
reg [71:0] decode_to_execute_SHIFT_CTRL_string;
- reg [31:0] decode_to_execute_ENV_CTRL_string;
- reg [31:0] execute_to_memory_ENV_CTRL_string;
- reg [31:0] memory_to_writeBack_ENV_CTRL_string;
+ reg [47:0] decode_to_execute_ENV_CTRL_string;
+ reg [47:0] execute_to_memory_ENV_CTRL_string;
+ reg [47:0] memory_to_writeBack_ENV_CTRL_string;
reg [31:0] decode_to_execute_BRANCH_CTRL_string;
`endif
- reg [55:0] IBusCachedPlugin_predictor_history [0:255];
+ reg [56:0] IBusCachedPlugin_predictor_history [0:255];
reg [31:0] RegFilePlugin_regFile [0:31] /* verilator public */ ;
- assign _zz_when = (|{decodeExceptionPort_valid,IBusCachedPlugin_decodeExceptionPort_valid});
+ assign _zz_when_1 = (|{decodeExceptionPort_valid,IBusCachedPlugin_decodeExceptionPort_valid});
assign _zz_memory_MUL_LOW = ($signed(_zz_memory_MUL_LOW_1) + $signed(_zz_memory_MUL_LOW_4));
assign _zz_memory_MUL_LOW_1 = ($signed(52'h0000000000000) + $signed(_zz_memory_MUL_LOW_2));
assign _zz_memory_MUL_LOW_3 = {1'b0,memory_MUL_LL};
@@ -1382,12 +2112,23 @@ module w3d_host_vexriscv (
assign _zz_memory_MUL_LOW_4 = {{2{_zz_memory_MUL_LOW_5[49]}}, _zz_memory_MUL_LOW_5};
assign _zz_memory_MUL_LOW_7 = ({16'd0,memory_MUL_HL} <<< 5'd16);
assign _zz_memory_MUL_LOW_6 = {{2{_zz_memory_MUL_LOW_7[49]}}, _zz_memory_MUL_LOW_7};
+ assign _zz_execute_NEXT_PC2_1 = (execute_IS_RVC ? 3'b010 : 3'b100);
+ assign _zz_execute_NEXT_PC2 = {29'd0, _zz_execute_NEXT_PC2_1};
assign _zz_execute_SHIFT_RIGHT_1 = ($signed(_zz_execute_SHIFT_RIGHT_2) >>> execute_FullBarrelShifterPlugin_amplitude);
assign _zz_execute_SHIFT_RIGHT = _zz_execute_SHIFT_RIGHT_1[31 : 0];
assign _zz_execute_SHIFT_RIGHT_2 = {((execute_SHIFT_CTRL == ShiftCtrlEnum_SRA_1) && execute_FullBarrelShifterPlugin_reversed[31]),execute_FullBarrelShifterPlugin_reversed};
assign _zz__zz_IBusCachedPlugin_jump_pcLoad_payload_1 = (_zz_IBusCachedPlugin_jump_pcLoad_payload - 3'b001);
assign _zz_IBusCachedPlugin_fetchPc_pc_1 = {IBusCachedPlugin_fetchPc_inc,2'b00};
assign _zz_IBusCachedPlugin_fetchPc_pc = {29'd0, _zz_IBusCachedPlugin_fetchPc_pc_1};
+ assign _zz_IBusCachedPlugin_decodePc_pcPlus_1 = (decode_IS_RVC ? 3'b010 : 3'b100);
+ assign _zz_IBusCachedPlugin_decodePc_pcPlus = {29'd0, _zz_IBusCachedPlugin_decodePc_pcPlus_1};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_30 = {{_zz_IBusCachedPlugin_decompressor_decompressed_10,_zz_IBusCachedPlugin_decompressor_decompressed[6 : 2]},12'h000};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_37 = {{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[8 : 7]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 9]},2'b00};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_38 = {{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[8 : 7]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 9]},2'b00};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_39 = {{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[8 : 7]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 9]},2'b00};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_40 = {{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[8 : 7]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 9]},2'b00};
+ assign _zz__zz_decode_FORMAL_PC_NEXT_1 = (decode_IS_RVC ? 3'b010 : 3'b100);
+ assign _zz__zz_decode_FORMAL_PC_NEXT = {29'd0, _zz__zz_decode_FORMAL_PC_NEXT_1};
assign _zz__zz_IBusCachedPlugin_predictor_buffer_line_source_1 = _zz_IBusCachedPlugin_predictor_buffer_line_source[7:0];
assign _zz_IBusCachedPlugin_predictor_buffer_hazard_1 = (IBusCachedPlugin_iBusRsp_stages_1_input_payload >>> 2'd2);
assign _zz_IBusCachedPlugin_predictor_buffer_hazard = _zz_IBusCachedPlugin_predictor_buffer_hazard_1[7:0];
@@ -1402,12 +2143,21 @@ module w3d_host_vexriscv (
assign _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_6 = {1'd0, _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_7};
assign _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_9 = (! memory_PREDICTION_CONTEXT_line_branchWish[1]);
assign _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_8 = {1'd0, _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_9};
+ assign _zz_IBusCachedPlugin_predictor_historyWrite_payload_address = (IBusCachedPlugin_iBusRsp_stages_1_input_payload >>> 2'd2);
assign _zz_io_cpu_flush_payload_lineId = _zz_io_cpu_flush_payload_lineId_1;
assign _zz_io_cpu_flush_payload_lineId_1 = (execute_RS1 >>> 3'd5);
assign _zz_DBusCachedPlugin_exceptionBus_payload_code = (writeBack_MEMORY_WR ? 3'b111 : 3'b101);
assign _zz_DBusCachedPlugin_exceptionBus_payload_code_1 = (writeBack_MEMORY_WR ? 3'b110 : 3'b100);
assign _zz__zz_execute_REGFILE_WRITE_DATA = execute_SRC_LESS;
- assign _zz__zz_execute_SRC1 = 3'b100;
+ assign _zz_FpuPlugin_pendings = (_zz_FpuPlugin_pendings_1 - _zz_FpuPlugin_pendings_4);
+ assign _zz_FpuPlugin_pendings_1 = (FpuPlugin_pendings + _zz_FpuPlugin_pendings_2);
+ assign _zz_FpuPlugin_pendings_3 = FpuPlugin_port_cmd_fire;
+ assign _zz_FpuPlugin_pendings_2 = {5'd0, _zz_FpuPlugin_pendings_3};
+ assign _zz_FpuPlugin_pendings_5 = FpuPlugin_port_completion_valid;
+ assign _zz_FpuPlugin_pendings_4 = {5'd0, _zz_FpuPlugin_pendings_5};
+ assign _zz_FpuPlugin_pendings_7 = FpuPlugin_port_rsp_fire;
+ assign _zz_FpuPlugin_pendings_6 = {5'd0, _zz_FpuPlugin_pendings_7};
+ assign _zz__zz_execute_SRC1 = (execute_IS_RVC ? 3'b010 : 3'b100);
assign _zz__zz_execute_SRC1_1 = execute_INSTRUCTION[19 : 15];
assign _zz__zz_execute_SRC2_2 = {execute_INSTRUCTION[31 : 25],execute_INSTRUCTION[11 : 7]};
assign _zz_execute_SrcPlugin_addSub = ($signed(_zz_execute_SrcPlugin_addSub_1) + $signed(_zz_execute_SrcPlugin_addSub_4));
@@ -1434,143 +2184,244 @@ module w3d_host_vexriscv (
assign _zz_memory_DivPlugin_rs1_2 = {32'd0, _zz_memory_DivPlugin_rs1_3};
assign _zz_memory_DivPlugin_rs2_2 = _zz_memory_DivPlugin_rs2;
assign _zz_memory_DivPlugin_rs2_1 = {31'd0, _zz_memory_DivPlugin_rs2_2};
+ assign _zz_CsrPlugin_timeout_counter_valueNext_1 = CsrPlugin_timeout_counter_willIncrement;
+ assign _zz_CsrPlugin_timeout_counter_valueNext = {2'd0, _zz_CsrPlugin_timeout_counter_valueNext_1};
+ assign _zz_when = 1'b1;
+ assign _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext_1 = CsrPlugin_trigger_decodeBreak_timeout_counter_willIncrement;
+ assign _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext = {1'd0, _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext_1};
+ assign _zz_CsrPlugin_mcycle_1 = ((! debugMode) || (! CsrPlugin_dcsr_stopcount));
+ assign _zz_CsrPlugin_mcycle = {63'd0, _zz_CsrPlugin_mcycle_1};
assign _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1 = (_zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code & (~ _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1_1));
assign _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1_1 = (_zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code - 2'b01);
assign _zz__zz_execute_BRANCH_SRC22 = {{{execute_INSTRUCTION[31],execute_INSTRUCTION[19 : 12]},execute_INSTRUCTION[20]},execute_INSTRUCTION[30 : 21]};
assign _zz__zz_execute_BRANCH_SRC22_4 = {{{execute_INSTRUCTION[31],execute_INSTRUCTION[7]},execute_INSTRUCTION[30 : 25]},execute_INSTRUCTION[11 : 8]};
+ assign _zz_when_CsrPlugin_l1718 = (execute_CsrPlugin_csrAddress >>> 3'd4);
assign _zz_dbus_axi_arw_payload_len = ((dBus_cmd_payload_size == 3'b101) ? 3'b111 : 3'b000);
- assign _zz_IBusCachedPlugin_predictor_history_port = {IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_target,{IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_branchWish,IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_source}};
+ assign _zz_IBusCachedPlugin_predictor_history_port = {IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_target,{IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_last2Bytes,{IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_branchWish,IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_source}}};
assign _zz_decode_RegFilePlugin_rs1Data = 1'b1;
assign _zz_decode_RegFilePlugin_rs2Data = 1'b1;
assign _zz_IBusCachedPlugin_jump_pcLoad_payload_5 = {_zz_IBusCachedPlugin_jump_pcLoad_payload_3,_zz_IBusCachedPlugin_jump_pcLoad_payload_2};
assign _zz_writeBack_DBusCachedPlugin_rspShifted_1 = dataCache_1_io_cpu_writeBack_address[1 : 0];
assign _zz_writeBack_DBusCachedPlugin_rspShifted_3 = dataCache_1_io_cpu_writeBack_address[1 : 1];
- assign _zz_decode_LEGAL_INSTRUCTION = 32'h0000107f;
- assign _zz_decode_LEGAL_INSTRUCTION_1 = (decode_INSTRUCTION & 32'h0000207f);
- assign _zz_decode_LEGAL_INSTRUCTION_2 = 32'h00002073;
- assign _zz_decode_LEGAL_INSTRUCTION_3 = ((decode_INSTRUCTION & 32'h0000407f) == 32'h00004063);
- assign _zz_decode_LEGAL_INSTRUCTION_4 = ((decode_INSTRUCTION & 32'h0000207f) == 32'h00002013);
- assign _zz_decode_LEGAL_INSTRUCTION_5 = {((decode_INSTRUCTION & 32'h0000107f) == 32'h00000013),{((decode_INSTRUCTION & 32'h0000603f) == 32'h00000023),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION_6) == 32'h00000003),{(_zz_decode_LEGAL_INSTRUCTION_7 == _zz_decode_LEGAL_INSTRUCTION_8),{_zz_decode_LEGAL_INSTRUCTION_9,{_zz_decode_LEGAL_INSTRUCTION_10,_zz_decode_LEGAL_INSTRUCTION_11}}}}}};
- assign _zz_decode_LEGAL_INSTRUCTION_6 = 32'h0000207f;
- assign _zz_decode_LEGAL_INSTRUCTION_7 = (decode_INSTRUCTION & 32'h0000505f);
- assign _zz_decode_LEGAL_INSTRUCTION_8 = 32'h00000003;
- assign _zz_decode_LEGAL_INSTRUCTION_9 = ((decode_INSTRUCTION & 32'h0000707b) == 32'h00000063);
- assign _zz_decode_LEGAL_INSTRUCTION_10 = ((decode_INSTRUCTION & 32'h0000607f) == 32'h0000000f);
- assign _zz_decode_LEGAL_INSTRUCTION_11 = {((decode_INSTRUCTION & 32'hfc00007f) == 32'h00000033),{((decode_INSTRUCTION & 32'h01f0707f) == 32'h0000500f),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION_12) == 32'h00005013),{(_zz_decode_LEGAL_INSTRUCTION_13 == _zz_decode_LEGAL_INSTRUCTION_14),{_zz_decode_LEGAL_INSTRUCTION_15,_zz_decode_LEGAL_INSTRUCTION_16}}}}};
- assign _zz_decode_LEGAL_INSTRUCTION_12 = 32'hbe00705f;
- assign _zz_decode_LEGAL_INSTRUCTION_13 = (decode_INSTRUCTION & 32'hfe00305f);
- assign _zz_decode_LEGAL_INSTRUCTION_14 = 32'h00001013;
- assign _zz_decode_LEGAL_INSTRUCTION_15 = ((decode_INSTRUCTION & 32'hbe00707f) == 32'h00000033);
- assign _zz_decode_LEGAL_INSTRUCTION_16 = ((decode_INSTRUCTION & 32'hdfffffff) == 32'h10200073);
- assign _zz__zz_decode_IS_CSR = (decode_INSTRUCTION & 32'h0000001c);
- assign _zz__zz_decode_IS_CSR_1 = 32'h00000004;
- assign _zz__zz_decode_IS_CSR_2 = (decode_INSTRUCTION & 32'h00000058);
- assign _zz__zz_decode_IS_CSR_3 = 32'h00000040;
- assign _zz__zz_decode_IS_CSR_4 = ((decode_INSTRUCTION & 32'h00003050) == 32'h00000050);
- assign _zz__zz_decode_IS_CSR_5 = {((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_6) == 32'h00001050),((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_7) == 32'h00002050)};
- assign _zz__zz_decode_IS_CSR_8 = (|_zz_decode_IS_CSR_6);
- assign _zz__zz_decode_IS_CSR_9 = (|_zz_decode_IS_CSR_6);
- assign _zz__zz_decode_IS_CSR_10 = {(|_zz__zz_decode_IS_CSR_11),{(|_zz__zz_decode_IS_CSR_12),{_zz__zz_decode_IS_CSR_13,{_zz__zz_decode_IS_CSR_15,_zz__zz_decode_IS_CSR_18}}}};
- assign _zz__zz_decode_IS_CSR_6 = 32'h00001050;
- assign _zz__zz_decode_IS_CSR_7 = 32'h00002050;
- assign _zz__zz_decode_IS_CSR_11 = ((decode_INSTRUCTION & 32'h02004064) == 32'h02004020);
- assign _zz__zz_decode_IS_CSR_12 = ((decode_INSTRUCTION & 32'h02004074) == 32'h02000030);
- assign _zz__zz_decode_IS_CSR_13 = (|((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_14) == 32'h00005010));
- assign _zz__zz_decode_IS_CSR_15 = (|{_zz__zz_decode_IS_CSR_16,_zz__zz_decode_IS_CSR_17});
- assign _zz__zz_decode_IS_CSR_18 = {(|_zz__zz_decode_IS_CSR_19),{(|_zz__zz_decode_IS_CSR_20),{_zz__zz_decode_IS_CSR_21,{_zz__zz_decode_IS_CSR_23,_zz__zz_decode_IS_CSR_26}}}};
- assign _zz__zz_decode_IS_CSR_14 = 32'h02007054;
- assign _zz__zz_decode_IS_CSR_16 = ((decode_INSTRUCTION & 32'h40003054) == 32'h40001010);
- assign _zz__zz_decode_IS_CSR_17 = ((decode_INSTRUCTION & 32'h02007054) == 32'h00001010);
- assign _zz__zz_decode_IS_CSR_19 = ((decode_INSTRUCTION & 32'h00000064) == 32'h00000024);
- assign _zz__zz_decode_IS_CSR_20 = ((decode_INSTRUCTION & 32'h00001000) == 32'h00001000);
- assign _zz__zz_decode_IS_CSR_21 = (|((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_22) == 32'h00002000));
- assign _zz__zz_decode_IS_CSR_23 = (|{_zz__zz_decode_IS_CSR_24,_zz__zz_decode_IS_CSR_25});
- assign _zz__zz_decode_IS_CSR_26 = {(|_zz__zz_decode_IS_CSR_27),{(|_zz__zz_decode_IS_CSR_28),{_zz__zz_decode_IS_CSR_33,{_zz__zz_decode_IS_CSR_38,_zz__zz_decode_IS_CSR_40}}}};
- assign _zz__zz_decode_IS_CSR_22 = 32'h00003000;
- assign _zz__zz_decode_IS_CSR_24 = ((decode_INSTRUCTION & 32'h00002010) == 32'h00002000);
- assign _zz__zz_decode_IS_CSR_25 = ((decode_INSTRUCTION & 32'h00005000) == 32'h00001000);
- assign _zz__zz_decode_IS_CSR_27 = ((decode_INSTRUCTION & 32'h00004048) == 32'h00004008);
- assign _zz__zz_decode_IS_CSR_28 = {(_zz__zz_decode_IS_CSR_29 == _zz__zz_decode_IS_CSR_30),(_zz__zz_decode_IS_CSR_31 == _zz__zz_decode_IS_CSR_32)};
- assign _zz__zz_decode_IS_CSR_33 = (|{_zz__zz_decode_IS_CSR_34,{_zz__zz_decode_IS_CSR_35,_zz__zz_decode_IS_CSR_36}});
- assign _zz__zz_decode_IS_CSR_38 = (|_zz__zz_decode_IS_CSR_39);
- assign _zz__zz_decode_IS_CSR_40 = {(|_zz__zz_decode_IS_CSR_41),{_zz__zz_decode_IS_CSR_49,{_zz__zz_decode_IS_CSR_53,_zz__zz_decode_IS_CSR_66}}};
- assign _zz__zz_decode_IS_CSR_29 = (decode_INSTRUCTION & 32'h00000034);
- assign _zz__zz_decode_IS_CSR_30 = 32'h00000020;
- assign _zz__zz_decode_IS_CSR_31 = (decode_INSTRUCTION & 32'h00000064);
- assign _zz__zz_decode_IS_CSR_32 = 32'h00000020;
- assign _zz__zz_decode_IS_CSR_34 = ((decode_INSTRUCTION & 32'h00000050) == 32'h00000040);
- assign _zz__zz_decode_IS_CSR_35 = _zz_decode_IS_CSR_2;
- assign _zz__zz_decode_IS_CSR_36 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_37) == 32'h00000040);
- assign _zz__zz_decode_IS_CSR_39 = ((decode_INSTRUCTION & 32'h00000020) == 32'h00000020);
- assign _zz__zz_decode_IS_CSR_41 = {(_zz__zz_decode_IS_CSR_42 == _zz__zz_decode_IS_CSR_43),{_zz_decode_IS_CSR_3,{_zz__zz_decode_IS_CSR_44,_zz__zz_decode_IS_CSR_46}}};
- assign _zz__zz_decode_IS_CSR_49 = (|{_zz_decode_IS_CSR_3,{_zz__zz_decode_IS_CSR_50,_zz__zz_decode_IS_CSR_51}});
- assign _zz__zz_decode_IS_CSR_53 = (|{_zz__zz_decode_IS_CSR_54,_zz__zz_decode_IS_CSR_55});
- assign _zz__zz_decode_IS_CSR_66 = {(|_zz__zz_decode_IS_CSR_67),{_zz__zz_decode_IS_CSR_70,{_zz__zz_decode_IS_CSR_73,_zz__zz_decode_IS_CSR_76}}};
- assign _zz__zz_decode_IS_CSR_37 = 32'h00003040;
- assign _zz__zz_decode_IS_CSR_42 = (decode_INSTRUCTION & 32'h00000040);
+ assign _zz_decode_LEGAL_INSTRUCTION = 32'h06000073;
+ assign _zz_decode_LEGAL_INSTRUCTION_1 = (decode_INSTRUCTION & 32'h0000107f);
+ assign _zz_decode_LEGAL_INSTRUCTION_2 = 32'h00001073;
+ assign _zz_decode_LEGAL_INSTRUCTION_3 = ((decode_INSTRUCTION & 32'h0000207f) == 32'h00002073);
+ assign _zz_decode_LEGAL_INSTRUCTION_4 = ((decode_INSTRUCTION & 32'h0000407f) == 32'h00004063);
+ assign _zz_decode_LEGAL_INSTRUCTION_5 = {((decode_INSTRUCTION & 32'h0000207f) == 32'h00002013),{((decode_INSTRUCTION & 32'h0000705b) == 32'h00002003),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION_6) == 32'h00000013),{(_zz_decode_LEGAL_INSTRUCTION_7 == _zz_decode_LEGAL_INSTRUCTION_8),{_zz_decode_LEGAL_INSTRUCTION_9,{_zz_decode_LEGAL_INSTRUCTION_10,_zz_decode_LEGAL_INSTRUCTION_11}}}}}};
+ assign _zz_decode_LEGAL_INSTRUCTION_6 = 32'h0000107f;
+ assign _zz_decode_LEGAL_INSTRUCTION_7 = (decode_INSTRUCTION & 32'h0000603f);
+ assign _zz_decode_LEGAL_INSTRUCTION_8 = 32'h00000023;
+ assign _zz_decode_LEGAL_INSTRUCTION_9 = ((decode_INSTRUCTION & 32'h0000207f) == 32'h00000003);
+ assign _zz_decode_LEGAL_INSTRUCTION_10 = ((decode_INSTRUCTION & 32'h0000707b) == 32'h00000063);
+ assign _zz_decode_LEGAL_INSTRUCTION_11 = {((decode_INSTRUCTION & 32'h0000607f) == 32'h0000000f),{((decode_INSTRUCTION & 32'he600007f) == 32'h00000053),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION_12) == 32'h00000033),{(_zz_decode_LEGAL_INSTRUCTION_13 == _zz_decode_LEGAL_INSTRUCTION_14),{_zz_decode_LEGAL_INSTRUCTION_15,{_zz_decode_LEGAL_INSTRUCTION_16,_zz_decode_LEGAL_INSTRUCTION_17}}}}}};
+ assign _zz_decode_LEGAL_INSTRUCTION_12 = 32'hfc00007f;
+ assign _zz_decode_LEGAL_INSTRUCTION_13 = (decode_INSTRUCTION & 32'h01f0707f);
+ assign _zz_decode_LEGAL_INSTRUCTION_14 = 32'h0000500f;
+ assign _zz_decode_LEGAL_INSTRUCTION_15 = ((decode_INSTRUCTION & 32'h7e00507f) == 32'h20000053);
+ assign _zz_decode_LEGAL_INSTRUCTION_16 = ((decode_INSTRUCTION & 32'hf600607f) == 32'h20000053);
+ assign _zz_decode_LEGAL_INSTRUCTION_17 = {((decode_INSTRUCTION & 32'hbe00705f) == 32'h00005013),{((decode_INSTRUCTION & 32'h7e00607f) == 32'h20000053),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION_18) == 32'h00001013),{(_zz_decode_LEGAL_INSTRUCTION_19 == _zz_decode_LEGAL_INSTRUCTION_20),{_zz_decode_LEGAL_INSTRUCTION_21,{_zz_decode_LEGAL_INSTRUCTION_22,_zz_decode_LEGAL_INSTRUCTION_23}}}}}};
+ assign _zz_decode_LEGAL_INSTRUCTION_18 = 32'hfe00305f;
+ assign _zz_decode_LEGAL_INSTRUCTION_19 = (decode_INSTRUCTION & 32'hbe00707f);
+ assign _zz_decode_LEGAL_INSTRUCTION_20 = 32'h00000033;
+ assign _zz_decode_LEGAL_INSTRUCTION_21 = ((decode_INSTRUCTION & 32'hefe0007f) == 32'hc0000053);
+ assign _zz_decode_LEGAL_INSTRUCTION_22 = ((decode_INSTRUCTION & 32'hfff0007f) == 32'h58000053);
+ assign _zz_decode_LEGAL_INSTRUCTION_23 = {((decode_INSTRUCTION & 32'heff0707f) == 32'he0000053),{((decode_INSTRUCTION & 32'hfff0607f) == 32'he0000053),{((decode_INSTRUCTION & 32'hdfffffff) == 32'h10200073),((decode_INSTRUCTION & 32'hffffffff) == 32'h00100073)}}};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_27 = {_zz_IBusCachedPlugin_decompressor_decompressed_12,_zz_IBusCachedPlugin_decompressor_decompressed[4 : 3]};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_28 = _zz_IBusCachedPlugin_decompressor_decompressed[5];
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_29 = _zz_IBusCachedPlugin_decompressor_decompressed[2];
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_31 = (_zz_IBusCachedPlugin_decompressor_decompressed[11 : 10] == 2'b01);
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_32 = ((_zz_IBusCachedPlugin_decompressor_decompressed[11 : 10] == 2'b11) && (_zz_IBusCachedPlugin_decompressor_decompressed[6 : 5] == 2'b00));
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_33 = 7'h00;
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_34 = _zz_IBusCachedPlugin_decompressor_decompressed[6 : 2];
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_35 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_36 = _zz_IBusCachedPlugin_decompressor_decompressed[11 : 7];
+ assign _zz__zz_decode_IS_CSR = (decode_INSTRUCTION & 32'h00002034);
+ assign _zz__zz_decode_IS_CSR_1 = 32'h00000024;
+ assign _zz__zz_decode_IS_CSR_2 = (decode_INSTRUCTION & 32'h00000078);
+ assign _zz__zz_decode_IS_CSR_3 = 32'h00000060;
+ assign _zz__zz_decode_IS_CSR_4 = ((decode_INSTRUCTION & 32'h10003070) == 32'h00000070);
+ assign _zz__zz_decode_IS_CSR_5 = ((decode_INSTRUCTION & 32'h10003034) == 32'h10000030);
+ assign _zz__zz_decode_IS_CSR_6 = (|{(_zz__zz_decode_IS_CSR_7 == _zz__zz_decode_IS_CSR_8),(_zz__zz_decode_IS_CSR_9 == _zz__zz_decode_IS_CSR_10)});
+ assign _zz__zz_decode_IS_CSR_11 = (|_zz_decode_IS_CSR_11);
+ assign _zz__zz_decode_IS_CSR_12 = {(|_zz_decode_IS_CSR_11),{(|_zz__zz_decode_IS_CSR_13),{_zz__zz_decode_IS_CSR_14,{_zz__zz_decode_IS_CSR_15,_zz__zz_decode_IS_CSR_17}}}};
+ assign _zz__zz_decode_IS_CSR_7 = (decode_INSTRUCTION & 32'h00001070);
+ assign _zz__zz_decode_IS_CSR_8 = 32'h00001070;
+ assign _zz__zz_decode_IS_CSR_9 = (decode_INSTRUCTION & 32'h00002070);
+ assign _zz__zz_decode_IS_CSR_10 = 32'h00002070;
+ assign _zz__zz_decode_IS_CSR_13 = ((decode_INSTRUCTION & 32'h02004064) == 32'h02004020);
+ assign _zz__zz_decode_IS_CSR_14 = (|((decode_INSTRUCTION & 32'h02004074) == 32'h02000030));
+ assign _zz__zz_decode_IS_CSR_15 = (|((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_16) == 32'h00005010));
+ assign _zz__zz_decode_IS_CSR_17 = {(|{_zz__zz_decode_IS_CSR_18,_zz__zz_decode_IS_CSR_19}),{(|{_zz__zz_decode_IS_CSR_20,_zz__zz_decode_IS_CSR_21}),{(|_zz__zz_decode_IS_CSR_23),{_zz__zz_decode_IS_CSR_29,{_zz__zz_decode_IS_CSR_30,_zz__zz_decode_IS_CSR_38}}}}};
+ assign _zz__zz_decode_IS_CSR_16 = 32'h02007054;
+ assign _zz__zz_decode_IS_CSR_18 = ((decode_INSTRUCTION & 32'h40003054) == 32'h40001010);
+ assign _zz__zz_decode_IS_CSR_19 = ((decode_INSTRUCTION & 32'h02007054) == 32'h00001010);
+ assign _zz__zz_decode_IS_CSR_20 = _zz_decode_IS_CSR_9;
+ assign _zz__zz_decode_IS_CSR_21 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_22) == 32'h20002010);
+ assign _zz__zz_decode_IS_CSR_23 = {_zz_decode_IS_CSR_3,{_zz__zz_decode_IS_CSR_24,{_zz__zz_decode_IS_CSR_25,_zz__zz_decode_IS_CSR_27}}};
+ assign _zz__zz_decode_IS_CSR_29 = 1'b0;
+ assign _zz__zz_decode_IS_CSR_30 = (|{_zz__zz_decode_IS_CSR_31,_zz__zz_decode_IS_CSR_33});
+ assign _zz__zz_decode_IS_CSR_38 = {(|_zz__zz_decode_IS_CSR_39),{_zz__zz_decode_IS_CSR_44,{_zz__zz_decode_IS_CSR_55,_zz__zz_decode_IS_CSR_68}}};
+ assign _zz__zz_decode_IS_CSR_22 = 32'h20002010;
+ assign _zz__zz_decode_IS_CSR_24 = ((decode_INSTRUCTION & 32'h20001010) == 32'h20001010);
+ assign _zz__zz_decode_IS_CSR_25 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_26) == 32'h08000010);
+ assign _zz__zz_decode_IS_CSR_27 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_28) == 32'h80000010);
+ assign _zz__zz_decode_IS_CSR_31 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_32) == 32'h60000010);
+ assign _zz__zz_decode_IS_CSR_33 = {(_zz__zz_decode_IS_CSR_34 == _zz__zz_decode_IS_CSR_35),(_zz__zz_decode_IS_CSR_36 == _zz__zz_decode_IS_CSR_37)};
+ assign _zz__zz_decode_IS_CSR_39 = {(_zz__zz_decode_IS_CSR_40 == _zz__zz_decode_IS_CSR_41),(_zz__zz_decode_IS_CSR_42 == _zz__zz_decode_IS_CSR_43)};
+ assign _zz__zz_decode_IS_CSR_44 = (|{_zz__zz_decode_IS_CSR_45,{_zz__zz_decode_IS_CSR_47,_zz__zz_decode_IS_CSR_50}});
+ assign _zz__zz_decode_IS_CSR_55 = (|{_zz__zz_decode_IS_CSR_56,_zz__zz_decode_IS_CSR_57});
+ assign _zz__zz_decode_IS_CSR_68 = {(|_zz__zz_decode_IS_CSR_69),{_zz__zz_decode_IS_CSR_70,{_zz__zz_decode_IS_CSR_79,_zz__zz_decode_IS_CSR_85}}};
+ assign _zz__zz_decode_IS_CSR_26 = 32'h28000010;
+ assign _zz__zz_decode_IS_CSR_28 = 32'ha0100010;
+ assign _zz__zz_decode_IS_CSR_32 = 32'h60000010;
+ assign _zz__zz_decode_IS_CSR_34 = (decode_INSTRUCTION & 32'h18000010);
+ assign _zz__zz_decode_IS_CSR_35 = 32'h18000010;
+ assign _zz__zz_decode_IS_CSR_36 = (decode_INSTRUCTION & 32'ha0000010);
+ assign _zz__zz_decode_IS_CSR_37 = 32'h20000010;
+ assign _zz__zz_decode_IS_CSR_40 = (decode_INSTRUCTION & 32'h80000004);
+ assign _zz__zz_decode_IS_CSR_41 = 32'h80000000;
+ assign _zz__zz_decode_IS_CSR_42 = (decode_INSTRUCTION & 32'h00000050);
assign _zz__zz_decode_IS_CSR_43 = 32'h00000040;
- assign _zz__zz_decode_IS_CSR_44 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_45) == 32'h00004020);
- assign _zz__zz_decode_IS_CSR_46 = {_zz_decode_IS_CSR_5,(_zz__zz_decode_IS_CSR_47 == _zz__zz_decode_IS_CSR_48)};
- assign _zz__zz_decode_IS_CSR_50 = _zz_decode_IS_CSR_5;
- assign _zz__zz_decode_IS_CSR_51 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_52) == 32'h00000020);
- assign _zz__zz_decode_IS_CSR_54 = _zz_decode_IS_CSR_4;
- assign _zz__zz_decode_IS_CSR_55 = {(_zz__zz_decode_IS_CSR_56 == _zz__zz_decode_IS_CSR_57),{_zz__zz_decode_IS_CSR_58,{_zz__zz_decode_IS_CSR_60,_zz__zz_decode_IS_CSR_63}}};
- assign _zz__zz_decode_IS_CSR_67 = {_zz_decode_IS_CSR_3,(_zz__zz_decode_IS_CSR_68 == _zz__zz_decode_IS_CSR_69)};
- assign _zz__zz_decode_IS_CSR_70 = (|{_zz_decode_IS_CSR_3,_zz__zz_decode_IS_CSR_71});
- assign _zz__zz_decode_IS_CSR_73 = (|_zz__zz_decode_IS_CSR_74);
- assign _zz__zz_decode_IS_CSR_76 = {(|_zz__zz_decode_IS_CSR_77),{_zz__zz_decode_IS_CSR_80,{_zz__zz_decode_IS_CSR_89,_zz__zz_decode_IS_CSR_92}}};
- assign _zz__zz_decode_IS_CSR_45 = 32'h00004020;
- assign _zz__zz_decode_IS_CSR_47 = (decode_INSTRUCTION & 32'h02000020);
- assign _zz__zz_decode_IS_CSR_48 = 32'h00000020;
- assign _zz__zz_decode_IS_CSR_52 = 32'h02000060;
- assign _zz__zz_decode_IS_CSR_56 = (decode_INSTRUCTION & 32'h00001010);
- assign _zz__zz_decode_IS_CSR_57 = 32'h00001010;
- assign _zz__zz_decode_IS_CSR_58 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_59) == 32'h00002010);
+ assign _zz__zz_decode_IS_CSR_45 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_46) == 32'h00001010);
+ assign _zz__zz_decode_IS_CSR_47 = (_zz__zz_decode_IS_CSR_48 == _zz__zz_decode_IS_CSR_49);
+ assign _zz__zz_decode_IS_CSR_50 = {_zz__zz_decode_IS_CSR_51,_zz__zz_decode_IS_CSR_53};
+ assign _zz__zz_decode_IS_CSR_56 = _zz_decode_IS_CSR_10;
+ assign _zz__zz_decode_IS_CSR_57 = {_zz__zz_decode_IS_CSR_58,{_zz__zz_decode_IS_CSR_60,_zz__zz_decode_IS_CSR_63}};
+ assign _zz__zz_decode_IS_CSR_69 = {_zz_decode_IS_CSR_10,_zz_decode_IS_CSR_6};
+ assign _zz__zz_decode_IS_CSR_70 = (|{_zz__zz_decode_IS_CSR_71,_zz__zz_decode_IS_CSR_74});
+ assign _zz__zz_decode_IS_CSR_79 = (|_zz__zz_decode_IS_CSR_80);
+ assign _zz__zz_decode_IS_CSR_85 = {_zz__zz_decode_IS_CSR_86,{_zz__zz_decode_IS_CSR_89,_zz__zz_decode_IS_CSR_93}};
+ assign _zz__zz_decode_IS_CSR_46 = 32'h10001010;
+ assign _zz__zz_decode_IS_CSR_48 = (decode_INSTRUCTION & 32'h30000010);
+ assign _zz__zz_decode_IS_CSR_49 = 32'h00000010;
+ assign _zz__zz_decode_IS_CSR_51 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_52) == 32'h00000010);
+ assign _zz__zz_decode_IS_CSR_53 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_54) == 32'h00000010);
+ assign _zz__zz_decode_IS_CSR_58 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_59) == 32'h90000010);
assign _zz__zz_decode_IS_CSR_60 = (_zz__zz_decode_IS_CSR_61 == _zz__zz_decode_IS_CSR_62);
- assign _zz__zz_decode_IS_CSR_63 = {_zz__zz_decode_IS_CSR_64,_zz__zz_decode_IS_CSR_65};
- assign _zz__zz_decode_IS_CSR_68 = (decode_INSTRUCTION & 32'h00000070);
- assign _zz__zz_decode_IS_CSR_69 = 32'h00000020;
- assign _zz__zz_decode_IS_CSR_71 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_72) == 32'h00000000);
- assign _zz__zz_decode_IS_CSR_74 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_75) == 32'h00004010);
- assign _zz__zz_decode_IS_CSR_77 = (_zz__zz_decode_IS_CSR_78 == _zz__zz_decode_IS_CSR_79);
- assign _zz__zz_decode_IS_CSR_80 = (|{_zz__zz_decode_IS_CSR_81,_zz__zz_decode_IS_CSR_83});
+ assign _zz__zz_decode_IS_CSR_63 = {_zz__zz_decode_IS_CSR_64,_zz__zz_decode_IS_CSR_66};
+ assign _zz__zz_decode_IS_CSR_71 = (_zz__zz_decode_IS_CSR_72 == _zz__zz_decode_IS_CSR_73);
+ assign _zz__zz_decode_IS_CSR_74 = {_zz__zz_decode_IS_CSR_75,_zz__zz_decode_IS_CSR_77};
+ assign _zz__zz_decode_IS_CSR_80 = {_zz__zz_decode_IS_CSR_81,_zz__zz_decode_IS_CSR_83};
+ assign _zz__zz_decode_IS_CSR_86 = (|_zz__zz_decode_IS_CSR_87);
assign _zz__zz_decode_IS_CSR_89 = (|_zz__zz_decode_IS_CSR_90);
- assign _zz__zz_decode_IS_CSR_92 = {_zz__zz_decode_IS_CSR_93,{_zz__zz_decode_IS_CSR_99,_zz__zz_decode_IS_CSR_103}};
- assign _zz__zz_decode_IS_CSR_59 = 32'h00002010;
- assign _zz__zz_decode_IS_CSR_61 = (decode_INSTRUCTION & 32'h00000050);
- assign _zz__zz_decode_IS_CSR_62 = 32'h00000010;
- assign _zz__zz_decode_IS_CSR_64 = ((decode_INSTRUCTION & 32'h0000000c) == 32'h00000004);
- assign _zz__zz_decode_IS_CSR_65 = ((decode_INSTRUCTION & 32'h00000028) == 32'h00000000);
- assign _zz__zz_decode_IS_CSR_72 = 32'h00000020;
- assign _zz__zz_decode_IS_CSR_75 = 32'h00004014;
- assign _zz__zz_decode_IS_CSR_78 = (decode_INSTRUCTION & 32'h00006014);
- assign _zz__zz_decode_IS_CSR_79 = 32'h00002010;
- assign _zz__zz_decode_IS_CSR_81 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_82) == 32'h00000000);
- assign _zz__zz_decode_IS_CSR_83 = {_zz_decode_IS_CSR_2,{_zz__zz_decode_IS_CSR_84,{_zz__zz_decode_IS_CSR_85,_zz__zz_decode_IS_CSR_87}}};
- assign _zz__zz_decode_IS_CSR_90 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_91) == 32'h00000000);
- assign _zz__zz_decode_IS_CSR_93 = (|{_zz__zz_decode_IS_CSR_94,{_zz__zz_decode_IS_CSR_95,_zz__zz_decode_IS_CSR_97}});
- assign _zz__zz_decode_IS_CSR_99 = (|{_zz__zz_decode_IS_CSR_100,_zz__zz_decode_IS_CSR_102});
- assign _zz__zz_decode_IS_CSR_103 = {(|_zz__zz_decode_IS_CSR_104),(|_zz__zz_decode_IS_CSR_107)};
- assign _zz__zz_decode_IS_CSR_82 = 32'h00000044;
- assign _zz__zz_decode_IS_CSR_84 = ((decode_INSTRUCTION & 32'h00006004) == 32'h00002000);
- assign _zz__zz_decode_IS_CSR_85 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_86) == 32'h00001000);
- assign _zz__zz_decode_IS_CSR_87 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_88) == 32'h00004000);
- assign _zz__zz_decode_IS_CSR_91 = 32'h00000058;
- assign _zz__zz_decode_IS_CSR_94 = ((decode_INSTRUCTION & 32'h00000044) == 32'h00000040);
- assign _zz__zz_decode_IS_CSR_95 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_96) == 32'h00002010);
- assign _zz__zz_decode_IS_CSR_97 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_98) == 32'h40000030);
- assign _zz__zz_decode_IS_CSR_100 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_101) == 32'h00000004);
- assign _zz__zz_decode_IS_CSR_102 = _zz_decode_IS_CSR_1;
- assign _zz__zz_decode_IS_CSR_104 = {(_zz__zz_decode_IS_CSR_105 == _zz__zz_decode_IS_CSR_106),_zz_decode_IS_CSR_1};
- assign _zz__zz_decode_IS_CSR_107 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_108) == 32'h00001008);
- assign _zz__zz_decode_IS_CSR_86 = 32'h00005004;
- assign _zz__zz_decode_IS_CSR_88 = 32'h00004050;
- assign _zz__zz_decode_IS_CSR_96 = 32'h00002014;
- assign _zz__zz_decode_IS_CSR_98 = 32'h40000034;
- assign _zz__zz_decode_IS_CSR_101 = 32'h00000014;
- assign _zz__zz_decode_IS_CSR_105 = (decode_INSTRUCTION & 32'h00000044);
- assign _zz__zz_decode_IS_CSR_106 = 32'h00000004;
- assign _zz__zz_decode_IS_CSR_108 = 32'h00005048;
+ assign _zz__zz_decode_IS_CSR_93 = {_zz__zz_decode_IS_CSR_94,{_zz__zz_decode_IS_CSR_96,_zz__zz_decode_IS_CSR_100}};
+ assign _zz__zz_decode_IS_CSR_52 = 32'h88000010;
+ assign _zz__zz_decode_IS_CSR_54 = 32'h50000010;
+ assign _zz__zz_decode_IS_CSR_59 = 32'h90000010;
+ assign _zz__zz_decode_IS_CSR_61 = (decode_INSTRUCTION & 32'hc0000010);
+ assign _zz__zz_decode_IS_CSR_62 = 32'h40000010;
+ assign _zz__zz_decode_IS_CSR_64 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_65) == 32'h00000010);
+ assign _zz__zz_decode_IS_CSR_66 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_67) == 32'h00000010);
+ assign _zz__zz_decode_IS_CSR_72 = (decode_INSTRUCTION & 32'h10000020);
+ assign _zz__zz_decode_IS_CSR_73 = 32'h10000000;
+ assign _zz__zz_decode_IS_CSR_75 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_76) == 32'h00000000);
+ assign _zz__zz_decode_IS_CSR_77 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_78) == 32'h00000000);
+ assign _zz__zz_decode_IS_CSR_81 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_82) == 32'h00000040);
+ assign _zz__zz_decode_IS_CSR_83 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_84) == 32'h00000004);
+ assign _zz__zz_decode_IS_CSR_87 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_88) == 32'h00000034);
+ assign _zz__zz_decode_IS_CSR_90 = (_zz__zz_decode_IS_CSR_91 == _zz__zz_decode_IS_CSR_92);
+ assign _zz__zz_decode_IS_CSR_94 = (|_zz__zz_decode_IS_CSR_95);
+ assign _zz__zz_decode_IS_CSR_96 = (|_zz__zz_decode_IS_CSR_97);
+ assign _zz__zz_decode_IS_CSR_100 = {_zz__zz_decode_IS_CSR_101,{_zz__zz_decode_IS_CSR_103,_zz__zz_decode_IS_CSR_106}};
+ assign _zz__zz_decode_IS_CSR_65 = 32'h58000010;
+ assign _zz__zz_decode_IS_CSR_67 = 32'hb0000010;
+ assign _zz__zz_decode_IS_CSR_76 = 32'h80000020;
+ assign _zz__zz_decode_IS_CSR_78 = 32'h00000030;
+ assign _zz__zz_decode_IS_CSR_82 = 32'h00000060;
+ assign _zz__zz_decode_IS_CSR_84 = 32'h0000005c;
+ assign _zz__zz_decode_IS_CSR_88 = 32'h00000034;
+ assign _zz__zz_decode_IS_CSR_91 = (decode_INSTRUCTION & 32'h00001000);
+ assign _zz__zz_decode_IS_CSR_92 = 32'h00001000;
+ assign _zz__zz_decode_IS_CSR_95 = ((decode_INSTRUCTION & 32'h00003000) == 32'h00002000);
+ assign _zz__zz_decode_IS_CSR_97 = {((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_98) == 32'h00002000),((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_99) == 32'h00001000)};
+ assign _zz__zz_decode_IS_CSR_101 = (|((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_102) == 32'h00004008));
+ assign _zz__zz_decode_IS_CSR_103 = (|{_zz__zz_decode_IS_CSR_104,_zz__zz_decode_IS_CSR_105});
+ assign _zz__zz_decode_IS_CSR_106 = {(|{_zz__zz_decode_IS_CSR_107,_zz__zz_decode_IS_CSR_109}),{(|_zz__zz_decode_IS_CSR_112),{_zz__zz_decode_IS_CSR_113,{_zz__zz_decode_IS_CSR_121,_zz__zz_decode_IS_CSR_126}}}};
+ assign _zz__zz_decode_IS_CSR_98 = 32'h00002010;
+ assign _zz__zz_decode_IS_CSR_99 = 32'h00005000;
+ assign _zz__zz_decode_IS_CSR_102 = 32'h00004048;
+ assign _zz__zz_decode_IS_CSR_104 = ((decode_INSTRUCTION & 32'h00000034) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_105 = ((decode_INSTRUCTION & 32'h00000064) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_107 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_108) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_109 = {_zz_decode_IS_CSR_4,(_zz__zz_decode_IS_CSR_110 == _zz__zz_decode_IS_CSR_111)};
+ assign _zz__zz_decode_IS_CSR_112 = _zz_decode_IS_CSR_10;
+ assign _zz__zz_decode_IS_CSR_113 = (|{_zz_decode_IS_CSR_9,{_zz__zz_decode_IS_CSR_114,_zz__zz_decode_IS_CSR_116}});
+ assign _zz__zz_decode_IS_CSR_121 = (|{_zz__zz_decode_IS_CSR_122,_zz__zz_decode_IS_CSR_123});
+ assign _zz__zz_decode_IS_CSR_126 = {(|_zz__zz_decode_IS_CSR_127),{_zz__zz_decode_IS_CSR_140,{_zz__zz_decode_IS_CSR_145,_zz__zz_decode_IS_CSR_150}}};
+ assign _zz__zz_decode_IS_CSR_108 = 32'h00000030;
+ assign _zz__zz_decode_IS_CSR_110 = (decode_INSTRUCTION & 32'h00003060);
+ assign _zz__zz_decode_IS_CSR_111 = 32'h00000060;
+ assign _zz__zz_decode_IS_CSR_114 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_115) == 32'h00004020);
+ assign _zz__zz_decode_IS_CSR_116 = {(_zz__zz_decode_IS_CSR_117 == _zz__zz_decode_IS_CSR_118),{_zz__zz_decode_IS_CSR_119,_zz_decode_IS_CSR_8}};
+ assign _zz__zz_decode_IS_CSR_122 = _zz_decode_IS_CSR_9;
+ assign _zz__zz_decode_IS_CSR_123 = {_zz_decode_IS_CSR_8,(_zz__zz_decode_IS_CSR_124 == _zz__zz_decode_IS_CSR_125)};
+ assign _zz__zz_decode_IS_CSR_127 = {_zz_decode_IS_CSR_7,{_zz__zz_decode_IS_CSR_128,{_zz__zz_decode_IS_CSR_130,_zz__zz_decode_IS_CSR_133}}};
+ assign _zz__zz_decode_IS_CSR_140 = (|{_zz_decode_IS_CSR_3,{_zz__zz_decode_IS_CSR_141,_zz__zz_decode_IS_CSR_142}});
+ assign _zz__zz_decode_IS_CSR_145 = (|{_zz__zz_decode_IS_CSR_146,_zz__zz_decode_IS_CSR_147});
+ assign _zz__zz_decode_IS_CSR_150 = {(|_zz__zz_decode_IS_CSR_151),{_zz__zz_decode_IS_CSR_154,{_zz__zz_decode_IS_CSR_157,_zz__zz_decode_IS_CSR_169}}};
+ assign _zz__zz_decode_IS_CSR_115 = 32'h00004020;
+ assign _zz__zz_decode_IS_CSR_117 = (decode_INSTRUCTION & 32'h00000060);
+ assign _zz__zz_decode_IS_CSR_118 = 32'h00000060;
+ assign _zz__zz_decode_IS_CSR_119 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_120) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_124 = (decode_INSTRUCTION & 32'h02000060);
+ assign _zz__zz_decode_IS_CSR_125 = 32'h00000020;
+ assign _zz__zz_decode_IS_CSR_128 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_129) == 32'h00000010);
+ assign _zz__zz_decode_IS_CSR_130 = (_zz__zz_decode_IS_CSR_131 == _zz__zz_decode_IS_CSR_132);
+ assign _zz__zz_decode_IS_CSR_133 = {_zz__zz_decode_IS_CSR_134,{_zz__zz_decode_IS_CSR_136,_zz__zz_decode_IS_CSR_137}};
+ assign _zz__zz_decode_IS_CSR_141 = _zz_decode_IS_CSR_2;
+ assign _zz__zz_decode_IS_CSR_142 = {_zz_decode_IS_CSR_5,_zz__zz_decode_IS_CSR_143};
+ assign _zz__zz_decode_IS_CSR_146 = _zz_decode_IS_CSR_3;
+ assign _zz__zz_decode_IS_CSR_147 = {_zz__zz_decode_IS_CSR_148,_zz_decode_IS_CSR_5};
+ assign _zz__zz_decode_IS_CSR_151 = (_zz__zz_decode_IS_CSR_152 == _zz__zz_decode_IS_CSR_153);
+ assign _zz__zz_decode_IS_CSR_154 = (|_zz__zz_decode_IS_CSR_155);
+ assign _zz__zz_decode_IS_CSR_157 = (|_zz__zz_decode_IS_CSR_158);
+ assign _zz__zz_decode_IS_CSR_169 = {_zz__zz_decode_IS_CSR_170,{_zz__zz_decode_IS_CSR_171,_zz__zz_decode_IS_CSR_177}};
+ assign _zz__zz_decode_IS_CSR_120 = 32'h02000020;
+ assign _zz__zz_decode_IS_CSR_129 = 32'h00000050;
+ assign _zz__zz_decode_IS_CSR_131 = (decode_INSTRUCTION & 32'h00001030);
+ assign _zz__zz_decode_IS_CSR_132 = 32'h00001030;
+ assign _zz__zz_decode_IS_CSR_134 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_135) == 32'h00002030);
+ assign _zz__zz_decode_IS_CSR_136 = _zz_decode_IS_CSR_6;
+ assign _zz__zz_decode_IS_CSR_137 = {_zz__zz_decode_IS_CSR_138,_zz__zz_decode_IS_CSR_139};
+ assign _zz__zz_decode_IS_CSR_143 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_144) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_148 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_149) == 32'h00000000);
+ assign _zz__zz_decode_IS_CSR_152 = (decode_INSTRUCTION & 32'h00004014);
+ assign _zz__zz_decode_IS_CSR_153 = 32'h00004010;
+ assign _zz__zz_decode_IS_CSR_155 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_156) == 32'h00002010);
+ assign _zz__zz_decode_IS_CSR_158 = {_zz__zz_decode_IS_CSR_159,{_zz__zz_decode_IS_CSR_160,_zz__zz_decode_IS_CSR_162}};
+ assign _zz__zz_decode_IS_CSR_170 = (|_zz_decode_IS_CSR_4);
+ assign _zz__zz_decode_IS_CSR_171 = (|_zz__zz_decode_IS_CSR_172);
+ assign _zz__zz_decode_IS_CSR_177 = {_zz__zz_decode_IS_CSR_178,{_zz__zz_decode_IS_CSR_181,_zz__zz_decode_IS_CSR_184}};
+ assign _zz__zz_decode_IS_CSR_135 = 32'h00002030;
+ assign _zz__zz_decode_IS_CSR_138 = ((decode_INSTRUCTION & 32'h00002024) == 32'h00000024);
+ assign _zz__zz_decode_IS_CSR_139 = ((decode_INSTRUCTION & 32'h00000064) == 32'h00000000);
+ assign _zz__zz_decode_IS_CSR_144 = 32'h00000070;
+ assign _zz__zz_decode_IS_CSR_149 = 32'h00000020;
+ assign _zz__zz_decode_IS_CSR_156 = 32'h00006014;
+ assign _zz__zz_decode_IS_CSR_159 = ((decode_INSTRUCTION & 32'h00000044) == 32'h00000000);
+ assign _zz__zz_decode_IS_CSR_160 = ((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_161) == 32'h00000020);
+ assign _zz__zz_decode_IS_CSR_162 = {(_zz__zz_decode_IS_CSR_163 == _zz__zz_decode_IS_CSR_164),{_zz_decode_IS_CSR_4,{_zz__zz_decode_IS_CSR_165,_zz__zz_decode_IS_CSR_166}}};
+ assign _zz__zz_decode_IS_CSR_172 = {(_zz__zz_decode_IS_CSR_173 == _zz__zz_decode_IS_CSR_174),{_zz__zz_decode_IS_CSR_175,_zz__zz_decode_IS_CSR_176}};
+ assign _zz__zz_decode_IS_CSR_178 = (|{_zz_decode_IS_CSR_3,{_zz__zz_decode_IS_CSR_179,_zz__zz_decode_IS_CSR_180}});
+ assign _zz__zz_decode_IS_CSR_181 = (|{_zz__zz_decode_IS_CSR_182,_zz__zz_decode_IS_CSR_183});
+ assign _zz__zz_decode_IS_CSR_184 = (|_zz__zz_decode_IS_CSR_185);
+ assign _zz__zz_decode_IS_CSR_161 = 32'h00000038;
+ assign _zz__zz_decode_IS_CSR_163 = (decode_INSTRUCTION & 32'h00004050);
+ assign _zz__zz_decode_IS_CSR_164 = 32'h00004000;
+ assign _zz__zz_decode_IS_CSR_165 = ((decode_INSTRUCTION & 32'h00006024) == 32'h00002020);
+ assign _zz__zz_decode_IS_CSR_166 = {((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_167) == 32'h00001020),((decode_INSTRUCTION & _zz__zz_decode_IS_CSR_168) == 32'h90000010)};
+ assign _zz__zz_decode_IS_CSR_173 = (decode_INSTRUCTION & 32'h00000044);
+ assign _zz__zz_decode_IS_CSR_174 = 32'h00000040;
+ assign _zz__zz_decode_IS_CSR_175 = ((decode_INSTRUCTION & 32'h00002014) == 32'h00002010);
+ assign _zz__zz_decode_IS_CSR_176 = ((decode_INSTRUCTION & 32'h40000034) == 32'h40000030);
+ assign _zz__zz_decode_IS_CSR_179 = _zz_decode_IS_CSR_1;
+ assign _zz__zz_decode_IS_CSR_180 = ((decode_INSTRUCTION & 32'h00002014) == 32'h00000004);
+ assign _zz__zz_decode_IS_CSR_182 = _zz_decode_IS_CSR_2;
+ assign _zz__zz_decode_IS_CSR_183 = _zz_decode_IS_CSR_1;
+ assign _zz__zz_decode_IS_CSR_185 = ((decode_INSTRUCTION & 32'h00005048) == 32'h00001008);
+ assign _zz__zz_decode_IS_CSR_167 = 32'h00005024;
+ assign _zz__zz_decode_IS_CSR_168 = 32'h90000034;
always @(posedge clk) begin
if(_zz_2) begin
IBusCachedPlugin_predictor_history[IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_address] <= _zz_IBusCachedPlugin_predictor_history_port;
@@ -1605,11 +2456,11 @@ module w3d_host_vexriscv (
.io_flush (IBusCachedPlugin_cache_io_flush ), //i
.io_cpu_prefetch_isValid (IBusCachedPlugin_cache_io_cpu_prefetch_isValid ), //i
.io_cpu_prefetch_haltIt (IBusCachedPlugin_cache_io_cpu_prefetch_haltIt ), //o
- .io_cpu_prefetch_pc (IBusCachedPlugin_iBusRsp_stages_0_input_payload[31:0] ), //i
+ .io_cpu_prefetch_pc (IBusCachedPlugin_iBusRsp_stages_1_input_payload[31:0] ), //i
.io_cpu_fetch_isValid (IBusCachedPlugin_cache_io_cpu_fetch_isValid ), //i
.io_cpu_fetch_isStuck (IBusCachedPlugin_cache_io_cpu_fetch_isStuck ), //i
.io_cpu_fetch_isRemoved (IBusCachedPlugin_cache_io_cpu_fetch_isRemoved ), //i
- .io_cpu_fetch_pc (IBusCachedPlugin_iBusRsp_stages_1_input_payload[31:0] ), //i
+ .io_cpu_fetch_pc (IBusCachedPlugin_iBusRsp_stages_2_input_payload[31:0] ), //i
.io_cpu_fetch_data (IBusCachedPlugin_cache_io_cpu_fetch_data[31:0] ), //o
.io_cpu_fetch_mmuRsp_physicalAddress (IBusCachedPlugin_mmuBus_rsp_physicalAddress[31:0] ), //i
.io_cpu_fetch_mmuRsp_isIoAccess (IBusCachedPlugin_mmuBus_rsp_isIoAccess ), //i
@@ -1623,7 +2474,7 @@ module w3d_host_vexriscv (
.io_cpu_fetch_physicalAddress (IBusCachedPlugin_cache_io_cpu_fetch_physicalAddress[31:0] ), //o
.io_cpu_decode_isValid (IBusCachedPlugin_cache_io_cpu_decode_isValid ), //i
.io_cpu_decode_isStuck (IBusCachedPlugin_cache_io_cpu_decode_isStuck ), //i
- .io_cpu_decode_pc (IBusCachedPlugin_iBusRsp_stages_2_input_payload[31:0] ), //i
+ .io_cpu_decode_pc (IBusCachedPlugin_iBusRsp_stages_3_input_payload[31:0] ), //i
.io_cpu_decode_physicalAddress (IBusCachedPlugin_cache_io_cpu_decode_physicalAddress[31:0]), //o
.io_cpu_decode_data (IBusCachedPlugin_cache_io_cpu_decode_data[31:0] ), //o
.io_cpu_decode_cacheMiss (IBusCachedPlugin_cache_io_cpu_decode_cacheMiss ), //o
@@ -1709,6 +2560,94 @@ module w3d_host_vexriscv (
.clk (clk ), //i
.resetn (resetn ) //i
);
+ FpuCore FpuPlugin_fpu (
+ .io_port_0_cmd_valid (FpuPlugin_port_cmd_valid ), //i
+ .io_port_0_cmd_ready (FpuPlugin_fpu_io_port_0_cmd_ready ), //o
+ .io_port_0_cmd_payload_opcode (FpuPlugin_port_cmd_payload_opcode[3:0] ), //i
+ .io_port_0_cmd_payload_arg (FpuPlugin_port_cmd_payload_arg[1:0] ), //i
+ .io_port_0_cmd_payload_rs1 (FpuPlugin_port_cmd_payload_rs1[4:0] ), //i
+ .io_port_0_cmd_payload_rs2 (FpuPlugin_port_cmd_payload_rs2[4:0] ), //i
+ .io_port_0_cmd_payload_rs3 (FpuPlugin_port_cmd_payload_rs3[4:0] ), //i
+ .io_port_0_cmd_payload_rd (FpuPlugin_port_cmd_payload_rd[4:0] ), //i
+ .io_port_0_cmd_payload_format (FpuPlugin_port_cmd_payload_format ), //i
+ .io_port_0_cmd_payload_roundMode (FpuPlugin_port_cmd_payload_roundMode[2:0] ), //i
+ .io_port_0_commit_valid (FpuPlugin_port_commit_valid ), //i
+ .io_port_0_commit_ready (FpuPlugin_fpu_io_port_0_commit_ready ), //o
+ .io_port_0_commit_payload_opcode (FpuPlugin_port_commit_payload_opcode[3:0] ), //i
+ .io_port_0_commit_payload_rd (FpuPlugin_port_commit_payload_rd[4:0] ), //i
+ .io_port_0_commit_payload_write (FpuPlugin_port_commit_payload_write ), //i
+ .io_port_0_commit_payload_value (FpuPlugin_port_commit_payload_value[31:0] ), //i
+ .io_port_0_rsp_valid (FpuPlugin_fpu_io_port_0_rsp_valid ), //o
+ .io_port_0_rsp_ready (FpuPlugin_port_rsp_ready ), //i
+ .io_port_0_rsp_payload_value (FpuPlugin_fpu_io_port_0_rsp_payload_value[31:0] ), //o
+ .io_port_0_rsp_payload_NV (FpuPlugin_fpu_io_port_0_rsp_payload_NV ), //o
+ .io_port_0_rsp_payload_NX (FpuPlugin_fpu_io_port_0_rsp_payload_NX ), //o
+ .io_port_0_completion_valid (FpuPlugin_fpu_io_port_0_completion_valid ), //o
+ .io_port_0_completion_payload_flags_NX (FpuPlugin_fpu_io_port_0_completion_payload_flags_NX), //o
+ .io_port_0_completion_payload_flags_UF (FpuPlugin_fpu_io_port_0_completion_payload_flags_UF), //o
+ .io_port_0_completion_payload_flags_OF (FpuPlugin_fpu_io_port_0_completion_payload_flags_OF), //o
+ .io_port_0_completion_payload_flags_DZ (FpuPlugin_fpu_io_port_0_completion_payload_flags_DZ), //o
+ .io_port_0_completion_payload_flags_NV (FpuPlugin_fpu_io_port_0_completion_payload_flags_NV), //o
+ .io_port_0_completion_payload_written (FpuPlugin_fpu_io_port_0_completion_payload_written ), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ BufferCC bufferCC_4 (
+ .io_dataIn (bufferCC_4_io_dataIn ), //i
+ .io_dataOut (bufferCC_4_io_dataOut), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ DebugModule debugModule_1 (
+ .io_ctrl_cmd_valid (debugTransportModuleJtagTap_1_io_bus_cmd_valid ), //i
+ .io_ctrl_cmd_ready (debugModule_1_io_ctrl_cmd_ready ), //o
+ .io_ctrl_cmd_payload_write (debugTransportModuleJtagTap_1_io_bus_cmd_payload_write ), //i
+ .io_ctrl_cmd_payload_data (debugTransportModuleJtagTap_1_io_bus_cmd_payload_data[31:0] ), //i
+ .io_ctrl_cmd_payload_address (debugTransportModuleJtagTap_1_io_bus_cmd_payload_address[6:0]), //i
+ .io_ctrl_rsp_valid (debugModule_1_io_ctrl_rsp_valid ), //o
+ .io_ctrl_rsp_payload_error (debugModule_1_io_ctrl_rsp_payload_error ), //o
+ .io_ctrl_rsp_payload_data (debugModule_1_io_ctrl_rsp_payload_data[31:0] ), //o
+ .io_ndmreset (debugModule_1_io_ndmreset ), //o
+ .io_harts_0_halted (debugBus_halted ), //i
+ .io_harts_0_running (debugBus_running ), //i
+ .io_harts_0_unavailable (debugBus_unavailable ), //i
+ .io_harts_0_exception (debugBus_exception ), //i
+ .io_harts_0_commit (debugBus_commit ), //i
+ .io_harts_0_ebreak (debugBus_ebreak ), //i
+ .io_harts_0_redo (debugBus_redo ), //i
+ .io_harts_0_regSuccess (debugBus_regSuccess ), //i
+ .io_harts_0_ackReset (debugModule_1_io_harts_0_ackReset ), //o
+ .io_harts_0_haveReset (debugBus_haveReset ), //i
+ .io_harts_0_resume_cmd_valid (debugModule_1_io_harts_0_resume_cmd_valid ), //o
+ .io_harts_0_resume_rsp_valid (debugBus_resume_rsp_valid ), //i
+ .io_harts_0_haltReq (debugModule_1_io_harts_0_haltReq ), //o
+ .io_harts_0_dmToHart_valid (debugModule_1_io_harts_0_dmToHart_valid ), //o
+ .io_harts_0_dmToHart_payload_op (debugModule_1_io_harts_0_dmToHart_payload_op[1:0] ), //o
+ .io_harts_0_dmToHart_payload_address (debugModule_1_io_harts_0_dmToHart_payload_address[4:0] ), //o
+ .io_harts_0_dmToHart_payload_data (debugModule_1_io_harts_0_dmToHart_payload_data[31:0] ), //o
+ .io_harts_0_dmToHart_payload_size (debugModule_1_io_harts_0_dmToHart_payload_size[2:0] ), //o
+ .io_harts_0_hartToDm_valid (debugBus_hartToDm_valid ), //i
+ .io_harts_0_hartToDm_payload_address (debugBus_hartToDm_payload_address[3:0] ), //i
+ .io_harts_0_hartToDm_payload_data (debugBus_hartToDm_payload_data[31:0] ), //i
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ DebugTransportModuleJtagTap debugTransportModuleJtagTap_1 (
+ .io_jtag_tms (jtag_tms ), //i
+ .io_jtag_tdi (jtag_tdi ), //i
+ .io_jtag_tdo (debugTransportModuleJtagTap_1_io_jtag_tdo ), //o
+ .io_jtag_tck (jtag_tck ), //i
+ .io_bus_cmd_valid (debugTransportModuleJtagTap_1_io_bus_cmd_valid ), //o
+ .io_bus_cmd_ready (debugModule_1_io_ctrl_cmd_ready ), //i
+ .io_bus_cmd_payload_write (debugTransportModuleJtagTap_1_io_bus_cmd_payload_write ), //o
+ .io_bus_cmd_payload_data (debugTransportModuleJtagTap_1_io_bus_cmd_payload_data[31:0] ), //o
+ .io_bus_cmd_payload_address (debugTransportModuleJtagTap_1_io_bus_cmd_payload_address[6:0]), //o
+ .io_bus_rsp_valid (debugModule_1_io_ctrl_rsp_valid ), //i
+ .io_bus_rsp_payload_error (debugModule_1_io_ctrl_rsp_payload_error ), //i
+ .io_bus_rsp_payload_data (debugModule_1_io_ctrl_rsp_payload_data[31:0] ), //i
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
always @(*) begin
case(_zz_IBusCachedPlugin_jump_pcLoad_payload_5)
2'b00 : _zz_IBusCachedPlugin_jump_pcLoad_payload_4 = DBusCachedPlugin_redoBranch_payload;
@@ -1733,6 +2672,13 @@ module w3d_host_vexriscv (
endcase
end
+ always @(*) begin
+ case(CsrPlugin_trigger_tselect_index)
+ 1'b0 : _zz__zz_CsrPlugin_csrMapping_readDataInit_10 = CsrPlugin_trigger_slots_0_tdata1_read;
+ default : _zz__zz_CsrPlugin_csrMapping_readDataInit_10 = CsrPlugin_trigger_slots_1_tdata1_read;
+ endcase
+ end
+
`ifndef SYNTHESIS
always @(*) begin
case(decode_BRANCH_CTRL)
@@ -1772,58 +2718,66 @@ module w3d_host_vexriscv (
end
always @(*) begin
case(_zz_memory_to_writeBack_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_memory_to_writeBack_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_memory_to_writeBack_ENV_CTRL_string = "XRET";
- default : _zz_memory_to_writeBack_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_memory_to_writeBack_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_memory_to_writeBack_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_memory_to_writeBack_ENV_CTRL_string = "EBREAK";
+ default : _zz_memory_to_writeBack_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_memory_to_writeBack_ENV_CTRL_1)
- EnvCtrlEnum_NONE : _zz_memory_to_writeBack_ENV_CTRL_1_string = "NONE";
- EnvCtrlEnum_XRET : _zz_memory_to_writeBack_ENV_CTRL_1_string = "XRET";
- default : _zz_memory_to_writeBack_ENV_CTRL_1_string = "????";
+ EnvCtrlEnum_NONE : _zz_memory_to_writeBack_ENV_CTRL_1_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_memory_to_writeBack_ENV_CTRL_1_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_memory_to_writeBack_ENV_CTRL_1_string = "EBREAK";
+ default : _zz_memory_to_writeBack_ENV_CTRL_1_string = "??????";
endcase
end
always @(*) begin
case(_zz_execute_to_memory_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_execute_to_memory_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_execute_to_memory_ENV_CTRL_string = "XRET";
- default : _zz_execute_to_memory_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_execute_to_memory_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_execute_to_memory_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_execute_to_memory_ENV_CTRL_string = "EBREAK";
+ default : _zz_execute_to_memory_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_execute_to_memory_ENV_CTRL_1)
- EnvCtrlEnum_NONE : _zz_execute_to_memory_ENV_CTRL_1_string = "NONE";
- EnvCtrlEnum_XRET : _zz_execute_to_memory_ENV_CTRL_1_string = "XRET";
- default : _zz_execute_to_memory_ENV_CTRL_1_string = "????";
+ EnvCtrlEnum_NONE : _zz_execute_to_memory_ENV_CTRL_1_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_execute_to_memory_ENV_CTRL_1_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_execute_to_memory_ENV_CTRL_1_string = "EBREAK";
+ default : _zz_execute_to_memory_ENV_CTRL_1_string = "??????";
endcase
end
always @(*) begin
case(decode_ENV_CTRL)
- EnvCtrlEnum_NONE : decode_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : decode_ENV_CTRL_string = "XRET";
- default : decode_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : decode_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : decode_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : decode_ENV_CTRL_string = "EBREAK";
+ default : decode_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_decode_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_string = "XRET";
- default : _zz_decode_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_decode_ENV_CTRL_string = "EBREAK";
+ default : _zz_decode_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_decode_to_execute_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_decode_to_execute_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_decode_to_execute_ENV_CTRL_string = "XRET";
- default : _zz_decode_to_execute_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_decode_to_execute_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_decode_to_execute_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_decode_to_execute_ENV_CTRL_string = "EBREAK";
+ default : _zz_decode_to_execute_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_decode_to_execute_ENV_CTRL_1)
- EnvCtrlEnum_NONE : _zz_decode_to_execute_ENV_CTRL_1_string = "NONE";
- EnvCtrlEnum_XRET : _zz_decode_to_execute_ENV_CTRL_1_string = "XRET";
- default : _zz_decode_to_execute_ENV_CTRL_1_string = "????";
+ EnvCtrlEnum_NONE : _zz_decode_to_execute_ENV_CTRL_1_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_decode_to_execute_ENV_CTRL_1_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_decode_to_execute_ENV_CTRL_1_string = "EBREAK";
+ default : _zz_decode_to_execute_ENV_CTRL_1_string = "??????";
endcase
end
always @(*) begin
@@ -1863,6 +2817,216 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(memory_FPU_OPCODE)
+ FpuOpcode_LOAD : memory_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : memory_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : memory_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : memory_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : memory_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : memory_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : memory_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : memory_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : memory_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : memory_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : memory_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : memory_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : memory_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : memory_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : memory_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : memory_FPU_OPCODE_string = "FCVT_X_X";
+ default : memory_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_memory_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_memory_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_memory_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_memory_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_memory_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_memory_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_memory_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_memory_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_memory_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_memory_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_memory_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_memory_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_memory_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_memory_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_memory_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_memory_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_memory_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_memory_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_memory_to_writeBack_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_memory_to_writeBack_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_memory_to_writeBack_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_memory_to_writeBack_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_memory_to_writeBack_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_memory_to_writeBack_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_memory_to_writeBack_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_memory_to_writeBack_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_memory_to_writeBack_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_memory_to_writeBack_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_memory_to_writeBack_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_memory_to_writeBack_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_memory_to_writeBack_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_memory_to_writeBack_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_memory_to_writeBack_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_memory_to_writeBack_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_memory_to_writeBack_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_memory_to_writeBack_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_memory_to_writeBack_FPU_OPCODE_1)
+ FpuOpcode_LOAD : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "LOAD ";
+ FpuOpcode_STORE : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "STORE ";
+ FpuOpcode_MUL : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "MUL ";
+ FpuOpcode_ADD : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "ADD ";
+ FpuOpcode_FMA : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "FMA ";
+ FpuOpcode_I2F : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "I2F ";
+ FpuOpcode_F2I : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "F2I ";
+ FpuOpcode_CMP : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "CMP ";
+ FpuOpcode_DIV : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "DIV ";
+ FpuOpcode_SQRT : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "FCVT_X_X";
+ default : _zz_memory_to_writeBack_FPU_OPCODE_1_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(execute_FPU_OPCODE)
+ FpuOpcode_LOAD : execute_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : execute_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : execute_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : execute_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : execute_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : execute_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : execute_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : execute_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : execute_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : execute_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : execute_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : execute_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : execute_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : execute_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : execute_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : execute_FPU_OPCODE_string = "FCVT_X_X";
+ default : execute_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_execute_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_execute_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_execute_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_execute_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_execute_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_execute_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_execute_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_execute_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_execute_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_execute_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_execute_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_execute_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_execute_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_execute_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_execute_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_execute_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_execute_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_execute_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_execute_to_memory_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_execute_to_memory_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_execute_to_memory_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_execute_to_memory_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_execute_to_memory_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_execute_to_memory_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_execute_to_memory_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_execute_to_memory_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_execute_to_memory_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_execute_to_memory_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_execute_to_memory_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_execute_to_memory_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_execute_to_memory_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_execute_to_memory_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_execute_to_memory_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_execute_to_memory_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_execute_to_memory_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_execute_to_memory_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_execute_to_memory_FPU_OPCODE_1)
+ FpuOpcode_LOAD : _zz_execute_to_memory_FPU_OPCODE_1_string = "LOAD ";
+ FpuOpcode_STORE : _zz_execute_to_memory_FPU_OPCODE_1_string = "STORE ";
+ FpuOpcode_MUL : _zz_execute_to_memory_FPU_OPCODE_1_string = "MUL ";
+ FpuOpcode_ADD : _zz_execute_to_memory_FPU_OPCODE_1_string = "ADD ";
+ FpuOpcode_FMA : _zz_execute_to_memory_FPU_OPCODE_1_string = "FMA ";
+ FpuOpcode_I2F : _zz_execute_to_memory_FPU_OPCODE_1_string = "I2F ";
+ FpuOpcode_F2I : _zz_execute_to_memory_FPU_OPCODE_1_string = "F2I ";
+ FpuOpcode_CMP : _zz_execute_to_memory_FPU_OPCODE_1_string = "CMP ";
+ FpuOpcode_DIV : _zz_execute_to_memory_FPU_OPCODE_1_string = "DIV ";
+ FpuOpcode_SQRT : _zz_execute_to_memory_FPU_OPCODE_1_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_execute_to_memory_FPU_OPCODE_1_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_execute_to_memory_FPU_OPCODE_1_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_execute_to_memory_FPU_OPCODE_1_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_execute_to_memory_FPU_OPCODE_1_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_execute_to_memory_FPU_OPCODE_1_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_execute_to_memory_FPU_OPCODE_1_string = "FCVT_X_X";
+ default : _zz_execute_to_memory_FPU_OPCODE_1_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_decode_to_execute_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_decode_to_execute_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_decode_to_execute_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_decode_to_execute_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_decode_to_execute_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_decode_to_execute_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_decode_to_execute_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_decode_to_execute_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_decode_to_execute_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_decode_to_execute_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_decode_to_execute_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_decode_to_execute_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_decode_to_execute_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_decode_to_execute_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_decode_to_execute_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_decode_to_execute_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_decode_to_execute_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_decode_to_execute_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_decode_to_execute_FPU_OPCODE_1)
+ FpuOpcode_LOAD : _zz_decode_to_execute_FPU_OPCODE_1_string = "LOAD ";
+ FpuOpcode_STORE : _zz_decode_to_execute_FPU_OPCODE_1_string = "STORE ";
+ FpuOpcode_MUL : _zz_decode_to_execute_FPU_OPCODE_1_string = "MUL ";
+ FpuOpcode_ADD : _zz_decode_to_execute_FPU_OPCODE_1_string = "ADD ";
+ FpuOpcode_FMA : _zz_decode_to_execute_FPU_OPCODE_1_string = "FMA ";
+ FpuOpcode_I2F : _zz_decode_to_execute_FPU_OPCODE_1_string = "I2F ";
+ FpuOpcode_F2I : _zz_decode_to_execute_FPU_OPCODE_1_string = "F2I ";
+ FpuOpcode_CMP : _zz_decode_to_execute_FPU_OPCODE_1_string = "CMP ";
+ FpuOpcode_DIV : _zz_decode_to_execute_FPU_OPCODE_1_string = "DIV ";
+ FpuOpcode_SQRT : _zz_decode_to_execute_FPU_OPCODE_1_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_decode_to_execute_FPU_OPCODE_1_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_decode_to_execute_FPU_OPCODE_1_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_decode_to_execute_FPU_OPCODE_1_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_decode_to_execute_FPU_OPCODE_1_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_decode_to_execute_FPU_OPCODE_1_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_decode_to_execute_FPU_OPCODE_1_string = "FCVT_X_X";
+ default : _zz_decode_to_execute_FPU_OPCODE_1_string = "????????";
+ endcase
+ end
+ always @(*) begin
case(decode_ALU_BITWISE_CTRL)
AluBitwiseCtrlEnum_XOR_1 : decode_ALU_BITWISE_CTRL_string = "XOR_1";
AluBitwiseCtrlEnum_OR_1 : decode_ALU_BITWISE_CTRL_string = "OR_1 ";
@@ -2018,44 +3182,50 @@ module w3d_host_vexriscv (
end
always @(*) begin
case(memory_ENV_CTRL)
- EnvCtrlEnum_NONE : memory_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : memory_ENV_CTRL_string = "XRET";
- default : memory_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : memory_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : memory_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : memory_ENV_CTRL_string = "EBREAK";
+ default : memory_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_memory_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_memory_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_memory_ENV_CTRL_string = "XRET";
- default : _zz_memory_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_memory_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_memory_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_memory_ENV_CTRL_string = "EBREAK";
+ default : _zz_memory_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(execute_ENV_CTRL)
- EnvCtrlEnum_NONE : execute_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : execute_ENV_CTRL_string = "XRET";
- default : execute_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : execute_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : execute_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : execute_ENV_CTRL_string = "EBREAK";
+ default : execute_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_execute_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_execute_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_execute_ENV_CTRL_string = "XRET";
- default : _zz_execute_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_execute_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_execute_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_execute_ENV_CTRL_string = "EBREAK";
+ default : _zz_execute_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(writeBack_ENV_CTRL)
- EnvCtrlEnum_NONE : writeBack_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : writeBack_ENV_CTRL_string = "XRET";
- default : writeBack_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : writeBack_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : writeBack_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : writeBack_ENV_CTRL_string = "EBREAK";
+ default : writeBack_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(_zz_writeBack_ENV_CTRL)
- EnvCtrlEnum_NONE : _zz_writeBack_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : _zz_writeBack_ENV_CTRL_string = "XRET";
- default : _zz_writeBack_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : _zz_writeBack_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_writeBack_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_writeBack_ENV_CTRL_string = "EBREAK";
+ default : _zz_writeBack_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
@@ -2113,6 +3283,90 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(writeBack_FPU_OPCODE)
+ FpuOpcode_LOAD : writeBack_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : writeBack_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : writeBack_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : writeBack_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : writeBack_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : writeBack_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : writeBack_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : writeBack_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : writeBack_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : writeBack_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : writeBack_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : writeBack_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : writeBack_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : writeBack_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : writeBack_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : writeBack_FPU_OPCODE_string = "FCVT_X_X";
+ default : writeBack_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_writeBack_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_writeBack_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_writeBack_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_writeBack_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_writeBack_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_writeBack_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_writeBack_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_writeBack_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_writeBack_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_writeBack_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_writeBack_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_writeBack_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_writeBack_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_writeBack_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_writeBack_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_writeBack_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_writeBack_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_writeBack_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(decode_FPU_OPCODE)
+ FpuOpcode_LOAD : decode_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : decode_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : decode_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : decode_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : decode_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : decode_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : decode_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : decode_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : decode_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : decode_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : decode_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : decode_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : decode_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : decode_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : decode_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : decode_FPU_OPCODE_string = "FCVT_X_X";
+ default : decode_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_decode_FPU_OPCODE)
+ FpuOpcode_LOAD : _zz_decode_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : _zz_decode_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : _zz_decode_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : _zz_decode_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : _zz_decode_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : _zz_decode_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : _zz_decode_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : _zz_decode_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : _zz_decode_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : _zz_decode_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_decode_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_decode_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_decode_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_decode_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_decode_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_decode_FPU_OPCODE_string = "FCVT_X_X";
+ default : _zz_decode_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
case(execute_ALU_CTRL)
AluCtrlEnum_ADD_SUB : execute_ALU_CTRL_string = "ADD_SUB ";
AluCtrlEnum_SLT_SLTU : execute_ALU_CTRL_string = "SLT_SLTU";
@@ -2155,9 +3409,10 @@ module w3d_host_vexriscv (
end
always @(*) begin
case(_zz_decode_ENV_CTRL_1)
- EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_1_string = "NONE";
- EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_1_string = "XRET";
- default : _zz_decode_ENV_CTRL_1_string = "????";
+ EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_1_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_1_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_decode_ENV_CTRL_1_string = "EBREAK";
+ default : _zz_decode_ENV_CTRL_1_string = "??????";
endcase
end
always @(*) begin
@@ -2170,6 +3425,27 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(_zz_decode_FPU_OPCODE_1)
+ FpuOpcode_LOAD : _zz_decode_FPU_OPCODE_1_string = "LOAD ";
+ FpuOpcode_STORE : _zz_decode_FPU_OPCODE_1_string = "STORE ";
+ FpuOpcode_MUL : _zz_decode_FPU_OPCODE_1_string = "MUL ";
+ FpuOpcode_ADD : _zz_decode_FPU_OPCODE_1_string = "ADD ";
+ FpuOpcode_FMA : _zz_decode_FPU_OPCODE_1_string = "FMA ";
+ FpuOpcode_I2F : _zz_decode_FPU_OPCODE_1_string = "I2F ";
+ FpuOpcode_F2I : _zz_decode_FPU_OPCODE_1_string = "F2I ";
+ FpuOpcode_CMP : _zz_decode_FPU_OPCODE_1_string = "CMP ";
+ FpuOpcode_DIV : _zz_decode_FPU_OPCODE_1_string = "DIV ";
+ FpuOpcode_SQRT : _zz_decode_FPU_OPCODE_1_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_decode_FPU_OPCODE_1_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_decode_FPU_OPCODE_1_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_decode_FPU_OPCODE_1_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_decode_FPU_OPCODE_1_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_decode_FPU_OPCODE_1_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_decode_FPU_OPCODE_1_string = "FCVT_X_X";
+ default : _zz_decode_FPU_OPCODE_1_string = "????????";
+ endcase
+ end
+ always @(*) begin
case(_zz_decode_ALU_BITWISE_CTRL_1)
AluBitwiseCtrlEnum_XOR_1 : _zz_decode_ALU_BITWISE_CTRL_1_string = "XOR_1";
AluBitwiseCtrlEnum_OR_1 : _zz_decode_ALU_BITWISE_CTRL_1_string = "OR_1 ";
@@ -2204,6 +3480,74 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(FpuPlugin_port_cmd_payload_opcode)
+ FpuOpcode_LOAD : FpuPlugin_port_cmd_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : FpuPlugin_port_cmd_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : FpuPlugin_port_cmd_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : FpuPlugin_port_cmd_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : FpuPlugin_port_cmd_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : FpuPlugin_port_cmd_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : FpuPlugin_port_cmd_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : FpuPlugin_port_cmd_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : FpuPlugin_port_cmd_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : FpuPlugin_port_cmd_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : FpuPlugin_port_cmd_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : FpuPlugin_port_cmd_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : FpuPlugin_port_cmd_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : FpuPlugin_port_cmd_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : FpuPlugin_port_cmd_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : FpuPlugin_port_cmd_payload_opcode_string = "FCVT_X_X";
+ default : FpuPlugin_port_cmd_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_port_cmd_payload_format)
+ FpuFormat_FLOAT : FpuPlugin_port_cmd_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : FpuPlugin_port_cmd_payload_format_string = "DOUBLE";
+ default : FpuPlugin_port_cmd_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_port_cmd_payload_roundMode)
+ FpuRoundMode_RNE : FpuPlugin_port_cmd_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : FpuPlugin_port_cmd_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : FpuPlugin_port_cmd_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : FpuPlugin_port_cmd_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : FpuPlugin_port_cmd_payload_roundMode_string = "RMM";
+ default : FpuPlugin_port_cmd_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_port_commit_payload_opcode)
+ FpuOpcode_LOAD : FpuPlugin_port_commit_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : FpuPlugin_port_commit_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : FpuPlugin_port_commit_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : FpuPlugin_port_commit_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : FpuPlugin_port_commit_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : FpuPlugin_port_commit_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : FpuPlugin_port_commit_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : FpuPlugin_port_commit_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : FpuPlugin_port_commit_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : FpuPlugin_port_commit_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : FpuPlugin_port_commit_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : FpuPlugin_port_commit_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : FpuPlugin_port_commit_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : FpuPlugin_port_commit_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : FpuPlugin_port_commit_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : FpuPlugin_port_commit_payload_opcode_string = "FCVT_X_X";
+ default : FpuPlugin_port_commit_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(debugBus_dmToHart_payload_op)
+ DebugDmToHartOp_DATA : debugBus_dmToHart_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : debugBus_dmToHart_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : debugBus_dmToHart_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : debugBus_dmToHart_payload_op_string = "REG_READ ";
+ default : debugBus_dmToHart_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
case(_zz_decode_SRC1_CTRL_2)
Src1CtrlEnum_RS : _zz_decode_SRC1_CTRL_2_string = "RS ";
Src1CtrlEnum_IMU : _zz_decode_SRC1_CTRL_2_string = "IMU ";
@@ -2238,6 +3582,27 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(_zz_decode_FPU_OPCODE_2)
+ FpuOpcode_LOAD : _zz_decode_FPU_OPCODE_2_string = "LOAD ";
+ FpuOpcode_STORE : _zz_decode_FPU_OPCODE_2_string = "STORE ";
+ FpuOpcode_MUL : _zz_decode_FPU_OPCODE_2_string = "MUL ";
+ FpuOpcode_ADD : _zz_decode_FPU_OPCODE_2_string = "ADD ";
+ FpuOpcode_FMA : _zz_decode_FPU_OPCODE_2_string = "FMA ";
+ FpuOpcode_I2F : _zz_decode_FPU_OPCODE_2_string = "I2F ";
+ FpuOpcode_F2I : _zz_decode_FPU_OPCODE_2_string = "F2I ";
+ FpuOpcode_CMP : _zz_decode_FPU_OPCODE_2_string = "CMP ";
+ FpuOpcode_DIV : _zz_decode_FPU_OPCODE_2_string = "DIV ";
+ FpuOpcode_SQRT : _zz_decode_FPU_OPCODE_2_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_decode_FPU_OPCODE_2_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_decode_FPU_OPCODE_2_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_decode_FPU_OPCODE_2_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_decode_FPU_OPCODE_2_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_decode_FPU_OPCODE_2_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_decode_FPU_OPCODE_2_string = "FCVT_X_X";
+ default : _zz_decode_FPU_OPCODE_2_string = "????????";
+ endcase
+ end
+ always @(*) begin
case(_zz_decode_SHIFT_CTRL_2)
ShiftCtrlEnum_DISABLE_1 : _zz_decode_SHIFT_CTRL_2_string = "DISABLE_1";
ShiftCtrlEnum_SLL_1 : _zz_decode_SHIFT_CTRL_2_string = "SLL_1 ";
@@ -2248,9 +3613,10 @@ module w3d_host_vexriscv (
end
always @(*) begin
case(_zz_decode_ENV_CTRL_2)
- EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_2_string = "NONE";
- EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_2_string = "XRET";
- default : _zz_decode_ENV_CTRL_2_string = "????";
+ EnvCtrlEnum_NONE : _zz_decode_ENV_CTRL_2_string = "NONE ";
+ EnvCtrlEnum_XRET : _zz_decode_ENV_CTRL_2_string = "XRET ";
+ EnvCtrlEnum_EBREAK : _zz_decode_ENV_CTRL_2_string = "EBREAK";
+ default : _zz_decode_ENV_CTRL_2_string = "??????";
endcase
end
always @(*) begin
@@ -2263,6 +3629,173 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(_zz_FpuPlugin_port_cmd_payload_roundMode)
+ FpuRoundMode_RNE : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "RMM";
+ default : _zz_FpuPlugin_port_cmd_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_FpuPlugin_port_cmd_payload_roundMode_1)
+ FpuRoundMode_RNE : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "RNE";
+ FpuRoundMode_RTZ : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "RTZ";
+ FpuRoundMode_RDN : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "RDN";
+ FpuRoundMode_RUP : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "RUP";
+ FpuRoundMode_RMM : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "RMM";
+ default : _zz_FpuPlugin_port_cmd_payload_roundMode_1_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(writeBack_FpuPlugin_commit_payload_opcode)
+ FpuOpcode_LOAD : writeBack_FpuPlugin_commit_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : writeBack_FpuPlugin_commit_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : writeBack_FpuPlugin_commit_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : writeBack_FpuPlugin_commit_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : writeBack_FpuPlugin_commit_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : writeBack_FpuPlugin_commit_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : writeBack_FpuPlugin_commit_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : writeBack_FpuPlugin_commit_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : writeBack_FpuPlugin_commit_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : writeBack_FpuPlugin_commit_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : writeBack_FpuPlugin_commit_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : writeBack_FpuPlugin_commit_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : writeBack_FpuPlugin_commit_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : writeBack_FpuPlugin_commit_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : writeBack_FpuPlugin_commit_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : writeBack_FpuPlugin_commit_payload_opcode_string = "FCVT_X_X";
+ default : writeBack_FpuPlugin_commit_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(writeBack_FpuPlugin_commit_s2mPipe_payload_opcode)
+ FpuOpcode_LOAD : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FCVT_X_X";
+ default : writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(writeBack_FpuPlugin_commit_rData_opcode)
+ FpuOpcode_LOAD : writeBack_FpuPlugin_commit_rData_opcode_string = "LOAD ";
+ FpuOpcode_STORE : writeBack_FpuPlugin_commit_rData_opcode_string = "STORE ";
+ FpuOpcode_MUL : writeBack_FpuPlugin_commit_rData_opcode_string = "MUL ";
+ FpuOpcode_ADD : writeBack_FpuPlugin_commit_rData_opcode_string = "ADD ";
+ FpuOpcode_FMA : writeBack_FpuPlugin_commit_rData_opcode_string = "FMA ";
+ FpuOpcode_I2F : writeBack_FpuPlugin_commit_rData_opcode_string = "I2F ";
+ FpuOpcode_F2I : writeBack_FpuPlugin_commit_rData_opcode_string = "F2I ";
+ FpuOpcode_CMP : writeBack_FpuPlugin_commit_rData_opcode_string = "CMP ";
+ FpuOpcode_DIV : writeBack_FpuPlugin_commit_rData_opcode_string = "DIV ";
+ FpuOpcode_SQRT : writeBack_FpuPlugin_commit_rData_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : writeBack_FpuPlugin_commit_rData_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : writeBack_FpuPlugin_commit_rData_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : writeBack_FpuPlugin_commit_rData_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : writeBack_FpuPlugin_commit_rData_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : writeBack_FpuPlugin_commit_rData_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : writeBack_FpuPlugin_commit_rData_opcode_string = "FCVT_X_X";
+ default : writeBack_FpuPlugin_commit_rData_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode)
+ FpuOpcode_LOAD : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "FCVT_X_X";
+ default : _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_inject_cmd_payload_op)
+ DebugDmToHartOp_DATA : CsrPlugin_inject_cmd_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : CsrPlugin_inject_cmd_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : CsrPlugin_inject_cmd_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : CsrPlugin_inject_cmd_payload_op_string = "REG_READ ";
+ default : CsrPlugin_inject_cmd_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_inject_cmd_toStream_payload_op)
+ DebugDmToHartOp_DATA : CsrPlugin_inject_cmd_toStream_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : CsrPlugin_inject_cmd_toStream_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : CsrPlugin_inject_cmd_toStream_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : CsrPlugin_inject_cmd_toStream_payload_op_string = "REG_READ ";
+ default : CsrPlugin_inject_cmd_toStream_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_inject_buffer_payload_op)
+ DebugDmToHartOp_DATA : CsrPlugin_inject_buffer_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : CsrPlugin_inject_buffer_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : CsrPlugin_inject_buffer_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : CsrPlugin_inject_buffer_payload_op_string = "REG_READ ";
+ default : CsrPlugin_inject_buffer_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_inject_cmd_toStream_rData_op)
+ DebugDmToHartOp_DATA : CsrPlugin_inject_cmd_toStream_rData_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : CsrPlugin_inject_cmd_toStream_rData_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : CsrPlugin_inject_cmd_toStream_rData_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : CsrPlugin_inject_cmd_toStream_rData_op_string = "REG_READ ";
+ default : CsrPlugin_inject_cmd_toStream_rData_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_BOOT : CsrPlugin_dcsr_stepLogic_stateReg_string = "BOOT ";
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : CsrPlugin_dcsr_stepLogic_stateReg_string = "IDLE ";
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : CsrPlugin_dcsr_stepLogic_stateReg_string = "SINGLE";
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : CsrPlugin_dcsr_stepLogic_stateReg_string = "WAIT_1";
+ default : CsrPlugin_dcsr_stepLogic_stateReg_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(CsrPlugin_dcsr_stepLogic_stateNext)
+ CsrPlugin_dcsr_stepLogic_enumDef_BOOT : CsrPlugin_dcsr_stepLogic_stateNext_string = "BOOT ";
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : CsrPlugin_dcsr_stepLogic_stateNext_string = "IDLE ";
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : CsrPlugin_dcsr_stepLogic_stateNext_string = "SINGLE";
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : CsrPlugin_dcsr_stepLogic_stateNext_string = "WAIT_1";
+ default : CsrPlugin_dcsr_stepLogic_stateNext_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op)
+ DebugDmToHartOp_DATA : toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string = "REG_READ ";
+ default : toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
case(decode_to_execute_SRC1_CTRL)
Src1CtrlEnum_RS : decode_to_execute_SRC1_CTRL_string = "RS ";
Src1CtrlEnum_IMU : decode_to_execute_SRC1_CTRL_string = "IMU ";
@@ -2297,6 +3830,69 @@ module w3d_host_vexriscv (
endcase
end
always @(*) begin
+ case(decode_to_execute_FPU_OPCODE)
+ FpuOpcode_LOAD : decode_to_execute_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : decode_to_execute_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : decode_to_execute_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : decode_to_execute_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : decode_to_execute_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : decode_to_execute_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : decode_to_execute_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : decode_to_execute_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : decode_to_execute_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : decode_to_execute_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : decode_to_execute_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : decode_to_execute_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : decode_to_execute_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : decode_to_execute_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : decode_to_execute_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : decode_to_execute_FPU_OPCODE_string = "FCVT_X_X";
+ default : decode_to_execute_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(execute_to_memory_FPU_OPCODE)
+ FpuOpcode_LOAD : execute_to_memory_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : execute_to_memory_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : execute_to_memory_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : execute_to_memory_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : execute_to_memory_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : execute_to_memory_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : execute_to_memory_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : execute_to_memory_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : execute_to_memory_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : execute_to_memory_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : execute_to_memory_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : execute_to_memory_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : execute_to_memory_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : execute_to_memory_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : execute_to_memory_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : execute_to_memory_FPU_OPCODE_string = "FCVT_X_X";
+ default : execute_to_memory_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(memory_to_writeBack_FPU_OPCODE)
+ FpuOpcode_LOAD : memory_to_writeBack_FPU_OPCODE_string = "LOAD ";
+ FpuOpcode_STORE : memory_to_writeBack_FPU_OPCODE_string = "STORE ";
+ FpuOpcode_MUL : memory_to_writeBack_FPU_OPCODE_string = "MUL ";
+ FpuOpcode_ADD : memory_to_writeBack_FPU_OPCODE_string = "ADD ";
+ FpuOpcode_FMA : memory_to_writeBack_FPU_OPCODE_string = "FMA ";
+ FpuOpcode_I2F : memory_to_writeBack_FPU_OPCODE_string = "I2F ";
+ FpuOpcode_F2I : memory_to_writeBack_FPU_OPCODE_string = "F2I ";
+ FpuOpcode_CMP : memory_to_writeBack_FPU_OPCODE_string = "CMP ";
+ FpuOpcode_DIV : memory_to_writeBack_FPU_OPCODE_string = "DIV ";
+ FpuOpcode_SQRT : memory_to_writeBack_FPU_OPCODE_string = "SQRT ";
+ FpuOpcode_MIN_MAX : memory_to_writeBack_FPU_OPCODE_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : memory_to_writeBack_FPU_OPCODE_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : memory_to_writeBack_FPU_OPCODE_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : memory_to_writeBack_FPU_OPCODE_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : memory_to_writeBack_FPU_OPCODE_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : memory_to_writeBack_FPU_OPCODE_string = "FCVT_X_X";
+ default : memory_to_writeBack_FPU_OPCODE_string = "????????";
+ endcase
+ end
+ always @(*) begin
case(decode_to_execute_SHIFT_CTRL)
ShiftCtrlEnum_DISABLE_1 : decode_to_execute_SHIFT_CTRL_string = "DISABLE_1";
ShiftCtrlEnum_SLL_1 : decode_to_execute_SHIFT_CTRL_string = "SLL_1 ";
@@ -2307,23 +3903,26 @@ module w3d_host_vexriscv (
end
always @(*) begin
case(decode_to_execute_ENV_CTRL)
- EnvCtrlEnum_NONE : decode_to_execute_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : decode_to_execute_ENV_CTRL_string = "XRET";
- default : decode_to_execute_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : decode_to_execute_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : decode_to_execute_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : decode_to_execute_ENV_CTRL_string = "EBREAK";
+ default : decode_to_execute_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(execute_to_memory_ENV_CTRL)
- EnvCtrlEnum_NONE : execute_to_memory_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : execute_to_memory_ENV_CTRL_string = "XRET";
- default : execute_to_memory_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : execute_to_memory_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : execute_to_memory_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : execute_to_memory_ENV_CTRL_string = "EBREAK";
+ default : execute_to_memory_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
case(memory_to_writeBack_ENV_CTRL)
- EnvCtrlEnum_NONE : memory_to_writeBack_ENV_CTRL_string = "NONE";
- EnvCtrlEnum_XRET : memory_to_writeBack_ENV_CTRL_string = "XRET";
- default : memory_to_writeBack_ENV_CTRL_string = "????";
+ EnvCtrlEnum_NONE : memory_to_writeBack_ENV_CTRL_string = "NONE ";
+ EnvCtrlEnum_XRET : memory_to_writeBack_ENV_CTRL_string = "XRET ";
+ EnvCtrlEnum_EBREAK : memory_to_writeBack_ENV_CTRL_string = "EBREAK";
+ default : memory_to_writeBack_ENV_CTRL_string = "??????";
endcase
end
always @(*) begin
@@ -2337,9 +3936,27 @@ module w3d_host_vexriscv (
end
`endif
+ always @(*) begin
+ CsrPlugin_running_aheadValue = CsrPlugin_running;
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ CsrPlugin_running_aheadValue = 1'b0;
+ end
+ end
+ if(when_CsrPlugin_l1390) begin
+ if(!when_CsrPlugin_l1398) begin
+ CsrPlugin_running_aheadValue = 1'b0;
+ end
+ end
+ if(CsrPlugin_doResume) begin
+ CsrPlugin_running_aheadValue = 1'b1;
+ end
+ end
+
+ assign writeBack_MEMORY_LOAD_DATA = writeBack_DBusCachedPlugin_rspShifted;
assign memory_MUL_LOW = ($signed(_zz_memory_MUL_LOW) + $signed(_zz_memory_MUL_LOW_6));
assign execute_TARGET_MISSMATCH2 = (decode_PC != execute_BRANCH_CALC);
- assign execute_NEXT_PC2 = (execute_PC + 32'h00000004);
+ assign execute_NEXT_PC2 = (execute_PC + _zz_execute_NEXT_PC2);
assign execute_BRANCH_DO = _zz_execute_BRANCH_DO_1;
assign memory_MUL_HH = execute_to_memory_MUL_HH;
assign execute_MUL_HH = ($signed(execute_MulPlugin_aHigh) * $signed(execute_MulPlugin_bHigh));
@@ -2352,21 +3969,39 @@ module w3d_host_vexriscv (
assign decode_CSR_READ_OPCODE = (decode_INSTRUCTION[13 : 7] != 7'h20);
assign decode_CSR_WRITE_OPCODE = (! (((decode_INSTRUCTION[14 : 13] == 2'b01) && (decode_INSTRUCTION[19 : 15] == 5'h00)) || ((decode_INSTRUCTION[14 : 13] == 2'b11) && (decode_INSTRUCTION[19 : 15] == 5'h00))));
assign decode_SRC2_FORCE_ZERO = (decode_SRC_ADD_ZERO && (! decode_SRC_USE_SUB_LESS));
+ assign memory_FPU_COMMIT_LOAD = execute_to_memory_FPU_COMMIT_LOAD;
+ assign execute_FPU_COMMIT_LOAD = decode_to_execute_FPU_COMMIT_LOAD;
+ assign decode_FPU_COMMIT_LOAD = (decode_FPU_OPCODE == FpuOpcode_LOAD);
+ assign memory_FPU_FORKED = execute_to_memory_FPU_FORKED;
+ assign execute_FPU_FORKED = decode_to_execute_FPU_FORKED;
+ assign decode_FPU_FORKED = (decode_FpuPlugin_forked || (FpuPlugin_port_cmd_fire && (! _zz_decode_FPU_FORKED)));
+ assign memory_RS1 = execute_to_memory_RS1;
assign decode_BRANCH_CTRL = _zz_decode_BRANCH_CTRL;
assign _zz_decode_to_execute_BRANCH_CTRL = _zz_decode_to_execute_BRANCH_CTRL_1;
assign _zz_memory_to_writeBack_ENV_CTRL = _zz_memory_to_writeBack_ENV_CTRL_1;
assign _zz_execute_to_memory_ENV_CTRL = _zz_execute_to_memory_ENV_CTRL_1;
assign decode_ENV_CTRL = _zz_decode_ENV_CTRL;
assign _zz_decode_to_execute_ENV_CTRL = _zz_decode_to_execute_ENV_CTRL_1;
- assign decode_IS_CSR = _zz_decode_IS_CSR[27];
- assign decode_IS_RS2_SIGNED = _zz_decode_IS_CSR[26];
- assign decode_IS_RS1_SIGNED = _zz_decode_IS_CSR[25];
- assign decode_IS_DIV = _zz_decode_IS_CSR[24];
+ assign decode_IS_CSR = _zz_decode_IS_CSR[37];
+ assign decode_IS_RS2_SIGNED = _zz_decode_IS_CSR[36];
+ assign decode_IS_RS1_SIGNED = _zz_decode_IS_CSR[35];
+ assign decode_IS_DIV = _zz_decode_IS_CSR[34];
assign memory_IS_MUL = execute_to_memory_IS_MUL;
assign execute_IS_MUL = decode_to_execute_IS_MUL;
- assign decode_IS_MUL = _zz_decode_IS_CSR[23];
+ assign decode_IS_MUL = _zz_decode_IS_CSR[33];
assign decode_SHIFT_CTRL = _zz_decode_SHIFT_CTRL;
assign _zz_decode_to_execute_SHIFT_CTRL = _zz_decode_to_execute_SHIFT_CTRL_1;
+ assign memory_FPU_OPCODE = _zz_memory_FPU_OPCODE;
+ assign _zz_memory_to_writeBack_FPU_OPCODE = _zz_memory_to_writeBack_FPU_OPCODE_1;
+ assign execute_FPU_OPCODE = _zz_execute_FPU_OPCODE;
+ assign _zz_execute_to_memory_FPU_OPCODE = _zz_execute_to_memory_FPU_OPCODE_1;
+ assign _zz_decode_to_execute_FPU_OPCODE = _zz_decode_to_execute_FPU_OPCODE_1;
+ assign memory_FPU_RSP = execute_to_memory_FPU_RSP;
+ assign execute_FPU_RSP = decode_to_execute_FPU_RSP;
+ assign decode_FPU_RSP = _zz_decode_IS_CSR[23];
+ assign memory_FPU_COMMIT = execute_to_memory_FPU_COMMIT;
+ assign execute_FPU_COMMIT = decode_to_execute_FPU_COMMIT;
+ assign decode_FPU_COMMIT = _zz_decode_IS_CSR[22];
assign decode_ALU_BITWISE_CTRL = _zz_decode_ALU_BITWISE_CTRL;
assign _zz_decode_to_execute_ALU_BITWISE_CTRL = _zz_decode_to_execute_ALU_BITWISE_CTRL_1;
assign decode_SRC_LESS_UNSIGNED = _zz_decode_IS_CSR[17];
@@ -2387,18 +4022,19 @@ module w3d_host_vexriscv (
assign execute_PREDICTION_CONTEXT_hit = decode_to_execute_PREDICTION_CONTEXT_hit;
assign execute_PREDICTION_CONTEXT_line_source = decode_to_execute_PREDICTION_CONTEXT_line_source;
assign execute_PREDICTION_CONTEXT_line_branchWish = decode_to_execute_PREDICTION_CONTEXT_line_branchWish;
+ assign execute_PREDICTION_CONTEXT_line_last2Bytes = decode_to_execute_PREDICTION_CONTEXT_line_last2Bytes;
assign execute_PREDICTION_CONTEXT_line_target = decode_to_execute_PREDICTION_CONTEXT_line_target;
assign decode_PREDICTION_CONTEXT_hazard = IBusCachedPlugin_predictor_injectorContext_hazard;
assign decode_PREDICTION_CONTEXT_hit = IBusCachedPlugin_predictor_injectorContext_hit;
assign decode_PREDICTION_CONTEXT_line_source = IBusCachedPlugin_predictor_injectorContext_line_source;
assign decode_PREDICTION_CONTEXT_line_branchWish = IBusCachedPlugin_predictor_injectorContext_line_branchWish;
+ assign decode_PREDICTION_CONTEXT_line_last2Bytes = IBusCachedPlugin_predictor_injectorContext_line_last2Bytes;
assign decode_PREDICTION_CONTEXT_line_target = IBusCachedPlugin_predictor_injectorContext_line_target;
assign writeBack_FORMAL_PC_NEXT = memory_to_writeBack_FORMAL_PC_NEXT;
assign memory_FORMAL_PC_NEXT = execute_to_memory_FORMAL_PC_NEXT;
assign execute_FORMAL_PC_NEXT = decode_to_execute_FORMAL_PC_NEXT;
- assign decode_FORMAL_PC_NEXT = (decode_PC + 32'h00000004);
+ assign decode_FORMAL_PC_NEXT = _zz_decode_FORMAL_PC_NEXT;
assign memory_NEXT_PC2 = execute_to_memory_NEXT_PC2;
- assign memory_PC = execute_to_memory_PC;
assign memory_BRANCH_CALC = execute_to_memory_BRANCH_CALC;
assign memory_TARGET_MISSMATCH2 = execute_to_memory_TARGET_MISSMATCH2;
assign memory_BRANCH_DO = execute_to_memory_BRANCH_DO;
@@ -2408,7 +4044,6 @@ module w3d_host_vexriscv (
assign execute_BRANCH_CTRL = _zz_execute_BRANCH_CTRL;
assign execute_CSR_READ_OPCODE = decode_to_execute_CSR_READ_OPCODE;
assign execute_CSR_WRITE_OPCODE = decode_to_execute_CSR_WRITE_OPCODE;
- assign execute_IS_CSR = decode_to_execute_IS_CSR;
assign memory_ENV_CTRL = _zz_memory_ENV_CTRL;
assign execute_ENV_CTRL = _zz_execute_ENV_CTRL;
assign writeBack_ENV_CTRL = _zz_writeBack_ENV_CTRL;
@@ -2523,9 +4158,57 @@ module w3d_host_vexriscv (
assign execute_SRC_USE_SUB_LESS = decode_to_execute_SRC_USE_SUB_LESS;
assign _zz_execute_to_memory_PC = execute_PC;
assign execute_SRC2_CTRL = _zz_execute_SRC2_CTRL;
+ assign execute_IS_RVC = decode_to_execute_IS_RVC;
+ assign _zz_execute_to_memory_RS1 = execute_RS1;
assign execute_SRC1_CTRL = _zz_execute_SRC1_CTRL;
assign decode_SRC_USE_SUB_LESS = _zz_decode_IS_CSR[3];
assign decode_SRC_ADD_ZERO = _zz_decode_IS_CSR[20];
+ always @(*) begin
+ _zz_memory_to_writeBack_FPU_FORKED = memory_FPU_FORKED;
+ if(memory_arbitration_isStuck) begin
+ _zz_memory_to_writeBack_FPU_FORKED = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ _zz_execute_to_memory_FPU_FORKED = execute_FPU_FORKED;
+ if(execute_arbitration_isStuck) begin
+ _zz_execute_to_memory_FPU_FORKED = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ _zz_decode_to_execute_FPU_FORKED = decode_FPU_FORKED;
+ if(decode_arbitration_isStuck) begin
+ _zz_decode_to_execute_FPU_FORKED = 1'b0;
+ end
+ end
+
+ assign writeBack_FPU_OPCODE = _zz_writeBack_FPU_OPCODE;
+ assign writeBack_RS1 = memory_to_writeBack_RS1;
+ assign writeBack_FPU_COMMIT_LOAD = memory_to_writeBack_FPU_COMMIT_LOAD;
+ always @(*) begin
+ DBusBypass0_cond = 1'b0;
+ if(writeBack_FpuPlugin_isRsp) begin
+ if(writeBack_arbitration_isValid) begin
+ DBusBypass0_cond = 1'b1;
+ end
+ end
+ end
+
+ assign writeBack_FPU_COMMIT = memory_to_writeBack_FPU_COMMIT;
+ assign writeBack_FPU_RSP = memory_to_writeBack_FPU_RSP;
+ assign writeBack_FPU_FORKED = memory_to_writeBack_FPU_FORKED;
+ assign decode_FPU_ARG = _zz_decode_IS_CSR[30 : 29];
+ assign decode_FPU_OPCODE = _zz_decode_FPU_OPCODE;
+ always @(*) begin
+ decode_FPU_ENABLE = _zz_decode_FPU_ENABLE;
+ if(when_FpuPlugin_l272) begin
+ decode_FPU_ENABLE = 1'b0;
+ end
+ end
+
+ assign execute_IS_CSR = decode_to_execute_IS_CSR;
assign execute_SRC_ADD_SUB = execute_SrcPlugin_addSub;
assign execute_SRC_LESS = execute_SrcPlugin_less;
assign execute_ALU_CTRL = _zz_execute_ALU_CTRL;
@@ -2541,7 +4224,7 @@ module w3d_host_vexriscv (
end
end
- assign decode_INSTRUCTION_ANTICIPATED = (decode_arbitration_isStuck ? decode_INSTRUCTION : IBusCachedPlugin_cache_io_cpu_fetch_data);
+ assign decode_INSTRUCTION_ANTICIPATED = (decode_arbitration_isStuck ? decode_INSTRUCTION : IBusCachedPlugin_decompressor_output_payload_rsp_inst);
always @(*) begin
decode_REGFILE_WRITE_VALID = _zz_decode_IS_CSR[10];
if(when_RegFilePlugin_l63) begin
@@ -2549,12 +4232,23 @@ module w3d_host_vexriscv (
end
end
- assign decode_LEGAL_INSTRUCTION = (|{((decode_INSTRUCTION & 32'h0000005f) == 32'h00000017),{((decode_INSTRUCTION & 32'h0000007f) == 32'h0000006f),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION) == 32'h00001073),{(_zz_decode_LEGAL_INSTRUCTION_1 == _zz_decode_LEGAL_INSTRUCTION_2),{_zz_decode_LEGAL_INSTRUCTION_3,{_zz_decode_LEGAL_INSTRUCTION_4,_zz_decode_LEGAL_INSTRUCTION_5}}}}}});
+ always @(*) begin
+ decode_LEGAL_INSTRUCTION = (|{((decode_INSTRUCTION & 32'h0000005f) == 32'h00000017),{((decode_INSTRUCTION & 32'h0000007f) == 32'h0000006f),{((decode_INSTRUCTION & _zz_decode_LEGAL_INSTRUCTION) == 32'h00000043),{(_zz_decode_LEGAL_INSTRUCTION_1 == _zz_decode_LEGAL_INSTRUCTION_2),{_zz_decode_LEGAL_INSTRUCTION_3,{_zz_decode_LEGAL_INSTRUCTION_4,_zz_decode_LEGAL_INSTRUCTION_5}}}}}});
+ if(decode_FpuPlugin_trap) begin
+ decode_LEGAL_INSTRUCTION = 1'b0;
+ end
+ end
+
always @(*) begin
_zz_decode_RS2_2 = writeBack_REGFILE_WRITE_DATA;
if(when_DBusCachedPlugin_l581) begin
_zz_decode_RS2_2 = writeBack_DBusCachedPlugin_rspFormated;
end
+ if(writeBack_FpuPlugin_isRsp) begin
+ if(writeBack_arbitration_isValid) begin
+ _zz_decode_RS2_2 = FpuPlugin_port_rsp_payload_value[31 : 0];
+ end
+ end
if(when_MulPlugin_l147) begin
case(switch_MulPlugin_l148)
2'b00 : begin
@@ -2611,11 +4305,13 @@ module w3d_host_vexriscv (
end
end
- assign decode_INSTRUCTION = IBusCachedPlugin_iBusRsp_output_payload_rsp_inst;
+ assign memory_IS_RVC = execute_to_memory_IS_RVC;
+ assign memory_PC = execute_to_memory_PC;
assign memory_PREDICTION_CONTEXT_hazard = execute_to_memory_PREDICTION_CONTEXT_hazard;
assign memory_PREDICTION_CONTEXT_hit = execute_to_memory_PREDICTION_CONTEXT_hit;
assign memory_PREDICTION_CONTEXT_line_source = execute_to_memory_PREDICTION_CONTEXT_line_source;
assign memory_PREDICTION_CONTEXT_line_branchWish = execute_to_memory_PREDICTION_CONTEXT_line_branchWish;
+ assign memory_PREDICTION_CONTEXT_line_last2Bytes = execute_to_memory_PREDICTION_CONTEXT_line_last2Bytes;
assign memory_PREDICTION_CONTEXT_line_target = execute_to_memory_PREDICTION_CONTEXT_line_target;
always @(*) begin
_zz_2 = 1'b0;
@@ -2631,7 +4327,9 @@ module w3d_host_vexriscv (
end
end
- assign decode_PC = IBusCachedPlugin_iBusRsp_output_payload_pc;
+ assign decode_PC = IBusCachedPlugin_decodePc_pcReg;
+ assign decode_INSTRUCTION = IBusCachedPlugin_injector_decodeInput_payload_rsp_inst;
+ assign decode_IS_RVC = IBusCachedPlugin_injector_decodeInput_payload_isRvc;
assign writeBack_PC = memory_to_writeBack_PC;
assign writeBack_INSTRUCTION = memory_to_writeBack_INSTRUCTION;
always @(*) begin
@@ -2639,6 +4337,19 @@ module w3d_host_vexriscv (
if(when_DBusCachedPlugin_l353) begin
decode_arbitration_haltItself = 1'b1;
end
+ if(when_FpuPlugin_l273) begin
+ decode_arbitration_haltItself = 1'b1;
+ end
+ if(FpuPlugin_port_cmd_isStall) begin
+ decode_arbitration_haltItself = 1'b1;
+ end
+ case(IBusCachedPlugin_injector_port_state)
+ 3'b010 : begin
+ decode_arbitration_haltItself = 1'b1;
+ end
+ default : begin
+ end
+ endcase
end
always @(*) begin
@@ -2646,6 +4357,22 @@ module w3d_host_vexriscv (
if(when_HazardSimplePlugin_l113) begin
decode_arbitration_haltByOther = 1'b1;
end
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ if(decode_arbitration_isValid) begin
+ decode_arbitration_haltByOther = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ decode_arbitration_haltByOther = 1'b1;
+ end
if(CsrPlugin_pipelineLiberator_active) begin
decode_arbitration_haltByOther = 1'b1;
end
@@ -2656,7 +4383,12 @@ module w3d_host_vexriscv (
always @(*) begin
decode_arbitration_removeIt = 1'b0;
- if(_zz_when) begin
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ decode_arbitration_removeIt = 1'b1;
+ end
+ end
+ if(_zz_when_1) begin
decode_arbitration_removeIt = 1'b1;
end
if(decode_arbitration_isFlushed) begin
@@ -2667,7 +4399,12 @@ module w3d_host_vexriscv (
assign decode_arbitration_flushIt = 1'b0;
always @(*) begin
decode_arbitration_flushNext = 1'b0;
- if(_zz_when) begin
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ decode_arbitration_flushNext = 1'b1;
+ end
+ end
+ if(_zz_when_1) begin
decode_arbitration_flushNext = 1'b1;
end
end
@@ -2689,17 +4426,29 @@ module w3d_host_vexriscv (
if(when_DBusCachedPlugin_l411) begin
execute_arbitration_haltByOther = 1'b1;
end
+ if(when_FpuPlugin_l229) begin
+ execute_arbitration_haltByOther = 1'b1;
+ end
end
always @(*) begin
execute_arbitration_removeIt = 1'b0;
+ if(CsrPlugin_selfException_valid) begin
+ execute_arbitration_removeIt = 1'b1;
+ end
if(execute_arbitration_isFlushed) begin
execute_arbitration_removeIt = 1'b1;
end
end
assign execute_arbitration_flushIt = 1'b0;
- assign execute_arbitration_flushNext = 1'b0;
+ always @(*) begin
+ execute_arbitration_flushNext = 1'b0;
+ if(CsrPlugin_selfException_valid) begin
+ execute_arbitration_flushNext = 1'b1;
+ end
+ end
+
always @(*) begin
memory_arbitration_haltItself = 1'b0;
if(when_MulDivIterativePlugin_l128) begin
@@ -2712,9 +4461,6 @@ module w3d_host_vexriscv (
assign memory_arbitration_haltByOther = 1'b0;
always @(*) begin
memory_arbitration_removeIt = 1'b0;
- if(BranchPlugin_branchExceptionPort_valid) begin
- memory_arbitration_removeIt = 1'b1;
- end
if(memory_arbitration_isFlushed) begin
memory_arbitration_removeIt = 1'b1;
end
@@ -2723,9 +4469,6 @@ module w3d_host_vexriscv (
assign memory_arbitration_flushIt = 1'b0;
always @(*) begin
memory_arbitration_flushNext = 1'b0;
- if(BranchPlugin_branchExceptionPort_valid) begin
- memory_arbitration_flushNext = 1'b1;
- end
if(BranchPlugin_jumpInterface_valid) begin
memory_arbitration_flushNext = 1'b1;
end
@@ -2738,7 +4481,18 @@ module w3d_host_vexriscv (
end
end
- assign writeBack_arbitration_haltByOther = 1'b0;
+ always @(*) begin
+ writeBack_arbitration_haltByOther = 1'b0;
+ if(writeBack_FpuPlugin_isRsp) begin
+ if(when_FpuPlugin_l323) begin
+ writeBack_arbitration_haltByOther = 1'b1;
+ end
+ end
+ if(when_FpuPlugin_l339) begin
+ writeBack_arbitration_haltByOther = 1'b1;
+ end
+ end
+
always @(*) begin
writeBack_arbitration_removeIt = 1'b0;
if(DBusCachedPlugin_exceptionBus_valid) begin
@@ -2754,6 +4508,9 @@ module w3d_host_vexriscv (
if(DBusCachedPlugin_redoBranch_valid) begin
writeBack_arbitration_flushIt = 1'b1;
end
+ if(CsrPlugin_doResume) begin
+ writeBack_arbitration_flushIt = 1'b1;
+ end
end
always @(*) begin
@@ -2778,6 +4535,9 @@ module w3d_host_vexriscv (
assign lastStageIsFiring = writeBack_arbitration_isFiring;
always @(*) begin
IBusCachedPlugin_fetcherHalt = 1'b0;
+ if(when_CsrPlugin_l711) begin
+ IBusCachedPlugin_fetcherHalt = 1'b1;
+ end
if(when_CsrPlugin_l1272) begin
IBusCachedPlugin_fetcherHalt = 1'b1;
end
@@ -2795,6 +4555,9 @@ module w3d_host_vexriscv (
if(when_Fetcher_l242) begin
IBusCachedPlugin_incomingInstruction = 1'b1;
end
+ if(IBusCachedPlugin_injector_decodeInput_valid) begin
+ IBusCachedPlugin_incomingInstruction = 1'b1;
+ end
end
always @(*) begin
@@ -2807,10 +4570,25 @@ module w3d_host_vexriscv (
end
end
- assign CsrPlugin_csrMapping_doForceFailCsr = 1'b0;
+ always @(*) begin
+ CsrPlugin_csrMapping_doForceFailCsr = 1'b0;
+ if(when_FpuPlugin_l253) begin
+ CsrPlugin_csrMapping_doForceFailCsr = 1'b1;
+ end
+ end
+
assign CsrPlugin_csrMapping_readDataSignal = CsrPlugin_csrMapping_readDataInit;
assign CsrPlugin_inWfi = 1'b0;
- assign CsrPlugin_thirdPartyWake = 1'b0;
+ always @(*) begin
+ CsrPlugin_thirdPartyWake = 1'b0;
+ if(decode_FpuPlugin_forked) begin
+ CsrPlugin_thirdPartyWake = 1'b1;
+ end
+ if(when_CsrPlugin_l862) begin
+ CsrPlugin_thirdPartyWake = 1'b1;
+ end
+ end
+
always @(*) begin
CsrPlugin_jumpInterface_valid = 1'b0;
if(when_CsrPlugin_l1390) begin
@@ -2819,6 +4597,9 @@ module w3d_host_vexriscv (
if(when_CsrPlugin_l1456) begin
CsrPlugin_jumpInterface_valid = 1'b1;
end
+ if(CsrPlugin_doResume) begin
+ CsrPlugin_jumpInterface_valid = 1'b1;
+ end
end
always @(*) begin
@@ -2835,14 +4616,43 @@ module w3d_host_vexriscv (
end
endcase
end
+ if(CsrPlugin_doResume) begin
+ CsrPlugin_jumpInterface_payload = CsrPlugin_dpc;
+ end
end
assign CsrPlugin_forceMachineWire = 1'b0;
- assign CsrPlugin_allowInterrupts = 1'b1;
+ always @(*) begin
+ CsrPlugin_allowInterrupts = 1'b1;
+ if(debugMode) begin
+ CsrPlugin_allowInterrupts = 1'b0;
+ end
+ end
+
assign CsrPlugin_allowException = 1'b1;
assign CsrPlugin_allowEbreakException = 1'b1;
- assign CsrPlugin_xretAwayFromMachine = 1'b0;
- assign BranchPlugin_inDebugNoFetchFlag = 1'b0;
+ always @(*) begin
+ CsrPlugin_xretAwayFromMachine = 1'b0;
+ if(when_CsrPlugin_l1456) begin
+ case(switch_CsrPlugin_l1460)
+ 2'b11 : begin
+ if(when_CsrPlugin_l1468) begin
+ CsrPlugin_xretAwayFromMachine = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ always @(*) begin
+ BranchPlugin_inDebugNoFetchFlag = 1'b0;
+ if(debugMode) begin
+ BranchPlugin_inDebugNoFetchFlag = 1'b1;
+ end
+ end
+
assign IBusCachedPlugin_externalFlush = (|{writeBack_arbitration_flushNext,{memory_arbitration_flushNext,{execute_arbitration_flushNext,decode_arbitration_flushNext}}});
assign IBusCachedPlugin_jump_pcLoad_valid = (|{BranchPlugin_jumpInterface_valid,{CsrPlugin_jumpInterface_valid,DBusCachedPlugin_redoBranch_valid}});
assign _zz_IBusCachedPlugin_jump_pcLoad_payload = {BranchPlugin_jumpInterface_valid,{CsrPlugin_jumpInterface_valid,DBusCachedPlugin_redoBranch_valid}};
@@ -2870,6 +4680,9 @@ module w3d_host_vexriscv (
assign when_Fetcher_l133_1 = ((! IBusCachedPlugin_fetchPc_output_valid) && IBusCachedPlugin_fetchPc_output_ready);
always @(*) begin
IBusCachedPlugin_fetchPc_pc = (IBusCachedPlugin_fetchPc_pcReg + _zz_IBusCachedPlugin_fetchPc_pc);
+ if(IBusCachedPlugin_fetchPc_inc) begin
+ IBusCachedPlugin_fetchPc_pc[1] = 1'b0;
+ end
if(IBusCachedPlugin_fetchPc_predictionPcLoad_valid) begin
IBusCachedPlugin_fetchPc_pc = IBusCachedPlugin_fetchPc_predictionPcLoad_payload;
end
@@ -2880,7 +4693,6 @@ module w3d_host_vexriscv (
IBusCachedPlugin_fetchPc_pc = IBusCachedPlugin_jump_pcLoad_payload;
end
IBusCachedPlugin_fetchPc_pc[0] = 1'b0;
- IBusCachedPlugin_fetchPc_pc[1] = 1'b0;
end
always @(*) begin
@@ -2897,7 +4709,28 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_fetchPc_output_valid = ((! IBusCachedPlugin_fetcherHalt) && IBusCachedPlugin_fetchPc_booted);
assign IBusCachedPlugin_fetchPc_output_payload = IBusCachedPlugin_fetchPc_pc;
always @(*) begin
+ IBusCachedPlugin_decodePc_flushed = 1'b0;
+ if(when_Fetcher_l194) begin
+ IBusCachedPlugin_decodePc_flushed = 1'b1;
+ end
+ end
+
+ assign IBusCachedPlugin_decodePc_pcPlus = (IBusCachedPlugin_decodePc_pcReg + _zz_IBusCachedPlugin_decodePc_pcPlus);
+ always @(*) begin
+ IBusCachedPlugin_decodePc_injectedDecode = 1'b0;
+ if(when_Fetcher_l373) begin
+ IBusCachedPlugin_decodePc_injectedDecode = 1'b1;
+ end
+ end
+
+ assign when_Fetcher_l182 = (decode_arbitration_isFiring && (! IBusCachedPlugin_decodePc_injectedDecode));
+ assign when_Fetcher_l188 = (IBusCachedPlugin_decodePc_predictionPcLoad_valid && (! IBusCachedPlugin_forceNoDecodeCond));
+ assign when_Fetcher_l194 = (IBusCachedPlugin_jump_pcLoad_valid && ((! decode_arbitration_isStuck) || decode_arbitration_removeIt));
+ always @(*) begin
IBusCachedPlugin_iBusRsp_redoFetch = 1'b0;
+ if(IBusCachedPlugin_predictor_compressor_unalignedWordIssue) begin
+ IBusCachedPlugin_iBusRsp_redoFetch = 1'b1;
+ end
if(IBusCachedPlugin_rsp_redoFetch) begin
IBusCachedPlugin_iBusRsp_redoFetch = 1'b1;
end
@@ -2906,20 +4739,14 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_iBusRsp_stages_0_input_valid = IBusCachedPlugin_fetchPc_output_valid;
assign IBusCachedPlugin_fetchPc_output_ready = IBusCachedPlugin_iBusRsp_stages_0_input_ready;
assign IBusCachedPlugin_iBusRsp_stages_0_input_payload = IBusCachedPlugin_fetchPc_output_payload;
- always @(*) begin
- IBusCachedPlugin_iBusRsp_stages_0_halt = 1'b0;
- if(IBusCachedPlugin_cache_io_cpu_prefetch_haltIt) begin
- IBusCachedPlugin_iBusRsp_stages_0_halt = 1'b1;
- end
- end
-
+ assign IBusCachedPlugin_iBusRsp_stages_0_halt = 1'b0;
assign _zz_IBusCachedPlugin_iBusRsp_stages_0_input_ready = (! IBusCachedPlugin_iBusRsp_stages_0_halt);
assign IBusCachedPlugin_iBusRsp_stages_0_input_ready = (IBusCachedPlugin_iBusRsp_stages_0_output_ready && _zz_IBusCachedPlugin_iBusRsp_stages_0_input_ready);
assign IBusCachedPlugin_iBusRsp_stages_0_output_valid = (IBusCachedPlugin_iBusRsp_stages_0_input_valid && _zz_IBusCachedPlugin_iBusRsp_stages_0_input_ready);
assign IBusCachedPlugin_iBusRsp_stages_0_output_payload = IBusCachedPlugin_iBusRsp_stages_0_input_payload;
always @(*) begin
IBusCachedPlugin_iBusRsp_stages_1_halt = 1'b0;
- if(IBusCachedPlugin_mmuBus_busy) begin
+ if(IBusCachedPlugin_cache_io_cpu_prefetch_haltIt) begin
IBusCachedPlugin_iBusRsp_stages_1_halt = 1'b1;
end
end
@@ -2930,7 +4757,7 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_iBusRsp_stages_1_output_payload = IBusCachedPlugin_iBusRsp_stages_1_input_payload;
always @(*) begin
IBusCachedPlugin_iBusRsp_stages_2_halt = 1'b0;
- if(when_IBusCachedPlugin_l273) begin
+ if(IBusCachedPlugin_mmuBus_busy) begin
IBusCachedPlugin_iBusRsp_stages_2_halt = 1'b1;
end
end
@@ -2939,9 +4766,26 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_iBusRsp_stages_2_input_ready = (IBusCachedPlugin_iBusRsp_stages_2_output_ready && _zz_IBusCachedPlugin_iBusRsp_stages_2_input_ready);
assign IBusCachedPlugin_iBusRsp_stages_2_output_valid = (IBusCachedPlugin_iBusRsp_stages_2_input_valid && _zz_IBusCachedPlugin_iBusRsp_stages_2_input_ready);
assign IBusCachedPlugin_iBusRsp_stages_2_output_payload = IBusCachedPlugin_iBusRsp_stages_2_input_payload;
+ always @(*) begin
+ IBusCachedPlugin_iBusRsp_stages_3_halt = 1'b0;
+ if(when_IBusCachedPlugin_l273) begin
+ IBusCachedPlugin_iBusRsp_stages_3_halt = 1'b1;
+ end
+ end
+
+ assign _zz_IBusCachedPlugin_iBusRsp_stages_3_input_ready = (! IBusCachedPlugin_iBusRsp_stages_3_halt);
+ assign IBusCachedPlugin_iBusRsp_stages_3_input_ready = (IBusCachedPlugin_iBusRsp_stages_3_output_ready && _zz_IBusCachedPlugin_iBusRsp_stages_3_input_ready);
+ assign IBusCachedPlugin_iBusRsp_stages_3_output_valid = (IBusCachedPlugin_iBusRsp_stages_3_input_valid && _zz_IBusCachedPlugin_iBusRsp_stages_3_input_ready);
+ assign IBusCachedPlugin_iBusRsp_stages_3_output_payload = IBusCachedPlugin_iBusRsp_stages_3_input_payload;
assign IBusCachedPlugin_fetchPc_redo_valid = IBusCachedPlugin_iBusRsp_redoFetch;
- assign IBusCachedPlugin_fetchPc_redo_payload = IBusCachedPlugin_iBusRsp_stages_2_input_payload;
- assign IBusCachedPlugin_iBusRsp_flush = ((decode_arbitration_removeIt || (decode_arbitration_flushNext && (! decode_arbitration_isStuck))) || IBusCachedPlugin_iBusRsp_redoFetch);
+ always @(*) begin
+ IBusCachedPlugin_fetchPc_redo_payload = IBusCachedPlugin_iBusRsp_stages_3_input_payload;
+ if(IBusCachedPlugin_decompressor_throw2BytesReg) begin
+ IBusCachedPlugin_fetchPc_redo_payload[1] = 1'b1;
+ end
+ end
+
+ assign IBusCachedPlugin_iBusRsp_flush = (IBusCachedPlugin_externalFlush || IBusCachedPlugin_iBusRsp_redoFetch);
assign IBusCachedPlugin_iBusRsp_stages_0_output_ready = ((1'b0 && (! IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid)) || IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_ready);
assign IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid = _zz_IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid;
assign IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_payload = _zz_IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_payload;
@@ -2954,62 +4798,342 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_iBusRsp_stages_2_input_valid = IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_valid;
assign IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_ready = IBusCachedPlugin_iBusRsp_stages_2_input_ready;
assign IBusCachedPlugin_iBusRsp_stages_2_input_payload = IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_payload;
+ assign IBusCachedPlugin_iBusRsp_stages_2_output_ready = ((1'b0 && (! IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid)) || IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_ready);
+ assign IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid = _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid;
+ assign IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload = _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload;
+ assign IBusCachedPlugin_iBusRsp_stages_3_input_valid = IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid;
+ assign IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_ready = IBusCachedPlugin_iBusRsp_stages_3_input_ready;
+ assign IBusCachedPlugin_iBusRsp_stages_3_input_payload = IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload;
always @(*) begin
IBusCachedPlugin_iBusRsp_readyForError = 1'b1;
- if(when_Fetcher_l322) begin
+ if(IBusCachedPlugin_injector_decodeInput_valid) begin
IBusCachedPlugin_iBusRsp_readyForError = 1'b0;
end
end
- assign when_Fetcher_l242 = (IBusCachedPlugin_iBusRsp_stages_1_input_valid || IBusCachedPlugin_iBusRsp_stages_2_input_valid);
- assign when_Fetcher_l322 = (! IBusCachedPlugin_pcValids_0);
- assign when_Fetcher_l331 = (! (! IBusCachedPlugin_iBusRsp_stages_1_input_ready));
- assign when_Fetcher_l331_1 = (! (! IBusCachedPlugin_iBusRsp_stages_2_input_ready));
- assign when_Fetcher_l331_2 = (! execute_arbitration_isStuck);
- assign when_Fetcher_l331_3 = (! memory_arbitration_isStuck);
- assign when_Fetcher_l331_4 = (! writeBack_arbitration_isStuck);
- assign IBusCachedPlugin_pcValids_0 = IBusCachedPlugin_injector_nextPcCalc_valids_1;
- assign IBusCachedPlugin_pcValids_1 = IBusCachedPlugin_injector_nextPcCalc_valids_2;
- assign IBusCachedPlugin_pcValids_2 = IBusCachedPlugin_injector_nextPcCalc_valids_3;
- assign IBusCachedPlugin_pcValids_3 = IBusCachedPlugin_injector_nextPcCalc_valids_4;
- assign IBusCachedPlugin_iBusRsp_output_ready = (! decode_arbitration_isStuck);
+ assign when_Fetcher_l242 = ((IBusCachedPlugin_iBusRsp_stages_1_input_valid || IBusCachedPlugin_iBusRsp_stages_2_input_valid) || IBusCachedPlugin_iBusRsp_stages_3_input_valid);
+ assign IBusCachedPlugin_decompressor_input_valid = (IBusCachedPlugin_iBusRsp_output_valid && (! IBusCachedPlugin_iBusRsp_redoFetch));
+ assign IBusCachedPlugin_decompressor_input_payload_pc = IBusCachedPlugin_iBusRsp_output_payload_pc;
+ assign IBusCachedPlugin_decompressor_input_payload_rsp_error = IBusCachedPlugin_iBusRsp_output_payload_rsp_error;
+ assign IBusCachedPlugin_decompressor_input_payload_rsp_inst = IBusCachedPlugin_iBusRsp_output_payload_rsp_inst;
+ assign IBusCachedPlugin_decompressor_input_payload_isRvc = IBusCachedPlugin_iBusRsp_output_payload_isRvc;
+ assign IBusCachedPlugin_iBusRsp_output_ready = IBusCachedPlugin_decompressor_input_ready;
+ assign IBusCachedPlugin_decompressor_flushNext = 1'b0;
+ assign IBusCachedPlugin_decompressor_consumeCurrent = 1'b0;
+ assign IBusCachedPlugin_decompressor_isInputLowRvc = (IBusCachedPlugin_decompressor_input_payload_rsp_inst[1 : 0] != 2'b11);
+ assign IBusCachedPlugin_decompressor_isInputHighRvc = (IBusCachedPlugin_decompressor_input_payload_rsp_inst[17 : 16] != 2'b11);
+ assign IBusCachedPlugin_decompressor_throw2Bytes = (IBusCachedPlugin_decompressor_throw2BytesReg || IBusCachedPlugin_decompressor_input_payload_pc[1]);
+ assign IBusCachedPlugin_decompressor_unaligned = (IBusCachedPlugin_decompressor_throw2Bytes || IBusCachedPlugin_decompressor_bufferValid);
+ assign IBusCachedPlugin_decompressor_bufferValidPatched = (IBusCachedPlugin_decompressor_input_valid ? IBusCachedPlugin_decompressor_bufferValid : IBusCachedPlugin_decompressor_bufferValidLatch);
+ assign IBusCachedPlugin_decompressor_throw2BytesPatched = (IBusCachedPlugin_decompressor_input_valid ? IBusCachedPlugin_decompressor_throw2Bytes : IBusCachedPlugin_decompressor_throw2BytesLatch);
+ assign IBusCachedPlugin_decompressor_raw = (IBusCachedPlugin_decompressor_bufferValidPatched ? {IBusCachedPlugin_decompressor_input_payload_rsp_inst[15 : 0],IBusCachedPlugin_decompressor_bufferData} : {IBusCachedPlugin_decompressor_input_payload_rsp_inst[31 : 16],(IBusCachedPlugin_decompressor_throw2BytesPatched ? IBusCachedPlugin_decompressor_input_payload_rsp_inst[31 : 16] : IBusCachedPlugin_decompressor_input_payload_rsp_inst[15 : 0])});
+ assign IBusCachedPlugin_decompressor_isRvc = (IBusCachedPlugin_decompressor_raw[1 : 0] != 2'b11);
+ assign _zz_IBusCachedPlugin_decompressor_decompressed = IBusCachedPlugin_decompressor_raw[15 : 0];
always @(*) begin
- decode_arbitration_isValid = IBusCachedPlugin_iBusRsp_output_valid;
+ IBusCachedPlugin_decompressor_decompressed = 32'h00000000;
+ case(switch_Misc_l44)
+ 5'h00 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{{{{{2'b00,_zz_IBusCachedPlugin_decompressor_decompressed[10 : 7]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 11]},_zz_IBusCachedPlugin_decompressor_decompressed[5]},_zz_IBusCachedPlugin_decompressor_decompressed[6]},2'b00},5'h02},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed_2},7'h13};
+ if(when_Misc_l47) begin
+ IBusCachedPlugin_decompressor_decompressed = 32'h00000000;
+ end
+ end
+ 5'h02 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{_zz_IBusCachedPlugin_decompressor_decompressed_3,_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_2},7'h03};
+ end
+ 5'h03 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{_zz_IBusCachedPlugin_decompressor_decompressed_3,_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_2},7'h07};
+ end
+ 5'h06 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_3[11 : 5],_zz_IBusCachedPlugin_decompressor_decompressed_2},_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_3[4 : 0]},7'h23};
+ end
+ 5'h07 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_3[11 : 5],_zz_IBusCachedPlugin_decompressor_decompressed_2},_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_3[4 : 0]},7'h27};
+ end
+ 5'h08 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{_zz_IBusCachedPlugin_decompressor_decompressed_5,_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h13};
+ end
+ 5'h09 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_8[20],_zz_IBusCachedPlugin_decompressor_decompressed_8[10 : 1]},_zz_IBusCachedPlugin_decompressor_decompressed_8[11]},_zz_IBusCachedPlugin_decompressor_decompressed_8[19 : 12]},_zz_IBusCachedPlugin_decompressor_decompressed_20},7'h6f};
+ end
+ 5'h0a : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{_zz_IBusCachedPlugin_decompressor_decompressed_5,5'h00},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h13};
+ end
+ 5'h0b : begin
+ IBusCachedPlugin_decompressor_decompressed = ((_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7] == 5'h02) ? {{{{{{{{_zz_IBusCachedPlugin_decompressor_decompressed_27,_zz_IBusCachedPlugin_decompressor_decompressed_28},_zz_IBusCachedPlugin_decompressor_decompressed_29},_zz_IBusCachedPlugin_decompressor_decompressed[6]},4'b0000},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h13} : {{_zz_IBusCachedPlugin_decompressor_decompressed_30[31 : 12],_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h37});
+ end
+ 5'h0c : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{((_zz_IBusCachedPlugin_decompressor_decompressed[11 : 10] == 2'b10) ? _zz_IBusCachedPlugin_decompressor_decompressed_26 : {{1'b0,(_zz_IBusCachedPlugin_decompressor_decompressed_31 || _zz_IBusCachedPlugin_decompressor_decompressed_32)},5'h00}),(((! _zz_IBusCachedPlugin_decompressor_decompressed[11]) || _zz_IBusCachedPlugin_decompressor_decompressed_22) ? _zz_IBusCachedPlugin_decompressor_decompressed[6 : 2] : _zz_IBusCachedPlugin_decompressor_decompressed_2)},_zz_IBusCachedPlugin_decompressor_decompressed_1},_zz_IBusCachedPlugin_decompressor_decompressed_24},_zz_IBusCachedPlugin_decompressor_decompressed_1},(_zz_IBusCachedPlugin_decompressor_decompressed_22 ? 7'h13 : 7'h33)};
+ end
+ 5'h0d : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_15[20],_zz_IBusCachedPlugin_decompressor_decompressed_15[10 : 1]},_zz_IBusCachedPlugin_decompressor_decompressed_15[11]},_zz_IBusCachedPlugin_decompressor_decompressed_15[19 : 12]},_zz_IBusCachedPlugin_decompressor_decompressed_19},7'h6f};
+ end
+ 5'h0e : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{{{_zz_IBusCachedPlugin_decompressor_decompressed_18[12],_zz_IBusCachedPlugin_decompressor_decompressed_18[10 : 5]},_zz_IBusCachedPlugin_decompressor_decompressed_19},_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed_18[4 : 1]},_zz_IBusCachedPlugin_decompressor_decompressed_18[11]},7'h63};
+ end
+ 5'h0f : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{{{_zz_IBusCachedPlugin_decompressor_decompressed_18[12],_zz_IBusCachedPlugin_decompressor_decompressed_18[10 : 5]},_zz_IBusCachedPlugin_decompressor_decompressed_19},_zz_IBusCachedPlugin_decompressor_decompressed_1},3'b001},_zz_IBusCachedPlugin_decompressor_decompressed_18[4 : 1]},_zz_IBusCachedPlugin_decompressor_decompressed_18[11]},7'h63};
+ end
+ 5'h10 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{7'h00,_zz_IBusCachedPlugin_decompressor_decompressed[6 : 2]},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},3'b001},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h13};
+ end
+ 5'h12 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{{{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[3 : 2]},_zz_IBusCachedPlugin_decompressor_decompressed[12]},_zz_IBusCachedPlugin_decompressor_decompressed[6 : 4]},2'b00},_zz_IBusCachedPlugin_decompressor_decompressed_21},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h03};
+ end
+ 5'h13 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{{{{4'b0000,_zz_IBusCachedPlugin_decompressor_decompressed[3 : 2]},_zz_IBusCachedPlugin_decompressor_decompressed[12]},_zz_IBusCachedPlugin_decompressor_decompressed[6 : 4]},2'b00},_zz_IBusCachedPlugin_decompressor_decompressed_21},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h07};
+ end
+ 5'h14 : begin
+ IBusCachedPlugin_decompressor_decompressed = ((_zz_IBusCachedPlugin_decompressor_decompressed[12 : 2] == 11'h400) ? 32'h00100073 : ((_zz_IBusCachedPlugin_decompressor_decompressed[6 : 2] == 5'h00) ? {{{{12'h000,_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},3'b000},(_zz_IBusCachedPlugin_decompressor_decompressed[12] ? _zz_IBusCachedPlugin_decompressor_decompressed_20 : _zz_IBusCachedPlugin_decompressor_decompressed_19)},7'h67} : {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_33,_zz_IBusCachedPlugin_decompressor_decompressed_34},(_zz_IBusCachedPlugin_decompressor_decompressed_35 ? _zz_IBusCachedPlugin_decompressor_decompressed_36 : _zz_IBusCachedPlugin_decompressor_decompressed_19)},3'b000},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 7]},7'h33}));
+ end
+ 5'h16 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_37[11 : 5],_zz_IBusCachedPlugin_decompressor_decompressed[6 : 2]},_zz_IBusCachedPlugin_decompressor_decompressed_21},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_38[4 : 0]},7'h23};
+ end
+ 5'h17 : begin
+ IBusCachedPlugin_decompressor_decompressed = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_39[11 : 5],_zz_IBusCachedPlugin_decompressor_decompressed[6 : 2]},_zz_IBusCachedPlugin_decompressor_decompressed_21},3'b010},_zz_IBusCachedPlugin_decompressor_decompressed_40[4 : 0]},7'h27};
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_1 = {2'b01,_zz_IBusCachedPlugin_decompressor_decompressed[9 : 7]};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_2 = {2'b01,_zz_IBusCachedPlugin_decompressor_decompressed[4 : 2]};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_3 = {{{{5'h00,_zz_IBusCachedPlugin_decompressor_decompressed[5]},_zz_IBusCachedPlugin_decompressor_decompressed[12 : 10]},_zz_IBusCachedPlugin_decompressor_decompressed[6]},2'b00};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_4 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[11] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[10] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[9] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[8] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[7] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[6] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[5] = _zz_IBusCachedPlugin_decompressor_decompressed_4;
+ _zz_IBusCachedPlugin_decompressor_decompressed_5[4 : 0] = _zz_IBusCachedPlugin_decompressor_decompressed[6 : 2];
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_6 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[9] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[8] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[7] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[6] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[5] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[4] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[3] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[2] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[1] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ _zz_IBusCachedPlugin_decompressor_decompressed_7[0] = _zz_IBusCachedPlugin_decompressor_decompressed_6;
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_8 = {{{{{{{{_zz_IBusCachedPlugin_decompressor_decompressed_7,_zz_IBusCachedPlugin_decompressor_decompressed[8]},_zz_IBusCachedPlugin_decompressor_decompressed[10 : 9]},_zz_IBusCachedPlugin_decompressor_decompressed[6]},_zz_IBusCachedPlugin_decompressor_decompressed[7]},_zz_IBusCachedPlugin_decompressor_decompressed[2]},_zz_IBusCachedPlugin_decompressor_decompressed[11]},_zz_IBusCachedPlugin_decompressor_decompressed[5 : 3]},1'b0};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_9 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[14] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[13] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[12] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[11] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[10] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[9] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[8] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[7] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[6] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[5] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[4] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[3] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[2] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[1] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ _zz_IBusCachedPlugin_decompressor_decompressed_10[0] = _zz_IBusCachedPlugin_decompressor_decompressed_9;
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_11 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_12[2] = _zz_IBusCachedPlugin_decompressor_decompressed_11;
+ _zz_IBusCachedPlugin_decompressor_decompressed_12[1] = _zz_IBusCachedPlugin_decompressor_decompressed_11;
+ _zz_IBusCachedPlugin_decompressor_decompressed_12[0] = _zz_IBusCachedPlugin_decompressor_decompressed_11;
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_13 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[9] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[8] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[7] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[6] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[5] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[4] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[3] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[2] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[1] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ _zz_IBusCachedPlugin_decompressor_decompressed_14[0] = _zz_IBusCachedPlugin_decompressor_decompressed_13;
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_15 = {{{{{{{{_zz_IBusCachedPlugin_decompressor_decompressed_14,_zz_IBusCachedPlugin_decompressor_decompressed[8]},_zz_IBusCachedPlugin_decompressor_decompressed[10 : 9]},_zz_IBusCachedPlugin_decompressor_decompressed[6]},_zz_IBusCachedPlugin_decompressor_decompressed[7]},_zz_IBusCachedPlugin_decompressor_decompressed[2]},_zz_IBusCachedPlugin_decompressor_decompressed[11]},_zz_IBusCachedPlugin_decompressor_decompressed[5 : 3]},1'b0};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_16 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_17[4] = _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ _zz_IBusCachedPlugin_decompressor_decompressed_17[3] = _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ _zz_IBusCachedPlugin_decompressor_decompressed_17[2] = _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ _zz_IBusCachedPlugin_decompressor_decompressed_17[1] = _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ _zz_IBusCachedPlugin_decompressor_decompressed_17[0] = _zz_IBusCachedPlugin_decompressor_decompressed_16;
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_18 = {{{{{_zz_IBusCachedPlugin_decompressor_decompressed_17,_zz_IBusCachedPlugin_decompressor_decompressed[6 : 5]},_zz_IBusCachedPlugin_decompressor_decompressed[2]},_zz_IBusCachedPlugin_decompressor_decompressed[11 : 10]},_zz_IBusCachedPlugin_decompressor_decompressed[4 : 3]},1'b0};
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_19 = 5'h00;
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_20 = 5'h01;
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_21 = 5'h02;
+ assign switch_Misc_l44 = {_zz_IBusCachedPlugin_decompressor_decompressed[1 : 0],_zz_IBusCachedPlugin_decompressor_decompressed[15 : 13]};
+ assign when_Misc_l47 = (_zz_IBusCachedPlugin_decompressor_decompressed[12 : 2] == 11'h000);
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_22 = (_zz_IBusCachedPlugin_decompressor_decompressed[11 : 10] != 2'b11);
+ assign switch_Misc_l241 = _zz_IBusCachedPlugin_decompressor_decompressed[11 : 10];
+ assign switch_Misc_l241_1 = _zz_IBusCachedPlugin_decompressor_decompressed[6 : 5];
+ always @(*) begin
+ case(switch_Misc_l241_1)
+ 2'b00 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_23 = 3'b000;
+ end
+ 2'b01 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_23 = 3'b100;
+ end
+ 2'b10 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_23 = 3'b110;
+ end
+ default : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_23 = 3'b111;
+ end
+ endcase
+ end
+
+ always @(*) begin
+ case(switch_Misc_l241)
+ 2'b00 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_24 = 3'b101;
+ end
+ 2'b01 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_24 = 3'b101;
+ end
+ 2'b10 : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_24 = 3'b111;
+ end
+ default : begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_24 = _zz_IBusCachedPlugin_decompressor_decompressed_23;
+ end
+ endcase
+ end
+
+ assign _zz_IBusCachedPlugin_decompressor_decompressed_25 = _zz_IBusCachedPlugin_decompressor_decompressed[12];
+ always @(*) begin
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[6] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[5] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[4] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[3] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[2] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[1] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ _zz_IBusCachedPlugin_decompressor_decompressed_26[0] = _zz_IBusCachedPlugin_decompressor_decompressed_25;
+ end
+
+ assign IBusCachedPlugin_decompressor_output_valid = (IBusCachedPlugin_decompressor_input_valid && (! ((IBusCachedPlugin_decompressor_throw2Bytes && (! IBusCachedPlugin_decompressor_bufferValid)) && (! IBusCachedPlugin_decompressor_isInputHighRvc))));
+ assign IBusCachedPlugin_decompressor_output_payload_pc = IBusCachedPlugin_decompressor_input_payload_pc;
+ assign IBusCachedPlugin_decompressor_output_payload_isRvc = IBusCachedPlugin_decompressor_isRvc;
+ assign IBusCachedPlugin_decompressor_output_payload_rsp_inst = (IBusCachedPlugin_decompressor_isRvc ? IBusCachedPlugin_decompressor_decompressed : IBusCachedPlugin_decompressor_raw);
+ always @(*) begin
+ IBusCachedPlugin_decompressor_input_ready = (IBusCachedPlugin_decompressor_output_ready && (((! IBusCachedPlugin_iBusRsp_stages_3_input_valid) || IBusCachedPlugin_decompressor_flushNext) || ((! (IBusCachedPlugin_decompressor_bufferValid && IBusCachedPlugin_decompressor_isInputHighRvc)) && (! (((! IBusCachedPlugin_decompressor_unaligned) && IBusCachedPlugin_decompressor_isInputLowRvc) && IBusCachedPlugin_decompressor_isInputHighRvc)))));
+ if(when_Fetcher_l640) begin
+ IBusCachedPlugin_decompressor_input_ready = 1'b1;
+ end
+ end
+
+ assign IBusCachedPlugin_decompressor_output_fire = (IBusCachedPlugin_decompressor_output_valid && IBusCachedPlugin_decompressor_output_ready);
+ assign IBusCachedPlugin_decompressor_bufferFill = (((((! IBusCachedPlugin_decompressor_unaligned) && IBusCachedPlugin_decompressor_isInputLowRvc) && (! IBusCachedPlugin_decompressor_isInputHighRvc)) || (IBusCachedPlugin_decompressor_bufferValid && (! IBusCachedPlugin_decompressor_isInputHighRvc))) || ((IBusCachedPlugin_decompressor_throw2Bytes && (! IBusCachedPlugin_decompressor_isRvc)) && (! IBusCachedPlugin_decompressor_isInputHighRvc)));
+ assign when_Fetcher_l285 = (IBusCachedPlugin_decompressor_output_ready && IBusCachedPlugin_decompressor_input_valid);
+ assign when_Fetcher_l288 = (IBusCachedPlugin_decompressor_output_ready && IBusCachedPlugin_decompressor_input_valid);
+ assign when_Fetcher_l293 = (IBusCachedPlugin_externalFlush || IBusCachedPlugin_decompressor_consumeCurrent);
+ assign IBusCachedPlugin_decompressor_output_ready = ((1'b0 && (! IBusCachedPlugin_injector_decodeInput_valid)) || IBusCachedPlugin_injector_decodeInput_ready);
+ assign IBusCachedPlugin_injector_decodeInput_valid = _zz_IBusCachedPlugin_injector_decodeInput_valid;
+ assign IBusCachedPlugin_injector_decodeInput_payload_pc = _zz_IBusCachedPlugin_injector_decodeInput_payload_pc;
+ assign IBusCachedPlugin_injector_decodeInput_payload_rsp_error = _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_error;
+ assign IBusCachedPlugin_injector_decodeInput_payload_rsp_inst = _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_inst;
+ assign IBusCachedPlugin_injector_decodeInput_payload_isRvc = _zz_IBusCachedPlugin_injector_decodeInput_payload_isRvc;
+ assign when_Fetcher_l331 = (! 1'b0);
+ assign when_Fetcher_l331_1 = (! execute_arbitration_isStuck);
+ assign when_Fetcher_l331_2 = (! memory_arbitration_isStuck);
+ assign when_Fetcher_l331_3 = (! writeBack_arbitration_isStuck);
+ assign IBusCachedPlugin_pcValids_0 = IBusCachedPlugin_injector_nextPcCalc_valids_0;
+ assign IBusCachedPlugin_pcValids_1 = IBusCachedPlugin_injector_nextPcCalc_valids_1;
+ assign IBusCachedPlugin_pcValids_2 = IBusCachedPlugin_injector_nextPcCalc_valids_2;
+ assign IBusCachedPlugin_pcValids_3 = IBusCachedPlugin_injector_nextPcCalc_valids_3;
+ assign IBusCachedPlugin_injector_decodeInput_ready = (! decode_arbitration_isStuck);
+ always @(*) begin
+ decode_arbitration_isValid = IBusCachedPlugin_injector_decodeInput_valid;
+ case(IBusCachedPlugin_injector_port_state)
+ 3'b010 : begin
+ decode_arbitration_isValid = 1'b1;
+ end
+ 3'b011 : begin
+ decode_arbitration_isValid = 1'b1;
+ end
+ default : begin
+ end
+ endcase
if(IBusCachedPlugin_forceNoDecodeCond) begin
decode_arbitration_isValid = 1'b0;
end
end
+ always @(*) begin
+ _zz_decode_FORMAL_PC_NEXT = (decode_PC + _zz__zz_decode_FORMAL_PC_NEXT);
+ if(IBusCachedPlugin_decodePc_predictionPcLoad_valid) begin
+ _zz_decode_FORMAL_PC_NEXT = IBusCachedPlugin_decodePc_predictionPcLoad_payload;
+ end
+ end
+
assign IBusCachedPlugin_predictor_historyWriteDelayPatched_valid = IBusCachedPlugin_predictor_historyWrite_valid;
assign IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_address = (IBusCachedPlugin_predictor_historyWrite_payload_address - 8'h01);
assign IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_source = IBusCachedPlugin_predictor_historyWrite_payload_data_source;
assign IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_branchWish = IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish;
+ assign IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_last2Bytes = IBusCachedPlugin_predictor_historyWrite_payload_data_last2Bytes;
assign IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_target = IBusCachedPlugin_predictor_historyWrite_payload_data_target;
assign _zz_IBusCachedPlugin_predictor_buffer_line_source = (IBusCachedPlugin_iBusRsp_stages_0_input_payload >>> 2'd2);
assign _zz_IBusCachedPlugin_predictor_buffer_line_source_1 = _zz_IBusCachedPlugin_predictor_history_port1;
assign IBusCachedPlugin_predictor_buffer_line_source = _zz_IBusCachedPlugin_predictor_buffer_line_source_1[21 : 0];
assign IBusCachedPlugin_predictor_buffer_line_branchWish = _zz_IBusCachedPlugin_predictor_buffer_line_source_1[23 : 22];
- assign IBusCachedPlugin_predictor_buffer_line_target = _zz_IBusCachedPlugin_predictor_buffer_line_source_1[55 : 24];
+ assign IBusCachedPlugin_predictor_buffer_line_last2Bytes = _zz_IBusCachedPlugin_predictor_buffer_line_source_1[24];
+ assign IBusCachedPlugin_predictor_buffer_line_target = _zz_IBusCachedPlugin_predictor_buffer_line_source_1[56 : 25];
assign IBusCachedPlugin_predictor_buffer_hazard = (IBusCachedPlugin_predictor_writeLast_valid && (IBusCachedPlugin_predictor_writeLast_payload_address == _zz_IBusCachedPlugin_predictor_buffer_hazard));
assign IBusCachedPlugin_predictor_hazard = (IBusCachedPlugin_predictor_buffer_hazard_regNextWhen || IBusCachedPlugin_predictor_buffer_pcCorrected);
- assign IBusCachedPlugin_predictor_hit = (IBusCachedPlugin_predictor_line_source == _zz_IBusCachedPlugin_predictor_hit);
+ always @(*) begin
+ IBusCachedPlugin_predictor_hit = (IBusCachedPlugin_predictor_line_source == _zz_IBusCachedPlugin_predictor_hit);
+ if(when_Fetcher_l573) begin
+ IBusCachedPlugin_predictor_hit = 1'b0;
+ end
+ end
+
+ assign when_Fetcher_l573 = ((! IBusCachedPlugin_predictor_line_last2Bytes) && IBusCachedPlugin_iBusRsp_stages_1_input_payload[1]);
assign IBusCachedPlugin_fetchPc_predictionPcLoad_valid = (((IBusCachedPlugin_predictor_line_branchWish[1] && IBusCachedPlugin_predictor_hit) && (! IBusCachedPlugin_predictor_hazard)) && IBusCachedPlugin_iBusRsp_stages_1_input_valid);
assign IBusCachedPlugin_fetchPc_predictionPcLoad_payload = IBusCachedPlugin_predictor_line_target;
assign IBusCachedPlugin_predictor_fetchContext_hazard = IBusCachedPlugin_predictor_hazard;
assign IBusCachedPlugin_predictor_fetchContext_hit = IBusCachedPlugin_predictor_hit;
assign IBusCachedPlugin_predictor_fetchContext_line_source = IBusCachedPlugin_predictor_line_source;
assign IBusCachedPlugin_predictor_fetchContext_line_branchWish = IBusCachedPlugin_predictor_line_branchWish;
+ assign IBusCachedPlugin_predictor_fetchContext_line_last2Bytes = IBusCachedPlugin_predictor_line_last2Bytes;
assign IBusCachedPlugin_predictor_fetchContext_line_target = IBusCachedPlugin_predictor_line_target;
assign IBusCachedPlugin_predictor_iBusRspContextOutput_hazard = IBusCachedPlugin_predictor_iBusRspContext_hazard;
- assign IBusCachedPlugin_predictor_iBusRspContextOutput_hit = IBusCachedPlugin_predictor_iBusRspContext_hit;
+ always @(*) begin
+ IBusCachedPlugin_predictor_iBusRspContextOutput_hit = IBusCachedPlugin_predictor_iBusRspContext_hit;
+ if(when_Fetcher_l634) begin
+ IBusCachedPlugin_predictor_iBusRspContextOutput_hit = 1'b0;
+ end
+ end
+
assign IBusCachedPlugin_predictor_iBusRspContextOutput_line_source = IBusCachedPlugin_predictor_iBusRspContext_line_source;
assign IBusCachedPlugin_predictor_iBusRspContextOutput_line_branchWish = IBusCachedPlugin_predictor_iBusRspContext_line_branchWish;
+ assign IBusCachedPlugin_predictor_iBusRspContextOutput_line_last2Bytes = IBusCachedPlugin_predictor_iBusRspContext_line_last2Bytes;
assign IBusCachedPlugin_predictor_iBusRspContextOutput_line_target = IBusCachedPlugin_predictor_iBusRspContext_line_target;
- assign IBusCachedPlugin_predictor_injectorContext_hazard = IBusCachedPlugin_predictor_iBusRspContextOutput_hazard;
- assign IBusCachedPlugin_predictor_injectorContext_hit = IBusCachedPlugin_predictor_iBusRspContextOutput_hit;
- assign IBusCachedPlugin_predictor_injectorContext_line_source = IBusCachedPlugin_predictor_iBusRspContextOutput_line_source;
- assign IBusCachedPlugin_predictor_injectorContext_line_branchWish = IBusCachedPlugin_predictor_iBusRspContextOutput_line_branchWish;
- assign IBusCachedPlugin_predictor_injectorContext_line_target = IBusCachedPlugin_predictor_iBusRspContextOutput_line_target;
+ assign IBusCachedPlugin_predictor_injectorContext_hazard = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hazard;
+ assign IBusCachedPlugin_predictor_injectorContext_hit = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hit;
+ assign IBusCachedPlugin_predictor_injectorContext_line_source = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_source;
+ assign IBusCachedPlugin_predictor_injectorContext_line_branchWish = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_branchWish;
+ assign IBusCachedPlugin_predictor_injectorContext_line_last2Bytes = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_last2Bytes;
+ assign IBusCachedPlugin_predictor_injectorContext_line_target = IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_target;
assign IBusCachedPlugin_fetchPrediction_cmd_hadBranch = ((memory_PREDICTION_CONTEXT_hit && (! memory_PREDICTION_CONTEXT_hazard)) && memory_PREDICTION_CONTEXT_line_branchWish[1]);
assign IBusCachedPlugin_fetchPrediction_cmd_targetPc = memory_PREDICTION_CONTEXT_line_target;
always @(*) begin
@@ -3026,11 +5150,21 @@ module w3d_host_vexriscv (
if(when_Fetcher_l619) begin
IBusCachedPlugin_predictor_historyWrite_valid = 1'b0;
end
+ if(IBusCachedPlugin_predictor_compressor_unalignedWordIssue) begin
+ IBusCachedPlugin_predictor_historyWrite_valid = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ IBusCachedPlugin_predictor_historyWrite_payload_address = IBusCachedPlugin_fetchPrediction_rsp_sourceLastWord[9 : 2];
+ if(IBusCachedPlugin_predictor_compressor_unalignedWordIssue) begin
+ IBusCachedPlugin_predictor_historyWrite_payload_address = _zz_IBusCachedPlugin_predictor_historyWrite_payload_address[7:0];
+ end
end
- assign IBusCachedPlugin_predictor_historyWrite_payload_address = IBusCachedPlugin_fetchPrediction_rsp_sourceLastWord[9 : 2];
assign IBusCachedPlugin_predictor_historyWrite_payload_data_source = (IBusCachedPlugin_fetchPrediction_rsp_sourceLastWord >>> 4'd10);
assign IBusCachedPlugin_predictor_historyWrite_payload_data_target = IBusCachedPlugin_fetchPrediction_rsp_finalPc;
+ assign IBusCachedPlugin_predictor_historyWrite_payload_data_last2Bytes = (memory_PC[1] && memory_IS_RVC);
always @(*) begin
if(IBusCachedPlugin_fetchPrediction_rsp_wasRight) begin
IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish = (_zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish - _zz_IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish_3);
@@ -3041,9 +5175,19 @@ module w3d_host_vexriscv (
IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish = 2'b10;
end
end
+ if(IBusCachedPlugin_predictor_compressor_unalignedWordIssue) begin
+ IBusCachedPlugin_predictor_historyWrite_payload_data_branchWish = 2'b00;
+ end
end
assign when_Fetcher_l619 = (memory_PREDICTION_CONTEXT_hazard || (! memory_arbitration_isFiring));
+ assign IBusCachedPlugin_predictor_compressor_predictionBranch = ((IBusCachedPlugin_predictor_iBusRspContext_hit && (! IBusCachedPlugin_predictor_iBusRspContext_hazard)) && IBusCachedPlugin_predictor_iBusRspContext_line_branchWish[1]);
+ assign IBusCachedPlugin_predictor_compressor_unalignedWordIssue = (((IBusCachedPlugin_iBusRsp_output_valid && IBusCachedPlugin_predictor_compressor_predictionBranch) && IBusCachedPlugin_predictor_iBusRspContext_line_last2Bytes) && (IBusCachedPlugin_decompressor_unaligned ? (! IBusCachedPlugin_decompressor_isInputHighRvc) : (IBusCachedPlugin_decompressor_isInputLowRvc && (! IBusCachedPlugin_decompressor_isInputHighRvc))));
+ assign when_Fetcher_l634 = (IBusCachedPlugin_predictor_iBusRspContext_line_last2Bytes && (IBusCachedPlugin_decompressor_bufferValid || ((! IBusCachedPlugin_decompressor_throw2Bytes) && IBusCachedPlugin_decompressor_isInputLowRvc)));
+ assign IBusCachedPlugin_injector_decodeInput_fire = (IBusCachedPlugin_injector_decodeInput_valid && IBusCachedPlugin_injector_decodeInput_ready);
+ assign IBusCachedPlugin_decodePc_predictionPcLoad_valid = (((IBusCachedPlugin_predictor_injectorContext_line_branchWish[1] && IBusCachedPlugin_predictor_injectorContext_hit) && (! IBusCachedPlugin_predictor_injectorContext_hazard)) && IBusCachedPlugin_injector_decodeInput_fire);
+ assign IBusCachedPlugin_decodePc_predictionPcLoad_payload = IBusCachedPlugin_predictor_injectorContext_line_target;
+ assign when_Fetcher_l640 = (((IBusCachedPlugin_predictor_iBusRspContext_line_branchWish[1] && IBusCachedPlugin_predictor_iBusRspContextOutput_hit) && (! IBusCachedPlugin_predictor_iBusRspContext_hazard)) && IBusCachedPlugin_decompressor_output_fire);
assign iBus_cmd_valid = IBusCachedPlugin_cache_io_mem_cmd_valid;
always @(*) begin
iBus_cmd_payload_address = IBusCachedPlugin_cache_io_mem_cmd_payload_address;
@@ -3052,16 +5196,16 @@ module w3d_host_vexriscv (
assign iBus_cmd_payload_size = IBusCachedPlugin_cache_io_mem_cmd_payload_size;
assign IBusCachedPlugin_s0_tightlyCoupledHit = 1'b0;
- assign IBusCachedPlugin_cache_io_cpu_prefetch_isValid = (IBusCachedPlugin_iBusRsp_stages_0_input_valid && (! IBusCachedPlugin_s0_tightlyCoupledHit));
- assign IBusCachedPlugin_cache_io_cpu_fetch_isValid = (IBusCachedPlugin_iBusRsp_stages_1_input_valid && (! IBusCachedPlugin_s1_tightlyCoupledHit));
- assign IBusCachedPlugin_cache_io_cpu_fetch_isStuck = (! IBusCachedPlugin_iBusRsp_stages_1_input_ready);
+ assign IBusCachedPlugin_cache_io_cpu_prefetch_isValid = (IBusCachedPlugin_iBusRsp_stages_1_input_valid && (! IBusCachedPlugin_s0_tightlyCoupledHit));
+ assign IBusCachedPlugin_cache_io_cpu_fetch_isValid = (IBusCachedPlugin_iBusRsp_stages_2_input_valid && (! IBusCachedPlugin_s1_tightlyCoupledHit));
+ assign IBusCachedPlugin_cache_io_cpu_fetch_isStuck = (! IBusCachedPlugin_iBusRsp_stages_2_input_ready);
assign IBusCachedPlugin_mmuBus_cmd_0_isValid = IBusCachedPlugin_cache_io_cpu_fetch_isValid;
- assign IBusCachedPlugin_mmuBus_cmd_0_isStuck = (! IBusCachedPlugin_iBusRsp_stages_1_input_ready);
- assign IBusCachedPlugin_mmuBus_cmd_0_virtualAddress = IBusCachedPlugin_iBusRsp_stages_1_input_payload;
+ assign IBusCachedPlugin_mmuBus_cmd_0_isStuck = (! IBusCachedPlugin_iBusRsp_stages_2_input_ready);
+ assign IBusCachedPlugin_mmuBus_cmd_0_virtualAddress = IBusCachedPlugin_iBusRsp_stages_2_input_payload;
assign IBusCachedPlugin_mmuBus_cmd_0_bypassTranslation = 1'b0;
- assign IBusCachedPlugin_mmuBus_end = (IBusCachedPlugin_iBusRsp_stages_1_input_ready || IBusCachedPlugin_externalFlush);
- assign IBusCachedPlugin_cache_io_cpu_decode_isValid = (IBusCachedPlugin_iBusRsp_stages_2_input_valid && (! IBusCachedPlugin_s2_tightlyCoupledHit));
- assign IBusCachedPlugin_cache_io_cpu_decode_isStuck = (! IBusCachedPlugin_iBusRsp_stages_2_input_ready);
+ assign IBusCachedPlugin_mmuBus_end = (IBusCachedPlugin_iBusRsp_stages_2_input_ready || IBusCachedPlugin_externalFlush);
+ assign IBusCachedPlugin_cache_io_cpu_decode_isValid = (IBusCachedPlugin_iBusRsp_stages_3_input_valid && (! IBusCachedPlugin_s2_tightlyCoupledHit));
+ assign IBusCachedPlugin_cache_io_cpu_decode_isStuck = (! IBusCachedPlugin_iBusRsp_stages_3_input_ready);
assign IBusCachedPlugin_cache_io_cpu_decode_isUser = (CsrPlugin_privilege == 2'b00);
assign IBusCachedPlugin_rsp_iBusRspOutputHalt = 1'b0;
assign IBusCachedPlugin_rsp_issueDetected = 1'b0;
@@ -3102,16 +5246,16 @@ module w3d_host_vexriscv (
end
end
- assign IBusCachedPlugin_decodeExceptionPort_payload_badAddr = {IBusCachedPlugin_iBusRsp_stages_2_input_payload[31 : 2],2'b00};
+ assign IBusCachedPlugin_decodeExceptionPort_payload_badAddr = {IBusCachedPlugin_iBusRsp_stages_3_input_payload[31 : 2],2'b00};
assign when_IBusCachedPlugin_l245 = ((IBusCachedPlugin_cache_io_cpu_decode_isValid && IBusCachedPlugin_cache_io_cpu_decode_mmuRefilling) && (! IBusCachedPlugin_rsp_issueDetected));
assign when_IBusCachedPlugin_l250 = ((IBusCachedPlugin_cache_io_cpu_decode_isValid && IBusCachedPlugin_cache_io_cpu_decode_mmuException) && (! IBusCachedPlugin_rsp_issueDetected_1));
assign when_IBusCachedPlugin_l256 = ((IBusCachedPlugin_cache_io_cpu_decode_isValid && IBusCachedPlugin_cache_io_cpu_decode_cacheMiss) && (! IBusCachedPlugin_rsp_issueDetected_2));
assign when_IBusCachedPlugin_l262 = ((IBusCachedPlugin_cache_io_cpu_decode_isValid && IBusCachedPlugin_cache_io_cpu_decode_error) && (! IBusCachedPlugin_rsp_issueDetected_3));
assign when_IBusCachedPlugin_l273 = (IBusCachedPlugin_rsp_issueDetected_4 || IBusCachedPlugin_rsp_iBusRspOutputHalt);
- assign IBusCachedPlugin_iBusRsp_output_valid = IBusCachedPlugin_iBusRsp_stages_2_output_valid;
- assign IBusCachedPlugin_iBusRsp_stages_2_output_ready = IBusCachedPlugin_iBusRsp_output_ready;
+ assign IBusCachedPlugin_iBusRsp_output_valid = IBusCachedPlugin_iBusRsp_stages_3_output_valid;
+ assign IBusCachedPlugin_iBusRsp_stages_3_output_ready = IBusCachedPlugin_iBusRsp_output_ready;
assign IBusCachedPlugin_iBusRsp_output_payload_rsp_inst = IBusCachedPlugin_cache_io_cpu_decode_data;
- assign IBusCachedPlugin_iBusRsp_output_payload_pc = IBusCachedPlugin_iBusRsp_stages_2_output_payload;
+ assign IBusCachedPlugin_iBusRsp_output_payload_pc = IBusCachedPlugin_iBusRsp_stages_3_output_payload;
assign IBusCachedPlugin_cache_io_flush = (decode_arbitration_isValid && decode_FLUSH_ALL);
assign dBus_cmd_valid = dataCache_1_io_mem_cmd_valid;
assign dBus_cmd_payload_wr = dataCache_1_io_mem_cmd_payload_wr;
@@ -3169,7 +5313,13 @@ module w3d_host_vexriscv (
assign dataCache_1_io_cpu_writeBack_isUser = (CsrPlugin_privilege == 2'b00);
assign dataCache_1_io_cpu_writeBack_address = writeBack_REGFILE_WRITE_DATA;
- assign dataCache_1_io_cpu_writeBack_storeData[31 : 0] = writeBack_MEMORY_STORE_DATA_RF;
+ always @(*) begin
+ dataCache_1_io_cpu_writeBack_storeData[31 : 0] = writeBack_MEMORY_STORE_DATA_RF;
+ if(DBusBypass0_cond) begin
+ dataCache_1_io_cpu_writeBack_storeData[31 : 0] = DBusBypass0_value;
+ end
+ end
+
always @(*) begin
DBusCachedPlugin_redoBranch_valid = 1'b0;
if(when_DBusCachedPlugin_l534) begin
@@ -3229,7 +5379,7 @@ module w3d_host_vexriscv (
end
assign writeBack_DBusCachedPlugin_rspRf = writeBack_DBusCachedPlugin_rspShifted[31 : 0];
- assign switch_Misc_l241 = writeBack_INSTRUCTION[13 : 12];
+ assign switch_Misc_l241_2 = writeBack_INSTRUCTION[13 : 12];
assign _zz_writeBack_DBusCachedPlugin_rspFormated = (writeBack_DBusCachedPlugin_rspRf[7] && (! writeBack_INSTRUCTION[14]));
always @(*) begin
_zz_writeBack_DBusCachedPlugin_rspFormated_1[31] = _zz_writeBack_DBusCachedPlugin_rspFormated;
@@ -3281,7 +5431,7 @@ module w3d_host_vexriscv (
end
always @(*) begin
- case(switch_Misc_l241)
+ case(switch_Misc_l241_2)
2'b00 : begin
writeBack_DBusCachedPlugin_rspFormated = _zz_writeBack_DBusCachedPlugin_rspFormated_1;
end
@@ -3314,12 +5464,17 @@ module w3d_host_vexriscv (
assign DBusCachedPlugin_mmuBus_rsp_refilling = 1'b0;
assign DBusCachedPlugin_mmuBus_busy = 1'b0;
assign _zz_decode_IS_CSR_1 = ((decode_INSTRUCTION & 32'h00004050) == 32'h00004050);
- assign _zz_decode_IS_CSR_2 = ((decode_INSTRUCTION & 32'h00000018) == 32'h00000000);
- assign _zz_decode_IS_CSR_3 = ((decode_INSTRUCTION & 32'h00000004) == 32'h00000004);
- assign _zz_decode_IS_CSR_4 = ((decode_INSTRUCTION & 32'h00000048) == 32'h00000048);
- assign _zz_decode_IS_CSR_5 = ((decode_INSTRUCTION & 32'h00000030) == 32'h00000010);
- assign _zz_decode_IS_CSR_6 = ((decode_INSTRUCTION & 32'h00001000) == 32'h00000000);
- assign _zz_decode_IS_CSR = {(|{_zz_decode_IS_CSR_4,(_zz__zz_decode_IS_CSR == _zz__zz_decode_IS_CSR_1)}),{(|(_zz__zz_decode_IS_CSR_2 == _zz__zz_decode_IS_CSR_3)),{(|_zz__zz_decode_IS_CSR_4),{(|_zz__zz_decode_IS_CSR_5),{_zz__zz_decode_IS_CSR_8,{_zz__zz_decode_IS_CSR_9,_zz__zz_decode_IS_CSR_10}}}}}};
+ assign _zz_decode_IS_CSR_2 = ((decode_INSTRUCTION & 32'h00000014) == 32'h00000014);
+ assign _zz_decode_IS_CSR_3 = ((decode_INSTRUCTION & 32'h00000008) == 32'h00000008);
+ assign _zz_decode_IS_CSR_4 = ((decode_INSTRUCTION & 32'h00000058) == 32'h00000000);
+ assign _zz_decode_IS_CSR_5 = ((decode_INSTRUCTION & 32'h00002004) == 32'h00000004);
+ assign _zz_decode_IS_CSR_6 = ((decode_INSTRUCTION & 32'h90000010) == 32'h80000010);
+ assign _zz_decode_IS_CSR_7 = ((decode_INSTRUCTION & 32'h00000028) == 32'h00000028);
+ assign _zz_decode_IS_CSR_8 = ((decode_INSTRUCTION & 32'h00000070) == 32'h00000010);
+ assign _zz_decode_IS_CSR_9 = ((decode_INSTRUCTION & 32'h00000004) == 32'h00000004);
+ assign _zz_decode_IS_CSR_10 = ((decode_INSTRUCTION & 32'h00000020) == 32'h00000020);
+ assign _zz_decode_IS_CSR_11 = ((decode_INSTRUCTION & 32'h00001000) == 32'h00000000);
+ assign _zz_decode_IS_CSR = {(|{_zz_decode_IS_CSR_7,(_zz__zz_decode_IS_CSR == _zz__zz_decode_IS_CSR_1)}),{(|(_zz__zz_decode_IS_CSR_2 == _zz__zz_decode_IS_CSR_3)),{(|_zz__zz_decode_IS_CSR_4),{(|_zz__zz_decode_IS_CSR_5),{_zz__zz_decode_IS_CSR_6,{_zz__zz_decode_IS_CSR_11,_zz__zz_decode_IS_CSR_12}}}}}};
assign _zz_decode_SRC1_CTRL_2 = _zz_decode_IS_CSR[2 : 1];
assign _zz_decode_SRC1_CTRL_1 = _zz_decode_SRC1_CTRL_2;
assign _zz_decode_ALU_CTRL_2 = _zz_decode_IS_CSR[7 : 6];
@@ -3328,11 +5483,14 @@ module w3d_host_vexriscv (
assign _zz_decode_SRC2_CTRL_1 = _zz_decode_SRC2_CTRL_2;
assign _zz_decode_ALU_BITWISE_CTRL_2 = _zz_decode_IS_CSR[19 : 18];
assign _zz_decode_ALU_BITWISE_CTRL_1 = _zz_decode_ALU_BITWISE_CTRL_2;
- assign _zz_decode_SHIFT_CTRL_2 = _zz_decode_IS_CSR[22 : 21];
+ assign _zz_decode_FPU_ENABLE = _zz_decode_IS_CSR[21];
+ assign _zz_decode_FPU_OPCODE_2 = _zz_decode_IS_CSR[27 : 24];
+ assign _zz_decode_FPU_OPCODE_1 = _zz_decode_FPU_OPCODE_2;
+ assign _zz_decode_SHIFT_CTRL_2 = _zz_decode_IS_CSR[32 : 31];
assign _zz_decode_SHIFT_CTRL_1 = _zz_decode_SHIFT_CTRL_2;
- assign _zz_decode_ENV_CTRL_2 = _zz_decode_IS_CSR[28 : 28];
+ assign _zz_decode_ENV_CTRL_2 = _zz_decode_IS_CSR[39 : 38];
assign _zz_decode_ENV_CTRL_1 = _zz_decode_ENV_CTRL_2;
- assign _zz_decode_BRANCH_CTRL_2 = _zz_decode_IS_CSR[30 : 29];
+ assign _zz_decode_BRANCH_CTRL_2 = _zz_decode_IS_CSR[41 : 40];
assign _zz_decode_BRANCH_CTRL_1 = _zz_decode_BRANCH_CTRL_2;
assign decodeExceptionPort_valid = (decode_arbitration_isValid && (! decode_LEGAL_INSTRUCTION));
assign decodeExceptionPort_payload_code = 4'b0010;
@@ -3391,10 +5549,136 @@ module w3d_host_vexriscv (
endcase
end
+ assign FpuPlugin_port_cmd_ready = FpuPlugin_fpu_io_port_0_cmd_ready;
+ assign FpuPlugin_port_commit_ready = FpuPlugin_fpu_io_port_0_commit_ready;
+ assign FpuPlugin_port_rsp_valid = FpuPlugin_fpu_io_port_0_rsp_valid;
+ assign FpuPlugin_port_rsp_payload_value = FpuPlugin_fpu_io_port_0_rsp_payload_value;
+ assign FpuPlugin_port_rsp_payload_NV = FpuPlugin_fpu_io_port_0_rsp_payload_NV;
+ assign FpuPlugin_port_rsp_payload_NX = FpuPlugin_fpu_io_port_0_rsp_payload_NX;
+ assign FpuPlugin_port_completion_valid = FpuPlugin_fpu_io_port_0_completion_valid;
+ assign FpuPlugin_port_completion_payload_flags_NX = FpuPlugin_fpu_io_port_0_completion_payload_flags_NX;
+ assign FpuPlugin_port_completion_payload_flags_UF = FpuPlugin_fpu_io_port_0_completion_payload_flags_UF;
+ assign FpuPlugin_port_completion_payload_flags_OF = FpuPlugin_fpu_io_port_0_completion_payload_flags_OF;
+ assign FpuPlugin_port_completion_payload_flags_DZ = FpuPlugin_fpu_io_port_0_completion_payload_flags_DZ;
+ assign FpuPlugin_port_completion_payload_flags_NV = FpuPlugin_fpu_io_port_0_completion_payload_flags_NV;
+ assign FpuPlugin_port_completion_payload_written = FpuPlugin_fpu_io_port_0_completion_payload_written;
+ assign FpuPlugin_port_cmd_fire = (FpuPlugin_port_cmd_valid && FpuPlugin_port_cmd_ready);
+ assign FpuPlugin_port_rsp_fire = (FpuPlugin_port_rsp_valid && FpuPlugin_port_rsp_ready);
+ assign FpuPlugin_hasPending = (FpuPlugin_pendings != 6'h00);
+ assign when_FpuPlugin_l215 = (FpuPlugin_port_completion_valid && FpuPlugin_port_completion_payload_flags_NV);
+ assign when_FpuPlugin_l216 = (FpuPlugin_port_completion_valid && FpuPlugin_port_completion_payload_flags_DZ);
+ assign when_FpuPlugin_l217 = (FpuPlugin_port_completion_valid && FpuPlugin_port_completion_payload_flags_OF);
+ assign when_FpuPlugin_l218 = (FpuPlugin_port_completion_valid && FpuPlugin_port_completion_payload_flags_UF);
+ assign when_FpuPlugin_l219 = (FpuPlugin_port_completion_valid && FpuPlugin_port_completion_payload_flags_NX);
+ assign FpuPlugin_csrActive = (execute_arbitration_isValid && execute_IS_CSR);
+ assign when_FpuPlugin_l229 = (FpuPlugin_csrActive && FpuPlugin_hasPending);
+ assign FpuPlugin_sd = (FpuPlugin_fs == 2'b11);
+ assign when_FpuPlugin_l234 = (FpuPlugin_port_completion_valid && (FpuPlugin_port_completion_payload_written || (|{FpuPlugin_port_completion_payload_flags_NV,{FpuPlugin_port_completion_payload_flags_DZ,{FpuPlugin_port_completion_payload_flags_OF,{FpuPlugin_port_completion_payload_flags_UF,FpuPlugin_port_completion_payload_flags_NX}}}})));
+ always @(*) begin
+ _zz_when_FpuPlugin_l237 = 1'b0;
+ if(execute_CsrPlugin_csr_2) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ _zz_when_FpuPlugin_l237 = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ _zz_when_FpuPlugin_l237_1 = 1'b0;
+ if(execute_CsrPlugin_csr_3) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ _zz_when_FpuPlugin_l237_1 = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ _zz_when_FpuPlugin_l237_2 = 1'b0;
+ if(execute_CsrPlugin_csr_1) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ _zz_when_FpuPlugin_l237_2 = 1'b1;
+ end
+ end
+ end
+
+ assign when_FpuPlugin_l237 = (|{_zz_when_FpuPlugin_l237_2,{_zz_when_FpuPlugin_l237_1,_zz_when_FpuPlugin_l237}});
+ always @(*) begin
+ FpuPlugin_accessFpuCsr = 1'b0;
+ if(execute_CsrPlugin_csr_3) begin
+ FpuPlugin_accessFpuCsr = 1'b1;
+ end
+ if(execute_CsrPlugin_csr_2) begin
+ FpuPlugin_accessFpuCsr = 1'b1;
+ end
+ if(execute_CsrPlugin_csr_1) begin
+ FpuPlugin_accessFpuCsr = 1'b1;
+ end
+ end
+
+ assign when_FpuPlugin_l253 = ((FpuPlugin_accessFpuCsr && (FpuPlugin_fs == 2'b00)) && (! debugMode));
+ assign _zz_decode_FPU_FORKED = 1'b0;
+ assign decode_FpuPlugin_trap = (((_zz_decode_FPU_ENABLE && (FpuPlugin_fs == 2'b00)) && (! debugMode)) && (! (|{writeBack_arbitration_isValid,{memory_arbitration_isValid,execute_arbitration_isValid}})));
+ assign when_FpuPlugin_l268 = (FpuPlugin_port_cmd_fire && (! _zz_decode_FPU_FORKED));
+ assign when_FpuPlugin_l268_1 = (! decode_arbitration_isStuck);
+ assign decode_FpuPlugin_hazard = ((FpuPlugin_pendings[5] || FpuPlugin_csrActive) || ((FpuPlugin_fs == 2'b00) && (! debugMode)));
+ assign when_FpuPlugin_l272 = (! decode_LEGAL_INSTRUCTION);
+ assign when_FpuPlugin_l273 = ((decode_arbitration_isValid && decode_FPU_ENABLE) && decode_FpuPlugin_hazard);
+ assign FpuPlugin_port_cmd_isStall = (FpuPlugin_port_cmd_valid && (! FpuPlugin_port_cmd_ready));
+ assign decode_FpuPlugin_iRoundMode = decode_INSTRUCTION[14 : 12];
+ assign decode_FpuPlugin_roundMode = ((decode_INSTRUCTION[14 : 12] == 3'b111) ? FpuPlugin_rm : decode_INSTRUCTION[14 : 12]);
+ assign FpuPlugin_port_cmd_valid = (((decode_arbitration_isValid && decode_FPU_ENABLE) && (! decode_FpuPlugin_forked)) && (! decode_FpuPlugin_hazard));
+ assign FpuPlugin_port_cmd_payload_opcode = decode_FPU_OPCODE;
+ assign FpuPlugin_port_cmd_payload_arg = decode_FPU_ARG;
+ assign FpuPlugin_port_cmd_payload_rs1 = decode_INSTRUCTION[19 : 15];
+ assign FpuPlugin_port_cmd_payload_rs2 = decode_INSTRUCTION[24 : 20];
+ assign FpuPlugin_port_cmd_payload_rs3 = decode_INSTRUCTION[31 : 27];
+ assign FpuPlugin_port_cmd_payload_rd = decode_INSTRUCTION[11 : 7];
+ assign FpuPlugin_port_cmd_payload_format = FpuFormat_FLOAT;
+ assign _zz_FpuPlugin_port_cmd_payload_roundMode_1 = decode_FpuPlugin_roundMode;
+ assign _zz_FpuPlugin_port_cmd_payload_roundMode = _zz_FpuPlugin_port_cmd_payload_roundMode_1;
+ assign FpuPlugin_port_cmd_payload_roundMode = _zz_FpuPlugin_port_cmd_payload_roundMode;
+ assign writeBack_FpuPlugin_isRsp = (writeBack_FPU_FORKED && writeBack_FPU_RSP);
+ assign writeBack_FpuPlugin_isCommit = (writeBack_FPU_FORKED && writeBack_FPU_COMMIT);
+ assign writeBack_FpuPlugin_storeFormated = FpuPlugin_port_rsp_payload_value;
+ always @(*) begin
+ FpuPlugin_port_rsp_ready = 1'b0;
+ if(writeBack_FpuPlugin_isRsp) begin
+ if(!when_FpuPlugin_l323) begin
+ if(when_FpuPlugin_l325) begin
+ FpuPlugin_port_rsp_ready = 1'b1;
+ end
+ end
+ end
+ end
+
+ assign DBusBypass0_value = writeBack_FpuPlugin_storeFormated;
+ assign when_FpuPlugin_l315 = ((! writeBack_arbitration_isStuck) && (! writeBack_arbitration_removeIt));
+ assign when_FpuPlugin_l318 = (FpuPlugin_port_rsp_payload_NV || FpuPlugin_port_rsp_payload_NX);
+ assign when_FpuPlugin_l323 = (! FpuPlugin_port_rsp_valid);
+ assign when_FpuPlugin_l325 = (! writeBack_arbitration_haltItself);
+ assign writeBack_FpuPlugin_commit_valid = (writeBack_FpuPlugin_isCommit && (! writeBack_arbitration_isStuck));
+ assign writeBack_FpuPlugin_commit_payload_value[31 : 0] = (writeBack_FPU_COMMIT_LOAD ? writeBack_MEMORY_LOAD_DATA[31 : 0] : writeBack_RS1);
+ assign writeBack_FpuPlugin_commit_payload_write = (writeBack_arbitration_isValid && (! writeBack_arbitration_removeIt));
+ assign writeBack_FpuPlugin_commit_payload_opcode = writeBack_FPU_OPCODE;
+ assign writeBack_FpuPlugin_commit_payload_rd = writeBack_INSTRUCTION[11 : 7];
+ assign when_FpuPlugin_l339 = (writeBack_FpuPlugin_isCommit && (! writeBack_FpuPlugin_commit_ready));
+ assign writeBack_FpuPlugin_commit_ready = writeBack_FpuPlugin_commit_rValidN;
+ assign writeBack_FpuPlugin_commit_s2mPipe_valid = (writeBack_FpuPlugin_commit_valid || (! writeBack_FpuPlugin_commit_rValidN));
+ assign _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode = (writeBack_FpuPlugin_commit_rValidN ? writeBack_FpuPlugin_commit_payload_opcode : writeBack_FpuPlugin_commit_rData_opcode);
+ assign writeBack_FpuPlugin_commit_s2mPipe_payload_opcode = _zz_writeBack_FpuPlugin_commit_s2mPipe_payload_opcode;
+ assign writeBack_FpuPlugin_commit_s2mPipe_payload_rd = (writeBack_FpuPlugin_commit_rValidN ? writeBack_FpuPlugin_commit_payload_rd : writeBack_FpuPlugin_commit_rData_rd);
+ assign writeBack_FpuPlugin_commit_s2mPipe_payload_write = (writeBack_FpuPlugin_commit_rValidN ? writeBack_FpuPlugin_commit_payload_write : writeBack_FpuPlugin_commit_rData_write);
+ assign writeBack_FpuPlugin_commit_s2mPipe_payload_value = (writeBack_FpuPlugin_commit_rValidN ? writeBack_FpuPlugin_commit_payload_value : writeBack_FpuPlugin_commit_rData_value);
+ assign FpuPlugin_port_commit_valid = writeBack_FpuPlugin_commit_s2mPipe_valid;
+ assign writeBack_FpuPlugin_commit_s2mPipe_ready = FpuPlugin_port_commit_ready;
+ assign FpuPlugin_port_commit_payload_opcode = writeBack_FpuPlugin_commit_s2mPipe_payload_opcode;
+ assign FpuPlugin_port_commit_payload_rd = writeBack_FpuPlugin_commit_s2mPipe_payload_rd;
+ assign FpuPlugin_port_commit_payload_write = writeBack_FpuPlugin_commit_s2mPipe_payload_write;
+ assign FpuPlugin_port_commit_payload_value = writeBack_FpuPlugin_commit_s2mPipe_payload_value;
always @(*) begin
case(execute_SRC1_CTRL)
Src1CtrlEnum_RS : begin
- _zz_execute_SRC1 = execute_RS1;
+ _zz_execute_SRC1 = _zz_execute_to_memory_RS1;
end
Src1CtrlEnum_PC_INCREMENT : begin
_zz_execute_SRC1 = {29'd0, _zz__zz_execute_SRC1};
@@ -3724,16 +6008,335 @@ module w3d_host_vexriscv (
end
always @(*) begin
- CsrPlugin_privilege = 2'b11;
+ when_CsrPlugin_l818 = 1'b0;
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ when_CsrPlugin_l818 = 1'b1;
+ end
+ end
+ if(when_CsrPlugin_l1390) begin
+ when_CsrPlugin_l818 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ CsrPlugin_privilege = _zz_CsrPlugin_privilege;
if(CsrPlugin_forceMachineWire) begin
CsrPlugin_privilege = 2'b11;
end
end
+ assign debugMode = (! CsrPlugin_running);
+ assign when_CsrPlugin_l711 = (! CsrPlugin_running);
+ always @(*) begin
+ debugBus_resume_rsp_valid = 1'b0;
+ if(CsrPlugin_doResume) begin
+ debugBus_resume_rsp_valid = 1'b1;
+ end
+ end
+
+ assign debugBus_running = CsrPlugin_running;
+ assign debugBus_halted = (! CsrPlugin_running);
+ assign bufferCC_4_io_dataIn = (! resetn);
+ assign debugBus_unavailable = bufferCC_4_io_dataOut;
+ assign debugBus_haveReset = _zz_debugBus_haveReset;
+ assign CsrPlugin_enterHalt = ((! CsrPlugin_running_aheadValue) && CsrPlugin_running_aheadValue_regNext);
+ assign when_CsrPlugin_l729 = ((debugBus_haltReq && debugBus_running) && (! debugMode));
+ assign CsrPlugin_forceResume = 1'b0;
+ assign CsrPlugin_doResume = (CsrPlugin_forceResume || _zz_CsrPlugin_doResume);
+ always @(*) begin
+ CsrPlugin_timeout_stateRise = 1'b0;
+ if(CsrPlugin_timeout_counter_willOverflow) begin
+ CsrPlugin_timeout_stateRise = (! CsrPlugin_timeout_state);
+ end
+ if(when_CsrPlugin_l735) begin
+ CsrPlugin_timeout_stateRise = 1'b0;
+ end
+ if(CsrPlugin_inject_cmd_valid) begin
+ CsrPlugin_timeout_stateRise = 1'b0;
+ end
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ CsrPlugin_timeout_stateRise = 1'b0;
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ CsrPlugin_timeout_counter_willClear = 1'b0;
+ if(when_CsrPlugin_l735) begin
+ CsrPlugin_timeout_counter_willClear = 1'b1;
+ end
+ if(CsrPlugin_inject_cmd_valid) begin
+ CsrPlugin_timeout_counter_willClear = 1'b1;
+ end
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ CsrPlugin_timeout_counter_willClear = 1'b1;
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign CsrPlugin_timeout_counter_willOverflowIfInc = (CsrPlugin_timeout_counter_value == 3'b110);
+ assign CsrPlugin_timeout_counter_willOverflow = (CsrPlugin_timeout_counter_willOverflowIfInc && CsrPlugin_timeout_counter_willIncrement);
+ always @(*) begin
+ if(CsrPlugin_timeout_counter_willOverflow) begin
+ CsrPlugin_timeout_counter_valueNext = 3'b000;
+ end else begin
+ CsrPlugin_timeout_counter_valueNext = (CsrPlugin_timeout_counter_value + _zz_CsrPlugin_timeout_counter_valueNext);
+ end
+ if(CsrPlugin_timeout_counter_willClear) begin
+ CsrPlugin_timeout_counter_valueNext = 3'b000;
+ end
+ end
+
+ assign CsrPlugin_timeout_counter_willIncrement = 1'b1;
+ assign when_CsrPlugin_l735 = (|{writeBack_arbitration_isValid,{memory_arbitration_isValid,execute_arbitration_isValid}});
+ always @(*) begin
+ _zz_debugBus_hartToDm_valid = 1'b0;
+ if(execute_CsrPlugin_csr_1972) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ _zz_debugBus_hartToDm_valid = 1'b1;
+ end
+ end
+ end
+
+ assign debugBus_hartToDm_valid = _zz_debugBus_hartToDm_valid;
+ assign debugBus_hartToDm_payload_address = 4'b0000;
+ assign debugBus_hartToDm_payload_data = execute_SRC1;
+ assign when_CsrPlugin_l750 = (debugBus_dmToHart_valid && (debugBus_dmToHart_payload_op == DebugDmToHartOp_DATA));
+ assign CsrPlugin_inject_cmd_valid = (debugBus_dmToHart_valid && (((debugBus_dmToHart_payload_op == DebugDmToHartOp_EXECUTE) || (debugBus_dmToHart_payload_op == DebugDmToHartOp_REG_READ)) || (debugBus_dmToHart_payload_op == DebugDmToHartOp_REG_WRITE)));
+ assign CsrPlugin_inject_cmd_payload_op = debugBus_dmToHart_payload_op;
+ assign CsrPlugin_inject_cmd_payload_address = debugBus_dmToHart_payload_address;
+ assign CsrPlugin_inject_cmd_payload_data = debugBus_dmToHart_payload_data;
+ assign CsrPlugin_inject_cmd_payload_size = debugBus_dmToHart_payload_size;
+ assign CsrPlugin_inject_cmd_toStream_valid = CsrPlugin_inject_cmd_valid;
+ assign CsrPlugin_inject_cmd_toStream_payload_op = CsrPlugin_inject_cmd_payload_op;
+ assign CsrPlugin_inject_cmd_toStream_payload_address = CsrPlugin_inject_cmd_payload_address;
+ assign CsrPlugin_inject_cmd_toStream_payload_data = CsrPlugin_inject_cmd_payload_data;
+ assign CsrPlugin_inject_cmd_toStream_payload_size = CsrPlugin_inject_cmd_payload_size;
+ always @(*) begin
+ CsrPlugin_inject_cmd_toStream_ready = CsrPlugin_inject_buffer_ready;
+ if(when_Stream_l369) begin
+ CsrPlugin_inject_cmd_toStream_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369 = (! CsrPlugin_inject_buffer_valid);
+ assign CsrPlugin_inject_buffer_valid = CsrPlugin_inject_cmd_toStream_rValid;
+ assign CsrPlugin_inject_buffer_payload_op = CsrPlugin_inject_cmd_toStream_rData_op;
+ assign CsrPlugin_inject_buffer_payload_address = CsrPlugin_inject_cmd_toStream_rData_address;
+ assign CsrPlugin_inject_buffer_payload_data = CsrPlugin_inject_cmd_toStream_rData_data;
+ assign CsrPlugin_inject_buffer_payload_size = CsrPlugin_inject_cmd_toStream_rData_size;
+ assign CsrPlugin_injectionPort_valid = (CsrPlugin_inject_buffer_valid && (CsrPlugin_inject_buffer_payload_op == DebugDmToHartOp_EXECUTE));
+ assign CsrPlugin_injectionPort_payload = CsrPlugin_inject_buffer_payload_data;
+ assign CsrPlugin_injectionPort_fire = (CsrPlugin_injectionPort_valid && CsrPlugin_injectionPort_ready);
+ assign CsrPlugin_inject_buffer_ready = CsrPlugin_injectionPort_fire;
+ assign debugBus_regSuccess = 1'b0;
+ assign when_CsrPlugin_l786 = (CsrPlugin_inject_cmd_valid && (debugBus_dmToHart_payload_op == DebugDmToHartOp_EXECUTE));
+ assign when_CsrPlugin_l786_1 = (((debugBus_exception || debugBus_commit) || debugBus_ebreak) || debugBus_redo);
+ assign debugBus_redo = (CsrPlugin_inject_pending && CsrPlugin_timeout_state);
+ assign CsrPlugin_dcsr_nmip = 1'b0;
+ assign CsrPlugin_dcsr_mprven = 1'b1;
+ assign CsrPlugin_dcsr_xdebugver = 4'b0100;
+ assign CsrPlugin_dcsr_stepLogic_wantExit = 1'b0;
+ always @(*) begin
+ CsrPlugin_dcsr_stepLogic_wantStart = 1'b0;
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ end
+ default : begin
+ CsrPlugin_dcsr_stepLogic_wantStart = 1'b1;
+ end
+ endcase
+ end
+
+ assign CsrPlugin_dcsr_stepLogic_wantKill = 1'b0;
+ always @(*) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_stateReg;
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ if(when_CsrPlugin_l812) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_SINGLE;
+ end
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ if(when_CsrPlugin_l818) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1;
+ end
+ if(decode_arbitration_isFiring) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1;
+ end
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ if(when_CsrPlugin_l830) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_SINGLE;
+ end
+ end
+ default : begin
+ end
+ endcase
+ if(CsrPlugin_enterHalt) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_IDLE;
+ end
+ if(CsrPlugin_dcsr_stepLogic_wantStart) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_IDLE;
+ end
+ if(CsrPlugin_dcsr_stepLogic_wantKill) begin
+ CsrPlugin_dcsr_stepLogic_stateNext = CsrPlugin_dcsr_stepLogic_enumDef_BOOT;
+ end
+ end
+
+ assign when_CsrPlugin_l812 = (CsrPlugin_dcsr_step && debugBus_resume_rsp_valid);
+ assign when_CsrPlugin_l830 = ((! CsrPlugin_doHalt) && CsrPlugin_timeout_state);
+ assign when_CsrPlugin_l862 = ((debugMode || CsrPlugin_dcsr_step) || debugBus_haltReq);
+ assign CsrPlugin_trigger_tselect_outOfRange = 1'b0;
+ always @(*) begin
+ CsrPlugin_trigger_decodeBreak_enabled = 1'b0;
+ if(CsrPlugin_trigger_slots_0_tdata2_execute_hit) begin
+ CsrPlugin_trigger_decodeBreak_enabled = 1'b1;
+ end
+ if(CsrPlugin_trigger_slots_1_tdata2_execute_hit) begin
+ CsrPlugin_trigger_decodeBreak_enabled = 1'b1;
+ end
+ if(when_CsrPlugin_l958) begin
+ CsrPlugin_trigger_decodeBreak_enabled = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ CsrPlugin_trigger_decodeBreak_timeout_stateRise = 1'b0;
+ if(CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflow) begin
+ CsrPlugin_trigger_decodeBreak_timeout_stateRise = (! CsrPlugin_trigger_decodeBreak_timeout_state);
+ end
+ if(when_Utils_l657) begin
+ CsrPlugin_trigger_decodeBreak_timeout_stateRise = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ CsrPlugin_trigger_decodeBreak_timeout_counter_willClear = 1'b0;
+ if(when_Utils_l657) begin
+ CsrPlugin_trigger_decodeBreak_timeout_counter_willClear = 1'b1;
+ end
+ end
+
+ assign CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflowIfInc = (CsrPlugin_trigger_decodeBreak_timeout_counter_value == 2'b10);
+ assign CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflow = (CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflowIfInc && CsrPlugin_trigger_decodeBreak_timeout_counter_willIncrement);
+ always @(*) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflow) begin
+ CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext = 2'b00;
+ end else begin
+ CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext = (CsrPlugin_trigger_decodeBreak_timeout_counter_value + _zz_CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext);
+ end
+ if(CsrPlugin_trigger_decodeBreak_timeout_counter_willClear) begin
+ CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext = 2'b00;
+ end
+ end
+
+ assign CsrPlugin_trigger_decodeBreak_timeout_counter_willIncrement = 1'b1;
+ assign when_Utils_l657 = ((! CsrPlugin_trigger_decodeBreak_enabled) || (|{writeBack_arbitration_isValid,{memory_arbitration_isValid,execute_arbitration_isValid}}));
+ assign CsrPlugin_trigger_slots_0_selected = (CsrPlugin_trigger_tselect_index == 1'b0);
+ always @(*) begin
+ CsrPlugin_trigger_slots_0_tdata1_read = 32'h00000000;
+ if(CsrPlugin_trigger_slots_0_selected) begin
+ CsrPlugin_trigger_slots_0_tdata1_read[2 : 2] = CsrPlugin_trigger_slots_0_tdata1_execute;
+ CsrPlugin_trigger_slots_0_tdata1_read[3 : 3] = CsrPlugin_trigger_slots_0_tdata1_u;
+ CsrPlugin_trigger_slots_0_tdata1_read[4 : 4] = CsrPlugin_trigger_slots_0_tdata1_s;
+ CsrPlugin_trigger_slots_0_tdata1_read[6 : 6] = CsrPlugin_trigger_slots_0_tdata1_m;
+ CsrPlugin_trigger_slots_0_tdata1_read[27 : 27] = CsrPlugin_trigger_slots_0_tdata1_dmode;
+ CsrPlugin_trigger_slots_0_tdata1_read[15 : 12] = CsrPlugin_trigger_slots_0_tdata1_action;
+ end
+ if(CsrPlugin_trigger_slots_0_selected) begin
+ CsrPlugin_trigger_slots_0_tdata1_read[31 : 28] = CsrPlugin_trigger_slots_0_tdata1_tpe;
+ end
+ if(CsrPlugin_trigger_slots_0_selected) begin
+ CsrPlugin_trigger_slots_0_tdata1_read[25 : 20] = 6'h1f;
+ end
+ end
+
+ assign CsrPlugin_trigger_slots_0_tdata1_tpe = 4'b0010;
+ always @(*) begin
+ case(CsrPlugin_privilege)
+ 2'b00 : begin
+ _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit = CsrPlugin_trigger_slots_0_tdata1_u;
+ end
+ 2'b01 : begin
+ _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit = CsrPlugin_trigger_slots_0_tdata1_s;
+ end
+ 2'b11 : begin
+ _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit = CsrPlugin_trigger_slots_0_tdata1_m;
+ end
+ default : begin
+ _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit = 1'b0;
+ end
+ endcase
+ end
+
+ assign CsrPlugin_trigger_slots_0_tdata1_privilegeHit = ((! debugMode) && _zz_CsrPlugin_trigger_slots_0_tdata1_privilegeHit);
+ assign CsrPlugin_trigger_slots_0_tdata2_execute_enabled = ((((! debugMode) && (CsrPlugin_trigger_slots_0_tdata1_action == 4'b0001)) && CsrPlugin_trigger_slots_0_tdata1_execute) && CsrPlugin_trigger_slots_0_tdata1_privilegeHit);
+ assign CsrPlugin_trigger_slots_0_tdata2_execute_hit = (CsrPlugin_trigger_slots_0_tdata2_execute_enabled && (CsrPlugin_trigger_slots_0_tdata2_value == decode_PC));
+ assign CsrPlugin_trigger_slots_1_selected = (CsrPlugin_trigger_tselect_index == 1'b1);
+ always @(*) begin
+ CsrPlugin_trigger_slots_1_tdata1_read = 32'h00000000;
+ if(CsrPlugin_trigger_slots_1_selected) begin
+ CsrPlugin_trigger_slots_1_tdata1_read[2 : 2] = CsrPlugin_trigger_slots_1_tdata1_execute;
+ CsrPlugin_trigger_slots_1_tdata1_read[3 : 3] = CsrPlugin_trigger_slots_1_tdata1_u;
+ CsrPlugin_trigger_slots_1_tdata1_read[4 : 4] = CsrPlugin_trigger_slots_1_tdata1_s;
+ CsrPlugin_trigger_slots_1_tdata1_read[6 : 6] = CsrPlugin_trigger_slots_1_tdata1_m;
+ CsrPlugin_trigger_slots_1_tdata1_read[27 : 27] = CsrPlugin_trigger_slots_1_tdata1_dmode;
+ CsrPlugin_trigger_slots_1_tdata1_read[15 : 12] = CsrPlugin_trigger_slots_1_tdata1_action;
+ end
+ if(CsrPlugin_trigger_slots_1_selected) begin
+ CsrPlugin_trigger_slots_1_tdata1_read[31 : 28] = CsrPlugin_trigger_slots_1_tdata1_tpe;
+ end
+ if(CsrPlugin_trigger_slots_1_selected) begin
+ CsrPlugin_trigger_slots_1_tdata1_read[25 : 20] = 6'h1f;
+ end
+ end
+
+ assign CsrPlugin_trigger_slots_1_tdata1_tpe = 4'b0010;
+ always @(*) begin
+ case(CsrPlugin_privilege)
+ 2'b00 : begin
+ _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit = CsrPlugin_trigger_slots_1_tdata1_u;
+ end
+ 2'b01 : begin
+ _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit = CsrPlugin_trigger_slots_1_tdata1_s;
+ end
+ 2'b11 : begin
+ _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit = CsrPlugin_trigger_slots_1_tdata1_m;
+ end
+ default : begin
+ _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit = 1'b0;
+ end
+ endcase
+ end
+
+ assign CsrPlugin_trigger_slots_1_tdata1_privilegeHit = ((! debugMode) && _zz_CsrPlugin_trigger_slots_1_tdata1_privilegeHit);
+ assign CsrPlugin_trigger_slots_1_tdata2_execute_enabled = ((((! debugMode) && (CsrPlugin_trigger_slots_1_tdata1_action == 4'b0001)) && CsrPlugin_trigger_slots_1_tdata1_execute) && CsrPlugin_trigger_slots_1_tdata1_privilegeHit);
+ assign CsrPlugin_trigger_slots_1_tdata2_execute_hit = (CsrPlugin_trigger_slots_1_tdata2_execute_enabled && (CsrPlugin_trigger_slots_1_tdata2_value == decode_PC));
+ assign when_CsrPlugin_l958 = (! decode_arbitration_isValid);
assign CsrPlugin_misa_base = 2'b01;
assign CsrPlugin_misa_extensions = 26'h0000042;
assign CsrPlugin_mtvec_mode = 2'b00;
- assign CsrPlugin_mtvec_base = 30'h00000008;
+ assign CsrPlugin_mtvec_base = 30'h00000000;
assign _zz_when_CsrPlugin_l1302 = (CsrPlugin_mip_MTIP && CsrPlugin_mie_MTIE);
assign _zz_when_CsrPlugin_l1302_1 = (CsrPlugin_mip_MSIP && CsrPlugin_mie_MSIE);
assign _zz_when_CsrPlugin_l1302_2 = (CsrPlugin_mip_MEIP && CsrPlugin_mie_MEIE);
@@ -3743,7 +6346,7 @@ module w3d_host_vexriscv (
assign _zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1 = _zz__zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1[0];
always @(*) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_decode = CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_decode;
- if(_zz_when) begin
+ if(_zz_when_1) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_decode = 1'b1;
end
if(decode_arbitration_isFlushed) begin
@@ -3753,6 +6356,9 @@ module w3d_host_vexriscv (
always @(*) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_execute = CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_execute;
+ if(CsrPlugin_selfException_valid) begin
+ CsrPlugin_exceptionPortCtrl_exceptionValids_execute = 1'b1;
+ end
if(execute_arbitration_isFlushed) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_execute = 1'b0;
end
@@ -3760,9 +6366,6 @@ module w3d_host_vexriscv (
always @(*) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_memory = CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_memory;
- if(BranchPlugin_branchExceptionPort_valid) begin
- CsrPlugin_exceptionPortCtrl_exceptionValids_memory = 1'b1;
- end
if(memory_arbitration_isFlushed) begin
CsrPlugin_exceptionPortCtrl_exceptionValids_memory = 1'b0;
end
@@ -3791,6 +6394,7 @@ module w3d_host_vexriscv (
assign when_CsrPlugin_l1302 = ((_zz_when_CsrPlugin_l1302 && 1'b1) && (! 1'b0));
assign when_CsrPlugin_l1302_1 = ((_zz_when_CsrPlugin_l1302_1 && 1'b1) && (! 1'b0));
assign when_CsrPlugin_l1302_2 = ((_zz_when_CsrPlugin_l1302_2 && 1'b1) && (! 1'b0));
+ assign when_CsrPlugin_l1315 = (CsrPlugin_dcsr_step && (! CsrPlugin_dcsr_stepie));
assign CsrPlugin_exception = (CsrPlugin_exceptionPortCtrl_exceptionValids_writeBack && CsrPlugin_allowException);
assign CsrPlugin_lastStageWasWfi = 1'b0;
assign CsrPlugin_pipelineLiberator_active = ((CsrPlugin_interrupt_valid && CsrPlugin_allowInterrupts) && decode_arbitration_isValid);
@@ -3810,6 +6414,29 @@ module w3d_host_vexriscv (
assign when_CsrPlugin_l1346 = (|{CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_writeBack,{CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_memory,CsrPlugin_exceptionPortCtrl_exceptionValidsRegs_execute}});
assign CsrPlugin_interruptJump = ((CsrPlugin_interrupt_valid && CsrPlugin_pipelineLiberator_done) && CsrPlugin_allowInterrupts);
+ assign debugBus_commit = (debugMode && writeBack_arbitration_isFiring);
+ always @(*) begin
+ debugBus_exception = (debugMode && CsrPlugin_hadException);
+ if(when_CsrPlugin_l1390) begin
+ if(!when_CsrPlugin_l1398) begin
+ if(!when_CsrPlugin_l1428) begin
+ debugBus_exception = (! CsrPlugin_trapCauseEbreakDebug);
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ debugBus_ebreak = 1'b0;
+ if(when_CsrPlugin_l1390) begin
+ if(!when_CsrPlugin_l1398) begin
+ if(!when_CsrPlugin_l1428) begin
+ debugBus_ebreak = CsrPlugin_trapCauseEbreakDebug;
+ end
+ end
+ end
+ end
+
always @(*) begin
CsrPlugin_targetPrivilege = CsrPlugin_interrupt_targetPrivilege;
if(CsrPlugin_hadException) begin
@@ -3824,7 +6451,22 @@ module w3d_host_vexriscv (
end
end
- assign CsrPlugin_trapCauseEbreakDebug = 1'b0;
+ always @(*) begin
+ CsrPlugin_trapCauseEbreakDebug = 1'b0;
+ if(CsrPlugin_hadException) begin
+ if(when_CsrPlugin_l1373) begin
+ if(debugMode) begin
+ CsrPlugin_trapCauseEbreakDebug = 1'b1;
+ end
+ if(when_CsrPlugin_l1375) begin
+ CsrPlugin_trapCauseEbreakDebug = 1'b1;
+ end
+ end
+ end
+ end
+
+ assign when_CsrPlugin_l1373 = (CsrPlugin_exceptionPortCtrl_exceptionContext_code == 4'b0011);
+ assign when_CsrPlugin_l1375 = ((CsrPlugin_privilege == 2'b11) && CsrPlugin_dcsr_ebreakm);
always @(*) begin
CsrPlugin_xtvec_mode = 2'bxx;
case(CsrPlugin_targetPrivilege)
@@ -3847,19 +6489,65 @@ module w3d_host_vexriscv (
endcase
end
- assign CsrPlugin_trapEnterDebug = 1'b0;
+ always @(*) begin
+ CsrPlugin_trapEnterDebug = 1'b0;
+ if(when_CsrPlugin_l1389) begin
+ CsrPlugin_trapEnterDebug = 1'b1;
+ end
+ end
+
+ assign when_CsrPlugin_l1389 = (((CsrPlugin_doHalt || CsrPlugin_trapCauseEbreakDebug) || ((! CsrPlugin_hadException) && CsrPlugin_doHalt)) || (! CsrPlugin_running));
assign when_CsrPlugin_l1390 = (CsrPlugin_hadException || CsrPlugin_interruptJump);
assign when_CsrPlugin_l1398 = (! CsrPlugin_trapEnterDebug);
+ assign when_CsrPlugin_l1428 = (! debugMode);
assign when_CsrPlugin_l1456 = (writeBack_arbitration_isValid && (writeBack_ENV_CTRL == EnvCtrlEnum_XRET));
assign switch_CsrPlugin_l1460 = writeBack_INSTRUCTION[29 : 28];
+ assign when_CsrPlugin_l1468 = (CsrPlugin_mstatus_MPP < 2'b11);
assign contextSwitching = CsrPlugin_jumpInterface_valid;
assign when_CsrPlugin_l1527 = (|{(writeBack_arbitration_isValid && (writeBack_ENV_CTRL == EnvCtrlEnum_XRET)),{(memory_arbitration_isValid && (memory_ENV_CTRL == EnvCtrlEnum_XRET)),(execute_arbitration_isValid && (execute_ENV_CTRL == EnvCtrlEnum_XRET))}});
assign execute_CsrPlugin_blockedBySideEffects = ((|{writeBack_arbitration_isValid,memory_arbitration_isValid}) || 1'b0);
always @(*) begin
execute_CsrPlugin_illegalAccess = 1'b1;
+ if(execute_CsrPlugin_csr_3) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_2) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_256) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
if(execute_CsrPlugin_csr_768) begin
execute_CsrPlugin_illegalAccess = 1'b0;
end
+ if(execute_CsrPlugin_csr_1972) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1969) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1968) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1952) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1956) begin
+ if(execute_CSR_READ_OPCODE) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ end
+ if(execute_CsrPlugin_csr_1953) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ if(execute_CsrPlugin_csr_1954) begin
+ if(execute_CSR_WRITE_OPCODE) begin
+ execute_CsrPlugin_illegalAccess = 1'b0;
+ end
+ end
if(execute_CsrPlugin_csr_836) begin
execute_CsrPlugin_illegalAccess = 1'b0;
end
@@ -3899,8 +6587,24 @@ module w3d_host_vexriscv (
end
end
+ always @(*) begin
+ CsrPlugin_selfException_valid = 1'b0;
+ if(when_CsrPlugin_l1565) begin
+ CsrPlugin_selfException_valid = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ CsrPlugin_selfException_payload_code = 4'bxxxx;
+ if(when_CsrPlugin_l1565) begin
+ CsrPlugin_selfException_payload_code = 4'b0011;
+ end
+ end
+
+ assign CsrPlugin_selfException_payload_badAddr = execute_INSTRUCTION;
assign when_CsrPlugin_l1547 = (execute_arbitration_isValid && (execute_ENV_CTRL == EnvCtrlEnum_XRET));
assign when_CsrPlugin_l1548 = (CsrPlugin_privilege < execute_INSTRUCTION[29 : 28]);
+ assign when_CsrPlugin_l1565 = ((execute_arbitration_isValid && (execute_ENV_CTRL == EnvCtrlEnum_EBREAK)) && CsrPlugin_allowEbreakException);
always @(*) begin
execute_CsrPlugin_writeInstruction = ((execute_arbitration_isValid && execute_IS_CSR) && execute_CSR_WRITE_OPCODE);
if(when_CsrPlugin_l1719) begin
@@ -3919,9 +6623,9 @@ module w3d_host_vexriscv (
assign execute_CsrPlugin_readEnable = (execute_CsrPlugin_readInstruction && (! execute_arbitration_isStuck));
assign CsrPlugin_csrMapping_hazardFree = (! execute_CsrPlugin_blockedBySideEffects);
assign execute_CsrPlugin_readToWriteData = CsrPlugin_csrMapping_readDataSignal;
- assign switch_Misc_l241_1 = execute_INSTRUCTION[13];
+ assign switch_Misc_l241_3 = execute_INSTRUCTION[13];
always @(*) begin
- case(switch_Misc_l241_1)
+ case(switch_Misc_l241_3)
1'b0 : begin
_zz_CsrPlugin_csrMapping_writeDataSignal = execute_SRC1;
end
@@ -3935,10 +6639,20 @@ module w3d_host_vexriscv (
assign when_CsrPlugin_l1587 = (execute_arbitration_isValid && execute_IS_CSR);
assign when_CsrPlugin_l1591 = (execute_arbitration_isValid && (execute_IS_CSR || 1'b0));
assign execute_CsrPlugin_csrAddress = execute_INSTRUCTION[31 : 20];
+ assign ndmreset = debugModule_1_io_ndmreset;
+ assign jtag_tdo = debugTransportModuleJtagTap_1_io_jtag_tdo;
+ assign debugBus_ackReset = debugModule_1_io_harts_0_ackReset;
+ assign debugBus_resume_cmd_valid = debugModule_1_io_harts_0_resume_cmd_valid;
+ assign debugBus_haltReq = debugModule_1_io_harts_0_haltReq;
+ assign debugBus_dmToHart_valid = toplevel_debugModule_1_io_harts_0_dmToHart_regNext_valid;
+ assign debugBus_dmToHart_payload_op = toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op;
+ assign debugBus_dmToHart_payload_address = toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_address;
+ assign debugBus_dmToHart_payload_data = toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_data;
+ assign debugBus_dmToHart_payload_size = toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_size;
assign execute_BranchPlugin_eq = (execute_SRC1 == execute_SRC2);
- assign switch_Misc_l241_2 = execute_INSTRUCTION[14 : 12];
+ assign switch_Misc_l241_4 = execute_INSTRUCTION[14 : 12];
always @(*) begin
- case(switch_Misc_l241_2)
+ case(switch_Misc_l241_4)
3'b000 : begin
_zz_execute_BRANCH_DO = execute_BranchPlugin_eq;
end
@@ -4061,12 +6775,9 @@ module w3d_host_vexriscv (
assign IBusCachedPlugin_fetchPrediction_rsp_wasRight = (! memory_BranchPlugin_predictionMissmatch);
assign IBusCachedPlugin_fetchPrediction_rsp_finalPc = memory_BRANCH_CALC;
- assign IBusCachedPlugin_fetchPrediction_rsp_sourceLastWord = memory_PC;
+ assign IBusCachedPlugin_fetchPrediction_rsp_sourceLastWord = (((! memory_IS_RVC) && memory_PC[1]) ? memory_NEXT_PC2 : memory_PC);
assign BranchPlugin_jumpInterface_valid = ((memory_arbitration_isValid && memory_BranchPlugin_predictionMissmatch) && (! 1'b0));
assign BranchPlugin_jumpInterface_payload = (memory_BRANCH_DO ? memory_BRANCH_CALC : memory_NEXT_PC2);
- assign BranchPlugin_branchExceptionPort_valid = ((memory_arbitration_isValid && memory_BRANCH_DO) && memory_BRANCH_CALC[1]);
- assign BranchPlugin_branchExceptionPort_payload_code = 4'b0000;
- assign BranchPlugin_branchExceptionPort_payload_badAddr = memory_BRANCH_CALC;
assign when_Pipeline_l124 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_1 = (! memory_arbitration_isStuck);
assign when_Pipeline_l124_2 = ((! writeBack_arbitration_isStuck) && (! CsrPlugin_exceptionPortCtrl_exceptionValids_writeBack));
@@ -4075,86 +6786,112 @@ module w3d_host_vexriscv (
assign when_Pipeline_l124_5 = (! writeBack_arbitration_isStuck);
assign when_Pipeline_l124_6 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_7 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_8 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_9 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_10 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_8 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_9 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_10 = (! writeBack_arbitration_isStuck);
assign when_Pipeline_l124_11 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_12 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_13 = (! execute_arbitration_isStuck);
assign _zz_decode_to_execute_SRC1_CTRL_1 = decode_SRC1_CTRL;
assign _zz_decode_SRC1_CTRL = _zz_decode_SRC1_CTRL_1;
- assign when_Pipeline_l124_12 = (! execute_arbitration_isStuck);
- assign _zz_execute_SRC1_CTRL = decode_to_execute_SRC1_CTRL;
- assign when_Pipeline_l124_13 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_14 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_15 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_16 = (! writeBack_arbitration_isStuck);
+ assign _zz_execute_SRC1_CTRL = decode_to_execute_SRC1_CTRL;
+ assign when_Pipeline_l124_15 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_16 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_17 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_18 = (! writeBack_arbitration_isStuck);
assign _zz_decode_to_execute_ALU_CTRL_1 = decode_ALU_CTRL;
assign _zz_decode_ALU_CTRL = _zz_decode_ALU_CTRL_1;
- assign when_Pipeline_l124_17 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_19 = (! execute_arbitration_isStuck);
assign _zz_execute_ALU_CTRL = decode_to_execute_ALU_CTRL;
assign _zz_decode_to_execute_SRC2_CTRL_1 = decode_SRC2_CTRL;
assign _zz_decode_SRC2_CTRL = _zz_decode_SRC2_CTRL_1;
- assign when_Pipeline_l124_18 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_20 = (! execute_arbitration_isStuck);
assign _zz_execute_SRC2_CTRL = decode_to_execute_SRC2_CTRL;
- assign when_Pipeline_l124_19 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_20 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_21 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_22 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_23 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_24 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_21 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_22 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_23 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_24 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_25 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_26 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_27 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_28 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_29 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_27 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_28 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_29 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_30 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_31 = (! execute_arbitration_isStuck);
assign _zz_decode_to_execute_ALU_BITWISE_CTRL_1 = decode_ALU_BITWISE_CTRL;
assign _zz_decode_ALU_BITWISE_CTRL = _zz_decode_ALU_BITWISE_CTRL_1;
- assign when_Pipeline_l124_30 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_32 = (! execute_arbitration_isStuck);
assign _zz_execute_ALU_BITWISE_CTRL = decode_to_execute_ALU_BITWISE_CTRL;
+ assign when_Pipeline_l124_33 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_34 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_35 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_36 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_37 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_38 = (! writeBack_arbitration_isStuck);
+ assign _zz_decode_to_execute_FPU_OPCODE_1 = decode_FPU_OPCODE;
+ assign _zz_execute_to_memory_FPU_OPCODE_1 = execute_FPU_OPCODE;
+ assign _zz_memory_to_writeBack_FPU_OPCODE_1 = memory_FPU_OPCODE;
+ assign _zz_decode_FPU_OPCODE = _zz_decode_FPU_OPCODE_1;
+ assign when_Pipeline_l124_39 = (! execute_arbitration_isStuck);
+ assign _zz_execute_FPU_OPCODE = decode_to_execute_FPU_OPCODE;
+ assign when_Pipeline_l124_40 = (! memory_arbitration_isStuck);
+ assign _zz_memory_FPU_OPCODE = execute_to_memory_FPU_OPCODE;
+ assign when_Pipeline_l124_41 = (! writeBack_arbitration_isStuck);
+ assign _zz_writeBack_FPU_OPCODE = memory_to_writeBack_FPU_OPCODE;
assign _zz_decode_to_execute_SHIFT_CTRL_1 = decode_SHIFT_CTRL;
assign _zz_decode_SHIFT_CTRL = _zz_decode_SHIFT_CTRL_1;
- assign when_Pipeline_l124_31 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_42 = (! execute_arbitration_isStuck);
assign _zz_execute_SHIFT_CTRL = decode_to_execute_SHIFT_CTRL;
- assign when_Pipeline_l124_32 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_33 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_34 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_35 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_36 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_37 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_38 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_39 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_43 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_44 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_45 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_46 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_47 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_48 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_49 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_50 = (! execute_arbitration_isStuck);
assign _zz_decode_to_execute_ENV_CTRL_1 = decode_ENV_CTRL;
assign _zz_execute_to_memory_ENV_CTRL_1 = execute_ENV_CTRL;
assign _zz_memory_to_writeBack_ENV_CTRL_1 = memory_ENV_CTRL;
assign _zz_decode_ENV_CTRL = _zz_decode_ENV_CTRL_1;
- assign when_Pipeline_l124_40 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_51 = (! execute_arbitration_isStuck);
assign _zz_execute_ENV_CTRL = decode_to_execute_ENV_CTRL;
- assign when_Pipeline_l124_41 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_52 = (! memory_arbitration_isStuck);
assign _zz_memory_ENV_CTRL = execute_to_memory_ENV_CTRL;
- assign when_Pipeline_l124_42 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_53 = (! writeBack_arbitration_isStuck);
assign _zz_writeBack_ENV_CTRL = memory_to_writeBack_ENV_CTRL;
assign _zz_decode_to_execute_BRANCH_CTRL_1 = decode_BRANCH_CTRL;
assign _zz_decode_BRANCH_CTRL = _zz_decode_BRANCH_CTRL_1;
- assign when_Pipeline_l124_43 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_54 = (! execute_arbitration_isStuck);
assign _zz_execute_BRANCH_CTRL = decode_to_execute_BRANCH_CTRL;
- assign when_Pipeline_l124_44 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_45 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_46 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_47 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_48 = (! execute_arbitration_isStuck);
- assign when_Pipeline_l124_49 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_50 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_51 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_52 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_53 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_54 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_55 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_55 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_56 = (! memory_arbitration_isStuck);
assign when_Pipeline_l124_57 = (! writeBack_arbitration_isStuck);
- assign when_Pipeline_l124_58 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_59 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_58 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_59 = (! execute_arbitration_isStuck);
assign when_Pipeline_l124_60 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_61 = (! memory_arbitration_isStuck);
- assign when_Pipeline_l124_62 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_61 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_62 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_63 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_64 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_65 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_66 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_67 = (! execute_arbitration_isStuck);
+ assign when_Pipeline_l124_68 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_69 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_70 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_71 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_72 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_73 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_74 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_75 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_76 = (! writeBack_arbitration_isStuck);
+ assign when_Pipeline_l124_77 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_78 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_79 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_80 = (! memory_arbitration_isStuck);
+ assign when_Pipeline_l124_81 = (! writeBack_arbitration_isStuck);
assign decode_arbitration_isFlushed = ((|{writeBack_arbitration_flushNext,{memory_arbitration_flushNext,execute_arbitration_flushNext}}) || (|{writeBack_arbitration_flushIt,{memory_arbitration_flushIt,{execute_arbitration_flushIt,decode_arbitration_flushIt}}}));
assign execute_arbitration_isFlushed = ((|{writeBack_arbitration_flushNext,memory_arbitration_flushNext}) || (|{writeBack_arbitration_flushIt,{memory_arbitration_flushIt,execute_arbitration_flushIt}}));
assign memory_arbitration_isFlushed = ((|writeBack_arbitration_flushNext) || (|{writeBack_arbitration_flushIt,memory_arbitration_flushIt}));
@@ -4181,63 +6918,174 @@ module w3d_host_vexriscv (
assign when_Pipeline_l154_1 = ((! execute_arbitration_isStuck) && (! execute_arbitration_removeIt));
assign when_Pipeline_l151_2 = ((! writeBack_arbitration_isStuck) || writeBack_arbitration_removeIt);
assign when_Pipeline_l154_2 = ((! memory_arbitration_isStuck) && (! memory_arbitration_removeIt));
+ always @(*) begin
+ CsrPlugin_injectionPort_ready = 1'b0;
+ case(IBusCachedPlugin_injector_port_state)
+ 3'b100 : begin
+ CsrPlugin_injectionPort_ready = 1'b1;
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_Fetcher_l373 = (IBusCachedPlugin_injector_port_state != 3'b000);
+ assign when_Fetcher_l391 = (! decode_arbitration_isStuck);
+ assign when_Fetcher_l411 = (IBusCachedPlugin_injector_port_state != 3'b000);
assign when_CsrPlugin_l1669 = (! execute_arbitration_isStuck);
assign when_CsrPlugin_l1669_1 = (! execute_arbitration_isStuck);
assign when_CsrPlugin_l1669_2 = (! execute_arbitration_isStuck);
assign when_CsrPlugin_l1669_3 = (! execute_arbitration_isStuck);
assign when_CsrPlugin_l1669_4 = (! execute_arbitration_isStuck);
assign when_CsrPlugin_l1669_5 = (! execute_arbitration_isStuck);
- assign switch_CsrPlugin_l1031 = CsrPlugin_csrMapping_writeDataSignal[12 : 11];
+ assign when_CsrPlugin_l1669_6 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_7 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_8 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_9 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_10 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_11 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_12 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_13 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_14 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_15 = (! execute_arbitration_isStuck);
+ assign when_CsrPlugin_l1669_16 = (! execute_arbitration_isStuck);
+ assign _zz_FpuPlugin_flags_NX = CsrPlugin_csrMapping_writeDataSignal[4 : 0];
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit = 32'h00000000;
- if(execute_CsrPlugin_csr_768) begin
- _zz_CsrPlugin_csrMapping_readDataInit[7 : 7] = CsrPlugin_mstatus_MPIE;
- _zz_CsrPlugin_csrMapping_readDataInit[3 : 3] = CsrPlugin_mstatus_MIE;
- _zz_CsrPlugin_csrMapping_readDataInit[12 : 11] = CsrPlugin_mstatus_MPP;
+ if(execute_CsrPlugin_csr_3) begin
+ _zz_CsrPlugin_csrMapping_readDataInit[7 : 5] = FpuPlugin_rm;
+ _zz_CsrPlugin_csrMapping_readDataInit[4 : 0] = {FpuPlugin_flags_NV,{FpuPlugin_flags_DZ,{FpuPlugin_flags_OF,{FpuPlugin_flags_UF,FpuPlugin_flags_NX}}}};
end
end
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit_1 = 32'h00000000;
- if(execute_CsrPlugin_csr_836) begin
- _zz_CsrPlugin_csrMapping_readDataInit_1[11 : 11] = CsrPlugin_mip_MEIP;
- _zz_CsrPlugin_csrMapping_readDataInit_1[7 : 7] = CsrPlugin_mip_MTIP;
- _zz_CsrPlugin_csrMapping_readDataInit_1[3 : 3] = CsrPlugin_mip_MSIP;
+ if(execute_CsrPlugin_csr_2) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_1[2 : 0] = FpuPlugin_rm;
end
end
+ assign _zz_FpuPlugin_flags_NX_1 = CsrPlugin_csrMapping_writeDataSignal[4 : 0];
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit_2 = 32'h00000000;
- if(execute_CsrPlugin_csr_772) begin
- _zz_CsrPlugin_csrMapping_readDataInit_2[11 : 11] = CsrPlugin_mie_MEIE;
- _zz_CsrPlugin_csrMapping_readDataInit_2[7 : 7] = CsrPlugin_mie_MTIE;
- _zz_CsrPlugin_csrMapping_readDataInit_2[3 : 3] = CsrPlugin_mie_MSIE;
+ if(execute_CsrPlugin_csr_1) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_2[4 : 0] = {FpuPlugin_flags_NV,{FpuPlugin_flags_DZ,{FpuPlugin_flags_OF,{FpuPlugin_flags_UF,FpuPlugin_flags_NX}}}};
end
end
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit_3 = 32'h00000000;
- if(execute_CsrPlugin_csr_833) begin
- _zz_CsrPlugin_csrMapping_readDataInit_3[31 : 0] = CsrPlugin_mepc;
+ if(execute_CsrPlugin_csr_256) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_3[14 : 13] = FpuPlugin_fs;
+ _zz_CsrPlugin_csrMapping_readDataInit_3[31 : 31] = FpuPlugin_sd;
end
end
+ assign switch_CsrPlugin_l1031 = CsrPlugin_csrMapping_writeDataSignal[12 : 11];
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit_4 = 32'h00000000;
- if(execute_CsrPlugin_csr_834) begin
- _zz_CsrPlugin_csrMapping_readDataInit_4[31 : 31] = CsrPlugin_mcause_interrupt;
- _zz_CsrPlugin_csrMapping_readDataInit_4[3 : 0] = CsrPlugin_mcause_exceptionCode;
+ if(execute_CsrPlugin_csr_768) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_4[14 : 13] = FpuPlugin_fs;
+ _zz_CsrPlugin_csrMapping_readDataInit_4[31 : 31] = FpuPlugin_sd;
+ _zz_CsrPlugin_csrMapping_readDataInit_4[7 : 7] = CsrPlugin_mstatus_MPIE;
+ _zz_CsrPlugin_csrMapping_readDataInit_4[3 : 3] = CsrPlugin_mstatus_MIE;
+ _zz_CsrPlugin_csrMapping_readDataInit_4[12 : 11] = CsrPlugin_mstatus_MPP;
end
end
always @(*) begin
_zz_CsrPlugin_csrMapping_readDataInit_5 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1972) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_5[31 : 0] = CsrPlugin_dataCsrw_value_0;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_6 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1969) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_6[31 : 0] = CsrPlugin_dpc;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_7 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1968) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_7[3 : 3] = CsrPlugin_dcsr_nmip;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[8 : 6] = CsrPlugin_dcsr_cause;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[31 : 28] = CsrPlugin_dcsr_xdebugver;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[4 : 4] = CsrPlugin_dcsr_mprven;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[1 : 0] = CsrPlugin_dcsr_prv;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[2 : 2] = CsrPlugin_dcsr_step;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[9 : 9] = CsrPlugin_dcsr_stoptime;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[10 : 10] = CsrPlugin_dcsr_stopcount;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[11 : 11] = CsrPlugin_dcsr_stepie;
+ _zz_CsrPlugin_csrMapping_readDataInit_7[15 : 15] = CsrPlugin_dcsr_ebreakm;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_8 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1952) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_8[0 : 0] = CsrPlugin_trigger_tselect_index;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_9 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1956) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_9[0 : 0] = CsrPlugin_trigger_tselect_outOfRange;
+ _zz_CsrPlugin_csrMapping_readDataInit_9[2 : 2] = (! CsrPlugin_trigger_tselect_outOfRange);
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_10 = 32'h00000000;
+ if(execute_CsrPlugin_csr_1953) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_10[31 : 0] = _zz__zz_CsrPlugin_csrMapping_readDataInit_10;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_11 = 32'h00000000;
+ if(execute_CsrPlugin_csr_836) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_11[11 : 11] = CsrPlugin_mip_MEIP;
+ _zz_CsrPlugin_csrMapping_readDataInit_11[7 : 7] = CsrPlugin_mip_MTIP;
+ _zz_CsrPlugin_csrMapping_readDataInit_11[3 : 3] = CsrPlugin_mip_MSIP;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_12 = 32'h00000000;
+ if(execute_CsrPlugin_csr_772) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_12[11 : 11] = CsrPlugin_mie_MEIE;
+ _zz_CsrPlugin_csrMapping_readDataInit_12[7 : 7] = CsrPlugin_mie_MTIE;
+ _zz_CsrPlugin_csrMapping_readDataInit_12[3 : 3] = CsrPlugin_mie_MSIE;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_13 = 32'h00000000;
+ if(execute_CsrPlugin_csr_833) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_13[31 : 0] = CsrPlugin_mepc;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_14 = 32'h00000000;
+ if(execute_CsrPlugin_csr_834) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_14[31 : 31] = CsrPlugin_mcause_interrupt;
+ _zz_CsrPlugin_csrMapping_readDataInit_14[3 : 0] = CsrPlugin_mcause_exceptionCode;
+ end
+ end
+
+ always @(*) begin
+ _zz_CsrPlugin_csrMapping_readDataInit_15 = 32'h00000000;
if(execute_CsrPlugin_csr_835) begin
- _zz_CsrPlugin_csrMapping_readDataInit_5[31 : 0] = CsrPlugin_mtval;
+ _zz_CsrPlugin_csrMapping_readDataInit_15[31 : 0] = CsrPlugin_mtval;
end
end
- assign CsrPlugin_csrMapping_readDataInit = (((_zz_CsrPlugin_csrMapping_readDataInit | _zz_CsrPlugin_csrMapping_readDataInit_1) | (_zz_CsrPlugin_csrMapping_readDataInit_2 | _zz_CsrPlugin_csrMapping_readDataInit_3)) | (_zz_CsrPlugin_csrMapping_readDataInit_4 | _zz_CsrPlugin_csrMapping_readDataInit_5));
+ assign CsrPlugin_csrMapping_readDataInit = ((((_zz_CsrPlugin_csrMapping_readDataInit | _zz_CsrPlugin_csrMapping_readDataInit_1) | (_zz_CsrPlugin_csrMapping_readDataInit_2 | _zz_CsrPlugin_csrMapping_readDataInit_3)) | ((_zz_CsrPlugin_csrMapping_readDataInit_4 | _zz_CsrPlugin_csrMapping_readDataInit_5) | (_zz_CsrPlugin_csrMapping_readDataInit_6 | _zz_CsrPlugin_csrMapping_readDataInit_7))) | (((_zz_CsrPlugin_csrMapping_readDataInit_8 | _zz_CsrPlugin_csrMapping_readDataInit_9) | (_zz_CsrPlugin_csrMapping_readDataInit_10 | _zz_CsrPlugin_csrMapping_readDataInit_11)) | ((_zz_CsrPlugin_csrMapping_readDataInit_12 | _zz_CsrPlugin_csrMapping_readDataInit_13) | (_zz_CsrPlugin_csrMapping_readDataInit_14 | _zz_CsrPlugin_csrMapping_readDataInit_15))));
assign when_CsrPlugin_l1702 = ((execute_arbitration_isValid && execute_IS_CSR) && (({execute_CsrPlugin_csrAddress[11 : 2],2'b00} == 12'h3a0) || ({execute_CsrPlugin_csrAddress[11 : 4],4'b0000} == 12'h3b0)));
assign _zz_when_CsrPlugin_l1709 = (execute_CsrPlugin_csrAddress & 12'hf60);
assign when_CsrPlugin_l1709 = (((execute_arbitration_isValid && execute_IS_CSR) && (5'h03 <= execute_CsrPlugin_csrAddress[4 : 0])) && (((_zz_when_CsrPlugin_l1709 == 12'hb00) || (((_zz_when_CsrPlugin_l1709 == 12'hc00) && (! execute_CsrPlugin_writeInstruction)) && (CsrPlugin_privilege == 2'b11))) || ((execute_CsrPlugin_csrAddress & 12'hfe0) == 12'h320)));
@@ -4246,9 +7094,13 @@ module w3d_host_vexriscv (
if(when_CsrPlugin_l1717) begin
when_CsrPlugin_l1719 = 1'b1;
end
+ if(when_CsrPlugin_l1718) begin
+ when_CsrPlugin_l1719 = 1'b1;
+ end
end
assign when_CsrPlugin_l1717 = (CsrPlugin_privilege < execute_CsrPlugin_csrAddress[9 : 8]);
+ assign when_CsrPlugin_l1718 = ((! debugMode) && (_zz_when_CsrPlugin_l1718 == 8'h7b));
assign when_CsrPlugin_l1725 = ((! execute_arbitration_isValid) || (! execute_IS_CSR));
assign iBus_cmd_ready = iBusAxi_ar_ready;
assign iBus_rsp_valid = iBusAxi_r_valid;
@@ -4406,22 +7258,70 @@ module w3d_host_vexriscv (
assign dBusAxi_b_ready = dbus_axi_b_ready;
always @(posedge clk or negedge resetn) begin
if(!resetn) begin
- IBusCachedPlugin_fetchPc_pcReg <= 32'h80000000;
+ IBusCachedPlugin_fetchPc_pcReg <= 32'h00000000;
IBusCachedPlugin_fetchPc_correctionReg <= 1'b0;
IBusCachedPlugin_fetchPc_booted <= 1'b0;
IBusCachedPlugin_fetchPc_inc <= 1'b0;
+ IBusCachedPlugin_decodePc_pcReg <= 32'h00000000;
_zz_IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid <= 1'b0;
_zz_IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_valid <= 1'b0;
+ _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid <= 1'b0;
+ IBusCachedPlugin_decompressor_bufferValid <= 1'b0;
+ IBusCachedPlugin_decompressor_throw2BytesReg <= 1'b0;
+ _zz_IBusCachedPlugin_injector_decodeInput_valid <= 1'b0;
IBusCachedPlugin_injector_nextPcCalc_valids_0 <= 1'b0;
IBusCachedPlugin_injector_nextPcCalc_valids_1 <= 1'b0;
IBusCachedPlugin_injector_nextPcCalc_valids_2 <= 1'b0;
IBusCachedPlugin_injector_nextPcCalc_valids_3 <= 1'b0;
- IBusCachedPlugin_injector_nextPcCalc_valids_4 <= 1'b0;
IBusCachedPlugin_rspCounter <= 32'h00000000;
DBusCachedPlugin_rspCounter <= 32'h00000000;
_zz_8 <= 1'b1;
+ FpuPlugin_pendings <= 6'h00;
+ FpuPlugin_flags_NV <= 1'b0;
+ FpuPlugin_flags_DZ <= 1'b0;
+ FpuPlugin_flags_OF <= 1'b0;
+ FpuPlugin_flags_UF <= 1'b0;
+ FpuPlugin_flags_NX <= 1'b0;
+ FpuPlugin_rm <= 3'b000;
+ FpuPlugin_fs <= 2'b01;
+ decode_FpuPlugin_forked <= 1'b0;
+ writeBack_FpuPlugin_commit_rValidN <= 1'b1;
HazardSimplePlugin_writeBackBuffer_valid <= 1'b0;
memory_DivPlugin_div_counter_value <= 6'h00;
+ _zz_CsrPlugin_privilege <= 2'b11;
+ CsrPlugin_running <= 1'b1;
+ CsrPlugin_reseting <= 1'b1;
+ _zz_debugBus_haveReset <= 1'b0;
+ CsrPlugin_running_aheadValue_regNext <= 1'b0;
+ CsrPlugin_doHalt <= 1'b0;
+ _zz_CsrPlugin_doResume <= 1'b0;
+ CsrPlugin_timeout_state <= 1'b0;
+ CsrPlugin_timeout_counter_value <= 3'b000;
+ CsrPlugin_inject_cmd_toStream_rValid <= 1'b0;
+ CsrPlugin_inject_pending <= 1'b0;
+ CsrPlugin_dcsr_prv <= 2'b11;
+ CsrPlugin_dcsr_step <= 1'b0;
+ CsrPlugin_dcsr_cause <= 3'b000;
+ CsrPlugin_dcsr_stoptime <= 1'b0;
+ CsrPlugin_dcsr_stopcount <= 1'b0;
+ CsrPlugin_dcsr_stepie <= 1'b0;
+ CsrPlugin_dcsr_ebreakm <= 1'b0;
+ CsrPlugin_dcsr_stepLogic_stateReg <= CsrPlugin_dcsr_stepLogic_enumDef_BOOT;
+ stoptime <= 1'b0;
+ CsrPlugin_trigger_decodeBreak_timeout_state <= 1'b0;
+ CsrPlugin_trigger_decodeBreak_timeout_counter_value <= 2'b00;
+ CsrPlugin_trigger_slots_0_tdata1_dmode <= 1'b0;
+ CsrPlugin_trigger_slots_0_tdata1_execute <= 1'b0;
+ CsrPlugin_trigger_slots_0_tdata1_m <= 1'b0;
+ CsrPlugin_trigger_slots_0_tdata1_s <= 1'b0;
+ CsrPlugin_trigger_slots_0_tdata1_u <= 1'b0;
+ CsrPlugin_trigger_slots_0_tdata1_action <= 4'b0000;
+ CsrPlugin_trigger_slots_1_tdata1_dmode <= 1'b0;
+ CsrPlugin_trigger_slots_1_tdata1_execute <= 1'b0;
+ CsrPlugin_trigger_slots_1_tdata1_m <= 1'b0;
+ CsrPlugin_trigger_slots_1_tdata1_s <= 1'b0;
+ CsrPlugin_trigger_slots_1_tdata1_u <= 1'b0;
+ CsrPlugin_trigger_slots_1_tdata1_action <= 4'b0000;
CsrPlugin_mstatus_MIE <= 1'b0;
CsrPlugin_mstatus_MPIE <= 1'b0;
CsrPlugin_mstatus_MPP <= 2'b11;
@@ -4440,9 +7340,14 @@ module w3d_host_vexriscv (
CsrPlugin_pipelineLiberator_pcValids_2 <= 1'b0;
CsrPlugin_hadException <= 1'b0;
execute_CsrPlugin_wfiWake <= 1'b0;
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_valid <= 1'b0;
execute_arbitration_isValid <= 1'b0;
memory_arbitration_isValid <= 1'b0;
writeBack_arbitration_isValid <= 1'b0;
+ IBusCachedPlugin_injector_port_state <= 3'b000;
+ decode_to_execute_FPU_FORKED <= 1'b0;
+ execute_to_memory_FPU_FORKED <= 1'b0;
+ memory_to_writeBack_FPU_FORKED <= 1'b0;
_zz_dBus_cmd_ready <= 3'b000;
_zz_when_Stream_l1020_2 <= 1'b1;
_zz_when_Stream_l1020_3 <= 1'b1;
@@ -4467,6 +7372,15 @@ module w3d_host_vexriscv (
if(when_Fetcher_l160) begin
IBusCachedPlugin_fetchPc_pcReg <= IBusCachedPlugin_fetchPc_pc;
end
+ if(when_Fetcher_l182) begin
+ IBusCachedPlugin_decodePc_pcReg <= IBusCachedPlugin_decodePc_pcPlus;
+ end
+ if(when_Fetcher_l188) begin
+ IBusCachedPlugin_decodePc_pcReg <= IBusCachedPlugin_decodePc_predictionPcLoad_payload;
+ end
+ if(when_Fetcher_l194) begin
+ IBusCachedPlugin_decodePc_pcReg <= IBusCachedPlugin_jump_pcLoad_payload;
+ end
if(IBusCachedPlugin_iBusRsp_flush) begin
_zz_IBusCachedPlugin_iBusRsp_stages_0_output_m2sPipe_valid <= 1'b0;
end
@@ -4479,47 +7393,60 @@ module w3d_host_vexriscv (
if(IBusCachedPlugin_iBusRsp_stages_1_output_ready) begin
_zz_IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_valid <= (IBusCachedPlugin_iBusRsp_stages_1_output_valid && (! IBusCachedPlugin_iBusRsp_flush));
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_0 <= 1'b0;
+ if(IBusCachedPlugin_iBusRsp_flush) begin
+ _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid <= 1'b0;
+ end
+ if(IBusCachedPlugin_iBusRsp_stages_2_output_ready) begin
+ _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_valid <= (IBusCachedPlugin_iBusRsp_stages_2_output_valid && (! IBusCachedPlugin_iBusRsp_flush));
+ end
+ if(IBusCachedPlugin_decompressor_output_fire) begin
+ IBusCachedPlugin_decompressor_throw2BytesReg <= ((((! IBusCachedPlugin_decompressor_unaligned) && IBusCachedPlugin_decompressor_isInputLowRvc) && IBusCachedPlugin_decompressor_isInputHighRvc) || (IBusCachedPlugin_decompressor_bufferValid && IBusCachedPlugin_decompressor_isInputHighRvc));
+ end
+ if(when_Fetcher_l285) begin
+ IBusCachedPlugin_decompressor_bufferValid <= 1'b0;
+ end
+ if(when_Fetcher_l288) begin
+ if(IBusCachedPlugin_decompressor_bufferFill) begin
+ IBusCachedPlugin_decompressor_bufferValid <= 1'b1;
+ end
+ end
+ if(when_Fetcher_l293) begin
+ IBusCachedPlugin_decompressor_throw2BytesReg <= 1'b0;
+ IBusCachedPlugin_decompressor_bufferValid <= 1'b0;
+ end
+ if(decode_arbitration_removeIt) begin
+ _zz_IBusCachedPlugin_injector_decodeInput_valid <= 1'b0;
+ end
+ if(IBusCachedPlugin_decompressor_output_ready) begin
+ _zz_IBusCachedPlugin_injector_decodeInput_valid <= (IBusCachedPlugin_decompressor_output_valid && (! IBusCachedPlugin_externalFlush));
end
if(when_Fetcher_l331) begin
IBusCachedPlugin_injector_nextPcCalc_valids_0 <= 1'b1;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_1 <= 1'b0;
+ if(IBusCachedPlugin_decodePc_flushed) begin
+ IBusCachedPlugin_injector_nextPcCalc_valids_0 <= 1'b0;
end
if(when_Fetcher_l331_1) begin
IBusCachedPlugin_injector_nextPcCalc_valids_1 <= IBusCachedPlugin_injector_nextPcCalc_valids_0;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
+ if(IBusCachedPlugin_decodePc_flushed) begin
IBusCachedPlugin_injector_nextPcCalc_valids_1 <= 1'b0;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_2 <= 1'b0;
- end
if(when_Fetcher_l331_2) begin
IBusCachedPlugin_injector_nextPcCalc_valids_2 <= IBusCachedPlugin_injector_nextPcCalc_valids_1;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
+ if(IBusCachedPlugin_decodePc_flushed) begin
IBusCachedPlugin_injector_nextPcCalc_valids_2 <= 1'b0;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_3 <= 1'b0;
- end
if(when_Fetcher_l331_3) begin
IBusCachedPlugin_injector_nextPcCalc_valids_3 <= IBusCachedPlugin_injector_nextPcCalc_valids_2;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
+ if(IBusCachedPlugin_decodePc_flushed) begin
IBusCachedPlugin_injector_nextPcCalc_valids_3 <= 1'b0;
end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_4 <= 1'b0;
- end
- if(when_Fetcher_l331_4) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_4 <= IBusCachedPlugin_injector_nextPcCalc_valids_3;
- end
- if(IBusCachedPlugin_fetchPc_flushed) begin
- IBusCachedPlugin_injector_nextPcCalc_valids_4 <= 1'b0;
+ if(when_Fetcher_l640) begin
+ IBusCachedPlugin_decompressor_bufferValid <= 1'b0;
+ IBusCachedPlugin_decompressor_throw2BytesReg <= 1'b0;
end
if(iBus_rsp_valid) begin
IBusCachedPlugin_rspCounter <= (IBusCachedPlugin_rspCounter + 32'h00000001);
@@ -4528,9 +7455,132 @@ module w3d_host_vexriscv (
DBusCachedPlugin_rspCounter <= (DBusCachedPlugin_rspCounter + 32'h00000001);
end
_zz_8 <= 1'b0;
+ FpuPlugin_pendings <= (_zz_FpuPlugin_pendings - _zz_FpuPlugin_pendings_6);
+ if(when_FpuPlugin_l215) begin
+ FpuPlugin_flags_NV <= 1'b1;
+ end
+ if(when_FpuPlugin_l216) begin
+ FpuPlugin_flags_DZ <= 1'b1;
+ end
+ if(when_FpuPlugin_l217) begin
+ FpuPlugin_flags_OF <= 1'b1;
+ end
+ if(when_FpuPlugin_l218) begin
+ FpuPlugin_flags_UF <= 1'b1;
+ end
+ if(when_FpuPlugin_l219) begin
+ FpuPlugin_flags_NX <= 1'b1;
+ end
+ if(when_FpuPlugin_l234) begin
+ FpuPlugin_fs <= 2'b11;
+ end
+ if(when_FpuPlugin_l237) begin
+ FpuPlugin_fs <= 2'b11;
+ end
+ if(when_FpuPlugin_l268) begin
+ decode_FpuPlugin_forked <= 1'b1;
+ end
+ if(when_FpuPlugin_l268_1) begin
+ decode_FpuPlugin_forked <= 1'b0;
+ end
+ if(writeBack_FpuPlugin_isRsp) begin
+ if(writeBack_arbitration_isValid) begin
+ if(when_FpuPlugin_l315) begin
+ if(FpuPlugin_port_rsp_payload_NV) begin
+ FpuPlugin_flags_NV <= 1'b1;
+ end
+ if(FpuPlugin_port_rsp_payload_NX) begin
+ FpuPlugin_flags_NX <= 1'b1;
+ end
+ if(when_FpuPlugin_l318) begin
+ FpuPlugin_fs <= 2'b11;
+ end
+ end
+ end
+ end
+ if(writeBack_FpuPlugin_commit_valid) begin
+ writeBack_FpuPlugin_commit_rValidN <= 1'b0;
+ end
+ if(writeBack_FpuPlugin_commit_s2mPipe_ready) begin
+ writeBack_FpuPlugin_commit_rValidN <= 1'b1;
+ end
HazardSimplePlugin_writeBackBuffer_valid <= HazardSimplePlugin_writeBackWrites_valid;
memory_DivPlugin_div_counter_value <= memory_DivPlugin_div_counter_valueNext;
- CsrPlugin_mcycle <= (CsrPlugin_mcycle + 64'h0000000000000001);
+ CsrPlugin_reseting <= 1'b0;
+ if(CsrPlugin_reseting) begin
+ _zz_debugBus_haveReset <= 1'b1;
+ end
+ if(debugBus_ackReset) begin
+ _zz_debugBus_haveReset <= 1'b0;
+ end
+ CsrPlugin_running_aheadValue_regNext <= CsrPlugin_running_aheadValue;
+ if(when_CsrPlugin_l729) begin
+ CsrPlugin_doHalt <= 1'b1;
+ end
+ if(CsrPlugin_enterHalt) begin
+ CsrPlugin_doHalt <= 1'b0;
+ end
+ if(debugBus_resume_cmd_valid) begin
+ _zz_CsrPlugin_doResume <= 1'b1;
+ end
+ if(debugBus_resume_rsp_valid) begin
+ _zz_CsrPlugin_doResume <= 1'b0;
+ end
+ CsrPlugin_timeout_counter_value <= CsrPlugin_timeout_counter_valueNext;
+ if(CsrPlugin_timeout_counter_willOverflow) begin
+ CsrPlugin_timeout_state <= 1'b1;
+ end
+ if(when_CsrPlugin_l735) begin
+ CsrPlugin_timeout_state <= 1'b0;
+ end
+ if(CsrPlugin_inject_cmd_toStream_ready) begin
+ CsrPlugin_inject_cmd_toStream_rValid <= CsrPlugin_inject_cmd_toStream_valid;
+ end
+ if(when_CsrPlugin_l786) begin
+ CsrPlugin_inject_pending <= 1'b1;
+ end
+ if(when_CsrPlugin_l786_1) begin
+ CsrPlugin_inject_pending <= 1'b0;
+ end
+ if(CsrPlugin_inject_cmd_valid) begin
+ CsrPlugin_timeout_state <= 1'b0;
+ end
+ CsrPlugin_dcsr_stepLogic_stateReg <= CsrPlugin_dcsr_stepLogic_stateNext;
+ case(CsrPlugin_dcsr_stepLogic_stateReg)
+ CsrPlugin_dcsr_stepLogic_enumDef_IDLE : begin
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_SINGLE : begin
+ CsrPlugin_timeout_state <= 1'b0;
+ if(when_CsrPlugin_l818) begin
+ CsrPlugin_doHalt <= 1'b1;
+ end
+ end
+ CsrPlugin_dcsr_stepLogic_enumDef_WAIT_1 : begin
+ if(!when_CsrPlugin_l830) begin
+ if(writeBack_arbitration_isFiring) begin
+ CsrPlugin_doHalt <= 1'b1;
+ end
+ end
+ end
+ default : begin
+ end
+ endcase
+ stoptime <= (debugMode && CsrPlugin_dcsr_stoptime);
+ CsrPlugin_trigger_decodeBreak_timeout_counter_value <= CsrPlugin_trigger_decodeBreak_timeout_counter_valueNext;
+ if(CsrPlugin_trigger_decodeBreak_timeout_counter_willOverflow) begin
+ CsrPlugin_trigger_decodeBreak_timeout_state <= 1'b1;
+ end
+ if(when_Utils_l657) begin
+ CsrPlugin_trigger_decodeBreak_timeout_state <= 1'b0;
+ end
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ CsrPlugin_dcsr_cause <= 3'b010;
+ CsrPlugin_dcsr_prv <= CsrPlugin_privilege;
+ _zz_CsrPlugin_privilege <= 2'b11;
+ end
+ end
+ CsrPlugin_mcycle <= (CsrPlugin_mcycle + _zz_CsrPlugin_mcycle);
if(writeBack_arbitration_isFiring) begin
CsrPlugin_minstret <= (CsrPlugin_minstret + 64'h0000000000000001);
end
@@ -4566,6 +7616,12 @@ module w3d_host_vexriscv (
CsrPlugin_interrupt_valid <= 1'b1;
end
end
+ if(when_CsrPlugin_l1315) begin
+ CsrPlugin_interrupt_valid <= 1'b0;
+ end
+ if(CsrPlugin_doHalt) begin
+ CsrPlugin_interrupt_valid <= 1'b1;
+ end
if(CsrPlugin_pipelineLiberator_active) begin
if(when_CsrPlugin_l1335) begin
CsrPlugin_pipelineLiberator_pcValids_0 <= 1'b1;
@@ -4588,6 +7644,7 @@ module w3d_host_vexriscv (
CsrPlugin_hadException <= CsrPlugin_exception;
if(when_CsrPlugin_l1390) begin
if(when_CsrPlugin_l1398) begin
+ _zz_CsrPlugin_privilege <= CsrPlugin_targetPrivilege;
case(CsrPlugin_targetPrivilege)
2'b11 : begin
CsrPlugin_mstatus_MIE <= 1'b0;
@@ -4597,6 +7654,18 @@ module w3d_host_vexriscv (
default : begin
end
endcase
+ end else begin
+ if(when_CsrPlugin_l1428) begin
+ CsrPlugin_dcsr_cause <= 3'b011;
+ if(CsrPlugin_dcsr_step) begin
+ CsrPlugin_dcsr_cause <= 3'b100;
+ end
+ if(CsrPlugin_trapCauseEbreakDebug) begin
+ CsrPlugin_dcsr_cause <= 3'b001;
+ end
+ CsrPlugin_dcsr_prv <= CsrPlugin_privilege;
+ end
+ _zz_CsrPlugin_privilege <= 2'b11;
end
end
if(when_CsrPlugin_l1456) begin
@@ -4605,12 +7674,26 @@ module w3d_host_vexriscv (
CsrPlugin_mstatus_MPP <= 2'b00;
CsrPlugin_mstatus_MIE <= CsrPlugin_mstatus_MPIE;
CsrPlugin_mstatus_MPIE <= 1'b1;
+ _zz_CsrPlugin_privilege <= CsrPlugin_mstatus_MPP;
end
default : begin
end
endcase
end
+ if(CsrPlugin_doResume) begin
+ _zz_CsrPlugin_privilege <= CsrPlugin_dcsr_prv;
+ end
execute_CsrPlugin_wfiWake <= ((|{_zz_when_CsrPlugin_l1302_2,{_zz_when_CsrPlugin_l1302_1,_zz_when_CsrPlugin_l1302}}) || CsrPlugin_thirdPartyWake);
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_valid <= debugModule_1_io_harts_0_dmToHart_valid;
+ if(when_Pipeline_l124_59) begin
+ decode_to_execute_FPU_FORKED <= _zz_decode_to_execute_FPU_FORKED;
+ end
+ if(when_Pipeline_l124_60) begin
+ execute_to_memory_FPU_FORKED <= _zz_execute_to_memory_FPU_FORKED;
+ end
+ if(when_Pipeline_l124_61) begin
+ memory_to_writeBack_FPU_FORKED <= _zz_memory_to_writeBack_FPU_FORKED;
+ end
if(when_Pipeline_l151) begin
execute_arbitration_isValid <= 1'b0;
end
@@ -4629,8 +7712,61 @@ module w3d_host_vexriscv (
if(when_Pipeline_l154_2) begin
writeBack_arbitration_isValid <= memory_arbitration_isValid;
end
+ case(IBusCachedPlugin_injector_port_state)
+ 3'b000 : begin
+ if(CsrPlugin_injectionPort_valid) begin
+ IBusCachedPlugin_injector_port_state <= 3'b001;
+ end
+ end
+ 3'b001 : begin
+ IBusCachedPlugin_injector_port_state <= 3'b010;
+ end
+ 3'b010 : begin
+ IBusCachedPlugin_injector_port_state <= 3'b011;
+ end
+ 3'b011 : begin
+ if(when_Fetcher_l391) begin
+ IBusCachedPlugin_injector_port_state <= 3'b100;
+ end
+ end
+ 3'b100 : begin
+ IBusCachedPlugin_injector_port_state <= 3'b000;
+ end
+ default : begin
+ end
+ endcase
+ if(execute_CsrPlugin_csr_3) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ FpuPlugin_rm <= CsrPlugin_csrMapping_writeDataSignal[7 : 5];
+ FpuPlugin_flags_NX <= _zz_FpuPlugin_flags_NX[0];
+ FpuPlugin_flags_UF <= _zz_FpuPlugin_flags_NX[1];
+ FpuPlugin_flags_OF <= _zz_FpuPlugin_flags_NX[2];
+ FpuPlugin_flags_DZ <= _zz_FpuPlugin_flags_NX[3];
+ FpuPlugin_flags_NV <= _zz_FpuPlugin_flags_NX[4];
+ end
+ end
+ if(execute_CsrPlugin_csr_2) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ FpuPlugin_rm <= CsrPlugin_csrMapping_writeDataSignal[2 : 0];
+ end
+ end
+ if(execute_CsrPlugin_csr_1) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ FpuPlugin_flags_NX <= _zz_FpuPlugin_flags_NX_1[0];
+ FpuPlugin_flags_UF <= _zz_FpuPlugin_flags_NX_1[1];
+ FpuPlugin_flags_OF <= _zz_FpuPlugin_flags_NX_1[2];
+ FpuPlugin_flags_DZ <= _zz_FpuPlugin_flags_NX_1[3];
+ FpuPlugin_flags_NV <= _zz_FpuPlugin_flags_NX_1[4];
+ end
+ end
+ if(execute_CsrPlugin_csr_256) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ FpuPlugin_fs <= CsrPlugin_csrMapping_writeDataSignal[14 : 13];
+ end
+ end
if(execute_CsrPlugin_csr_768) begin
if(execute_CsrPlugin_writeEnable) begin
+ FpuPlugin_fs <= CsrPlugin_csrMapping_writeDataSignal[14 : 13];
CsrPlugin_mstatus_MPIE <= CsrPlugin_csrMapping_writeDataSignal[7];
CsrPlugin_mstatus_MIE <= CsrPlugin_csrMapping_writeDataSignal[3];
case(switch_CsrPlugin_l1031)
@@ -4642,6 +7778,36 @@ module w3d_host_vexriscv (
endcase
end
end
+ if(execute_CsrPlugin_csr_1968) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ CsrPlugin_dcsr_prv <= CsrPlugin_csrMapping_writeDataSignal[1 : 0];
+ CsrPlugin_dcsr_step <= CsrPlugin_csrMapping_writeDataSignal[2];
+ CsrPlugin_dcsr_stoptime <= CsrPlugin_csrMapping_writeDataSignal[9];
+ CsrPlugin_dcsr_stopcount <= CsrPlugin_csrMapping_writeDataSignal[10];
+ CsrPlugin_dcsr_stepie <= CsrPlugin_csrMapping_writeDataSignal[11];
+ CsrPlugin_dcsr_ebreakm <= CsrPlugin_csrMapping_writeDataSignal[15];
+ end
+ end
+ if(execute_CsrPlugin_csr_1953) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ if(CsrPlugin_trigger_slots_0_selected) begin
+ CsrPlugin_trigger_slots_0_tdata1_execute <= CsrPlugin_csrMapping_writeDataSignal[2];
+ CsrPlugin_trigger_slots_0_tdata1_u <= CsrPlugin_csrMapping_writeDataSignal[3];
+ CsrPlugin_trigger_slots_0_tdata1_s <= CsrPlugin_csrMapping_writeDataSignal[4];
+ CsrPlugin_trigger_slots_0_tdata1_m <= CsrPlugin_csrMapping_writeDataSignal[6];
+ CsrPlugin_trigger_slots_0_tdata1_dmode <= CsrPlugin_csrMapping_writeDataSignal[27];
+ CsrPlugin_trigger_slots_0_tdata1_action <= CsrPlugin_csrMapping_writeDataSignal[15 : 12];
+ end
+ if(CsrPlugin_trigger_slots_1_selected) begin
+ CsrPlugin_trigger_slots_1_tdata1_execute <= CsrPlugin_csrMapping_writeDataSignal[2];
+ CsrPlugin_trigger_slots_1_tdata1_u <= CsrPlugin_csrMapping_writeDataSignal[3];
+ CsrPlugin_trigger_slots_1_tdata1_s <= CsrPlugin_csrMapping_writeDataSignal[4];
+ CsrPlugin_trigger_slots_1_tdata1_m <= CsrPlugin_csrMapping_writeDataSignal[6];
+ CsrPlugin_trigger_slots_1_tdata1_dmode <= CsrPlugin_csrMapping_writeDataSignal[27];
+ CsrPlugin_trigger_slots_1_tdata1_action <= CsrPlugin_csrMapping_writeDataSignal[15 : 12];
+ end
+ end
+ end
if(execute_CsrPlugin_csr_772) begin
if(execute_CsrPlugin_writeEnable) begin
CsrPlugin_mie_MEIE <= CsrPlugin_csrMapping_writeDataSignal[11];
@@ -4663,6 +7829,7 @@ module w3d_host_vexriscv (
if(_zz_9) begin
_zz_10 <= (! _zz_dbus_axi_w_payload_last);
end
+ CsrPlugin_running <= CsrPlugin_running_aheadValue;
end
end
@@ -4673,11 +7840,33 @@ module w3d_host_vexriscv (
if(IBusCachedPlugin_iBusRsp_stages_1_output_ready) begin
_zz_IBusCachedPlugin_iBusRsp_stages_1_output_m2sPipe_payload <= IBusCachedPlugin_iBusRsp_stages_1_output_payload;
end
+ if(IBusCachedPlugin_iBusRsp_stages_2_output_ready) begin
+ _zz_IBusCachedPlugin_iBusRsp_stages_2_output_m2sPipe_payload <= IBusCachedPlugin_iBusRsp_stages_2_output_payload;
+ end
+ if(IBusCachedPlugin_decompressor_input_valid) begin
+ IBusCachedPlugin_decompressor_bufferValidLatch <= IBusCachedPlugin_decompressor_bufferValid;
+ end
+ if(IBusCachedPlugin_decompressor_input_valid) begin
+ IBusCachedPlugin_decompressor_throw2BytesLatch <= IBusCachedPlugin_decompressor_throw2Bytes;
+ end
+ if(when_Fetcher_l288) begin
+ IBusCachedPlugin_decompressor_bufferData <= IBusCachedPlugin_decompressor_input_payload_rsp_inst[31 : 16];
+ end
+ if(IBusCachedPlugin_decompressor_output_ready) begin
+ _zz_IBusCachedPlugin_injector_decodeInput_payload_pc <= IBusCachedPlugin_decompressor_output_payload_pc;
+ _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_error <= IBusCachedPlugin_decompressor_output_payload_rsp_error;
+ _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_inst <= IBusCachedPlugin_decompressor_output_payload_rsp_inst;
+ _zz_IBusCachedPlugin_injector_decodeInput_payload_isRvc <= IBusCachedPlugin_decompressor_output_payload_isRvc;
+ end
+ if(IBusCachedPlugin_injector_decodeInput_ready) begin
+ IBusCachedPlugin_injector_formal_rawInDecode <= IBusCachedPlugin_decompressor_raw;
+ end
if(IBusCachedPlugin_iBusRsp_stages_0_output_ready) begin
IBusCachedPlugin_predictor_writeLast_valid <= IBusCachedPlugin_predictor_historyWriteDelayPatched_valid;
IBusCachedPlugin_predictor_writeLast_payload_address <= IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_address;
IBusCachedPlugin_predictor_writeLast_payload_data_source <= IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_source;
IBusCachedPlugin_predictor_writeLast_payload_data_branchWish <= IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_branchWish;
+ IBusCachedPlugin_predictor_writeLast_payload_data_last2Bytes <= IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_last2Bytes;
IBusCachedPlugin_predictor_writeLast_payload_data_target <= IBusCachedPlugin_predictor_historyWriteDelayPatched_payload_data_target;
end
if(IBusCachedPlugin_iBusRsp_stages_0_input_ready) begin
@@ -4686,24 +7875,48 @@ module w3d_host_vexriscv (
if(IBusCachedPlugin_iBusRsp_stages_0_output_ready) begin
IBusCachedPlugin_predictor_line_source <= IBusCachedPlugin_predictor_buffer_line_source;
IBusCachedPlugin_predictor_line_branchWish <= IBusCachedPlugin_predictor_buffer_line_branchWish;
+ IBusCachedPlugin_predictor_line_last2Bytes <= IBusCachedPlugin_predictor_buffer_line_last2Bytes;
IBusCachedPlugin_predictor_line_target <= IBusCachedPlugin_predictor_buffer_line_target;
end
if(IBusCachedPlugin_iBusRsp_stages_0_output_ready) begin
IBusCachedPlugin_predictor_buffer_hazard_regNextWhen <= IBusCachedPlugin_predictor_buffer_hazard;
end
if(IBusCachedPlugin_iBusRsp_stages_1_output_ready) begin
- IBusCachedPlugin_predictor_iBusRspContext_hazard <= IBusCachedPlugin_predictor_fetchContext_hazard;
- IBusCachedPlugin_predictor_iBusRspContext_hit <= IBusCachedPlugin_predictor_fetchContext_hit;
- IBusCachedPlugin_predictor_iBusRspContext_line_source <= IBusCachedPlugin_predictor_fetchContext_line_source;
- IBusCachedPlugin_predictor_iBusRspContext_line_branchWish <= IBusCachedPlugin_predictor_fetchContext_line_branchWish;
- IBusCachedPlugin_predictor_iBusRspContext_line_target <= IBusCachedPlugin_predictor_fetchContext_line_target;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_hazard <= IBusCachedPlugin_predictor_fetchContext_hazard;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_hit <= IBusCachedPlugin_predictor_fetchContext_hit;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_source <= IBusCachedPlugin_predictor_fetchContext_line_source;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_branchWish <= IBusCachedPlugin_predictor_fetchContext_line_branchWish;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_last2Bytes <= IBusCachedPlugin_predictor_fetchContext_line_last2Bytes;
+ IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_target <= IBusCachedPlugin_predictor_fetchContext_line_target;
+ end
+ if(IBusCachedPlugin_iBusRsp_stages_2_output_ready) begin
+ IBusCachedPlugin_predictor_iBusRspContext_hazard <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_hazard;
+ IBusCachedPlugin_predictor_iBusRspContext_hit <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_hit;
+ IBusCachedPlugin_predictor_iBusRspContext_line_source <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_source;
+ IBusCachedPlugin_predictor_iBusRspContext_line_branchWish <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_branchWish;
+ IBusCachedPlugin_predictor_iBusRspContext_line_last2Bytes <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_last2Bytes;
+ IBusCachedPlugin_predictor_iBusRspContext_line_target <= IBusCachedPlugin_predictor_fetchContext_regNextWhen_line_target;
+ end
+ if(IBusCachedPlugin_injector_decodeInput_ready) begin
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hazard <= IBusCachedPlugin_predictor_iBusRspContextOutput_hazard;
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_hit <= IBusCachedPlugin_predictor_iBusRspContextOutput_hit;
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_source <= IBusCachedPlugin_predictor_iBusRspContextOutput_line_source;
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_branchWish <= IBusCachedPlugin_predictor_iBusRspContextOutput_line_branchWish;
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_last2Bytes <= IBusCachedPlugin_predictor_iBusRspContextOutput_line_last2Bytes;
+ IBusCachedPlugin_predictor_iBusRspContextOutput_delay_1_line_target <= IBusCachedPlugin_predictor_iBusRspContextOutput_line_target;
end
- if(IBusCachedPlugin_iBusRsp_stages_1_input_ready) begin
+ if(IBusCachedPlugin_iBusRsp_stages_2_input_ready) begin
IBusCachedPlugin_s1_tightlyCoupledHit <= IBusCachedPlugin_s0_tightlyCoupledHit;
end
- if(IBusCachedPlugin_iBusRsp_stages_2_input_ready) begin
+ if(IBusCachedPlugin_iBusRsp_stages_3_input_ready) begin
IBusCachedPlugin_s2_tightlyCoupledHit <= IBusCachedPlugin_s1_tightlyCoupledHit;
end
+ if(writeBack_FpuPlugin_commit_ready) begin
+ writeBack_FpuPlugin_commit_rData_opcode <= writeBack_FpuPlugin_commit_payload_opcode;
+ writeBack_FpuPlugin_commit_rData_rd <= writeBack_FpuPlugin_commit_payload_rd;
+ writeBack_FpuPlugin_commit_rData_write <= writeBack_FpuPlugin_commit_payload_write;
+ writeBack_FpuPlugin_commit_rData_value <= writeBack_FpuPlugin_commit_payload_value;
+ end
HazardSimplePlugin_writeBackBuffer_payload_address <= HazardSimplePlugin_writeBackWrites_payload_address;
HazardSimplePlugin_writeBackBuffer_payload_data <= HazardSimplePlugin_writeBackWrites_payload_data;
if(when_MulDivIterativePlugin_l126) begin
@@ -4727,16 +7940,32 @@ module w3d_host_vexriscv (
memory_DivPlugin_rs2 <= ((_zz_memory_DivPlugin_rs2 ? (~ execute_RS2) : execute_RS2) + _zz_memory_DivPlugin_rs2_1);
memory_DivPlugin_div_needRevert <= ((_zz_memory_DivPlugin_rs1 ^ (_zz_memory_DivPlugin_rs2 && (! execute_INSTRUCTION[13]))) && (! (((execute_RS2 == 32'h00000000) && execute_IS_RS2_SIGNED) && (! execute_INSTRUCTION[13]))));
end
+ if(when_CsrPlugin_l750) begin
+ if(_zz_when[0]) begin
+ CsrPlugin_dataCsrw_value_0 <= debugBus_dmToHart_payload_data;
+ end
+ end
+ if(CsrPlugin_inject_cmd_toStream_ready) begin
+ CsrPlugin_inject_cmd_toStream_rData_op <= CsrPlugin_inject_cmd_toStream_payload_op;
+ CsrPlugin_inject_cmd_toStream_rData_address <= CsrPlugin_inject_cmd_toStream_payload_address;
+ CsrPlugin_inject_cmd_toStream_rData_data <= CsrPlugin_inject_cmd_toStream_payload_data;
+ CsrPlugin_inject_cmd_toStream_rData_size <= CsrPlugin_inject_cmd_toStream_payload_size;
+ end
+ if(CsrPlugin_trigger_decodeBreak_enabled) begin
+ if(CsrPlugin_trigger_decodeBreak_timeout_state) begin
+ CsrPlugin_dpc <= decode_PC;
+ end
+ end
CsrPlugin_mip_MEIP <= externalInterrupt;
CsrPlugin_mip_MTIP <= timerInterrupt;
CsrPlugin_mip_MSIP <= softwareInterrupt;
- if(_zz_when) begin
+ if(_zz_when_1) begin
CsrPlugin_exceptionPortCtrl_exceptionContext_code <= (_zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1 ? IBusCachedPlugin_decodeExceptionPort_payload_code : decodeExceptionPort_payload_code);
CsrPlugin_exceptionPortCtrl_exceptionContext_badAddr <= (_zz_CsrPlugin_exceptionPortCtrl_exceptionContext_code_1 ? IBusCachedPlugin_decodeExceptionPort_payload_badAddr : decodeExceptionPort_payload_badAddr);
end
- if(BranchPlugin_branchExceptionPort_valid) begin
- CsrPlugin_exceptionPortCtrl_exceptionContext_code <= BranchPlugin_branchExceptionPort_payload_code;
- CsrPlugin_exceptionPortCtrl_exceptionContext_badAddr <= BranchPlugin_branchExceptionPort_payload_badAddr;
+ if(CsrPlugin_selfException_valid) begin
+ CsrPlugin_exceptionPortCtrl_exceptionContext_code <= CsrPlugin_selfException_payload_code;
+ CsrPlugin_exceptionPortCtrl_exceptionContext_badAddr <= CsrPlugin_selfException_payload_badAddr;
end
if(DBusCachedPlugin_exceptionBus_valid) begin
CsrPlugin_exceptionPortCtrl_exceptionContext_code <= DBusCachedPlugin_exceptionBus_payload_code;
@@ -4770,8 +7999,16 @@ module w3d_host_vexriscv (
default : begin
end
endcase
+ end else begin
+ if(when_CsrPlugin_l1428) begin
+ CsrPlugin_dpc <= writeBack_PC;
+ end
end
end
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_op <= debugModule_1_io_harts_0_dmToHart_payload_op;
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_address <= debugModule_1_io_harts_0_dmToHart_payload_address;
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_data <= debugModule_1_io_harts_0_dmToHart_payload_data;
+ toplevel_debugModule_1_io_harts_0_dmToHart_regNext_payload_size <= debugModule_1_io_harts_0_dmToHart_payload_size;
if(when_Pipeline_l124) begin
decode_to_execute_PC <= decode_PC;
end
@@ -4791,202 +8028,308 @@ module w3d_host_vexriscv (
memory_to_writeBack_INSTRUCTION <= memory_INSTRUCTION;
end
if(when_Pipeline_l124_6) begin
- decode_to_execute_FORMAL_PC_NEXT <= decode_FORMAL_PC_NEXT;
+ decode_to_execute_IS_RVC <= decode_IS_RVC;
end
if(when_Pipeline_l124_7) begin
- execute_to_memory_FORMAL_PC_NEXT <= execute_FORMAL_PC_NEXT;
+ execute_to_memory_IS_RVC <= execute_IS_RVC;
end
if(when_Pipeline_l124_8) begin
- memory_to_writeBack_FORMAL_PC_NEXT <= _zz_memory_to_writeBack_FORMAL_PC_NEXT;
+ decode_to_execute_FORMAL_PC_NEXT <= decode_FORMAL_PC_NEXT;
end
if(when_Pipeline_l124_9) begin
+ execute_to_memory_FORMAL_PC_NEXT <= execute_FORMAL_PC_NEXT;
+ end
+ if(when_Pipeline_l124_10) begin
+ memory_to_writeBack_FORMAL_PC_NEXT <= _zz_memory_to_writeBack_FORMAL_PC_NEXT;
+ end
+ if(when_Pipeline_l124_11) begin
decode_to_execute_PREDICTION_CONTEXT_hazard <= decode_PREDICTION_CONTEXT_hazard;
decode_to_execute_PREDICTION_CONTEXT_hit <= decode_PREDICTION_CONTEXT_hit;
decode_to_execute_PREDICTION_CONTEXT_line_source <= decode_PREDICTION_CONTEXT_line_source;
decode_to_execute_PREDICTION_CONTEXT_line_branchWish <= decode_PREDICTION_CONTEXT_line_branchWish;
+ decode_to_execute_PREDICTION_CONTEXT_line_last2Bytes <= decode_PREDICTION_CONTEXT_line_last2Bytes;
decode_to_execute_PREDICTION_CONTEXT_line_target <= decode_PREDICTION_CONTEXT_line_target;
end
- if(when_Pipeline_l124_10) begin
+ if(when_Pipeline_l124_12) begin
execute_to_memory_PREDICTION_CONTEXT_hazard <= execute_PREDICTION_CONTEXT_hazard;
execute_to_memory_PREDICTION_CONTEXT_hit <= execute_PREDICTION_CONTEXT_hit;
execute_to_memory_PREDICTION_CONTEXT_line_source <= execute_PREDICTION_CONTEXT_line_source;
execute_to_memory_PREDICTION_CONTEXT_line_branchWish <= execute_PREDICTION_CONTEXT_line_branchWish;
+ execute_to_memory_PREDICTION_CONTEXT_line_last2Bytes <= execute_PREDICTION_CONTEXT_line_last2Bytes;
execute_to_memory_PREDICTION_CONTEXT_line_target <= execute_PREDICTION_CONTEXT_line_target;
end
- if(when_Pipeline_l124_11) begin
+ if(when_Pipeline_l124_13) begin
decode_to_execute_MEMORY_FORCE_CONSTISTENCY <= decode_MEMORY_FORCE_CONSTISTENCY;
end
- if(when_Pipeline_l124_12) begin
+ if(when_Pipeline_l124_14) begin
decode_to_execute_SRC1_CTRL <= _zz_decode_to_execute_SRC1_CTRL;
end
- if(when_Pipeline_l124_13) begin
+ if(when_Pipeline_l124_15) begin
decode_to_execute_SRC_USE_SUB_LESS <= decode_SRC_USE_SUB_LESS;
end
- if(when_Pipeline_l124_14) begin
+ if(when_Pipeline_l124_16) begin
decode_to_execute_MEMORY_ENABLE <= decode_MEMORY_ENABLE;
end
- if(when_Pipeline_l124_15) begin
+ if(when_Pipeline_l124_17) begin
execute_to_memory_MEMORY_ENABLE <= execute_MEMORY_ENABLE;
end
- if(when_Pipeline_l124_16) begin
+ if(when_Pipeline_l124_18) begin
memory_to_writeBack_MEMORY_ENABLE <= memory_MEMORY_ENABLE;
end
- if(when_Pipeline_l124_17) begin
+ if(when_Pipeline_l124_19) begin
decode_to_execute_ALU_CTRL <= _zz_decode_to_execute_ALU_CTRL;
end
- if(when_Pipeline_l124_18) begin
+ if(when_Pipeline_l124_20) begin
decode_to_execute_SRC2_CTRL <= _zz_decode_to_execute_SRC2_CTRL;
end
- if(when_Pipeline_l124_19) begin
+ if(when_Pipeline_l124_21) begin
decode_to_execute_REGFILE_WRITE_VALID <= decode_REGFILE_WRITE_VALID;
end
- if(when_Pipeline_l124_20) begin
+ if(when_Pipeline_l124_22) begin
execute_to_memory_REGFILE_WRITE_VALID <= execute_REGFILE_WRITE_VALID;
end
- if(when_Pipeline_l124_21) begin
+ if(when_Pipeline_l124_23) begin
memory_to_writeBack_REGFILE_WRITE_VALID <= memory_REGFILE_WRITE_VALID;
end
- if(when_Pipeline_l124_22) begin
+ if(when_Pipeline_l124_24) begin
decode_to_execute_BYPASSABLE_EXECUTE_STAGE <= decode_BYPASSABLE_EXECUTE_STAGE;
end
- if(when_Pipeline_l124_23) begin
+ if(when_Pipeline_l124_25) begin
decode_to_execute_BYPASSABLE_MEMORY_STAGE <= decode_BYPASSABLE_MEMORY_STAGE;
end
- if(when_Pipeline_l124_24) begin
+ if(when_Pipeline_l124_26) begin
execute_to_memory_BYPASSABLE_MEMORY_STAGE <= execute_BYPASSABLE_MEMORY_STAGE;
end
- if(when_Pipeline_l124_25) begin
+ if(when_Pipeline_l124_27) begin
decode_to_execute_MEMORY_WR <= decode_MEMORY_WR;
end
- if(when_Pipeline_l124_26) begin
+ if(when_Pipeline_l124_28) begin
execute_to_memory_MEMORY_WR <= execute_MEMORY_WR;
end
- if(when_Pipeline_l124_27) begin
+ if(when_Pipeline_l124_29) begin
memory_to_writeBack_MEMORY_WR <= memory_MEMORY_WR;
end
- if(when_Pipeline_l124_28) begin
+ if(when_Pipeline_l124_30) begin
decode_to_execute_MEMORY_MANAGMENT <= decode_MEMORY_MANAGMENT;
end
- if(when_Pipeline_l124_29) begin
+ if(when_Pipeline_l124_31) begin
decode_to_execute_SRC_LESS_UNSIGNED <= decode_SRC_LESS_UNSIGNED;
end
- if(when_Pipeline_l124_30) begin
+ if(when_Pipeline_l124_32) begin
decode_to_execute_ALU_BITWISE_CTRL <= _zz_decode_to_execute_ALU_BITWISE_CTRL;
end
- if(when_Pipeline_l124_31) begin
+ if(when_Pipeline_l124_33) begin
+ decode_to_execute_FPU_COMMIT <= decode_FPU_COMMIT;
+ end
+ if(when_Pipeline_l124_34) begin
+ execute_to_memory_FPU_COMMIT <= execute_FPU_COMMIT;
+ end
+ if(when_Pipeline_l124_35) begin
+ memory_to_writeBack_FPU_COMMIT <= memory_FPU_COMMIT;
+ end
+ if(when_Pipeline_l124_36) begin
+ decode_to_execute_FPU_RSP <= decode_FPU_RSP;
+ end
+ if(when_Pipeline_l124_37) begin
+ execute_to_memory_FPU_RSP <= execute_FPU_RSP;
+ end
+ if(when_Pipeline_l124_38) begin
+ memory_to_writeBack_FPU_RSP <= memory_FPU_RSP;
+ end
+ if(when_Pipeline_l124_39) begin
+ decode_to_execute_FPU_OPCODE <= _zz_decode_to_execute_FPU_OPCODE;
+ end
+ if(when_Pipeline_l124_40) begin
+ execute_to_memory_FPU_OPCODE <= _zz_execute_to_memory_FPU_OPCODE;
+ end
+ if(when_Pipeline_l124_41) begin
+ memory_to_writeBack_FPU_OPCODE <= _zz_memory_to_writeBack_FPU_OPCODE;
+ end
+ if(when_Pipeline_l124_42) begin
decode_to_execute_SHIFT_CTRL <= _zz_decode_to_execute_SHIFT_CTRL;
end
- if(when_Pipeline_l124_32) begin
+ if(when_Pipeline_l124_43) begin
decode_to_execute_IS_MUL <= decode_IS_MUL;
end
- if(when_Pipeline_l124_33) begin
+ if(when_Pipeline_l124_44) begin
execute_to_memory_IS_MUL <= execute_IS_MUL;
end
- if(when_Pipeline_l124_34) begin
+ if(when_Pipeline_l124_45) begin
memory_to_writeBack_IS_MUL <= memory_IS_MUL;
end
- if(when_Pipeline_l124_35) begin
+ if(when_Pipeline_l124_46) begin
decode_to_execute_IS_DIV <= decode_IS_DIV;
end
- if(when_Pipeline_l124_36) begin
+ if(when_Pipeline_l124_47) begin
execute_to_memory_IS_DIV <= execute_IS_DIV;
end
- if(when_Pipeline_l124_37) begin
+ if(when_Pipeline_l124_48) begin
decode_to_execute_IS_RS1_SIGNED <= decode_IS_RS1_SIGNED;
end
- if(when_Pipeline_l124_38) begin
+ if(when_Pipeline_l124_49) begin
decode_to_execute_IS_RS2_SIGNED <= decode_IS_RS2_SIGNED;
end
- if(when_Pipeline_l124_39) begin
+ if(when_Pipeline_l124_50) begin
decode_to_execute_IS_CSR <= decode_IS_CSR;
end
- if(when_Pipeline_l124_40) begin
+ if(when_Pipeline_l124_51) begin
decode_to_execute_ENV_CTRL <= _zz_decode_to_execute_ENV_CTRL;
end
- if(when_Pipeline_l124_41) begin
+ if(when_Pipeline_l124_52) begin
execute_to_memory_ENV_CTRL <= _zz_execute_to_memory_ENV_CTRL;
end
- if(when_Pipeline_l124_42) begin
+ if(when_Pipeline_l124_53) begin
memory_to_writeBack_ENV_CTRL <= _zz_memory_to_writeBack_ENV_CTRL;
end
- if(when_Pipeline_l124_43) begin
+ if(when_Pipeline_l124_54) begin
decode_to_execute_BRANCH_CTRL <= _zz_decode_to_execute_BRANCH_CTRL;
end
- if(when_Pipeline_l124_44) begin
+ if(when_Pipeline_l124_55) begin
decode_to_execute_RS1 <= decode_RS1;
end
- if(when_Pipeline_l124_45) begin
+ if(when_Pipeline_l124_56) begin
+ execute_to_memory_RS1 <= _zz_execute_to_memory_RS1;
+ end
+ if(when_Pipeline_l124_57) begin
+ memory_to_writeBack_RS1 <= memory_RS1;
+ end
+ if(when_Pipeline_l124_58) begin
decode_to_execute_RS2 <= decode_RS2;
end
- if(when_Pipeline_l124_46) begin
+ if(when_Pipeline_l124_62) begin
+ decode_to_execute_FPU_COMMIT_LOAD <= decode_FPU_COMMIT_LOAD;
+ end
+ if(when_Pipeline_l124_63) begin
+ execute_to_memory_FPU_COMMIT_LOAD <= execute_FPU_COMMIT_LOAD;
+ end
+ if(when_Pipeline_l124_64) begin
+ memory_to_writeBack_FPU_COMMIT_LOAD <= memory_FPU_COMMIT_LOAD;
+ end
+ if(when_Pipeline_l124_65) begin
decode_to_execute_SRC2_FORCE_ZERO <= decode_SRC2_FORCE_ZERO;
end
- if(when_Pipeline_l124_47) begin
+ if(when_Pipeline_l124_66) begin
decode_to_execute_CSR_WRITE_OPCODE <= decode_CSR_WRITE_OPCODE;
end
- if(when_Pipeline_l124_48) begin
+ if(when_Pipeline_l124_67) begin
decode_to_execute_CSR_READ_OPCODE <= decode_CSR_READ_OPCODE;
end
- if(when_Pipeline_l124_49) begin
+ if(when_Pipeline_l124_68) begin
execute_to_memory_MEMORY_STORE_DATA_RF <= execute_MEMORY_STORE_DATA_RF;
end
- if(when_Pipeline_l124_50) begin
+ if(when_Pipeline_l124_69) begin
memory_to_writeBack_MEMORY_STORE_DATA_RF <= memory_MEMORY_STORE_DATA_RF;
end
- if(when_Pipeline_l124_51) begin
+ if(when_Pipeline_l124_70) begin
execute_to_memory_REGFILE_WRITE_DATA <= _zz_decode_RS2_1;
end
- if(when_Pipeline_l124_52) begin
+ if(when_Pipeline_l124_71) begin
memory_to_writeBack_REGFILE_WRITE_DATA <= _zz_decode_RS2;
end
- if(when_Pipeline_l124_53) begin
+ if(when_Pipeline_l124_72) begin
execute_to_memory_MUL_LL <= execute_MUL_LL;
end
- if(when_Pipeline_l124_54) begin
+ if(when_Pipeline_l124_73) begin
execute_to_memory_MUL_LH <= execute_MUL_LH;
end
- if(when_Pipeline_l124_55) begin
+ if(when_Pipeline_l124_74) begin
execute_to_memory_MUL_HL <= execute_MUL_HL;
end
- if(when_Pipeline_l124_56) begin
+ if(when_Pipeline_l124_75) begin
execute_to_memory_MUL_HH <= execute_MUL_HH;
end
- if(when_Pipeline_l124_57) begin
+ if(when_Pipeline_l124_76) begin
memory_to_writeBack_MUL_HH <= memory_MUL_HH;
end
- if(when_Pipeline_l124_58) begin
+ if(when_Pipeline_l124_77) begin
execute_to_memory_BRANCH_DO <= execute_BRANCH_DO;
end
- if(when_Pipeline_l124_59) begin
+ if(when_Pipeline_l124_78) begin
execute_to_memory_BRANCH_CALC <= execute_BRANCH_CALC;
end
- if(when_Pipeline_l124_60) begin
+ if(when_Pipeline_l124_79) begin
execute_to_memory_NEXT_PC2 <= execute_NEXT_PC2;
end
- if(when_Pipeline_l124_61) begin
+ if(when_Pipeline_l124_80) begin
execute_to_memory_TARGET_MISSMATCH2 <= execute_TARGET_MISSMATCH2;
end
- if(when_Pipeline_l124_62) begin
+ if(when_Pipeline_l124_81) begin
memory_to_writeBack_MUL_LOW <= memory_MUL_LOW;
end
+ if(when_Fetcher_l411) begin
+ _zz_IBusCachedPlugin_injector_decodeInput_payload_rsp_inst <= CsrPlugin_injectionPort_payload;
+ end
if(when_CsrPlugin_l1669) begin
- execute_CsrPlugin_csr_768 <= (decode_INSTRUCTION[31 : 20] == 12'h300);
+ execute_CsrPlugin_csr_3 <= (decode_INSTRUCTION[31 : 20] == 12'h003);
end
if(when_CsrPlugin_l1669_1) begin
- execute_CsrPlugin_csr_836 <= (decode_INSTRUCTION[31 : 20] == 12'h344);
+ execute_CsrPlugin_csr_2 <= (decode_INSTRUCTION[31 : 20] == 12'h002);
end
if(when_CsrPlugin_l1669_2) begin
- execute_CsrPlugin_csr_772 <= (decode_INSTRUCTION[31 : 20] == 12'h304);
+ execute_CsrPlugin_csr_1 <= (decode_INSTRUCTION[31 : 20] == 12'h001);
end
if(when_CsrPlugin_l1669_3) begin
- execute_CsrPlugin_csr_833 <= (decode_INSTRUCTION[31 : 20] == 12'h341);
+ execute_CsrPlugin_csr_256 <= (decode_INSTRUCTION[31 : 20] == 12'h100);
end
if(when_CsrPlugin_l1669_4) begin
- execute_CsrPlugin_csr_834 <= (decode_INSTRUCTION[31 : 20] == 12'h342);
+ execute_CsrPlugin_csr_768 <= (decode_INSTRUCTION[31 : 20] == 12'h300);
end
if(when_CsrPlugin_l1669_5) begin
+ execute_CsrPlugin_csr_1972 <= (decode_INSTRUCTION[31 : 20] == 12'h7b4);
+ end
+ if(when_CsrPlugin_l1669_6) begin
+ execute_CsrPlugin_csr_1969 <= (decode_INSTRUCTION[31 : 20] == 12'h7b1);
+ end
+ if(when_CsrPlugin_l1669_7) begin
+ execute_CsrPlugin_csr_1968 <= (decode_INSTRUCTION[31 : 20] == 12'h7b0);
+ end
+ if(when_CsrPlugin_l1669_8) begin
+ execute_CsrPlugin_csr_1952 <= (decode_INSTRUCTION[31 : 20] == 12'h7a0);
+ end
+ if(when_CsrPlugin_l1669_9) begin
+ execute_CsrPlugin_csr_1956 <= (decode_INSTRUCTION[31 : 20] == 12'h7a4);
+ end
+ if(when_CsrPlugin_l1669_10) begin
+ execute_CsrPlugin_csr_1953 <= (decode_INSTRUCTION[31 : 20] == 12'h7a1);
+ end
+ if(when_CsrPlugin_l1669_11) begin
+ execute_CsrPlugin_csr_1954 <= (decode_INSTRUCTION[31 : 20] == 12'h7a2);
+ end
+ if(when_CsrPlugin_l1669_12) begin
+ execute_CsrPlugin_csr_836 <= (decode_INSTRUCTION[31 : 20] == 12'h344);
+ end
+ if(when_CsrPlugin_l1669_13) begin
+ execute_CsrPlugin_csr_772 <= (decode_INSTRUCTION[31 : 20] == 12'h304);
+ end
+ if(when_CsrPlugin_l1669_14) begin
+ execute_CsrPlugin_csr_833 <= (decode_INSTRUCTION[31 : 20] == 12'h341);
+ end
+ if(when_CsrPlugin_l1669_15) begin
+ execute_CsrPlugin_csr_834 <= (decode_INSTRUCTION[31 : 20] == 12'h342);
+ end
+ if(when_CsrPlugin_l1669_16) begin
execute_CsrPlugin_csr_835 <= (decode_INSTRUCTION[31 : 20] == 12'h343);
end
+ if(execute_CsrPlugin_csr_1969) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ CsrPlugin_dpc <= CsrPlugin_csrMapping_writeDataSignal[31 : 0];
+ end
+ end
+ if(execute_CsrPlugin_csr_1952) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ CsrPlugin_trigger_tselect_index <= CsrPlugin_csrMapping_writeDataSignal[0 : 0];
+ end
+ end
+ if(execute_CsrPlugin_csr_1954) begin
+ if(execute_CsrPlugin_writeEnable) begin
+ if(CsrPlugin_trigger_slots_0_selected) begin
+ CsrPlugin_trigger_slots_0_tdata2_value <= CsrPlugin_csrMapping_writeDataSignal[31 : 0];
+ end
+ if(CsrPlugin_trigger_slots_1_selected) begin
+ CsrPlugin_trigger_slots_1_tdata2_value <= CsrPlugin_csrMapping_writeDataSignal[31 : 0];
+ end
+ end
+ end
if(execute_CsrPlugin_csr_836) begin
if(execute_CsrPlugin_writeEnable) begin
CsrPlugin_mip_MSIP <= CsrPlugin_csrMapping_writeDataSignal[3];
@@ -5002,6 +8345,9420 @@ module w3d_host_vexriscv (
endmodule
+module DebugTransportModuleJtagTap (
+ input wire io_jtag_tms,
+ input wire io_jtag_tdi,
+ output wire io_jtag_tdo,
+ input wire io_jtag_tck,
+ output wire io_bus_cmd_valid,
+ input wire io_bus_cmd_ready,
+ output wire io_bus_cmd_payload_write,
+ output wire [31:0] io_bus_cmd_payload_data,
+ output wire [6:0] io_bus_cmd_payload_address,
+ input wire io_bus_rsp_valid,
+ input wire io_bus_rsp_payload_error,
+ input wire [31:0] io_bus_rsp_payload_data,
+ input wire clk,
+ input wire resetn
+);
+ localparam DebugCaptureOp_SUCCESS = 2'd0;
+ localparam DebugCaptureOp_RESERVED = 2'd1;
+ localparam DebugCaptureOp_FAILED = 2'd2;
+ localparam DebugCaptureOp_OVERRUN = 2'd3;
+ localparam JtagState_RESET = 4'd0;
+ localparam JtagState_IDLE = 4'd1;
+ localparam JtagState_IR_SELECT = 4'd2;
+ localparam JtagState_IR_CAPTURE = 4'd3;
+ localparam JtagState_IR_SHIFT = 4'd4;
+ localparam JtagState_IR_EXIT1 = 4'd5;
+ localparam JtagState_IR_PAUSE = 4'd6;
+ localparam JtagState_IR_EXIT2 = 4'd7;
+ localparam JtagState_IR_UPDATE = 4'd8;
+ localparam JtagState_DR_SELECT = 4'd9;
+ localparam JtagState_DR_CAPTURE = 4'd10;
+ localparam JtagState_DR_SHIFT = 4'd11;
+ localparam JtagState_DR_EXIT1 = 4'd12;
+ localparam JtagState_DR_PAUSE = 4'd13;
+ localparam JtagState_DR_EXIT2 = 4'd14;
+ localparam JtagState_DR_UPDATE = 4'd15;
+ localparam DebugUpdateOp_NOP = 2'd0;
+ localparam DebugUpdateOp_READ = 2'd1;
+ localparam DebugUpdateOp_WRITE = 2'd2;
+ localparam DebugUpdateOp_RESERVED = 2'd3;
+
+ wire logic_jtagLogic_dmiCmd_ccToggle_io_output_valid;
+ wire logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_write;
+ wire [31:0] logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_data;
+ wire [6:0] logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_address;
+ wire logic_systemLogic_bus_rsp_ccToggle_io_output_valid;
+ wire logic_systemLogic_bus_rsp_ccToggle_io_output_payload_error;
+ wire [31:0] logic_systemLogic_bus_rsp_ccToggle_io_output_payload_data;
+ wire [4:0] _zz_tap_isBypass;
+ wire [1:0] _zz_tap_instructionShift;
+ reg [1:0] logic_jtagLogic_dmiStat_value_aheadValue;
+ wire [3:0] tap_fsm_stateNext;
+ reg [3:0] tap_fsm_state;
+ wire [3:0] _zz_tap_fsm_stateNext;
+ wire [3:0] _zz_tap_fsm_stateNext_1;
+ wire [3:0] _zz_tap_fsm_stateNext_2;
+ wire [3:0] _zz_tap_fsm_stateNext_3;
+ wire [3:0] _zz_tap_fsm_stateNext_4;
+ wire [3:0] _zz_tap_fsm_stateNext_5;
+ wire [3:0] _zz_tap_fsm_stateNext_6;
+ wire [3:0] _zz_tap_fsm_stateNext_7;
+ wire [3:0] _zz_tap_fsm_stateNext_8;
+ wire [3:0] _zz_tap_fsm_stateNext_9;
+ wire [3:0] _zz_tap_fsm_stateNext_10;
+ wire [3:0] _zz_tap_fsm_stateNext_11;
+ wire [3:0] _zz_tap_fsm_stateNext_12;
+ wire [3:0] _zz_tap_fsm_stateNext_13;
+ wire [3:0] _zz_tap_fsm_stateNext_14;
+ wire [3:0] _zz_tap_fsm_stateNext_15;
+ reg [3:0] _zz_tap_fsm_stateNext_16;
+ reg [4:0] tap_instruction;
+ reg [4:0] tap_instructionShift;
+ reg tap_bypass;
+ reg tap_tdoUnbufferd;
+ reg tap_tdoDr;
+ wire tap_tdoIr;
+ wire tap_isBypass;
+ reg tap_tdoUnbufferd_regNext;
+ wire idcodeArea_ctrl_tdi;
+ wire idcodeArea_ctrl_enable;
+ wire idcodeArea_ctrl_capture;
+ wire idcodeArea_ctrl_shift;
+ wire idcodeArea_ctrl_update;
+ wire idcodeArea_ctrl_reset;
+ wire idcodeArea_ctrl_tdo;
+ reg [31:0] idcodeArea_shifter;
+ wire when_JtagTap_l120;
+ wire logic_jtagLogic_dmiCmd_valid;
+ wire logic_jtagLogic_dmiCmd_payload_write;
+ wire [31:0] logic_jtagLogic_dmiCmd_payload_data;
+ wire [6:0] logic_jtagLogic_dmiCmd_payload_address;
+ wire logic_jtagLogic_dmiRsp_valid;
+ wire logic_jtagLogic_dmiRsp_payload_error;
+ wire [31:0] logic_jtagLogic_dmiRsp_payload_data;
+ wire [31:0] logic_jtagLogic_dtmcs_captureData;
+ wire [31:0] logic_jtagLogic_dtmcs_updateData;
+ wire logic_jtagLogic_dtmcs_captureValid;
+ wire logic_jtagLogic_dtmcs_updateValid;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_tdi;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_enable;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_capture;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_shift;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_update;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_reset;
+ wire logic_jtagLogic_dtmcs_logic_ctrl_tdo;
+ reg [31:0] logic_jtagLogic_dtmcs_logic_store;
+ wire [1:0] logic_jtagLogic_dmi_captureData_op;
+ wire [31:0] logic_jtagLogic_dmi_captureData_data;
+ wire [6:0] logic_jtagLogic_dmi_captureData_padding;
+ wire [1:0] logic_jtagLogic_dmi_updateData_op;
+ wire [31:0] logic_jtagLogic_dmi_updateData_data;
+ wire [6:0] logic_jtagLogic_dmi_updateData_address;
+ wire logic_jtagLogic_dmi_captureValid;
+ wire logic_jtagLogic_dmi_updateValid;
+ wire logic_jtagLogic_dmi_logic_ctrl_tdi;
+ wire logic_jtagLogic_dmi_logic_ctrl_enable;
+ wire logic_jtagLogic_dmi_logic_ctrl_capture;
+ wire logic_jtagLogic_dmi_logic_ctrl_shift;
+ wire logic_jtagLogic_dmi_logic_ctrl_update;
+ wire logic_jtagLogic_dmi_logic_ctrl_reset;
+ wire logic_jtagLogic_dmi_logic_ctrl_tdo;
+ reg [40:0] logic_jtagLogic_dmi_logic_store;
+ wire [1:0] _zz_logic_jtagLogic_dmi_updateData_op;
+ reg [1:0] logic_jtagLogic_dmiStat_value;
+ reg logic_jtagLogic_dmiStat_failure;
+ reg logic_jtagLogic_dmiStat_busy;
+ reg logic_jtagLogic_dmiStat_clear;
+ wire when_DebugTransportModuleJtag_l30;
+ reg logic_jtagLogic_pending;
+ wire logic_jtagLogic_trigger_dmiHardReset;
+ wire logic_jtagLogic_trigger_dmiReset;
+ reg logic_jtagLogic_trigger_dmiCmd;
+ reg [31:0] logic_jtagLogic_rspLogic_buffer;
+ wire when_DebugTransportModuleJtag_l78;
+ wire logic_systemLogic_bus_cmd_valid;
+ wire logic_systemLogic_bus_cmd_ready;
+ wire logic_systemLogic_bus_cmd_payload_write;
+ wire [31:0] logic_systemLogic_bus_cmd_payload_data;
+ wire [6:0] logic_systemLogic_bus_cmd_payload_address;
+ wire logic_systemLogic_bus_rsp_valid;
+ wire logic_systemLogic_bus_rsp_payload_error;
+ wire [31:0] logic_systemLogic_bus_rsp_payload_data;
+ wire debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_valid;
+ reg debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_ready;
+ wire debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_write;
+ wire [31:0] debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_data;
+ wire [6:0] debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_address;
+ wire logic_systemLogic_cmd_valid;
+ wire logic_systemLogic_cmd_ready;
+ wire logic_systemLogic_cmd_payload_write;
+ wire [31:0] logic_systemLogic_cmd_payload_data;
+ wire [6:0] logic_systemLogic_cmd_payload_address;
+ reg debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rValid;
+ wire debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_fire;
+ (* async_reg = "true" *) reg debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_write;
+ (* async_reg = "true" *) reg [31:0] debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_data;
+ (* async_reg = "true" *) reg [6:0] debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_address;
+ wire when_Stream_l369;
+ `ifndef SYNTHESIS
+ reg [63:0] logic_jtagLogic_dmiStat_value_aheadValue_string;
+ reg [79:0] tap_fsm_stateNext_string;
+ reg [79:0] tap_fsm_state_string;
+ reg [79:0] _zz_tap_fsm_stateNext_string;
+ reg [79:0] _zz_tap_fsm_stateNext_1_string;
+ reg [79:0] _zz_tap_fsm_stateNext_2_string;
+ reg [79:0] _zz_tap_fsm_stateNext_3_string;
+ reg [79:0] _zz_tap_fsm_stateNext_4_string;
+ reg [79:0] _zz_tap_fsm_stateNext_5_string;
+ reg [79:0] _zz_tap_fsm_stateNext_6_string;
+ reg [79:0] _zz_tap_fsm_stateNext_7_string;
+ reg [79:0] _zz_tap_fsm_stateNext_8_string;
+ reg [79:0] _zz_tap_fsm_stateNext_9_string;
+ reg [79:0] _zz_tap_fsm_stateNext_10_string;
+ reg [79:0] _zz_tap_fsm_stateNext_11_string;
+ reg [79:0] _zz_tap_fsm_stateNext_12_string;
+ reg [79:0] _zz_tap_fsm_stateNext_13_string;
+ reg [79:0] _zz_tap_fsm_stateNext_14_string;
+ reg [79:0] _zz_tap_fsm_stateNext_15_string;
+ reg [79:0] _zz_tap_fsm_stateNext_16_string;
+ reg [63:0] logic_jtagLogic_dmi_captureData_op_string;
+ reg [63:0] logic_jtagLogic_dmi_updateData_op_string;
+ reg [63:0] _zz_logic_jtagLogic_dmi_updateData_op_string;
+ reg [63:0] logic_jtagLogic_dmiStat_value_string;
+ `endif
+
+
+ assign _zz_tap_isBypass = tap_instruction;
+ assign _zz_tap_instructionShift = 2'b01;
+ FlowCCByToggle logic_jtagLogic_dmiCmd_ccToggle (
+ .io_input_valid (logic_jtagLogic_dmiCmd_valid ), //i
+ .io_input_payload_write (logic_jtagLogic_dmiCmd_payload_write ), //i
+ .io_input_payload_data (logic_jtagLogic_dmiCmd_payload_data[31:0] ), //i
+ .io_input_payload_address (logic_jtagLogic_dmiCmd_payload_address[6:0] ), //i
+ .io_output_valid (logic_jtagLogic_dmiCmd_ccToggle_io_output_valid ), //o
+ .io_output_payload_write (logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_write ), //o
+ .io_output_payload_data (logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_data[31:0] ), //o
+ .io_output_payload_address (logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_address[6:0]), //o
+ .io_jtag_tck (io_jtag_tck ), //i
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ FlowCCByToggle_1 logic_systemLogic_bus_rsp_ccToggle (
+ .io_input_valid (logic_systemLogic_bus_rsp_valid ), //i
+ .io_input_payload_error (logic_systemLogic_bus_rsp_payload_error ), //i
+ .io_input_payload_data (logic_systemLogic_bus_rsp_payload_data[31:0] ), //i
+ .io_output_valid (logic_systemLogic_bus_rsp_ccToggle_io_output_valid ), //o
+ .io_output_payload_error (logic_systemLogic_bus_rsp_ccToggle_io_output_payload_error ), //o
+ .io_output_payload_data (logic_systemLogic_bus_rsp_ccToggle_io_output_payload_data[31:0]), //o
+ .clk (clk ), //i
+ .resetn (resetn ), //i
+ .io_jtag_tck (io_jtag_tck ) //i
+ );
+ initial begin
+ `ifndef SYNTHESIS
+ tap_fsm_state = {$urandom};
+ `endif
+ end
+
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(logic_jtagLogic_dmiStat_value_aheadValue)
+ DebugCaptureOp_SUCCESS : logic_jtagLogic_dmiStat_value_aheadValue_string = "SUCCESS ";
+ DebugCaptureOp_RESERVED : logic_jtagLogic_dmiStat_value_aheadValue_string = "RESERVED";
+ DebugCaptureOp_FAILED : logic_jtagLogic_dmiStat_value_aheadValue_string = "FAILED ";
+ DebugCaptureOp_OVERRUN : logic_jtagLogic_dmiStat_value_aheadValue_string = "OVERRUN ";
+ default : logic_jtagLogic_dmiStat_value_aheadValue_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(tap_fsm_stateNext)
+ JtagState_RESET : tap_fsm_stateNext_string = "RESET ";
+ JtagState_IDLE : tap_fsm_stateNext_string = "IDLE ";
+ JtagState_IR_SELECT : tap_fsm_stateNext_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : tap_fsm_stateNext_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : tap_fsm_stateNext_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : tap_fsm_stateNext_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : tap_fsm_stateNext_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : tap_fsm_stateNext_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : tap_fsm_stateNext_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : tap_fsm_stateNext_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : tap_fsm_stateNext_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : tap_fsm_stateNext_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : tap_fsm_stateNext_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : tap_fsm_stateNext_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : tap_fsm_stateNext_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : tap_fsm_stateNext_string = "DR_UPDATE ";
+ default : tap_fsm_stateNext_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(tap_fsm_state)
+ JtagState_RESET : tap_fsm_state_string = "RESET ";
+ JtagState_IDLE : tap_fsm_state_string = "IDLE ";
+ JtagState_IR_SELECT : tap_fsm_state_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : tap_fsm_state_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : tap_fsm_state_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : tap_fsm_state_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : tap_fsm_state_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : tap_fsm_state_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : tap_fsm_state_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : tap_fsm_state_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : tap_fsm_state_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : tap_fsm_state_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : tap_fsm_state_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : tap_fsm_state_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : tap_fsm_state_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : tap_fsm_state_string = "DR_UPDATE ";
+ default : tap_fsm_state_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext)
+ JtagState_RESET : _zz_tap_fsm_stateNext_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_1)
+ JtagState_RESET : _zz_tap_fsm_stateNext_1_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_1_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_1_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_1_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_1_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_1_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_1_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_1_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_1_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_1_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_1_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_1_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_1_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_1_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_1_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_1_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_1_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_2)
+ JtagState_RESET : _zz_tap_fsm_stateNext_2_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_2_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_2_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_2_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_2_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_2_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_2_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_2_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_2_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_2_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_2_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_2_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_2_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_2_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_2_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_2_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_2_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_3)
+ JtagState_RESET : _zz_tap_fsm_stateNext_3_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_3_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_3_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_3_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_3_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_3_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_3_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_3_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_3_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_3_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_3_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_3_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_3_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_3_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_3_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_3_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_3_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_4)
+ JtagState_RESET : _zz_tap_fsm_stateNext_4_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_4_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_4_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_4_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_4_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_4_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_4_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_4_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_4_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_4_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_4_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_4_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_4_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_4_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_4_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_4_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_4_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_5)
+ JtagState_RESET : _zz_tap_fsm_stateNext_5_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_5_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_5_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_5_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_5_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_5_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_5_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_5_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_5_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_5_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_5_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_5_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_5_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_5_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_5_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_5_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_5_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_6)
+ JtagState_RESET : _zz_tap_fsm_stateNext_6_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_6_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_6_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_6_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_6_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_6_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_6_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_6_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_6_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_6_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_6_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_6_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_6_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_6_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_6_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_6_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_6_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_7)
+ JtagState_RESET : _zz_tap_fsm_stateNext_7_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_7_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_7_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_7_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_7_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_7_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_7_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_7_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_7_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_7_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_7_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_7_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_7_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_7_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_7_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_7_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_7_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_8)
+ JtagState_RESET : _zz_tap_fsm_stateNext_8_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_8_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_8_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_8_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_8_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_8_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_8_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_8_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_8_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_8_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_8_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_8_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_8_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_8_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_8_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_8_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_8_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_9)
+ JtagState_RESET : _zz_tap_fsm_stateNext_9_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_9_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_9_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_9_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_9_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_9_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_9_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_9_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_9_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_9_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_9_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_9_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_9_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_9_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_9_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_9_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_9_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_10)
+ JtagState_RESET : _zz_tap_fsm_stateNext_10_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_10_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_10_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_10_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_10_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_10_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_10_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_10_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_10_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_10_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_10_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_10_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_10_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_10_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_10_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_10_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_10_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_11)
+ JtagState_RESET : _zz_tap_fsm_stateNext_11_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_11_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_11_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_11_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_11_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_11_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_11_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_11_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_11_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_11_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_11_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_11_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_11_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_11_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_11_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_11_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_11_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_12)
+ JtagState_RESET : _zz_tap_fsm_stateNext_12_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_12_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_12_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_12_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_12_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_12_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_12_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_12_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_12_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_12_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_12_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_12_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_12_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_12_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_12_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_12_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_12_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_13)
+ JtagState_RESET : _zz_tap_fsm_stateNext_13_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_13_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_13_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_13_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_13_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_13_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_13_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_13_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_13_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_13_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_13_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_13_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_13_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_13_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_13_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_13_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_13_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_14)
+ JtagState_RESET : _zz_tap_fsm_stateNext_14_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_14_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_14_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_14_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_14_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_14_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_14_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_14_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_14_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_14_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_14_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_14_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_14_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_14_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_14_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_14_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_14_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_15)
+ JtagState_RESET : _zz_tap_fsm_stateNext_15_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_15_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_15_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_15_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_15_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_15_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_15_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_15_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_15_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_15_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_15_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_15_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_15_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_15_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_15_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_15_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_15_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_tap_fsm_stateNext_16)
+ JtagState_RESET : _zz_tap_fsm_stateNext_16_string = "RESET ";
+ JtagState_IDLE : _zz_tap_fsm_stateNext_16_string = "IDLE ";
+ JtagState_IR_SELECT : _zz_tap_fsm_stateNext_16_string = "IR_SELECT ";
+ JtagState_IR_CAPTURE : _zz_tap_fsm_stateNext_16_string = "IR_CAPTURE";
+ JtagState_IR_SHIFT : _zz_tap_fsm_stateNext_16_string = "IR_SHIFT ";
+ JtagState_IR_EXIT1 : _zz_tap_fsm_stateNext_16_string = "IR_EXIT1 ";
+ JtagState_IR_PAUSE : _zz_tap_fsm_stateNext_16_string = "IR_PAUSE ";
+ JtagState_IR_EXIT2 : _zz_tap_fsm_stateNext_16_string = "IR_EXIT2 ";
+ JtagState_IR_UPDATE : _zz_tap_fsm_stateNext_16_string = "IR_UPDATE ";
+ JtagState_DR_SELECT : _zz_tap_fsm_stateNext_16_string = "DR_SELECT ";
+ JtagState_DR_CAPTURE : _zz_tap_fsm_stateNext_16_string = "DR_CAPTURE";
+ JtagState_DR_SHIFT : _zz_tap_fsm_stateNext_16_string = "DR_SHIFT ";
+ JtagState_DR_EXIT1 : _zz_tap_fsm_stateNext_16_string = "DR_EXIT1 ";
+ JtagState_DR_PAUSE : _zz_tap_fsm_stateNext_16_string = "DR_PAUSE ";
+ JtagState_DR_EXIT2 : _zz_tap_fsm_stateNext_16_string = "DR_EXIT2 ";
+ JtagState_DR_UPDATE : _zz_tap_fsm_stateNext_16_string = "DR_UPDATE ";
+ default : _zz_tap_fsm_stateNext_16_string = "??????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_jtagLogic_dmi_captureData_op)
+ DebugCaptureOp_SUCCESS : logic_jtagLogic_dmi_captureData_op_string = "SUCCESS ";
+ DebugCaptureOp_RESERVED : logic_jtagLogic_dmi_captureData_op_string = "RESERVED";
+ DebugCaptureOp_FAILED : logic_jtagLogic_dmi_captureData_op_string = "FAILED ";
+ DebugCaptureOp_OVERRUN : logic_jtagLogic_dmi_captureData_op_string = "OVERRUN ";
+ default : logic_jtagLogic_dmi_captureData_op_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_jtagLogic_dmi_updateData_op)
+ DebugUpdateOp_NOP : logic_jtagLogic_dmi_updateData_op_string = "NOP ";
+ DebugUpdateOp_READ : logic_jtagLogic_dmi_updateData_op_string = "READ ";
+ DebugUpdateOp_WRITE : logic_jtagLogic_dmi_updateData_op_string = "WRITE ";
+ DebugUpdateOp_RESERVED : logic_jtagLogic_dmi_updateData_op_string = "RESERVED";
+ default : logic_jtagLogic_dmi_updateData_op_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_logic_jtagLogic_dmi_updateData_op)
+ DebugUpdateOp_NOP : _zz_logic_jtagLogic_dmi_updateData_op_string = "NOP ";
+ DebugUpdateOp_READ : _zz_logic_jtagLogic_dmi_updateData_op_string = "READ ";
+ DebugUpdateOp_WRITE : _zz_logic_jtagLogic_dmi_updateData_op_string = "WRITE ";
+ DebugUpdateOp_RESERVED : _zz_logic_jtagLogic_dmi_updateData_op_string = "RESERVED";
+ default : _zz_logic_jtagLogic_dmi_updateData_op_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_jtagLogic_dmiStat_value)
+ DebugCaptureOp_SUCCESS : logic_jtagLogic_dmiStat_value_string = "SUCCESS ";
+ DebugCaptureOp_RESERVED : logic_jtagLogic_dmiStat_value_string = "RESERVED";
+ DebugCaptureOp_FAILED : logic_jtagLogic_dmiStat_value_string = "FAILED ";
+ DebugCaptureOp_OVERRUN : logic_jtagLogic_dmiStat_value_string = "OVERRUN ";
+ default : logic_jtagLogic_dmiStat_value_string = "????????";
+ endcase
+ end
+ `endif
+
+ always @(*) begin
+ logic_jtagLogic_dmiStat_value_aheadValue = logic_jtagLogic_dmiStat_value;
+ if(when_DebugTransportModuleJtag_l30) begin
+ if(logic_jtagLogic_dmiStat_failure) begin
+ logic_jtagLogic_dmiStat_value_aheadValue = DebugCaptureOp_FAILED;
+ end
+ if(logic_jtagLogic_dmiStat_busy) begin
+ logic_jtagLogic_dmiStat_value_aheadValue = DebugCaptureOp_OVERRUN;
+ end
+ end
+ if(logic_jtagLogic_dmiStat_clear) begin
+ logic_jtagLogic_dmiStat_value_aheadValue = DebugCaptureOp_SUCCESS;
+ end
+ end
+
+ assign _zz_tap_fsm_stateNext = (io_jtag_tms ? JtagState_RESET : JtagState_IDLE);
+ assign _zz_tap_fsm_stateNext_1 = (io_jtag_tms ? JtagState_DR_SELECT : JtagState_IDLE);
+ assign _zz_tap_fsm_stateNext_2 = (io_jtag_tms ? JtagState_RESET : JtagState_IR_CAPTURE);
+ assign _zz_tap_fsm_stateNext_3 = (io_jtag_tms ? JtagState_IR_EXIT1 : JtagState_IR_SHIFT);
+ assign _zz_tap_fsm_stateNext_4 = (io_jtag_tms ? JtagState_IR_EXIT1 : JtagState_IR_SHIFT);
+ assign _zz_tap_fsm_stateNext_5 = (io_jtag_tms ? JtagState_IR_UPDATE : JtagState_IR_PAUSE);
+ assign _zz_tap_fsm_stateNext_6 = (io_jtag_tms ? JtagState_IR_EXIT2 : JtagState_IR_PAUSE);
+ assign _zz_tap_fsm_stateNext_7 = (io_jtag_tms ? JtagState_IR_UPDATE : JtagState_IR_SHIFT);
+ assign _zz_tap_fsm_stateNext_8 = (io_jtag_tms ? JtagState_DR_SELECT : JtagState_IDLE);
+ assign _zz_tap_fsm_stateNext_9 = (io_jtag_tms ? JtagState_IR_SELECT : JtagState_DR_CAPTURE);
+ assign _zz_tap_fsm_stateNext_10 = (io_jtag_tms ? JtagState_DR_EXIT1 : JtagState_DR_SHIFT);
+ assign _zz_tap_fsm_stateNext_11 = (io_jtag_tms ? JtagState_DR_EXIT1 : JtagState_DR_SHIFT);
+ assign _zz_tap_fsm_stateNext_12 = (io_jtag_tms ? JtagState_DR_UPDATE : JtagState_DR_PAUSE);
+ assign _zz_tap_fsm_stateNext_13 = (io_jtag_tms ? JtagState_DR_EXIT2 : JtagState_DR_PAUSE);
+ assign _zz_tap_fsm_stateNext_14 = (io_jtag_tms ? JtagState_DR_UPDATE : JtagState_DR_SHIFT);
+ assign _zz_tap_fsm_stateNext_15 = (io_jtag_tms ? JtagState_DR_SELECT : JtagState_IDLE);
+ always @(*) begin
+ case(tap_fsm_state)
+ JtagState_IDLE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_1;
+ end
+ JtagState_IR_SELECT : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_2;
+ end
+ JtagState_IR_CAPTURE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_3;
+ end
+ JtagState_IR_SHIFT : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_4;
+ end
+ JtagState_IR_EXIT1 : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_5;
+ end
+ JtagState_IR_PAUSE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_6;
+ end
+ JtagState_IR_EXIT2 : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_7;
+ end
+ JtagState_IR_UPDATE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_8;
+ end
+ JtagState_DR_SELECT : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_9;
+ end
+ JtagState_DR_CAPTURE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_10;
+ end
+ JtagState_DR_SHIFT : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_11;
+ end
+ JtagState_DR_EXIT1 : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_12;
+ end
+ JtagState_DR_PAUSE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_13;
+ end
+ JtagState_DR_EXIT2 : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_14;
+ end
+ JtagState_DR_UPDATE : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext_15;
+ end
+ default : begin
+ _zz_tap_fsm_stateNext_16 = _zz_tap_fsm_stateNext;
+ end
+ endcase
+ end
+
+ assign tap_fsm_stateNext = _zz_tap_fsm_stateNext_16;
+ always @(*) begin
+ tap_tdoUnbufferd = tap_bypass;
+ case(tap_fsm_state)
+ JtagState_IR_SHIFT : begin
+ tap_tdoUnbufferd = tap_tdoIr;
+ end
+ JtagState_DR_SHIFT : begin
+ if(tap_isBypass) begin
+ tap_tdoUnbufferd = tap_bypass;
+ end else begin
+ tap_tdoUnbufferd = tap_tdoDr;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ tap_tdoDr = 1'b0;
+ if(idcodeArea_ctrl_enable) begin
+ tap_tdoDr = idcodeArea_ctrl_tdo;
+ end
+ if(logic_jtagLogic_dtmcs_logic_ctrl_enable) begin
+ tap_tdoDr = logic_jtagLogic_dtmcs_logic_ctrl_tdo;
+ end
+ if(logic_jtagLogic_dmi_logic_ctrl_enable) begin
+ tap_tdoDr = logic_jtagLogic_dmi_logic_ctrl_tdo;
+ end
+ end
+
+ assign tap_tdoIr = tap_instructionShift[0];
+ assign tap_isBypass = ($signed(_zz_tap_isBypass) == $signed(5'h1f));
+ assign io_jtag_tdo = tap_tdoUnbufferd_regNext;
+ assign idcodeArea_ctrl_tdo = idcodeArea_shifter[0];
+ assign idcodeArea_ctrl_tdi = io_jtag_tdi;
+ assign idcodeArea_ctrl_enable = (tap_instruction == 5'h01);
+ assign idcodeArea_ctrl_capture = (tap_fsm_state == JtagState_DR_CAPTURE);
+ assign idcodeArea_ctrl_shift = (tap_fsm_state == JtagState_DR_SHIFT);
+ assign idcodeArea_ctrl_update = (tap_fsm_state == JtagState_DR_UPDATE);
+ assign idcodeArea_ctrl_reset = (tap_fsm_state == JtagState_RESET);
+ assign when_JtagTap_l120 = (tap_fsm_state == JtagState_RESET);
+ assign logic_jtagLogic_dtmcs_captureValid = ((tap_instruction == 5'h10) && (tap_fsm_state == JtagState_DR_CAPTURE));
+ assign logic_jtagLogic_dtmcs_updateValid = ((tap_instruction == 5'h10) && (tap_fsm_state == JtagState_DR_UPDATE));
+ assign logic_jtagLogic_dtmcs_logic_ctrl_tdo = logic_jtagLogic_dtmcs_logic_store[0];
+ assign logic_jtagLogic_dtmcs_updateData = logic_jtagLogic_dtmcs_logic_store;
+ assign logic_jtagLogic_dtmcs_logic_ctrl_tdi = io_jtag_tdi;
+ assign logic_jtagLogic_dtmcs_logic_ctrl_enable = (tap_instruction == 5'h10);
+ assign logic_jtagLogic_dtmcs_logic_ctrl_capture = (tap_fsm_state == JtagState_DR_CAPTURE);
+ assign logic_jtagLogic_dtmcs_logic_ctrl_shift = (tap_fsm_state == JtagState_DR_SHIFT);
+ assign logic_jtagLogic_dtmcs_logic_ctrl_update = (tap_fsm_state == JtagState_DR_UPDATE);
+ assign logic_jtagLogic_dtmcs_logic_ctrl_reset = (tap_fsm_state == JtagState_RESET);
+ assign logic_jtagLogic_dmi_captureValid = ((tap_instruction == 5'h11) && (tap_fsm_state == JtagState_DR_CAPTURE));
+ assign logic_jtagLogic_dmi_updateValid = ((tap_instruction == 5'h11) && (tap_fsm_state == JtagState_DR_UPDATE));
+ assign logic_jtagLogic_dmi_logic_ctrl_tdo = logic_jtagLogic_dmi_logic_store[0];
+ assign _zz_logic_jtagLogic_dmi_updateData_op = logic_jtagLogic_dmi_logic_store[1 : 0];
+ assign logic_jtagLogic_dmi_updateData_op = _zz_logic_jtagLogic_dmi_updateData_op;
+ assign logic_jtagLogic_dmi_updateData_data = logic_jtagLogic_dmi_logic_store[33 : 2];
+ assign logic_jtagLogic_dmi_updateData_address = logic_jtagLogic_dmi_logic_store[40 : 34];
+ assign logic_jtagLogic_dmi_logic_ctrl_tdi = io_jtag_tdi;
+ assign logic_jtagLogic_dmi_logic_ctrl_enable = (tap_instruction == 5'h11);
+ assign logic_jtagLogic_dmi_logic_ctrl_capture = (tap_fsm_state == JtagState_DR_CAPTURE);
+ assign logic_jtagLogic_dmi_logic_ctrl_shift = (tap_fsm_state == JtagState_DR_SHIFT);
+ assign logic_jtagLogic_dmi_logic_ctrl_update = (tap_fsm_state == JtagState_DR_UPDATE);
+ assign logic_jtagLogic_dmi_logic_ctrl_reset = (tap_fsm_state == JtagState_RESET);
+ always @(*) begin
+ logic_jtagLogic_dmiStat_failure = 1'b0;
+ if(logic_jtagLogic_dmi_updateValid) begin
+ case(logic_jtagLogic_dmi_updateData_op)
+ DebugUpdateOp_NOP : begin
+ end
+ DebugUpdateOp_READ : begin
+ end
+ DebugUpdateOp_WRITE : begin
+ end
+ default : begin
+ logic_jtagLogic_dmiStat_failure = 1'b1;
+ end
+ endcase
+ end
+ if(logic_jtagLogic_dmiRsp_valid) begin
+ if(logic_jtagLogic_dmiRsp_payload_error) begin
+ logic_jtagLogic_dmiStat_failure = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ logic_jtagLogic_dmiStat_busy = 1'b0;
+ if(when_DebugTransportModuleJtag_l78) begin
+ logic_jtagLogic_dmiStat_busy = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ logic_jtagLogic_dmiStat_clear = 1'b0;
+ if(logic_jtagLogic_trigger_dmiReset) begin
+ logic_jtagLogic_dmiStat_clear = 1'b1;
+ end
+ if(logic_jtagLogic_trigger_dmiHardReset) begin
+ logic_jtagLogic_dmiStat_clear = 1'b1;
+ end
+ end
+
+ assign when_DebugTransportModuleJtag_l30 = (logic_jtagLogic_dmiStat_value == DebugCaptureOp_SUCCESS);
+ assign logic_jtagLogic_trigger_dmiHardReset = ((logic_jtagLogic_dtmcs_updateData[17] && logic_jtagLogic_dtmcs_updateValid) || (tap_fsm_state == JtagState_RESET));
+ assign logic_jtagLogic_trigger_dmiReset = ((logic_jtagLogic_dtmcs_updateData[16] && logic_jtagLogic_dtmcs_updateValid) || (tap_fsm_state == JtagState_RESET));
+ always @(*) begin
+ logic_jtagLogic_trigger_dmiCmd = 1'b0;
+ if(logic_jtagLogic_dmi_updateValid) begin
+ case(logic_jtagLogic_dmi_updateData_op)
+ DebugUpdateOp_NOP : begin
+ end
+ DebugUpdateOp_READ : begin
+ logic_jtagLogic_trigger_dmiCmd = 1'b1;
+ end
+ DebugUpdateOp_WRITE : begin
+ logic_jtagLogic_trigger_dmiCmd = 1'b1;
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ assign logic_jtagLogic_dtmcs_captureData = {{{{17'h00000,3'b111},logic_jtagLogic_dmiStat_value},6'h07},4'b0001};
+ assign logic_jtagLogic_dmiCmd_valid = logic_jtagLogic_trigger_dmiCmd;
+ assign logic_jtagLogic_dmiCmd_payload_write = (logic_jtagLogic_dmi_updateData_op == DebugUpdateOp_WRITE);
+ assign logic_jtagLogic_dmiCmd_payload_address = logic_jtagLogic_dmi_updateData_address;
+ assign logic_jtagLogic_dmiCmd_payload_data = logic_jtagLogic_dmi_updateData_data;
+ assign logic_jtagLogic_dmi_captureData_op = logic_jtagLogic_dmiStat_value_aheadValue;
+ assign logic_jtagLogic_dmi_captureData_data = logic_jtagLogic_rspLogic_buffer;
+ assign logic_jtagLogic_dmi_captureData_padding = 7'h00;
+ assign when_DebugTransportModuleJtag_l78 = (logic_jtagLogic_dmi_captureValid && logic_jtagLogic_pending);
+ assign debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_valid = logic_jtagLogic_dmiCmd_ccToggle_io_output_valid;
+ assign debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_write = logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_write;
+ assign debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_data = logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_data;
+ assign debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_address = logic_jtagLogic_dmiCmd_ccToggle_io_output_payload_address;
+ assign debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_fire = (debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_valid && debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_ready);
+ always @(*) begin
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_ready = logic_systemLogic_cmd_ready;
+ if(when_Stream_l369) begin
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369 = (! logic_systemLogic_cmd_valid);
+ assign logic_systemLogic_cmd_valid = debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rValid;
+ assign logic_systemLogic_cmd_payload_write = debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_write;
+ assign logic_systemLogic_cmd_payload_data = debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_data;
+ assign logic_systemLogic_cmd_payload_address = debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_address;
+ assign logic_systemLogic_bus_cmd_valid = logic_systemLogic_cmd_valid;
+ assign logic_systemLogic_cmd_ready = logic_systemLogic_bus_cmd_ready;
+ assign logic_systemLogic_bus_cmd_payload_write = logic_systemLogic_cmd_payload_write;
+ assign logic_systemLogic_bus_cmd_payload_data = logic_systemLogic_cmd_payload_data;
+ assign logic_systemLogic_bus_cmd_payload_address = logic_systemLogic_cmd_payload_address;
+ assign logic_jtagLogic_dmiRsp_valid = logic_systemLogic_bus_rsp_ccToggle_io_output_valid;
+ assign logic_jtagLogic_dmiRsp_payload_error = logic_systemLogic_bus_rsp_ccToggle_io_output_payload_error;
+ assign logic_jtagLogic_dmiRsp_payload_data = logic_systemLogic_bus_rsp_ccToggle_io_output_payload_data;
+ assign io_bus_cmd_valid = logic_systemLogic_bus_cmd_valid;
+ assign logic_systemLogic_bus_cmd_ready = io_bus_cmd_ready;
+ assign io_bus_cmd_payload_write = logic_systemLogic_bus_cmd_payload_write;
+ assign io_bus_cmd_payload_data = logic_systemLogic_bus_cmd_payload_data;
+ assign io_bus_cmd_payload_address = logic_systemLogic_bus_cmd_payload_address;
+ assign logic_systemLogic_bus_rsp_valid = io_bus_rsp_valid;
+ assign logic_systemLogic_bus_rsp_payload_error = io_bus_rsp_payload_error;
+ assign logic_systemLogic_bus_rsp_payload_data = io_bus_rsp_payload_data;
+ always @(posedge io_jtag_tck) begin
+ tap_fsm_state <= tap_fsm_stateNext;
+ tap_bypass <= io_jtag_tdi;
+ case(tap_fsm_state)
+ JtagState_IR_CAPTURE : begin
+ tap_instructionShift <= {3'd0, _zz_tap_instructionShift};
+ end
+ JtagState_IR_SHIFT : begin
+ tap_instructionShift <= ({io_jtag_tdi,tap_instructionShift} >>> 1'd1);
+ end
+ JtagState_IR_UPDATE : begin
+ tap_instruction <= tap_instructionShift;
+ end
+ JtagState_DR_SHIFT : begin
+ tap_instructionShift <= ({io_jtag_tdi,tap_instructionShift} >>> 1'd1);
+ end
+ default : begin
+ end
+ endcase
+ if(idcodeArea_ctrl_enable) begin
+ if(idcodeArea_ctrl_shift) begin
+ idcodeArea_shifter <= ({idcodeArea_ctrl_tdi,idcodeArea_shifter} >>> 1'd1);
+ end
+ end
+ if(idcodeArea_ctrl_capture) begin
+ idcodeArea_shifter <= 32'h10002fff;
+ end
+ if(when_JtagTap_l120) begin
+ tap_instruction <= 5'h01;
+ end
+ if(logic_jtagLogic_dtmcs_logic_ctrl_enable) begin
+ if(logic_jtagLogic_dtmcs_logic_ctrl_capture) begin
+ logic_jtagLogic_dtmcs_logic_store <= logic_jtagLogic_dtmcs_captureData;
+ end
+ if(logic_jtagLogic_dtmcs_logic_ctrl_shift) begin
+ logic_jtagLogic_dtmcs_logic_store <= ({logic_jtagLogic_dtmcs_logic_ctrl_tdi,logic_jtagLogic_dtmcs_logic_store} >>> 1'd1);
+ end
+ end
+ if(logic_jtagLogic_dmi_logic_ctrl_enable) begin
+ if(logic_jtagLogic_dmi_logic_ctrl_capture) begin
+ logic_jtagLogic_dmi_logic_store <= {logic_jtagLogic_dmi_captureData_padding,{logic_jtagLogic_dmi_captureData_data,logic_jtagLogic_dmi_captureData_op}};
+ end
+ if(logic_jtagLogic_dmi_logic_ctrl_shift) begin
+ logic_jtagLogic_dmi_logic_store <= ({logic_jtagLogic_dmi_logic_ctrl_tdi,logic_jtagLogic_dmi_logic_store} >>> 1'd1);
+ end
+ end
+ if(logic_jtagLogic_dmiCmd_valid) begin
+ logic_jtagLogic_pending <= 1'b1;
+ end
+ if(logic_jtagLogic_dmiRsp_valid) begin
+ logic_jtagLogic_pending <= 1'b0;
+ end
+ if(logic_jtagLogic_trigger_dmiHardReset) begin
+ logic_jtagLogic_pending <= 1'b0;
+ end
+ if(logic_jtagLogic_dmiRsp_valid) begin
+ logic_jtagLogic_rspLogic_buffer <= logic_jtagLogic_dmiRsp_payload_data;
+ end
+ logic_jtagLogic_dmiStat_value <= logic_jtagLogic_dmiStat_value_aheadValue;
+ end
+
+ always @(negedge io_jtag_tck) begin
+ tap_tdoUnbufferd_regNext <= tap_tdoUnbufferd;
+ end
+
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rValid <= 1'b0;
+ end else begin
+ if(debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_ready) begin
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rValid <= debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_valid;
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ if(debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_fire) begin
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_write <= debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_write;
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_data <= debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_data;
+ debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_rData_address <= debugTransportModuleJtagTap_1_logic_jtagLogic_dmiCmd_ccToggle_io_output_toStream_payload_address;
+ end
+ end
+
+
+endmodule
+
+module DebugModule (
+ input wire io_ctrl_cmd_valid,
+ output wire io_ctrl_cmd_ready,
+ input wire io_ctrl_cmd_payload_write,
+ input wire [31:0] io_ctrl_cmd_payload_data,
+ input wire [6:0] io_ctrl_cmd_payload_address,
+ output wire io_ctrl_rsp_valid,
+ output wire io_ctrl_rsp_payload_error,
+ output wire [31:0] io_ctrl_rsp_payload_data,
+ output wire io_ndmreset,
+ input wire io_harts_0_halted,
+ input wire io_harts_0_running,
+ input wire io_harts_0_unavailable,
+ input wire io_harts_0_exception,
+ input wire io_harts_0_commit,
+ input wire io_harts_0_ebreak,
+ input wire io_harts_0_redo,
+ input wire io_harts_0_regSuccess,
+ output wire io_harts_0_ackReset,
+ input wire io_harts_0_haveReset,
+ output reg io_harts_0_resume_cmd_valid,
+ input wire io_harts_0_resume_rsp_valid,
+ output wire io_harts_0_haltReq,
+ output wire io_harts_0_dmToHart_valid,
+ output wire [1:0] io_harts_0_dmToHart_payload_op,
+ output wire [4:0] io_harts_0_dmToHart_payload_address,
+ output wire [31:0] io_harts_0_dmToHart_payload_data,
+ output wire [2:0] io_harts_0_dmToHart_payload_size,
+ input wire io_harts_0_hartToDm_valid,
+ input wire [3:0] io_harts_0_hartToDm_payload_address,
+ input wire [31:0] io_harts_0_hartToDm_payload_data,
+ input wire clk,
+ input wire resetn
+);
+ localparam DebugDmToHartOp_DATA = 2'd0;
+ localparam DebugDmToHartOp_EXECUTE = 2'd1;
+ localparam DebugDmToHartOp_REG_WRITE = 2'd2;
+ localparam DebugDmToHartOp_REG_READ = 2'd3;
+ localparam DebugModuleCmdErr_NONE = 3'd0;
+ localparam DebugModuleCmdErr_BUSY = 3'd1;
+ localparam DebugModuleCmdErr_NOT_SUPPORTED = 3'd2;
+ localparam DebugModuleCmdErr_EXCEPTION = 3'd3;
+ localparam DebugModuleCmdErr_HALT_RESUME = 3'd4;
+ localparam DebugModuleCmdErr_BUS_1 = 3'd5;
+ localparam DebugModuleCmdErr_OTHER = 3'd6;
+ localparam logic_command_enumDef_BOOT = 3'd0;
+ localparam logic_command_enumDef_IDLE = 3'd1;
+ localparam logic_command_enumDef_DECODE = 3'd2;
+ localparam logic_command_enumDef_READ_INT_REG = 3'd3;
+ localparam logic_command_enumDef_WRITE_INT_REG = 3'd4;
+ localparam logic_command_enumDef_WAIT_DONE = 3'd5;
+ localparam logic_command_enumDef_POST_EXEC = 3'd6;
+ localparam logic_command_enumDef_POST_EXEC_WAIT = 3'd7;
+
+ wire [31:0] _zz_logic_progbufX_mem_port1;
+ wire [0:0] _zz_logic_dmcontrol_haltSet;
+ wire [0:0] _zz_logic_dmcontrol_haltClear;
+ wire [0:0] _zz_logic_dmcontrol_resumeReq;
+ wire [0:0] _zz_logic_dmcontrol_ackhavereset;
+ wire [14:0] _zz_when_DebugModule_l143;
+ wire [0:0] _zz_logic_progbufX_mem_port;
+ wire [0:0] _zz_logic_abstractAuto_trigger;
+ wire [2:0] _zz_logic_command_access_notSupported;
+ wire [1:0] _zz_logic_command_access_notSupported_1;
+ wire [31:0] _zz_logic_toHarts_payload_data;
+ wire [19:0] _zz_logic_toHarts_payload_data_1;
+ wire [31:0] _zz_logic_toHarts_payload_data_2;
+ wire [11:0] _zz_logic_toHarts_payload_data_3;
+ reg _zz_1;
+ wire factory_readErrorFlag;
+ wire factory_writeErrorFlag;
+ wire factory_cmdToRsp_valid;
+ reg factory_cmdToRsp_payload_error;
+ reg [31:0] factory_cmdToRsp_payload_data;
+ reg factory_rspBuffer_valid;
+ reg factory_rspBuffer_payload_error;
+ reg [31:0] factory_rspBuffer_payload_data;
+ wire factory_askWrite;
+ wire factory_askRead;
+ wire factory_doWrite;
+ wire factory_doRead;
+ wire io_ctrl_cmd_fire;
+ reg dmactive;
+ reg logic_dmcontrol_ndmreset;
+ wire [9:0] logic_dmcontrol_hartSelLoNew;
+ wire [9:0] logic_dmcontrol_hartSelHiNew;
+ wire [19:0] logic_dmcontrol_hartSelNew;
+ reg [9:0] logic_dmcontrol_hartSelLo;
+ reg [9:0] logic_dmcontrol_hartSelHi;
+ wire [19:0] logic_dmcontrol_hartSel;
+ reg logic_dmcontrol_haltSet;
+ reg when_BusSlaveFactory_l377;
+ wire when_BusSlaveFactory_l379;
+ reg logic_dmcontrol_haltClear;
+ reg when_BusSlaveFactory_l391;
+ wire when_BusSlaveFactory_l393;
+ reg logic_dmcontrol_resumeReq;
+ reg when_BusSlaveFactory_l377_1;
+ wire when_BusSlaveFactory_l379_1;
+ reg logic_dmcontrol_ackhavereset;
+ reg when_BusSlaveFactory_l377_2;
+ wire when_BusSlaveFactory_l379_2;
+ wire [1:0] logic_dmcontrol_hartSelAarsizeLimit;
+ reg logic_dmcontrol_harts_0_haltReq;
+ wire when_DebugModule_l102;
+ reg logic_toHarts_valid;
+ reg [1:0] logic_toHarts_payload_op;
+ reg [4:0] logic_toHarts_payload_address;
+ reg [31:0] logic_toHarts_payload_data;
+ reg [2:0] logic_toHarts_payload_size;
+ wire logic_fromHarts_valid;
+ wire [3:0] logic_fromHarts_payload_address;
+ wire [31:0] logic_fromHarts_payload_data;
+ wire logic_harts_0_sel;
+ reg _zz_logic_harts_0_resumeReady;
+ reg _zz_logic_harts_0_resumeReady_1;
+ wire logic_harts_0_resumeReady;
+ wire logic_toHarts_takeWhen_valid;
+ wire [1:0] logic_toHarts_takeWhen_payload_op;
+ wire [4:0] logic_toHarts_takeWhen_payload_address;
+ wire [31:0] logic_toHarts_takeWhen_payload_data;
+ wire [2:0] logic_toHarts_takeWhen_payload_size;
+ reg _zz_io_harts_0_ackReset;
+ wire logic_selected_running;
+ wire logic_selected_halted;
+ wire logic_selected_commit;
+ wire logic_selected_regSuccess;
+ wire logic_selected_exception;
+ wire logic_selected_ebreak;
+ wire logic_selected_redo;
+ reg [31:0] logic_haltsum_value;
+ wire when_DebugModule_l143;
+ wire [3:0] logic_dmstatus_version;
+ wire logic_dmstatus_authenticated;
+ wire logic_dmstatus_anyHalted;
+ wire logic_dmstatus_allHalted;
+ wire logic_dmstatus_anyRunning;
+ wire logic_dmstatus_allRunning;
+ wire logic_dmstatus_anyUnavail;
+ wire logic_dmstatus_allUnavail;
+ wire logic_dmstatus_anyNonExistent;
+ wire logic_dmstatus_anyResumeAck;
+ wire logic_dmstatus_allResumeAck;
+ wire logic_dmstatus_anyHaveReset;
+ wire logic_dmstatus_allHaveReset;
+ wire logic_dmstatus_impebreak;
+ wire [3:0] logic_hartInfo_dataaddr;
+ wire [3:0] logic_hartInfo_datasize;
+ wire logic_hartInfo_dataaccess;
+ wire [3:0] logic_hartInfo_nscratch;
+ wire [2:0] logic_sbcs_sbversion;
+ wire [2:0] logic_sbcs_sbaccess;
+ wire logic_progbufX_trigged;
+ reg logic_dataX_trigged;
+ wire when_DebugModule_l205;
+ wire [3:0] logic_abstractcs_dataCount;
+ reg [2:0] logic_abstractcs_cmdErr;
+ reg when_BusSlaveFactory_l341;
+ wire [2:0] _zz_logic_abstractcs_cmdErr;
+ reg logic_abstractcs_busy;
+ wire [4:0] logic_abstractcs_progBufSize;
+ wire logic_abstractcs_noError;
+ reg [0:0] logic_abstractAuto_autoexecdata;
+ reg [1:0] logic_abstractAuto_autoexecProgbuf;
+ wire logic_abstractAuto_trigger;
+ wire logic_command_wantExit;
+ reg logic_command_wantStart;
+ wire logic_command_wantKill;
+ reg [0:0] logic_command_executionCounter;
+ reg logic_command_commandRequest;
+ reg [31:0] logic_command_data;
+ wire [15:0] logic_command_access_args_regno;
+ wire logic_command_access_args_write;
+ wire logic_command_access_args_transfer;
+ wire logic_command_access_args_postExec;
+ wire logic_command_access_args_aarpostincrement;
+ wire [2:0] logic_command_access_args_aarsize;
+ wire [31:0] _zz_logic_command_access_args_regno;
+ wire logic_command_access_transferFloat;
+ wire logic_command_access_notSupported;
+ wire logic_command_request;
+ wire when_DebugModule_l260;
+ wire when_DebugModule_l263;
+ wire when_DebugModule_l266;
+ reg [2:0] logic_command_stateReg;
+ reg [2:0] logic_command_stateNext;
+ wire when_DebugModule_l275;
+ wire when_DebugModule_l276;
+ wire [7:0] switch_DebugModule_l287;
+ wire when_DebugModule_l296;
+ wire when_DebugModule_l350;
+ wire when_DebugModule_l366;
+ wire when_DebugModule_l370;
+ wire when_StateMachine_l253;
+ wire [31:0] _zz_factory_cmdToRsp_payload_data;
+ reg [31:0] _zz_factory_cmdToRsp_payload_data_1;
+ `ifndef SYNTHESIS
+ reg [71:0] io_harts_0_dmToHart_payload_op_string;
+ reg [71:0] logic_toHarts_payload_op_string;
+ reg [71:0] logic_toHarts_takeWhen_payload_op_string;
+ reg [103:0] logic_abstractcs_cmdErr_string;
+ reg [103:0] _zz_logic_abstractcs_cmdErr_string;
+ reg [111:0] logic_command_stateReg_string;
+ reg [111:0] logic_command_stateNext_string;
+ `endif
+
+ (* ram_style = "distributed" *) reg [31:0] logic_progbufX_mem [0:1];
+
+ assign _zz_logic_dmcontrol_haltSet = 1'b1;
+ assign _zz_logic_dmcontrol_haltClear = 1'b1;
+ assign _zz_logic_dmcontrol_resumeReq = 1'b1;
+ assign _zz_logic_dmcontrol_ackhavereset = 1'b1;
+ assign _zz_when_DebugModule_l143 = (logic_dmcontrol_hartSel >>> 3'd5);
+ assign _zz_logic_progbufX_mem_port = io_ctrl_cmd_payload_address[0:0];
+ assign _zz_logic_abstractAuto_trigger = io_ctrl_cmd_payload_address[0:0];
+ assign _zz_logic_command_access_notSupported_1 = (logic_command_access_transferFloat ? 2'b00 : logic_dmcontrol_hartSelAarsizeLimit);
+ assign _zz_logic_command_access_notSupported = {1'd0, _zz_logic_command_access_notSupported_1};
+ assign _zz_logic_toHarts_payload_data_1 = ({15'd0,logic_command_access_args_regno[4 : 0]} <<< 4'd15);
+ assign _zz_logic_toHarts_payload_data = {12'd0, _zz_logic_toHarts_payload_data_1};
+ assign _zz_logic_toHarts_payload_data_3 = ({7'd0,logic_command_access_args_regno[4 : 0]} <<< 3'd7);
+ assign _zz_logic_toHarts_payload_data_2 = {20'd0, _zz_logic_toHarts_payload_data_3};
+ always @(posedge clk) begin
+ if(_zz_1) begin
+ logic_progbufX_mem[_zz_logic_progbufX_mem_port] <= io_ctrl_cmd_payload_data;
+ end
+ end
+
+ assign _zz_logic_progbufX_mem_port1 = logic_progbufX_mem[logic_command_executionCounter];
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(io_harts_0_dmToHart_payload_op)
+ DebugDmToHartOp_DATA : io_harts_0_dmToHart_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : io_harts_0_dmToHart_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : io_harts_0_dmToHart_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : io_harts_0_dmToHart_payload_op_string = "REG_READ ";
+ default : io_harts_0_dmToHart_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_toHarts_payload_op)
+ DebugDmToHartOp_DATA : logic_toHarts_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : logic_toHarts_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : logic_toHarts_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : logic_toHarts_payload_op_string = "REG_READ ";
+ default : logic_toHarts_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_toHarts_takeWhen_payload_op)
+ DebugDmToHartOp_DATA : logic_toHarts_takeWhen_payload_op_string = "DATA ";
+ DebugDmToHartOp_EXECUTE : logic_toHarts_takeWhen_payload_op_string = "EXECUTE ";
+ DebugDmToHartOp_REG_WRITE : logic_toHarts_takeWhen_payload_op_string = "REG_WRITE";
+ DebugDmToHartOp_REG_READ : logic_toHarts_takeWhen_payload_op_string = "REG_READ ";
+ default : logic_toHarts_takeWhen_payload_op_string = "?????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_abstractcs_cmdErr)
+ DebugModuleCmdErr_NONE : logic_abstractcs_cmdErr_string = "NONE ";
+ DebugModuleCmdErr_BUSY : logic_abstractcs_cmdErr_string = "BUSY ";
+ DebugModuleCmdErr_NOT_SUPPORTED : logic_abstractcs_cmdErr_string = "NOT_SUPPORTED";
+ DebugModuleCmdErr_EXCEPTION : logic_abstractcs_cmdErr_string = "EXCEPTION ";
+ DebugModuleCmdErr_HALT_RESUME : logic_abstractcs_cmdErr_string = "HALT_RESUME ";
+ DebugModuleCmdErr_BUS_1 : logic_abstractcs_cmdErr_string = "BUS_1 ";
+ DebugModuleCmdErr_OTHER : logic_abstractcs_cmdErr_string = "OTHER ";
+ default : logic_abstractcs_cmdErr_string = "?????????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_logic_abstractcs_cmdErr)
+ DebugModuleCmdErr_NONE : _zz_logic_abstractcs_cmdErr_string = "NONE ";
+ DebugModuleCmdErr_BUSY : _zz_logic_abstractcs_cmdErr_string = "BUSY ";
+ DebugModuleCmdErr_NOT_SUPPORTED : _zz_logic_abstractcs_cmdErr_string = "NOT_SUPPORTED";
+ DebugModuleCmdErr_EXCEPTION : _zz_logic_abstractcs_cmdErr_string = "EXCEPTION ";
+ DebugModuleCmdErr_HALT_RESUME : _zz_logic_abstractcs_cmdErr_string = "HALT_RESUME ";
+ DebugModuleCmdErr_BUS_1 : _zz_logic_abstractcs_cmdErr_string = "BUS_1 ";
+ DebugModuleCmdErr_OTHER : _zz_logic_abstractcs_cmdErr_string = "OTHER ";
+ default : _zz_logic_abstractcs_cmdErr_string = "?????????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_command_stateReg)
+ logic_command_enumDef_BOOT : logic_command_stateReg_string = "BOOT ";
+ logic_command_enumDef_IDLE : logic_command_stateReg_string = "IDLE ";
+ logic_command_enumDef_DECODE : logic_command_stateReg_string = "DECODE ";
+ logic_command_enumDef_READ_INT_REG : logic_command_stateReg_string = "READ_INT_REG ";
+ logic_command_enumDef_WRITE_INT_REG : logic_command_stateReg_string = "WRITE_INT_REG ";
+ logic_command_enumDef_WAIT_DONE : logic_command_stateReg_string = "WAIT_DONE ";
+ logic_command_enumDef_POST_EXEC : logic_command_stateReg_string = "POST_EXEC ";
+ logic_command_enumDef_POST_EXEC_WAIT : logic_command_stateReg_string = "POST_EXEC_WAIT";
+ default : logic_command_stateReg_string = "??????????????";
+ endcase
+ end
+ always @(*) begin
+ case(logic_command_stateNext)
+ logic_command_enumDef_BOOT : logic_command_stateNext_string = "BOOT ";
+ logic_command_enumDef_IDLE : logic_command_stateNext_string = "IDLE ";
+ logic_command_enumDef_DECODE : logic_command_stateNext_string = "DECODE ";
+ logic_command_enumDef_READ_INT_REG : logic_command_stateNext_string = "READ_INT_REG ";
+ logic_command_enumDef_WRITE_INT_REG : logic_command_stateNext_string = "WRITE_INT_REG ";
+ logic_command_enumDef_WAIT_DONE : logic_command_stateNext_string = "WAIT_DONE ";
+ logic_command_enumDef_POST_EXEC : logic_command_stateNext_string = "POST_EXEC ";
+ logic_command_enumDef_POST_EXEC_WAIT : logic_command_stateNext_string = "POST_EXEC_WAIT";
+ default : logic_command_stateNext_string = "??????????????";
+ endcase
+ end
+ `endif
+
+ always @(*) begin
+ _zz_1 = 1'b0;
+ if(logic_progbufX_trigged) begin
+ _zz_1 = 1'b1;
+ end
+ end
+
+ assign factory_readErrorFlag = 1'b0;
+ assign factory_writeErrorFlag = 1'b0;
+ assign io_ctrl_cmd_ready = 1'b1;
+ assign factory_askWrite = (io_ctrl_cmd_valid && io_ctrl_cmd_payload_write);
+ assign factory_askRead = (io_ctrl_cmd_valid && (! io_ctrl_cmd_payload_write));
+ assign factory_doWrite = (factory_askWrite && io_ctrl_cmd_ready);
+ assign factory_doRead = (factory_askRead && io_ctrl_cmd_ready);
+ assign io_ctrl_rsp_valid = factory_rspBuffer_valid;
+ assign io_ctrl_rsp_payload_error = factory_rspBuffer_payload_error;
+ assign io_ctrl_rsp_payload_data = factory_rspBuffer_payload_data;
+ assign io_ctrl_cmd_fire = (io_ctrl_cmd_valid && io_ctrl_cmd_ready);
+ assign factory_cmdToRsp_valid = io_ctrl_cmd_fire;
+ always @(*) begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ if(logic_progbufX_trigged) begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ if(when_DebugModule_l205) begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h40 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h11 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h12 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h38 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h16 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h18 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ 7'h17 : begin
+ factory_cmdToRsp_payload_error = 1'b0;
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ factory_cmdToRsp_payload_data = 32'h00000000;
+ if(when_DebugModule_l205) begin
+ factory_cmdToRsp_payload_data = _zz_factory_cmdToRsp_payload_data;
+ end
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ factory_cmdToRsp_payload_data[0 : 0] = dmactive;
+ factory_cmdToRsp_payload_data[1 : 1] = logic_dmcontrol_ndmreset;
+ factory_cmdToRsp_payload_data[25 : 16] = logic_dmcontrol_hartSelLo;
+ factory_cmdToRsp_payload_data[15 : 6] = logic_dmcontrol_hartSelHi;
+ end
+ 7'h40 : begin
+ factory_cmdToRsp_payload_data[31 : 0] = logic_haltsum_value;
+ end
+ 7'h11 : begin
+ factory_cmdToRsp_payload_data[3 : 0] = logic_dmstatus_version;
+ factory_cmdToRsp_payload_data[7 : 7] = logic_dmstatus_authenticated;
+ factory_cmdToRsp_payload_data[8 : 8] = logic_dmstatus_anyHalted;
+ factory_cmdToRsp_payload_data[9 : 9] = logic_dmstatus_allHalted;
+ factory_cmdToRsp_payload_data[10 : 10] = logic_dmstatus_anyRunning;
+ factory_cmdToRsp_payload_data[11 : 11] = logic_dmstatus_allRunning;
+ factory_cmdToRsp_payload_data[12 : 12] = logic_dmstatus_anyUnavail;
+ factory_cmdToRsp_payload_data[13 : 13] = logic_dmstatus_allUnavail;
+ factory_cmdToRsp_payload_data[14 : 14] = logic_dmstatus_anyNonExistent;
+ factory_cmdToRsp_payload_data[15 : 15] = logic_dmstatus_anyNonExistent;
+ factory_cmdToRsp_payload_data[16 : 16] = logic_dmstatus_anyResumeAck;
+ factory_cmdToRsp_payload_data[17 : 17] = logic_dmstatus_allResumeAck;
+ factory_cmdToRsp_payload_data[18 : 18] = logic_dmstatus_anyHaveReset;
+ factory_cmdToRsp_payload_data[19 : 19] = logic_dmstatus_allHaveReset;
+ factory_cmdToRsp_payload_data[22 : 22] = logic_dmstatus_impebreak;
+ end
+ 7'h12 : begin
+ factory_cmdToRsp_payload_data[3 : 0] = logic_hartInfo_dataaddr;
+ factory_cmdToRsp_payload_data[15 : 12] = logic_hartInfo_datasize;
+ factory_cmdToRsp_payload_data[16 : 16] = logic_hartInfo_dataaccess;
+ factory_cmdToRsp_payload_data[23 : 20] = logic_hartInfo_nscratch;
+ end
+ 7'h38 : begin
+ factory_cmdToRsp_payload_data[31 : 29] = logic_sbcs_sbversion;
+ factory_cmdToRsp_payload_data[19 : 17] = logic_sbcs_sbaccess;
+ end
+ 7'h16 : begin
+ factory_cmdToRsp_payload_data[3 : 0] = logic_abstractcs_dataCount;
+ factory_cmdToRsp_payload_data[10 : 8] = logic_abstractcs_cmdErr;
+ factory_cmdToRsp_payload_data[12 : 12] = logic_abstractcs_busy;
+ factory_cmdToRsp_payload_data[28 : 24] = logic_abstractcs_progBufSize;
+ end
+ 7'h18 : begin
+ factory_cmdToRsp_payload_data[0 : 0] = logic_abstractAuto_autoexecdata;
+ factory_cmdToRsp_payload_data[17 : 16] = logic_abstractAuto_autoexecProgbuf;
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign logic_dmcontrol_hartSelNew = {logic_dmcontrol_hartSelHiNew,logic_dmcontrol_hartSelLoNew};
+ assign logic_dmcontrol_hartSel = {logic_dmcontrol_hartSelHi,logic_dmcontrol_hartSelLo};
+ always @(*) begin
+ logic_dmcontrol_haltSet = 1'b0;
+ if(when_BusSlaveFactory_l377) begin
+ if(when_BusSlaveFactory_l379) begin
+ logic_dmcontrol_haltSet = _zz_logic_dmcontrol_haltSet[0];
+ end
+ end
+ end
+
+ always @(*) begin
+ when_BusSlaveFactory_l377 = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ when_BusSlaveFactory_l377 = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_BusSlaveFactory_l379 = io_ctrl_cmd_payload_data[31];
+ always @(*) begin
+ logic_dmcontrol_haltClear = 1'b0;
+ if(when_BusSlaveFactory_l391) begin
+ if(when_BusSlaveFactory_l393) begin
+ logic_dmcontrol_haltClear = _zz_logic_dmcontrol_haltClear[0];
+ end
+ end
+ end
+
+ always @(*) begin
+ when_BusSlaveFactory_l391 = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ when_BusSlaveFactory_l391 = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_BusSlaveFactory_l393 = (! io_ctrl_cmd_payload_data[31]);
+ always @(*) begin
+ logic_dmcontrol_resumeReq = 1'b0;
+ if(when_BusSlaveFactory_l377_1) begin
+ if(when_BusSlaveFactory_l379_1) begin
+ logic_dmcontrol_resumeReq = _zz_logic_dmcontrol_resumeReq[0];
+ end
+ end
+ if(logic_dmcontrol_haltSet) begin
+ logic_dmcontrol_resumeReq = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ when_BusSlaveFactory_l377_1 = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ when_BusSlaveFactory_l377_1 = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_BusSlaveFactory_l379_1 = io_ctrl_cmd_payload_data[30];
+ always @(*) begin
+ logic_dmcontrol_ackhavereset = 1'b0;
+ if(when_BusSlaveFactory_l377_2) begin
+ if(when_BusSlaveFactory_l379_2) begin
+ logic_dmcontrol_ackhavereset = _zz_logic_dmcontrol_ackhavereset[0];
+ end
+ end
+ end
+
+ always @(*) begin
+ when_BusSlaveFactory_l377_2 = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ when_BusSlaveFactory_l377_2 = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_BusSlaveFactory_l379_2 = io_ctrl_cmd_payload_data[28];
+ assign logic_dmcontrol_hartSelAarsizeLimit = 2'b10;
+ assign io_harts_0_haltReq = logic_dmcontrol_harts_0_haltReq;
+ always @(*) begin
+ io_harts_0_resume_cmd_valid = 1'b0;
+ if(when_DebugModule_l102) begin
+ io_harts_0_resume_cmd_valid = logic_dmcontrol_resumeReq;
+ end
+ end
+
+ assign when_DebugModule_l102 = (logic_dmcontrol_hartSelNew == 20'h00000);
+ assign io_ndmreset = logic_dmcontrol_ndmreset;
+ always @(*) begin
+ logic_toHarts_valid = 1'b0;
+ if(when_DebugModule_l205) begin
+ if(io_ctrl_cmd_payload_write) begin
+ logic_toHarts_valid = 1'b1;
+ end
+ end
+ if(logic_abstractcs_busy) begin
+ logic_toHarts_valid = 1'b0;
+ end
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ end
+ logic_command_enumDef_DECODE : begin
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ logic_toHarts_valid = 1'b1;
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ logic_toHarts_valid = 1'b1;
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ logic_toHarts_valid = 1'b1;
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ logic_toHarts_payload_op = (2'bxx);
+ if(when_DebugModule_l205) begin
+ logic_toHarts_payload_op = DebugDmToHartOp_DATA;
+ end
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ end
+ logic_command_enumDef_DECODE : begin
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ logic_toHarts_payload_op = DebugDmToHartOp_EXECUTE;
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ logic_toHarts_payload_op = DebugDmToHartOp_EXECUTE;
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ logic_toHarts_payload_op = DebugDmToHartOp_EXECUTE;
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ logic_toHarts_payload_address = 5'bxxxxx;
+ if(when_DebugModule_l205) begin
+ logic_toHarts_payload_address = 5'h00;
+ end
+ end
+
+ always @(*) begin
+ logic_toHarts_payload_data = 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
+ if(when_DebugModule_l205) begin
+ logic_toHarts_payload_data = io_ctrl_cmd_payload_data;
+ end
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ end
+ logic_command_enumDef_DECODE : begin
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ logic_toHarts_payload_data = (32'h7b401073 | _zz_logic_toHarts_payload_data);
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ logic_toHarts_payload_data = (32'h7b402073 | _zz_logic_toHarts_payload_data_2);
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ logic_toHarts_payload_data = _zz_logic_progbufX_mem_port1;
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ logic_toHarts_payload_size = 3'bxxx;
+ logic_toHarts_payload_size = logic_command_access_args_aarsize;
+ end
+
+ assign logic_fromHarts_valid = (|io_harts_0_hartToDm_valid);
+ assign logic_fromHarts_payload_address = io_harts_0_hartToDm_payload_address;
+ assign logic_fromHarts_payload_data = io_harts_0_hartToDm_payload_data;
+ assign logic_harts_0_sel = (logic_dmcontrol_hartSel == 20'h00000);
+ assign logic_harts_0_resumeReady = ((! _zz_logic_harts_0_resumeReady) && _zz_logic_harts_0_resumeReady_1);
+ assign logic_toHarts_takeWhen_valid = (logic_toHarts_valid && (! ((logic_toHarts_payload_op != DebugDmToHartOp_DATA) && (! logic_harts_0_sel))));
+ assign logic_toHarts_takeWhen_payload_op = logic_toHarts_payload_op;
+ assign logic_toHarts_takeWhen_payload_address = logic_toHarts_payload_address;
+ assign logic_toHarts_takeWhen_payload_data = logic_toHarts_payload_data;
+ assign logic_toHarts_takeWhen_payload_size = logic_toHarts_payload_size;
+ assign io_harts_0_dmToHart_valid = logic_toHarts_takeWhen_valid;
+ assign io_harts_0_dmToHart_payload_op = logic_toHarts_takeWhen_payload_op;
+ assign io_harts_0_dmToHart_payload_address = logic_toHarts_takeWhen_payload_address;
+ assign io_harts_0_dmToHart_payload_data = logic_toHarts_takeWhen_payload_data;
+ assign io_harts_0_dmToHart_payload_size = logic_toHarts_takeWhen_payload_size;
+ assign io_harts_0_ackReset = _zz_io_harts_0_ackReset;
+ assign logic_selected_running = io_harts_0_running;
+ assign logic_selected_halted = io_harts_0_halted;
+ assign logic_selected_commit = io_harts_0_commit;
+ assign logic_selected_regSuccess = io_harts_0_regSuccess;
+ assign logic_selected_exception = io_harts_0_exception;
+ assign logic_selected_ebreak = io_harts_0_ebreak;
+ assign logic_selected_redo = io_harts_0_redo;
+ always @(*) begin
+ logic_haltsum_value = 32'h00000000;
+ if(when_DebugModule_l143) begin
+ logic_haltsum_value[0] = io_harts_0_halted;
+ end
+ end
+
+ assign when_DebugModule_l143 = (_zz_when_DebugModule_l143 == 15'h0000);
+ assign logic_dmstatus_version = 4'b0010;
+ assign logic_dmstatus_authenticated = 1'b1;
+ assign logic_dmstatus_anyHalted = (|(logic_harts_0_sel && io_harts_0_halted));
+ assign logic_dmstatus_allHalted = (&((! logic_harts_0_sel) || io_harts_0_halted));
+ assign logic_dmstatus_anyRunning = (|(logic_harts_0_sel && io_harts_0_running));
+ assign logic_dmstatus_allRunning = (&((! logic_harts_0_sel) || io_harts_0_running));
+ assign logic_dmstatus_anyUnavail = (|(logic_harts_0_sel && io_harts_0_unavailable));
+ assign logic_dmstatus_allUnavail = (&((! logic_harts_0_sel) || io_harts_0_unavailable));
+ assign logic_dmstatus_anyNonExistent = (20'h00001 <= logic_dmcontrol_hartSel);
+ assign logic_dmstatus_anyResumeAck = (|(logic_harts_0_sel && logic_harts_0_resumeReady));
+ assign logic_dmstatus_allResumeAck = (&((! logic_harts_0_sel) || logic_harts_0_resumeReady));
+ assign logic_dmstatus_anyHaveReset = (|(logic_harts_0_sel && io_harts_0_haveReset));
+ assign logic_dmstatus_allHaveReset = (&((! logic_harts_0_sel) || io_harts_0_haveReset));
+ assign logic_dmstatus_impebreak = 1'b1;
+ assign logic_hartInfo_dataaddr = 4'b0000;
+ assign logic_hartInfo_datasize = 4'b0000;
+ assign logic_hartInfo_dataaccess = 1'b0;
+ assign logic_hartInfo_nscratch = 4'b0000;
+ assign logic_sbcs_sbversion = 3'b001;
+ assign logic_sbcs_sbaccess = 3'b010;
+ assign logic_progbufX_trigged = ((io_ctrl_cmd_valid && io_ctrl_cmd_payload_write) && ((io_ctrl_cmd_payload_address & 7'h70) == 7'h20));
+ always @(*) begin
+ logic_dataX_trigged = 1'b0;
+ if(when_DebugModule_l205) begin
+ logic_dataX_trigged = 1'b1;
+ end
+ end
+
+ assign when_DebugModule_l205 = ((io_ctrl_cmd_valid && (7'h04 <= io_ctrl_cmd_payload_address)) && (io_ctrl_cmd_payload_address < 7'h05));
+ assign logic_abstractcs_dataCount = 4'b0001;
+ always @(*) begin
+ when_BusSlaveFactory_l341 = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h16 : begin
+ if(factory_doWrite) begin
+ when_BusSlaveFactory_l341 = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign _zz_logic_abstractcs_cmdErr = (logic_abstractcs_cmdErr & (~ io_ctrl_cmd_payload_data[10 : 8]));
+ assign logic_abstractcs_progBufSize = 5'h02;
+ assign logic_abstractcs_noError = (logic_abstractcs_cmdErr == DebugModuleCmdErr_NONE);
+ assign logic_abstractAuto_trigger = ((logic_progbufX_trigged && logic_abstractAuto_autoexecProgbuf[_zz_logic_abstractAuto_trigger]) || (logic_dataX_trigged && logic_abstractAuto_autoexecdata[0]));
+ assign logic_command_wantExit = 1'b0;
+ always @(*) begin
+ logic_command_wantStart = 1'b0;
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ end
+ logic_command_enumDef_DECODE : begin
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ end
+ default : begin
+ logic_command_wantStart = 1'b1;
+ end
+ endcase
+ end
+
+ assign logic_command_wantKill = 1'b0;
+ always @(*) begin
+ logic_command_commandRequest = 1'b0;
+ case(io_ctrl_cmd_payload_address)
+ 7'h17 : begin
+ if(factory_doWrite) begin
+ logic_command_commandRequest = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign _zz_logic_command_access_args_regno = logic_command_data;
+ assign logic_command_access_args_regno = _zz_logic_command_access_args_regno[15 : 0];
+ assign logic_command_access_args_write = _zz_logic_command_access_args_regno[16];
+ assign logic_command_access_args_transfer = _zz_logic_command_access_args_regno[17];
+ assign logic_command_access_args_postExec = _zz_logic_command_access_args_regno[18];
+ assign logic_command_access_args_aarpostincrement = _zz_logic_command_access_args_regno[19];
+ assign logic_command_access_args_aarsize = _zz_logic_command_access_args_regno[22 : 20];
+ assign logic_command_access_transferFloat = logic_command_access_args_regno[5];
+ assign logic_command_access_notSupported = (((_zz_logic_command_access_notSupported < logic_command_access_args_aarsize) || logic_command_access_args_aarpostincrement) || (logic_command_access_args_transfer && (logic_command_access_args_regno[15 : 5] != 11'h080)));
+ assign logic_command_request = (logic_command_commandRequest || logic_abstractAuto_trigger);
+ assign when_DebugModule_l260 = ((logic_command_request && logic_abstractcs_busy) && logic_abstractcs_noError);
+ assign when_DebugModule_l263 = (|io_harts_0_exception);
+ assign when_DebugModule_l266 = ((logic_abstractcs_busy && (logic_progbufX_trigged || logic_dataX_trigged)) && logic_abstractcs_noError);
+ assign logic_dmcontrol_hartSelLoNew = io_ctrl_cmd_payload_data[25 : 16];
+ assign logic_dmcontrol_hartSelHiNew = io_ctrl_cmd_payload_data[15 : 6];
+ always @(*) begin
+ logic_command_stateNext = logic_command_stateReg;
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ if(when_DebugModule_l275) begin
+ if(!when_DebugModule_l276) begin
+ logic_command_stateNext = logic_command_enumDef_DECODE;
+ end
+ end
+ end
+ logic_command_enumDef_DECODE : begin
+ logic_command_stateNext = logic_command_enumDef_IDLE;
+ case(switch_DebugModule_l287)
+ 8'h00 : begin
+ if(!logic_command_access_notSupported) begin
+ if(logic_command_access_args_postExec) begin
+ logic_command_stateNext = logic_command_enumDef_POST_EXEC;
+ end
+ if(logic_command_access_args_transfer) begin
+ if(when_DebugModule_l296) begin
+ if(logic_command_access_args_write) begin
+ logic_command_stateNext = logic_command_enumDef_WRITE_INT_REG;
+ end else begin
+ logic_command_stateNext = logic_command_enumDef_READ_INT_REG;
+ end
+ end
+ end
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ logic_command_stateNext = logic_command_enumDef_WAIT_DONE;
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ logic_command_stateNext = logic_command_enumDef_WAIT_DONE;
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ if(when_DebugModule_l350) begin
+ logic_command_stateNext = logic_command_enumDef_IDLE;
+ if(logic_command_access_args_postExec) begin
+ logic_command_stateNext = logic_command_enumDef_POST_EXEC;
+ end
+ end
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ logic_command_stateNext = logic_command_enumDef_POST_EXEC_WAIT;
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ if(when_DebugModule_l366) begin
+ logic_command_stateNext = logic_command_enumDef_IDLE;
+ end
+ if(when_DebugModule_l370) begin
+ logic_command_stateNext = logic_command_enumDef_POST_EXEC;
+ end
+ end
+ default : begin
+ end
+ endcase
+ if(logic_command_wantStart) begin
+ logic_command_stateNext = logic_command_enumDef_IDLE;
+ end
+ if(logic_command_wantKill) begin
+ logic_command_stateNext = logic_command_enumDef_BOOT;
+ end
+ end
+
+ assign when_DebugModule_l275 = (logic_command_request && logic_abstractcs_noError);
+ assign when_DebugModule_l276 = (! io_harts_0_halted);
+ assign switch_DebugModule_l287 = logic_command_data[31 : 24];
+ assign when_DebugModule_l296 = (! logic_command_access_args_regno[5]);
+ assign when_DebugModule_l350 = (logic_selected_commit || logic_selected_regSuccess);
+ assign when_DebugModule_l366 = ((logic_selected_ebreak || logic_selected_exception) || logic_selected_commit);
+ assign when_DebugModule_l370 = (logic_selected_redo || (logic_selected_commit && (logic_command_executionCounter != 1'b1)));
+ assign when_StateMachine_l253 = ((! (logic_command_stateReg == logic_command_enumDef_IDLE)) && (logic_command_stateNext == logic_command_enumDef_IDLE));
+ assign _zz_factory_cmdToRsp_payload_data = _zz_factory_cmdToRsp_payload_data_1;
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ factory_rspBuffer_valid <= 1'b0;
+ dmactive <= 1'b0;
+ end else begin
+ factory_rspBuffer_valid <= factory_cmdToRsp_valid;
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ dmactive <= io_ctrl_cmd_payload_data[0];
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ always @(posedge clk) begin
+ factory_rspBuffer_payload_error <= factory_cmdToRsp_payload_error;
+ factory_rspBuffer_payload_data <= factory_cmdToRsp_payload_data;
+ end
+
+ always @(posedge clk or negedge dmactive) begin
+ if(!dmactive) begin
+ logic_dmcontrol_ndmreset <= 1'b0;
+ logic_dmcontrol_hartSelLo <= 10'h000;
+ logic_dmcontrol_hartSelHi <= 10'h000;
+ logic_dmcontrol_harts_0_haltReq <= 1'b0;
+ _zz_logic_harts_0_resumeReady <= 1'b0;
+ _zz_logic_harts_0_resumeReady_1 <= 1'b0;
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_NONE;
+ logic_abstractcs_busy <= 1'b0;
+ logic_abstractAuto_autoexecdata <= 1'b0;
+ logic_abstractAuto_autoexecProgbuf <= 2'b00;
+ logic_command_stateReg <= logic_command_enumDef_BOOT;
+ end else begin
+ if(when_DebugModule_l102) begin
+ logic_dmcontrol_harts_0_haltReq <= ((logic_dmcontrol_harts_0_haltReq || logic_dmcontrol_haltSet) && (! logic_dmcontrol_haltClear));
+ end
+ if(io_harts_0_resume_cmd_valid) begin
+ _zz_logic_harts_0_resumeReady <= 1'b1;
+ end
+ if(io_harts_0_resume_rsp_valid) begin
+ _zz_logic_harts_0_resumeReady <= 1'b0;
+ end
+ if(io_harts_0_resume_cmd_valid) begin
+ _zz_logic_harts_0_resumeReady_1 <= 1'b1;
+ end
+ if(when_BusSlaveFactory_l341) begin
+ logic_abstractcs_cmdErr <= _zz_logic_abstractcs_cmdErr;
+ end
+ if(when_DebugModule_l260) begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_BUSY;
+ end
+ if(when_DebugModule_l263) begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_EXCEPTION;
+ end
+ if(when_DebugModule_l266) begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_BUSY;
+ end
+ case(io_ctrl_cmd_payload_address)
+ 7'h10 : begin
+ if(factory_doWrite) begin
+ logic_dmcontrol_ndmreset <= io_ctrl_cmd_payload_data[1];
+ logic_dmcontrol_hartSelLo <= io_ctrl_cmd_payload_data[25 : 16];
+ logic_dmcontrol_hartSelHi <= io_ctrl_cmd_payload_data[15 : 6];
+ end
+ end
+ 7'h18 : begin
+ if(factory_doWrite) begin
+ logic_abstractAuto_autoexecdata <= io_ctrl_cmd_payload_data[0 : 0];
+ logic_abstractAuto_autoexecProgbuf <= io_ctrl_cmd_payload_data[17 : 16];
+ end
+ end
+ default : begin
+ end
+ endcase
+ logic_command_stateReg <= logic_command_stateNext;
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ if(when_DebugModule_l275) begin
+ if(when_DebugModule_l276) begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_HALT_RESUME;
+ end else begin
+ logic_abstractcs_busy <= 1'b1;
+ end
+ end
+ end
+ logic_command_enumDef_DECODE : begin
+ case(switch_DebugModule_l287)
+ 8'h00 : begin
+ if(logic_command_access_notSupported) begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_NOT_SUPPORTED;
+ end
+ end
+ default : begin
+ logic_abstractcs_cmdErr <= DebugModuleCmdErr_NOT_SUPPORTED;
+ end
+ endcase
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ end
+ default : begin
+ end
+ endcase
+ if(when_StateMachine_l253) begin
+ logic_abstractcs_busy <= 1'b0;
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ _zz_io_harts_0_ackReset <= (logic_harts_0_sel && logic_dmcontrol_ackhavereset);
+ case(io_ctrl_cmd_payload_address)
+ 7'h17 : begin
+ if(factory_doWrite) begin
+ logic_command_data <= io_ctrl_cmd_payload_data[31 : 0];
+ end
+ end
+ default : begin
+ end
+ endcase
+ case(logic_command_stateReg)
+ logic_command_enumDef_IDLE : begin
+ logic_command_executionCounter <= 1'b0;
+ end
+ logic_command_enumDef_DECODE : begin
+ end
+ logic_command_enumDef_READ_INT_REG : begin
+ end
+ logic_command_enumDef_WRITE_INT_REG : begin
+ end
+ logic_command_enumDef_WAIT_DONE : begin
+ end
+ logic_command_enumDef_POST_EXEC : begin
+ end
+ logic_command_enumDef_POST_EXEC_WAIT : begin
+ if(when_DebugModule_l366) begin
+ logic_command_executionCounter <= (logic_command_executionCounter + 1'b1);
+ end
+ end
+ default : begin
+ end
+ endcase
+ if(logic_fromHarts_valid) begin
+ _zz_factory_cmdToRsp_payload_data_1 <= logic_fromHarts_payload_data;
+ end
+ end
+
+
+endmodule
+
+module BufferCC (
+ input wire io_dataIn,
+ output wire io_dataOut,
+ input wire clk,
+ input wire resetn
+);
+
+ (* async_reg = "true" *) reg buffers_0;
+ (* async_reg = "true" *) reg buffers_1;
+
+ assign io_dataOut = buffers_1;
+ always @(posedge clk) begin
+ buffers_0 <= io_dataIn;
+ buffers_1 <= buffers_0;
+ end
+
+
+endmodule
+
+module FpuCore (
+ input wire io_port_0_cmd_valid,
+ output wire io_port_0_cmd_ready,
+ input wire [3:0] io_port_0_cmd_payload_opcode,
+ input wire [1:0] io_port_0_cmd_payload_arg,
+ input wire [4:0] io_port_0_cmd_payload_rs1,
+ input wire [4:0] io_port_0_cmd_payload_rs2,
+ input wire [4:0] io_port_0_cmd_payload_rs3,
+ input wire [4:0] io_port_0_cmd_payload_rd,
+ input wire [0:0] io_port_0_cmd_payload_format,
+ input wire [2:0] io_port_0_cmd_payload_roundMode,
+ input wire io_port_0_commit_valid,
+ output wire io_port_0_commit_ready,
+ input wire [3:0] io_port_0_commit_payload_opcode,
+ input wire [4:0] io_port_0_commit_payload_rd,
+ input wire io_port_0_commit_payload_write,
+ input wire [31:0] io_port_0_commit_payload_value,
+ output wire io_port_0_rsp_valid,
+ input wire io_port_0_rsp_ready,
+ output wire [31:0] io_port_0_rsp_payload_value,
+ output wire io_port_0_rsp_payload_NV,
+ output wire io_port_0_rsp_payload_NX,
+ output wire io_port_0_completion_valid,
+ output wire io_port_0_completion_payload_flags_NX,
+ output wire io_port_0_completion_payload_flags_UF,
+ output wire io_port_0_completion_payload_flags_OF,
+ output wire io_port_0_completion_payload_flags_DZ,
+ output wire io_port_0_completion_payload_flags_NV,
+ output wire io_port_0_completion_payload_written,
+ input wire clk,
+ input wire resetn
+);
+ localparam FpuOpcode_LOAD = 4'd0;
+ localparam FpuOpcode_STORE = 4'd1;
+ localparam FpuOpcode_MUL = 4'd2;
+ localparam FpuOpcode_ADD = 4'd3;
+ localparam FpuOpcode_FMA = 4'd4;
+ localparam FpuOpcode_I2F = 4'd5;
+ localparam FpuOpcode_F2I = 4'd6;
+ localparam FpuOpcode_CMP = 4'd7;
+ localparam FpuOpcode_DIV = 4'd8;
+ localparam FpuOpcode_SQRT = 4'd9;
+ localparam FpuOpcode_MIN_MAX = 4'd10;
+ localparam FpuOpcode_SGNJ = 4'd11;
+ localparam FpuOpcode_FMV_X_W = 4'd12;
+ localparam FpuOpcode_FMV_W_X = 4'd13;
+ localparam FpuOpcode_FCLASS = 4'd14;
+ localparam FpuOpcode_FCVT_X_X = 4'd15;
+ localparam FpuFormat_FLOAT = 1'd0;
+ localparam FpuFormat_DOUBLE = 1'd1;
+ localparam FpuRoundMode_RNE = 3'd0;
+ localparam FpuRoundMode_RTZ = 3'd1;
+ localparam FpuRoundMode_RDN = 3'd2;
+ localparam FpuRoundMode_RUP = 3'd3;
+ localparam FpuRoundMode_RMM = 3'd4;
+
+ wire div_divider_io_input_valid;
+ wire [23:0] div_divider_io_input_payload_a;
+ wire [23:0] div_divider_io_input_payload_b;
+ wire sqrt_sqrt_io_input_valid;
+ wire [24:0] sqrt_sqrt_io_input_payload_a;
+ reg [33:0] _zz_rf_ram_port0;
+ reg [33:0] _zz_rf_ram_port1;
+ reg [33:0] _zz_rf_ram_port2;
+ wire [0:0] _zz_rf_scoreboards_0_target_port1;
+ wire [0:0] _zz_rf_scoreboards_0_target_port2;
+ wire [0:0] _zz_rf_scoreboards_0_target_port3;
+ wire [0:0] _zz_rf_scoreboards_0_target_port4;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port1;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port2;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port3;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port4;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port5;
+ wire [0:0] _zz_rf_scoreboards_0_writes_port1;
+ wire streamFork_1_io_input_ready;
+ wire streamFork_1_io_outputs_0_valid;
+ wire [3:0] streamFork_1_io_outputs_0_payload_opcode;
+ wire [4:0] streamFork_1_io_outputs_0_payload_rd;
+ wire streamFork_1_io_outputs_0_payload_write;
+ wire [31:0] streamFork_1_io_outputs_0_payload_value;
+ wire streamFork_1_io_outputs_1_valid;
+ wire [3:0] streamFork_1_io_outputs_1_payload_opcode;
+ wire [4:0] streamFork_1_io_outputs_1_payload_rd;
+ wire streamFork_1_io_outputs_1_payload_write;
+ wire [31:0] streamFork_1_io_outputs_1_payload_value;
+ wire cmdArbiter_arbiter_io_inputs_0_ready;
+ wire cmdArbiter_arbiter_io_output_valid;
+ wire [3:0] cmdArbiter_arbiter_io_output_payload_opcode;
+ wire [1:0] cmdArbiter_arbiter_io_output_payload_arg;
+ wire [4:0] cmdArbiter_arbiter_io_output_payload_rs1;
+ wire [4:0] cmdArbiter_arbiter_io_output_payload_rs2;
+ wire [4:0] cmdArbiter_arbiter_io_output_payload_rs3;
+ wire [4:0] cmdArbiter_arbiter_io_output_payload_rd;
+ wire [0:0] cmdArbiter_arbiter_io_output_payload_format;
+ wire [2:0] cmdArbiter_arbiter_io_output_payload_roundMode;
+ wire [0:0] cmdArbiter_arbiter_io_chosenOH;
+ wire div_divider_io_input_ready;
+ wire div_divider_io_output_valid;
+ wire [26:0] div_divider_io_output_payload_result;
+ wire [24:0] div_divider_io_output_payload_remain;
+ wire sqrt_sqrt_io_input_ready;
+ wire sqrt_sqrt_io_output_valid;
+ wire [23:0] sqrt_sqrt_io_output_payload_result;
+ wire [27:0] sqrt_sqrt_io_output_payload_remain;
+ wire streamArbiter_2_io_inputs_0_ready;
+ wire streamArbiter_2_io_inputs_1_ready;
+ wire streamArbiter_2_io_inputs_2_ready;
+ wire streamArbiter_2_io_inputs_3_ready;
+ wire streamArbiter_2_io_inputs_4_ready;
+ wire streamArbiter_2_io_inputs_5_ready;
+ wire streamArbiter_2_io_output_valid;
+ wire [4:0] streamArbiter_2_io_output_payload_rd;
+ wire [23:0] streamArbiter_2_io_output_payload_value_mantissa;
+ wire [8:0] streamArbiter_2_io_output_payload_value_exponent;
+ wire streamArbiter_2_io_output_payload_value_sign;
+ wire streamArbiter_2_io_output_payload_value_special;
+ wire streamArbiter_2_io_output_payload_scrap;
+ wire [2:0] streamArbiter_2_io_output_payload_roundMode;
+ wire streamArbiter_2_io_output_payload_NV;
+ wire streamArbiter_2_io_output_payload_DZ;
+ wire [2:0] streamArbiter_2_io_chosen;
+ wire [5:0] streamArbiter_2_io_chosenOH;
+ wire [0:0] _zz_rf_scoreboards_0_target_port;
+ wire [0:0] _zz_rf_scoreboards_0_hit_port;
+ wire [3:0] _zz_commitLogic_0_pending_counter;
+ wire [3:0] _zz_commitLogic_0_pending_counter_1;
+ wire [0:0] _zz_commitLogic_0_pending_counter_2;
+ wire [3:0] _zz_commitLogic_0_pending_counter_3;
+ wire [0:0] _zz_commitLogic_0_pending_counter_4;
+ wire [3:0] _zz_commitLogic_0_add_counter;
+ wire [3:0] _zz_commitLogic_0_add_counter_1;
+ wire [0:0] _zz_commitLogic_0_add_counter_2;
+ wire [3:0] _zz_commitLogic_0_add_counter_3;
+ wire [0:0] _zz_commitLogic_0_add_counter_4;
+ wire [3:0] _zz_commitLogic_0_mul_counter;
+ wire [3:0] _zz_commitLogic_0_mul_counter_1;
+ wire [0:0] _zz_commitLogic_0_mul_counter_2;
+ wire [3:0] _zz_commitLogic_0_mul_counter_3;
+ wire [0:0] _zz_commitLogic_0_mul_counter_4;
+ wire [3:0] _zz_commitLogic_0_div_counter;
+ wire [3:0] _zz_commitLogic_0_div_counter_1;
+ wire [0:0] _zz_commitLogic_0_div_counter_2;
+ wire [3:0] _zz_commitLogic_0_div_counter_3;
+ wire [0:0] _zz_commitLogic_0_div_counter_4;
+ wire [3:0] _zz_commitLogic_0_sqrt_counter;
+ wire [3:0] _zz_commitLogic_0_sqrt_counter_1;
+ wire [0:0] _zz_commitLogic_0_sqrt_counter_2;
+ wire [3:0] _zz_commitLogic_0_sqrt_counter_3;
+ wire [0:0] _zz_commitLogic_0_sqrt_counter_4;
+ wire [3:0] _zz_commitLogic_0_short_counter;
+ wire [3:0] _zz_commitLogic_0_short_counter_1;
+ wire [0:0] _zz_commitLogic_0_short_counter_2;
+ wire [3:0] _zz_commitLogic_0_short_counter_3;
+ wire [0:0] _zz_commitLogic_0_short_counter_4;
+ wire [0:0] _zz_rf_scoreboards_0_writes_port;
+ wire [3:0] _zz_decode_shortPipHit;
+ wire _zz_decode_shortPipHit_1;
+ wire [0:0] _zz_decode_shortPipHit_2;
+ wire [0:0] _zz_decode_shortPipHit_3;
+ wire [0:0] _zz_when;
+ wire [31:0] _zz_load_s1_fsm_shift_input_1;
+ wire [31:0] _zz_load_s1_fsm_shift_input_2;
+ wire [31:0] _zz_load_s1_fsm_shift_input_3;
+ wire [31:0] _zz_load_s1_fsm_shift_input_4;
+ wire [31:0] _zz_load_s1_fsm_shift_input_5;
+ wire [31:0] _zz_load_s0_output_rData_value_2;
+ wire [32:0] _zz_load_s0_output_rData_value_3;
+ wire [32:0] _zz_load_s0_output_rData_value_4;
+ wire [32:0] _zz_load_s0_output_rData_value_5;
+ wire [0:0] _zz_load_s0_output_rData_value_6;
+ wire _zz__zz_load_s1_fsm_shift_by;
+ wire [0:0] _zz__zz_load_s1_fsm_shift_by_1;
+ wire [22:0] _zz__zz_load_s1_fsm_shift_by_2;
+ wire _zz__zz_load_s1_fsm_shift_by_3;
+ wire [0:0] _zz__zz_load_s1_fsm_shift_by_4;
+ wire [11:0] _zz__zz_load_s1_fsm_shift_by_5;
+ wire _zz__zz_load_s1_fsm_shift_by_6;
+ wire [0:0] _zz__zz_load_s1_fsm_shift_by_7;
+ wire [0:0] _zz__zz_load_s1_fsm_shift_by_8;
+ wire [31:0] _zz__zz_load_s1_fsm_shift_by_1_1;
+ wire [9:0] _zz_load_s1_recoded_exponent;
+ wire [9:0] _zz_load_s1_recoded_exponent_1;
+ wire [9:0] _zz_load_s1_recoded_exponent_2;
+ wire [8:0] _zz_load_s1_output_payload_value_exponent;
+ wire [8:0] _zz_shortPip_f32_exp;
+ wire [8:0] _zz_shortPip_expInSubnormalRange;
+ wire [32:0] _zz_shortPip_fsm_shift_input_1;
+ wire [32:0] _zz_shortPip_fsm_shift_input_2;
+ wire [32:0] _zz_shortPip_fsm_shift_input_3;
+ wire [32:0] _zz_shortPip_fsm_shift_input_4;
+ wire [32:0] _zz_shortPip_fsm_shift_input_5;
+ wire [32:0] _zz_shortPip_fsm_shift_input_6;
+ wire [8:0] _zz_shortPip_fsm_shift_by_2;
+ wire [8:0] _zz_shortPip_fsm_shift_by_3;
+ wire [8:0] _zz_shortPip_fsm_shift_by_4;
+ wire [8:0] _zz_shortPip_fsm_shift_by_5;
+ wire [8:0] _zz_shortPip_fsm_shift_by_6;
+ wire [31:0] _zz_shortPip_f2i_result;
+ wire [0:0] _zz_shortPip_f2i_result_1;
+ wire [30:0] _zz_shortPip_f2i_underflow;
+ wire [30:0] _zz_shortPip_f2i_underflow_1;
+ wire [47:0] _zz_mul_sum1_sum;
+ wire [47:0] _zz_mul_sum1_sum_1;
+ wire [40:0] _zz_mul_sum1_sum_2;
+ wire [47:0] _zz_mul_sum2_sum;
+ wire [47:0] _zz_mul_sum2_sum_1;
+ wire [40:0] _zz_mul_sum2_sum_2;
+ wire [47:0] _zz_mul_sum2_sum_3;
+ wire [9:0] _zz_mul_norm_exp;
+ wire [0:0] _zz_mul_norm_exp_1;
+ wire [9:0] _zz_mul_norm_forceUnderflow;
+ wire [9:0] _zz_mul_norm_output_exponent;
+ wire [10:0] _zz_div_exponent;
+ wire [10:0] _zz_div_exponent_1;
+ wire [10:0] _zz_div_exponent_2;
+ wire [10:0] _zz_div_exponent_3;
+ wire [10:0] _zz_div_exponent_4;
+ wire [0:0] _zz_div_exponent_5;
+ wire [8:0] _zz_sqrt_exponent;
+ wire [8:0] _zz_sqrt_exponent_1;
+ wire [7:0] _zz_sqrt_exponent_2;
+ wire [7:0] _zz_sqrt_exponent_3;
+ wire [8:0] _zz_sqrt_exponent_4;
+ wire [0:0] _zz_sqrt_exponent_5;
+ wire [9:0] _zz_add_shifter_shiftBy_1;
+ wire [9:0] _zz_add_shifter_shiftBy_2;
+ wire [9:0] _zz_add_shifter_shiftBy_3;
+ wire [0:0] _zz_add_shifter_shiftBy_4;
+ wire [25:0] _zz_add_shifter_yMantissa_1;
+ wire [25:0] _zz_add_shifter_yMantissa_2;
+ wire [25:0] _zz_add_shifter_yMantissa_3;
+ wire [25:0] _zz_add_shifter_yMantissa_4;
+ wire [25:0] _zz_add_shifter_yMantissa_5;
+ wire [26:0] _zz_add_math_xSigned;
+ wire [26:0] _zz_add_math_xSigned_1;
+ wire [0:0] _zz_add_math_xSigned_2;
+ wire [26:0] _zz_add_math_ySigned;
+ wire [26:0] _zz_add_math_ySigned_1;
+ wire [0:0] _zz_add_math_ySigned_2;
+ wire [27:0] _zz_add_math_output_payload_xyMantissa;
+ wire [27:0] _zz_add_math_output_payload_xyMantissa_1;
+ wire [27:0] _zz_add_math_output_payload_xyMantissa_2;
+ wire [27:0] _zz_add_math_output_payload_xyMantissa_3;
+ wire _zz__zz_add_oh_shift;
+ wire [0:0] _zz__zz_add_oh_shift_1;
+ wire [17:0] _zz__zz_add_oh_shift_2;
+ wire _zz__zz_add_oh_shift_3;
+ wire [0:0] _zz__zz_add_oh_shift_4;
+ wire [6:0] _zz__zz_add_oh_shift_5;
+ wire [26:0] _zz__zz_add_oh_shift_1_1;
+ wire [9:0] _zz_add_norm_output_payload_exponent;
+ wire [9:0] _zz_add_norm_output_payload_exponent_1;
+ wire [5:0] _zz_add_norm_output_payload_exponent_2;
+ wire [24:0] _zz_add_result_output_payload_value_mantissa;
+ wire [9:0] _zz_roundFront_expDif;
+ wire [8:0] _zz_roundFront_expDif_1;
+ wire [4:0] _zz_roundFront_exactMask;
+ wire _zz_roundFront_exactMask_1;
+ wire [0:0] _zz_roundFront_exactMask_2;
+ wire [17:0] _zz_roundFront_exactMask_3;
+ wire [4:0] _zz_roundFront_exactMask_4;
+ wire _zz_roundFront_exactMask_5;
+ wire [0:0] _zz_roundFront_exactMask_6;
+ wire [9:0] _zz_roundFront_exactMask_7;
+ wire [4:0] _zz_roundFront_exactMask_8;
+ wire _zz_roundFront_exactMask_9;
+ wire [0:0] _zz_roundFront_exactMask_10;
+ wire [1:0] _zz_roundFront_exactMask_11;
+ wire [24:0] _zz_roundFront_roundAdjusted;
+ wire [23:0] _zz_roundFront_roundAdjusted_1;
+ wire [24:0] _zz_roundFront_rneBit;
+ wire [22:0] _zz_roundFront_rneBit_1;
+ wire [22:0] _zz_roundBack_adderMantissa;
+ wire [23:0] _zz_roundBack_adderRightOp;
+ wire [23:0] _zz_roundBack_adderRightOp_1;
+ wire [31:0] _zz_roundBack_adder_2;
+ wire [31:0] _zz_roundBack_adder_3;
+ wire [31:0] _zz_roundBack_adder_4;
+ wire [31:0] _zz_roundBack_masked;
+ wire [22:0] _zz_roundBack_masked_1;
+ wire [23:0] _zz_roundBack_masked_2;
+ wire [8:0] _zz_roundBack_borringCase;
+ wire [8:0] _zz_when_FpuCore_l1616;
+ wire [8:0] _zz_when_FpuCore_l1638;
+ wire [33:0] _zz_rf_ram_port;
+ reg _zz_1;
+ reg [25:0] add_shifter_yMantissa_5;
+ reg [25:0] add_shifter_yMantissa_4;
+ reg [25:0] add_shifter_yMantissa_3;
+ reg [25:0] add_shifter_yMantissa_2;
+ reg [25:0] add_shifter_yMantissa_1;
+ reg [32:0] shortPip_fsm_shift_input_6;
+ reg [32:0] shortPip_fsm_shift_input_5;
+ reg [32:0] shortPip_fsm_shift_input_4;
+ reg [32:0] shortPip_fsm_shift_input_3;
+ reg [32:0] shortPip_fsm_shift_input_2;
+ reg [32:0] shortPip_fsm_shift_input_1;
+ reg [31:0] load_s1_fsm_shift_input_5;
+ reg [31:0] load_s1_fsm_shift_input_4;
+ reg [31:0] load_s1_fsm_shift_input_3;
+ reg [31:0] load_s1_fsm_shift_input_2;
+ reg [31:0] load_s1_fsm_shift_input_1;
+ reg _zz_2;
+ reg _zz_3;
+ reg _zz_4;
+ reg [5:0] rf_init_counter;
+ wire rf_init_done;
+ wire when_FpuCore_l163;
+ reg rf_scoreboards_0_targetWrite_valid;
+ reg [4:0] rf_scoreboards_0_targetWrite_payload_address;
+ reg rf_scoreboards_0_targetWrite_payload_data;
+ reg rf_scoreboards_0_hitWrite_valid;
+ reg [4:0] rf_scoreboards_0_hitWrite_payload_address;
+ reg rf_scoreboards_0_hitWrite_payload_data;
+ wire commitFork_load_0_valid;
+ reg commitFork_load_0_ready;
+ wire [3:0] commitFork_load_0_payload_opcode;
+ wire [4:0] commitFork_load_0_payload_rd;
+ wire commitFork_load_0_payload_write;
+ wire [31:0] commitFork_load_0_payload_value;
+ wire commitFork_commit_0_valid;
+ wire commitFork_commit_0_ready;
+ wire [3:0] commitFork_commit_0_payload_opcode;
+ wire [4:0] commitFork_commit_0_payload_rd;
+ wire commitFork_commit_0_payload_write;
+ wire [31:0] commitFork_commit_0_payload_value;
+ wire FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_valid;
+ wire FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_ready;
+ wire [3:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode;
+ wire [4:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_rd;
+ wire FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_write;
+ wire [31:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_value;
+ reg FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN;
+ reg [3:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode;
+ reg [4:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_rd;
+ reg FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_write;
+ reg [31:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_value;
+ wire [3:0] _zz_payload_opcode;
+ reg [3:0] commitLogic_0_pending_counter;
+ wire commitLogic_0_pending_full;
+ wire commitLogic_0_pending_notEmpty;
+ reg commitLogic_0_pending_inc;
+ reg commitLogic_0_pending_dec;
+ reg [3:0] commitLogic_0_add_counter;
+ wire commitLogic_0_add_full;
+ wire commitLogic_0_add_notEmpty;
+ reg commitLogic_0_add_inc;
+ reg commitLogic_0_add_dec;
+ reg [3:0] commitLogic_0_mul_counter;
+ wire commitLogic_0_mul_full;
+ wire commitLogic_0_mul_notEmpty;
+ reg commitLogic_0_mul_inc;
+ reg commitLogic_0_mul_dec;
+ reg [3:0] commitLogic_0_div_counter;
+ wire commitLogic_0_div_full;
+ wire commitLogic_0_div_notEmpty;
+ reg commitLogic_0_div_inc;
+ reg commitLogic_0_div_dec;
+ reg [3:0] commitLogic_0_sqrt_counter;
+ wire commitLogic_0_sqrt_full;
+ wire commitLogic_0_sqrt_notEmpty;
+ reg commitLogic_0_sqrt_inc;
+ reg commitLogic_0_sqrt_dec;
+ reg [3:0] commitLogic_0_short_counter;
+ wire commitLogic_0_short_full;
+ wire commitLogic_0_short_notEmpty;
+ reg commitLogic_0_short_inc;
+ reg commitLogic_0_short_dec;
+ wire _zz_commitFork_commit_0_ready;
+ wire [3:0] _zz_commitLogic_0_input_payload_opcode;
+ wire commitLogic_0_input_valid;
+ wire [3:0] commitLogic_0_input_payload_opcode;
+ wire [4:0] commitLogic_0_input_payload_rd;
+ wire commitLogic_0_input_payload_write;
+ wire [31:0] commitLogic_0_input_payload_value;
+ wire when_FpuCore_l208;
+ wire when_FpuCore_l209;
+ wire when_FpuCore_l210;
+ wire when_FpuCore_l211;
+ wire when_FpuCore_l212;
+ wire scheduler_0_input_valid;
+ wire scheduler_0_input_ready;
+ wire [3:0] scheduler_0_input_payload_opcode;
+ wire [1:0] scheduler_0_input_payload_arg;
+ wire [4:0] scheduler_0_input_payload_rs1;
+ wire [4:0] scheduler_0_input_payload_rs2;
+ wire [4:0] scheduler_0_input_payload_rs3;
+ wire [4:0] scheduler_0_input_payload_rd;
+ wire [0:0] scheduler_0_input_payload_format;
+ wire [2:0] scheduler_0_input_payload_roundMode;
+ reg io_port_0_cmd_rValidN;
+ reg [3:0] io_port_0_cmd_rData_opcode;
+ reg [1:0] io_port_0_cmd_rData_arg;
+ reg [4:0] io_port_0_cmd_rData_rs1;
+ reg [4:0] io_port_0_cmd_rData_rs2;
+ reg [4:0] io_port_0_cmd_rData_rs3;
+ reg [4:0] io_port_0_cmd_rData_rd;
+ reg [0:0] io_port_0_cmd_rData_format;
+ reg [2:0] io_port_0_cmd_rData_roundMode;
+ wire [3:0] _zz_scheduler_0_input_payload_opcode;
+ wire [0:0] _zz_scheduler_0_input_payload_format;
+ wire [2:0] _zz_scheduler_0_input_payload_roundMode;
+ reg scheduler_0_useRs1;
+ reg scheduler_0_useRs2;
+ reg scheduler_0_useRs3;
+ reg scheduler_0_useRd;
+ wire scheduler_0_rfHits_0;
+ wire scheduler_0_rfHits_1;
+ wire scheduler_0_rfHits_2;
+ wire scheduler_0_rfHits_3;
+ wire scheduler_0_rfTargets_0;
+ wire scheduler_0_rfTargets_1;
+ wire scheduler_0_rfTargets_2;
+ wire scheduler_0_rfTargets_3;
+ wire scheduler_0_rfBusy_0;
+ wire scheduler_0_rfBusy_1;
+ wire scheduler_0_rfBusy_2;
+ wire scheduler_0_rfBusy_3;
+ wire scheduler_0_hits_0;
+ wire scheduler_0_hits_1;
+ wire scheduler_0_hits_2;
+ wire scheduler_0_hits_3;
+ wire scheduler_0_hazard;
+ wire _zz_scheduler_0_input_ready;
+ wire scheduler_0_output_valid;
+ wire scheduler_0_output_ready;
+ wire [3:0] scheduler_0_output_payload_opcode;
+ wire [1:0] scheduler_0_output_payload_arg;
+ reg [4:0] scheduler_0_output_payload_rs1;
+ wire [4:0] scheduler_0_output_payload_rs2;
+ wire [4:0] scheduler_0_output_payload_rs3;
+ wire [4:0] scheduler_0_output_payload_rd;
+ wire [0:0] scheduler_0_output_payload_format;
+ wire [2:0] scheduler_0_output_payload_roundMode;
+ wire when_FpuCore_l258;
+ wire when_FpuCore_l261;
+ wire scheduler_0_output_fire;
+ wire when_FpuCore_l265;
+ wire [3:0] _zz_io_inputs_0_payload_opcode;
+ wire [0:0] _zz_io_inputs_0_payload_format;
+ wire [2:0] _zz_io_inputs_0_payload_roundMode;
+ wire cmdArbiter_output_valid;
+ wire cmdArbiter_output_ready;
+ wire [3:0] cmdArbiter_output_payload_opcode;
+ wire [4:0] cmdArbiter_output_payload_rs1;
+ wire [4:0] cmdArbiter_output_payload_rs2;
+ wire [4:0] cmdArbiter_output_payload_rs3;
+ wire [4:0] cmdArbiter_output_payload_rd;
+ wire [1:0] cmdArbiter_output_payload_arg;
+ wire [2:0] cmdArbiter_output_payload_roundMode;
+ wire read_s0_valid;
+ reg read_s0_ready;
+ wire [3:0] read_s0_payload_opcode;
+ wire [4:0] read_s0_payload_rs1;
+ wire [4:0] read_s0_payload_rs2;
+ wire [4:0] read_s0_payload_rs3;
+ wire [4:0] read_s0_payload_rd;
+ wire [1:0] read_s0_payload_arg;
+ wire [2:0] read_s0_payload_roundMode;
+ wire read_s1_valid;
+ wire read_s1_ready;
+ wire [3:0] read_s1_payload_opcode;
+ wire [4:0] read_s1_payload_rs1;
+ wire [4:0] read_s1_payload_rs2;
+ wire [4:0] read_s1_payload_rs3;
+ wire [4:0] read_s1_payload_rd;
+ wire [1:0] read_s1_payload_arg;
+ wire [2:0] read_s1_payload_roundMode;
+ reg read_s0_rValid;
+ reg [3:0] read_s0_rData_opcode;
+ reg [4:0] read_s0_rData_rs1;
+ reg [4:0] read_s0_rData_rs2;
+ reg [4:0] read_s0_rData_rs3;
+ reg [4:0] read_s0_rData_rd;
+ reg [1:0] read_s0_rData_arg;
+ reg [2:0] read_s0_rData_roundMode;
+ wire when_Stream_l369;
+ wire read_output_valid;
+ wire read_output_ready;
+ wire [3:0] read_output_payload_opcode;
+ wire [22:0] read_output_payload_rs1_mantissa;
+ wire [8:0] read_output_payload_rs1_exponent;
+ wire read_output_payload_rs1_sign;
+ wire read_output_payload_rs1_special;
+ wire [22:0] read_output_payload_rs2_mantissa;
+ wire [8:0] read_output_payload_rs2_exponent;
+ wire read_output_payload_rs2_sign;
+ wire read_output_payload_rs2_special;
+ wire [22:0] read_output_payload_rs3_mantissa;
+ wire [8:0] read_output_payload_rs3_exponent;
+ wire read_output_payload_rs3_sign;
+ wire read_output_payload_rs3_special;
+ wire [4:0] read_output_payload_rd;
+ wire [1:0] read_output_payload_arg;
+ wire [2:0] read_output_payload_roundMode;
+ wire [4:0] _zz_read_rs_0_value_mantissa;
+ wire read_output_isStall;
+ wire _zz_read_rs_0_value_mantissa_1;
+ wire [22:0] read_rs_0_value_mantissa;
+ wire [8:0] read_rs_0_value_exponent;
+ wire read_rs_0_value_sign;
+ wire read_rs_0_value_special;
+ wire [33:0] _zz_read_rs_0_value_mantissa_2;
+ wire [4:0] _zz_read_rs_1_value_mantissa;
+ wire _zz_read_rs_1_value_mantissa_1;
+ wire [22:0] read_rs_1_value_mantissa;
+ wire [8:0] read_rs_1_value_exponent;
+ wire read_rs_1_value_sign;
+ wire read_rs_1_value_special;
+ wire [33:0] _zz_read_rs_1_value_mantissa_2;
+ wire [4:0] _zz_read_rs_2_value_mantissa;
+ wire _zz_read_rs_2_value_mantissa_1;
+ wire [22:0] read_rs_2_value_mantissa;
+ wire [8:0] read_rs_2_value_exponent;
+ wire read_rs_2_value_sign;
+ wire read_rs_2_value_special;
+ wire [33:0] _zz_read_rs_2_value_mantissa_2;
+ wire decode_input_valid;
+ reg decode_input_ready;
+ wire [3:0] decode_input_payload_opcode;
+ wire [22:0] decode_input_payload_rs1_mantissa;
+ wire [8:0] decode_input_payload_rs1_exponent;
+ wire decode_input_payload_rs1_sign;
+ wire decode_input_payload_rs1_special;
+ wire [22:0] decode_input_payload_rs2_mantissa;
+ wire [8:0] decode_input_payload_rs2_exponent;
+ wire decode_input_payload_rs2_sign;
+ wire decode_input_payload_rs2_special;
+ wire [22:0] decode_input_payload_rs3_mantissa;
+ wire [8:0] decode_input_payload_rs3_exponent;
+ wire decode_input_payload_rs3_sign;
+ wire decode_input_payload_rs3_special;
+ wire [4:0] decode_input_payload_rd;
+ wire [1:0] decode_input_payload_arg;
+ wire [2:0] decode_input_payload_roundMode;
+ wire decode_loadHit;
+ wire decode_load_valid;
+ wire decode_load_ready;
+ wire [4:0] decode_load_payload_rd;
+ wire decode_load_payload_i2f;
+ wire [1:0] decode_load_payload_arg;
+ wire [2:0] decode_load_payload_roundMode;
+ wire when_FpuCore_l329;
+ wire decode_shortPipHit;
+ wire decode_shortPip_valid;
+ reg decode_shortPip_ready;
+ wire [3:0] decode_shortPip_payload_opcode;
+ wire [22:0] decode_shortPip_payload_rs1_mantissa;
+ wire [8:0] decode_shortPip_payload_rs1_exponent;
+ wire decode_shortPip_payload_rs1_sign;
+ wire decode_shortPip_payload_rs1_special;
+ wire [22:0] decode_shortPip_payload_rs2_mantissa;
+ wire [8:0] decode_shortPip_payload_rs2_exponent;
+ wire decode_shortPip_payload_rs2_sign;
+ wire decode_shortPip_payload_rs2_special;
+ wire [4:0] decode_shortPip_payload_rd;
+ wire [31:0] decode_shortPip_payload_value;
+ wire [1:0] decode_shortPip_payload_arg;
+ wire [2:0] decode_shortPip_payload_roundMode;
+ wire when_FpuCore_l335;
+ wire decode_divSqrtHit;
+ wire decode_divSqrt_valid;
+ wire decode_divSqrt_ready;
+ wire [22:0] decode_divSqrt_payload_rs1_mantissa;
+ wire [8:0] decode_divSqrt_payload_rs1_exponent;
+ wire decode_divSqrt_payload_rs1_sign;
+ wire decode_divSqrt_payload_rs1_special;
+ wire [22:0] decode_divSqrt_payload_rs2_mantissa;
+ wire [8:0] decode_divSqrt_payload_rs2_exponent;
+ wire decode_divSqrt_payload_rs2_sign;
+ wire decode_divSqrt_payload_rs2_special;
+ wire [4:0] decode_divSqrt_payload_rd;
+ wire decode_divSqrt_payload_div;
+ wire [2:0] decode_divSqrt_payload_roundMode;
+ wire decode_divHit;
+ wire decode_div_valid;
+ wire decode_div_ready;
+ wire [22:0] decode_div_payload_rs1_mantissa;
+ wire [8:0] decode_div_payload_rs1_exponent;
+ wire decode_div_payload_rs1_sign;
+ wire decode_div_payload_rs1_special;
+ wire [22:0] decode_div_payload_rs2_mantissa;
+ wire [8:0] decode_div_payload_rs2_exponent;
+ wire decode_div_payload_rs2_sign;
+ wire decode_div_payload_rs2_special;
+ wire [4:0] decode_div_payload_rd;
+ wire [2:0] decode_div_payload_roundMode;
+ wire when_FpuCore_l351;
+ wire decode_sqrtHit;
+ wire decode_sqrt_valid;
+ wire decode_sqrt_ready;
+ wire [22:0] decode_sqrt_payload_rs1_mantissa;
+ wire [8:0] decode_sqrt_payload_rs1_exponent;
+ wire decode_sqrt_payload_rs1_sign;
+ wire decode_sqrt_payload_rs1_special;
+ wire [4:0] decode_sqrt_payload_rd;
+ wire [2:0] decode_sqrt_payload_roundMode;
+ wire when_FpuCore_l359;
+ wire decode_fmaHit;
+ wire decode_mulHit;
+ wire decode_mul_valid;
+ reg decode_mul_ready;
+ reg [22:0] decode_mul_payload_rs1_mantissa;
+ reg [8:0] decode_mul_payload_rs1_exponent;
+ reg decode_mul_payload_rs1_sign;
+ reg decode_mul_payload_rs1_special;
+ reg [22:0] decode_mul_payload_rs2_mantissa;
+ reg [8:0] decode_mul_payload_rs2_exponent;
+ reg decode_mul_payload_rs2_sign;
+ reg decode_mul_payload_rs2_special;
+ reg [22:0] decode_mul_payload_rs3_mantissa;
+ reg [8:0] decode_mul_payload_rs3_exponent;
+ reg decode_mul_payload_rs3_sign;
+ reg decode_mul_payload_rs3_special;
+ reg [4:0] decode_mul_payload_rd;
+ reg decode_mul_payload_add;
+ reg decode_mul_payload_divSqrt;
+ reg decode_mul_payload_msb1;
+ reg decode_mul_payload_msb2;
+ reg [2:0] decode_mul_payload_roundMode;
+ wire decode_divSqrtToMul_valid;
+ wire decode_divSqrtToMul_ready;
+ wire [22:0] decode_divSqrtToMul_payload_rs1_mantissa;
+ wire [8:0] decode_divSqrtToMul_payload_rs1_exponent;
+ wire decode_divSqrtToMul_payload_rs1_sign;
+ wire decode_divSqrtToMul_payload_rs1_special;
+ wire [22:0] decode_divSqrtToMul_payload_rs2_mantissa;
+ wire [8:0] decode_divSqrtToMul_payload_rs2_exponent;
+ wire decode_divSqrtToMul_payload_rs2_sign;
+ wire decode_divSqrtToMul_payload_rs2_special;
+ wire [22:0] decode_divSqrtToMul_payload_rs3_mantissa;
+ wire [8:0] decode_divSqrtToMul_payload_rs3_exponent;
+ wire decode_divSqrtToMul_payload_rs3_sign;
+ wire decode_divSqrtToMul_payload_rs3_special;
+ wire [4:0] decode_divSqrtToMul_payload_rd;
+ wire decode_divSqrtToMul_payload_add;
+ wire decode_divSqrtToMul_payload_divSqrt;
+ wire decode_divSqrtToMul_payload_msb1;
+ wire decode_divSqrtToMul_payload_msb2;
+ wire [2:0] decode_divSqrtToMul_payload_roundMode;
+ wire when_FpuCore_l375;
+ wire when_FpuCore_l380;
+ wire decode_addHit;
+ wire decode_add_valid;
+ wire decode_add_ready;
+ reg [24:0] decode_add_payload_rs1_mantissa;
+ reg [8:0] decode_add_payload_rs1_exponent;
+ reg decode_add_payload_rs1_sign;
+ reg decode_add_payload_rs1_special;
+ reg [24:0] decode_add_payload_rs2_mantissa;
+ reg [8:0] decode_add_payload_rs2_exponent;
+ reg decode_add_payload_rs2_sign;
+ reg decode_add_payload_rs2_special;
+ reg [4:0] decode_add_payload_rd;
+ reg [2:0] decode_add_payload_roundMode;
+ reg decode_add_payload_needCommit;
+ wire decode_mulToAdd_valid;
+ wire decode_mulToAdd_ready;
+ wire [24:0] decode_mulToAdd_payload_rs1_mantissa;
+ wire [8:0] decode_mulToAdd_payload_rs1_exponent;
+ wire decode_mulToAdd_payload_rs1_sign;
+ wire decode_mulToAdd_payload_rs1_special;
+ wire [24:0] decode_mulToAdd_payload_rs2_mantissa;
+ wire [8:0] decode_mulToAdd_payload_rs2_exponent;
+ wire decode_mulToAdd_payload_rs2_sign;
+ wire decode_mulToAdd_payload_rs2_special;
+ wire [4:0] decode_mulToAdd_payload_rd;
+ wire [2:0] decode_mulToAdd_payload_roundMode;
+ wire decode_mulToAdd_payload_needCommit;
+ wire when_FpuCore_l399;
+ wire when_FpuCore_l404;
+ wire decode_load_s2mPipe_valid;
+ reg decode_load_s2mPipe_ready;
+ wire [4:0] decode_load_s2mPipe_payload_rd;
+ wire decode_load_s2mPipe_payload_i2f;
+ wire [1:0] decode_load_s2mPipe_payload_arg;
+ wire [2:0] decode_load_s2mPipe_payload_roundMode;
+ reg decode_load_rValidN;
+ reg [4:0] decode_load_rData_rd;
+ reg decode_load_rData_i2f;
+ reg [1:0] decode_load_rData_arg;
+ reg [2:0] decode_load_rData_roundMode;
+ wire [2:0] _zz_decode_load_s2mPipe_payload_roundMode;
+ wire decode_load_s2mPipe_m2sPipe_valid;
+ reg decode_load_s2mPipe_m2sPipe_ready;
+ wire [4:0] decode_load_s2mPipe_m2sPipe_payload_rd;
+ wire decode_load_s2mPipe_m2sPipe_payload_i2f;
+ wire [1:0] decode_load_s2mPipe_m2sPipe_payload_arg;
+ wire [2:0] decode_load_s2mPipe_m2sPipe_payload_roundMode;
+ reg decode_load_s2mPipe_rValid;
+ reg [4:0] decode_load_s2mPipe_rData_rd;
+ reg decode_load_s2mPipe_rData_i2f;
+ reg [1:0] decode_load_s2mPipe_rData_arg;
+ reg [2:0] decode_load_s2mPipe_rData_roundMode;
+ wire when_Stream_l369_1;
+ wire load_s0_input_valid;
+ wire load_s0_input_ready;
+ wire [4:0] load_s0_input_payload_rd;
+ wire load_s0_input_payload_i2f;
+ wire [1:0] load_s0_input_payload_arg;
+ wire [2:0] load_s0_input_payload_roundMode;
+ reg decode_load_s2mPipe_m2sPipe_rValid;
+ reg [4:0] decode_load_s2mPipe_m2sPipe_rData_rd;
+ reg decode_load_s2mPipe_m2sPipe_rData_i2f;
+ reg [1:0] decode_load_s2mPipe_m2sPipe_rData_arg;
+ reg [2:0] decode_load_s2mPipe_m2sPipe_rData_roundMode;
+ wire when_Stream_l369_2;
+ wire when_Stream_l439;
+ reg load_s0_filtred_0_valid;
+ reg load_s0_filtred_0_ready;
+ wire [3:0] load_s0_filtred_0_payload_opcode;
+ wire [4:0] load_s0_filtred_0_payload_rd;
+ wire load_s0_filtred_0_payload_write;
+ wire [31:0] load_s0_filtred_0_payload_value;
+ wire load_s0_hazard;
+ wire _zz_load_s0_input_ready;
+ wire load_s0_output_valid;
+ reg load_s0_output_ready;
+ wire [4:0] load_s0_output_payload_rd;
+ wire [31:0] load_s0_output_payload_value;
+ wire load_s0_output_payload_i2f;
+ wire [1:0] load_s0_output_payload_arg;
+ wire [2:0] load_s0_output_payload_roundMode;
+ wire load_s1_input_valid;
+ wire load_s1_input_ready;
+ wire [4:0] load_s1_input_payload_rd;
+ wire [31:0] load_s1_input_payload_value;
+ wire load_s1_input_payload_i2f;
+ wire [1:0] load_s1_input_payload_arg;
+ wire [2:0] load_s1_input_payload_roundMode;
+ reg load_s0_output_rValid;
+ reg [4:0] load_s0_output_rData_rd;
+ reg [31:0] load_s0_output_rData_value;
+ reg load_s0_output_rData_i2f;
+ reg [1:0] load_s0_output_rData_arg;
+ reg [2:0] load_s0_output_rData_roundMode;
+ wire when_Stream_l369_3;
+ reg load_s1_busy;
+ wire [22:0] load_s1_f32_mantissa;
+ wire [7:0] load_s1_f32_exponent;
+ wire load_s1_f32_sign;
+ wire [8:0] load_s1_recodedExpOffset;
+ wire [22:0] load_s1_passThroughFloat_mantissa;
+ wire [8:0] load_s1_passThroughFloat_exponent;
+ wire load_s1_passThroughFloat_sign;
+ wire load_s1_passThroughFloat_special;
+ wire load_s1_manZero;
+ wire load_s1_expZero;
+ wire load_s1_expOne;
+ wire load_s1_isZero;
+ wire load_s1_isSubnormal;
+ wire load_s1_isInfinity;
+ wire load_s1_isNan;
+ reg load_s1_fsm_done;
+ reg load_s1_fsm_boot;
+ reg load_s1_fsm_patched;
+ reg [31:0] load_s1_fsm_ohInput;
+ wire when_FpuCore_l508;
+ reg load_s1_fsm_i2fZero;
+ reg [4:0] load_s1_fsm_shift_by;
+ reg [31:0] load_s1_fsm_shift_input;
+ wire when_FpuCore_l525;
+ reg [31:0] load_s1_fsm_shift_output;
+ wire when_FpuCore_l529;
+ wire when_FpuCore_l532;
+ wire [31:0] _zz_load_s0_output_rData_value;
+ wire _zz_load_s0_output_rData_value_1;
+ wire [31:0] _zz_load_s1_fsm_shift_by;
+ wire [31:0] _zz_load_s1_fsm_shift_by_1;
+ wire _zz_load_s1_fsm_shift_by_2;
+ wire _zz_load_s1_fsm_shift_by_3;
+ wire _zz_load_s1_fsm_shift_by_4;
+ wire _zz_load_s1_fsm_shift_by_5;
+ wire _zz_load_s1_fsm_shift_by_6;
+ wire _zz_load_s1_fsm_shift_by_7;
+ wire _zz_load_s1_fsm_shift_by_8;
+ wire _zz_load_s1_fsm_shift_by_9;
+ wire _zz_load_s1_fsm_shift_by_10;
+ wire _zz_load_s1_fsm_shift_by_11;
+ wire _zz_load_s1_fsm_shift_by_12;
+ wire _zz_load_s1_fsm_shift_by_13;
+ wire _zz_load_s1_fsm_shift_by_14;
+ wire _zz_load_s1_fsm_shift_by_15;
+ wire _zz_load_s1_fsm_shift_by_16;
+ wire _zz_load_s1_fsm_shift_by_17;
+ wire _zz_load_s1_fsm_shift_by_18;
+ wire _zz_load_s1_fsm_shift_by_19;
+ wire _zz_load_s1_fsm_shift_by_20;
+ wire _zz_load_s1_fsm_shift_by_21;
+ wire _zz_load_s1_fsm_shift_by_22;
+ wire _zz_load_s1_fsm_shift_by_23;
+ wire _zz_load_s1_fsm_shift_by_24;
+ wire _zz_load_s1_fsm_shift_by_25;
+ wire _zz_load_s1_fsm_shift_by_26;
+ wire _zz_load_s1_fsm_shift_by_27;
+ wire _zz_load_s1_fsm_shift_by_28;
+ wire _zz_load_s1_fsm_shift_by_29;
+ wire _zz_load_s1_fsm_shift_by_30;
+ wire _zz_load_s1_fsm_shift_by_31;
+ wire _zz_load_s1_fsm_shift_by_32;
+ reg [8:0] load_s1_fsm_expOffset;
+ wire load_s1_input_isStall;
+ wire when_FpuCore_l551;
+ wire [23:0] load_s1_i2fHigh;
+ wire [7:0] load_s1_i2fLow;
+ wire load_s1_scrap;
+ wire [22:0] load_s1_recoded_mantissa;
+ reg [8:0] load_s1_recoded_exponent;
+ wire load_s1_recoded_sign;
+ reg load_s1_recoded_special;
+ wire _zz_load_s1_input_ready;
+ wire load_s1_output_valid;
+ reg load_s1_output_ready;
+ wire [4:0] load_s1_output_payload_rd;
+ reg [23:0] load_s1_output_payload_value_mantissa;
+ reg [8:0] load_s1_output_payload_value_exponent;
+ reg load_s1_output_payload_value_sign;
+ reg load_s1_output_payload_value_special;
+ reg load_s1_output_payload_scrap;
+ wire [2:0] load_s1_output_payload_roundMode;
+ wire load_s1_output_payload_NV;
+ wire load_s1_output_payload_DZ;
+ wire when_FpuCore_l594;
+ wire shortPip_input_valid;
+ wire shortPip_input_ready;
+ wire [3:0] shortPip_input_payload_opcode;
+ wire [22:0] shortPip_input_payload_rs1_mantissa;
+ wire [8:0] shortPip_input_payload_rs1_exponent;
+ wire shortPip_input_payload_rs1_sign;
+ wire shortPip_input_payload_rs1_special;
+ wire [22:0] shortPip_input_payload_rs2_mantissa;
+ wire [8:0] shortPip_input_payload_rs2_exponent;
+ wire shortPip_input_payload_rs2_sign;
+ wire shortPip_input_payload_rs2_special;
+ wire [4:0] shortPip_input_payload_rd;
+ wire [31:0] shortPip_input_payload_value;
+ wire [1:0] shortPip_input_payload_arg;
+ wire [2:0] shortPip_input_payload_roundMode;
+ reg decode_shortPip_rValid;
+ reg [3:0] decode_shortPip_rData_opcode;
+ reg [22:0] decode_shortPip_rData_rs1_mantissa;
+ reg [8:0] decode_shortPip_rData_rs1_exponent;
+ reg decode_shortPip_rData_rs1_sign;
+ reg decode_shortPip_rData_rs1_special;
+ reg [22:0] decode_shortPip_rData_rs2_mantissa;
+ reg [8:0] decode_shortPip_rData_rs2_exponent;
+ reg decode_shortPip_rData_rs2_sign;
+ reg decode_shortPip_rData_rs2_special;
+ reg [4:0] decode_shortPip_rData_rd;
+ reg [31:0] decode_shortPip_rData_value;
+ reg [1:0] decode_shortPip_rData_arg;
+ reg [2:0] decode_shortPip_rData_roundMode;
+ wire when_Stream_l369_4;
+ wire shortPip_toFpuRf;
+ wire shortPip_rfOutput_valid;
+ wire shortPip_rfOutput_ready;
+ wire [4:0] shortPip_rfOutput_payload_rd;
+ reg [23:0] shortPip_rfOutput_payload_value_mantissa;
+ reg [8:0] shortPip_rfOutput_payload_value_exponent;
+ reg shortPip_rfOutput_payload_value_sign;
+ reg shortPip_rfOutput_payload_value_special;
+ wire shortPip_rfOutput_payload_scrap;
+ wire [2:0] shortPip_rfOutput_payload_roundMode;
+ wire shortPip_rfOutput_payload_NV;
+ wire shortPip_rfOutput_payload_DZ;
+ wire shortPip_input_fire;
+ wire when_FpuCore_l221;
+ wire shortPip_isCommited;
+ wire _zz_shortPip_rfOutput_ready;
+ wire shortPip_output_valid;
+ reg shortPip_output_ready;
+ wire [4:0] shortPip_output_payload_rd;
+ wire [23:0] shortPip_output_payload_value_mantissa;
+ wire [8:0] shortPip_output_payload_value_exponent;
+ wire shortPip_output_payload_value_sign;
+ wire shortPip_output_payload_value_special;
+ wire shortPip_output_payload_scrap;
+ wire [2:0] shortPip_output_payload_roundMode;
+ wire shortPip_output_payload_NV;
+ wire shortPip_output_payload_DZ;
+ reg [31:0] shortPip_result;
+ reg shortPip_halt;
+ reg [31:0] shortPip_recodedResult;
+ wire [7:0] shortPip_f32_exp;
+ wire [22:0] shortPip_f32_man;
+ wire [7:0] shortPip_expSubnormalThreshold;
+ wire shortPip_expInSubnormalRange;
+ wire shortPip_isSubnormal;
+ wire shortPip_isNormal;
+ wire [8:0] shortPip_fsm_f2iShift;
+ wire shortPip_fsm_isF2i;
+ wire shortPip_fsm_needRecoding;
+ reg shortPip_fsm_done;
+ reg shortPip_fsm_boot;
+ wire shortPip_fsm_isZero;
+ reg [5:0] shortPip_fsm_shift_by;
+ reg [32:0] shortPip_fsm_shift_input;
+ reg shortPip_fsm_shift_scrap;
+ wire when_FpuCore_l646;
+ wire when_FpuCore_l646_1;
+ wire when_FpuCore_l646_2;
+ wire when_FpuCore_l646_3;
+ wire when_FpuCore_l646_4;
+ wire when_FpuCore_l646_5;
+ wire when_FpuCore_l652;
+ reg [32:0] shortPip_fsm_shift_output;
+ wire [7:0] shortPip_fsm_formatShiftOffset;
+ wire when_FpuCore_l658;
+ wire [8:0] _zz_shortPip_fsm_shift_by;
+ wire [5:0] _zz_shortPip_fsm_shift_by_1;
+ wire shortPip_input_isStall;
+ wire when_FpuCore_l672;
+ reg shortPip_mantissaForced;
+ reg shortPip_exponentForced;
+ reg shortPip_mantissaForcedValue;
+ reg shortPip_exponentForcedValue;
+ reg shortPip_cononicalForced;
+ wire [1:0] switch_FpuCore_l686;
+ wire when_FpuCore_l702;
+ reg shortPip_rspNv;
+ reg shortPip_rspNx;
+ wire [31:0] shortPip_f2i_unsigned;
+ wire shortPip_f2i_resign;
+ wire [1:0] shortPip_f2i_round;
+ reg shortPip_f2i_increment;
+ reg [31:0] shortPip_f2i_result;
+ wire shortPip_f2i_overflow;
+ wire shortPip_f2i_underflow;
+ wire shortPip_f2i_isZero;
+ wire when_FpuCore_l767;
+ wire shortPip_bothZero;
+ reg shortPip_rs1Equal;
+ reg shortPip_rs1AbsSmaller;
+ wire when_FpuCore_l780;
+ wire when_FpuCore_l781;
+ wire when_FpuCore_l782;
+ wire when_FpuCore_l783;
+ wire when_FpuCore_l784;
+ wire [1:0] switch_Misc_l241;
+ reg shortPip_rs1Smaller;
+ wire shortPip_minMaxSelectRs2;
+ wire shortPip_minMaxSelectNanQuiet;
+ reg [0:0] shortPip_cmpResult;
+ wire when_FpuCore_l796;
+ wire shortPip_sgnjRs1Sign;
+ wire shortPip_sgnjRs2Sign;
+ wire shortPip_sgnjResult;
+ reg [31:0] shortPip_fclassResult;
+ wire shortPip_decoded_isNan;
+ wire shortPip_decoded_isNormal;
+ wire shortPip_decoded_isSubnormal;
+ wire shortPip_decoded_isZero;
+ wire shortPip_decoded_isInfinity;
+ wire shortPip_decoded_isQuiet;
+ wire when_FpuCore_l850;
+ wire shortPip_signalQuiet;
+ wire shortPip_rs1Nan;
+ wire shortPip_rs2Nan;
+ wire shortPip_rs1NanNv;
+ wire shortPip_rs2NanNv;
+ wire shortPip_NV;
+ wire shortPip_rspStreams_0_valid;
+ reg shortPip_rspStreams_0_ready;
+ wire [31:0] shortPip_rspStreams_0_payload_value;
+ wire shortPip_rspStreams_0_payload_NV;
+ wire shortPip_rspStreams_0_payload_NX;
+ wire shortPip_rspStreams_0_m2sPipe_valid;
+ wire shortPip_rspStreams_0_m2sPipe_ready;
+ wire [31:0] shortPip_rspStreams_0_m2sPipe_payload_value;
+ wire shortPip_rspStreams_0_m2sPipe_payload_NV;
+ wire shortPip_rspStreams_0_m2sPipe_payload_NX;
+ reg shortPip_rspStreams_0_rValid;
+ reg [31:0] shortPip_rspStreams_0_rData_value;
+ reg shortPip_rspStreams_0_rData_NV;
+ reg shortPip_rspStreams_0_rData_NX;
+ wire when_Stream_l369_5;
+ wire mul_preMul_input_valid;
+ wire mul_preMul_input_ready;
+ wire [22:0] mul_preMul_input_payload_rs1_mantissa;
+ wire [8:0] mul_preMul_input_payload_rs1_exponent;
+ wire mul_preMul_input_payload_rs1_sign;
+ wire mul_preMul_input_payload_rs1_special;
+ wire [22:0] mul_preMul_input_payload_rs2_mantissa;
+ wire [8:0] mul_preMul_input_payload_rs2_exponent;
+ wire mul_preMul_input_payload_rs2_sign;
+ wire mul_preMul_input_payload_rs2_special;
+ wire [22:0] mul_preMul_input_payload_rs3_mantissa;
+ wire [8:0] mul_preMul_input_payload_rs3_exponent;
+ wire mul_preMul_input_payload_rs3_sign;
+ wire mul_preMul_input_payload_rs3_special;
+ wire [4:0] mul_preMul_input_payload_rd;
+ wire mul_preMul_input_payload_add;
+ wire mul_preMul_input_payload_divSqrt;
+ wire mul_preMul_input_payload_msb1;
+ wire mul_preMul_input_payload_msb2;
+ wire [2:0] mul_preMul_input_payload_roundMode;
+ reg decode_mul_rValid;
+ reg [22:0] decode_mul_rData_rs1_mantissa;
+ reg [8:0] decode_mul_rData_rs1_exponent;
+ reg decode_mul_rData_rs1_sign;
+ reg decode_mul_rData_rs1_special;
+ reg [22:0] decode_mul_rData_rs2_mantissa;
+ reg [8:0] decode_mul_rData_rs2_exponent;
+ reg decode_mul_rData_rs2_sign;
+ reg decode_mul_rData_rs2_special;
+ reg [22:0] decode_mul_rData_rs3_mantissa;
+ reg [8:0] decode_mul_rData_rs3_exponent;
+ reg decode_mul_rData_rs3_sign;
+ reg decode_mul_rData_rs3_special;
+ reg [4:0] decode_mul_rData_rd;
+ reg decode_mul_rData_add;
+ reg decode_mul_rData_divSqrt;
+ reg decode_mul_rData_msb1;
+ reg decode_mul_rData_msb2;
+ reg [2:0] decode_mul_rData_roundMode;
+ wire when_Stream_l369_6;
+ wire mul_preMul_output_valid;
+ reg mul_preMul_output_ready;
+ wire [22:0] mul_preMul_output_payload_rs1_mantissa;
+ wire [8:0] mul_preMul_output_payload_rs1_exponent;
+ wire mul_preMul_output_payload_rs1_sign;
+ wire mul_preMul_output_payload_rs1_special;
+ wire [22:0] mul_preMul_output_payload_rs2_mantissa;
+ wire [8:0] mul_preMul_output_payload_rs2_exponent;
+ wire mul_preMul_output_payload_rs2_sign;
+ wire mul_preMul_output_payload_rs2_special;
+ wire [22:0] mul_preMul_output_payload_rs3_mantissa;
+ wire [8:0] mul_preMul_output_payload_rs3_exponent;
+ wire mul_preMul_output_payload_rs3_sign;
+ wire mul_preMul_output_payload_rs3_special;
+ wire [4:0] mul_preMul_output_payload_rd;
+ wire mul_preMul_output_payload_add;
+ wire mul_preMul_output_payload_divSqrt;
+ wire mul_preMul_output_payload_msb1;
+ wire mul_preMul_output_payload_msb2;
+ wire [2:0] mul_preMul_output_payload_roundMode;
+ wire [9:0] mul_preMul_output_payload_exp;
+ wire mul_mul_input_valid;
+ wire mul_mul_input_ready;
+ wire [22:0] mul_mul_input_payload_rs1_mantissa;
+ wire [8:0] mul_mul_input_payload_rs1_exponent;
+ wire mul_mul_input_payload_rs1_sign;
+ wire mul_mul_input_payload_rs1_special;
+ wire [22:0] mul_mul_input_payload_rs2_mantissa;
+ wire [8:0] mul_mul_input_payload_rs2_exponent;
+ wire mul_mul_input_payload_rs2_sign;
+ wire mul_mul_input_payload_rs2_special;
+ wire [22:0] mul_mul_input_payload_rs3_mantissa;
+ wire [8:0] mul_mul_input_payload_rs3_exponent;
+ wire mul_mul_input_payload_rs3_sign;
+ wire mul_mul_input_payload_rs3_special;
+ wire [4:0] mul_mul_input_payload_rd;
+ wire mul_mul_input_payload_add;
+ wire mul_mul_input_payload_divSqrt;
+ wire mul_mul_input_payload_msb1;
+ wire mul_mul_input_payload_msb2;
+ wire [2:0] mul_mul_input_payload_roundMode;
+ wire [9:0] mul_mul_input_payload_exp;
+ reg mul_preMul_output_rValid;
+ reg [22:0] mul_preMul_output_rData_rs1_mantissa;
+ reg [8:0] mul_preMul_output_rData_rs1_exponent;
+ reg mul_preMul_output_rData_rs1_sign;
+ reg mul_preMul_output_rData_rs1_special;
+ reg [22:0] mul_preMul_output_rData_rs2_mantissa;
+ reg [8:0] mul_preMul_output_rData_rs2_exponent;
+ reg mul_preMul_output_rData_rs2_sign;
+ reg mul_preMul_output_rData_rs2_special;
+ reg [22:0] mul_preMul_output_rData_rs3_mantissa;
+ reg [8:0] mul_preMul_output_rData_rs3_exponent;
+ reg mul_preMul_output_rData_rs3_sign;
+ reg mul_preMul_output_rData_rs3_special;
+ reg [4:0] mul_preMul_output_rData_rd;
+ reg mul_preMul_output_rData_add;
+ reg mul_preMul_output_rData_divSqrt;
+ reg mul_preMul_output_rData_msb1;
+ reg mul_preMul_output_rData_msb2;
+ reg [2:0] mul_preMul_output_rData_roundMode;
+ reg [9:0] mul_preMul_output_rData_exp;
+ wire when_Stream_l369_7;
+ wire mul_mul_output_valid;
+ reg mul_mul_output_ready;
+ wire [22:0] mul_mul_output_payload_rs1_mantissa;
+ wire [8:0] mul_mul_output_payload_rs1_exponent;
+ wire mul_mul_output_payload_rs1_sign;
+ wire mul_mul_output_payload_rs1_special;
+ wire [22:0] mul_mul_output_payload_rs2_mantissa;
+ wire [8:0] mul_mul_output_payload_rs2_exponent;
+ wire mul_mul_output_payload_rs2_sign;
+ wire mul_mul_output_payload_rs2_special;
+ wire [22:0] mul_mul_output_payload_rs3_mantissa;
+ wire [8:0] mul_mul_output_payload_rs3_exponent;
+ wire mul_mul_output_payload_rs3_sign;
+ wire mul_mul_output_payload_rs3_special;
+ wire [4:0] mul_mul_output_payload_rd;
+ wire mul_mul_output_payload_add;
+ wire mul_mul_output_payload_divSqrt;
+ wire mul_mul_output_payload_msb1;
+ wire mul_mul_output_payload_msb2;
+ wire [2:0] mul_mul_output_payload_roundMode;
+ wire [9:0] mul_mul_output_payload_exp;
+ wire [33:0] mul_mul_output_payload_muls_0;
+ wire [23:0] mul_mul_output_payload_muls_1;
+ wire [23:0] mul_mul_output_payload_muls_2;
+ wire [13:0] mul_mul_output_payload_muls_3;
+ wire [23:0] mul_mul_mulA;
+ wire [23:0] mul_mul_mulB;
+ wire mul_sum1_input_valid;
+ wire mul_sum1_input_ready;
+ wire [22:0] mul_sum1_input_payload_rs1_mantissa;
+ wire [8:0] mul_sum1_input_payload_rs1_exponent;
+ wire mul_sum1_input_payload_rs1_sign;
+ wire mul_sum1_input_payload_rs1_special;
+ wire [22:0] mul_sum1_input_payload_rs2_mantissa;
+ wire [8:0] mul_sum1_input_payload_rs2_exponent;
+ wire mul_sum1_input_payload_rs2_sign;
+ wire mul_sum1_input_payload_rs2_special;
+ wire [22:0] mul_sum1_input_payload_rs3_mantissa;
+ wire [8:0] mul_sum1_input_payload_rs3_exponent;
+ wire mul_sum1_input_payload_rs3_sign;
+ wire mul_sum1_input_payload_rs3_special;
+ wire [4:0] mul_sum1_input_payload_rd;
+ wire mul_sum1_input_payload_add;
+ wire mul_sum1_input_payload_divSqrt;
+ wire mul_sum1_input_payload_msb1;
+ wire mul_sum1_input_payload_msb2;
+ wire [2:0] mul_sum1_input_payload_roundMode;
+ wire [9:0] mul_sum1_input_payload_exp;
+ wire [33:0] mul_sum1_input_payload_muls_0;
+ wire [23:0] mul_sum1_input_payload_muls_1;
+ wire [23:0] mul_sum1_input_payload_muls_2;
+ wire [13:0] mul_sum1_input_payload_muls_3;
+ reg mul_mul_output_rValid;
+ reg [22:0] mul_mul_output_rData_rs1_mantissa;
+ reg [8:0] mul_mul_output_rData_rs1_exponent;
+ reg mul_mul_output_rData_rs1_sign;
+ reg mul_mul_output_rData_rs1_special;
+ reg [22:0] mul_mul_output_rData_rs2_mantissa;
+ reg [8:0] mul_mul_output_rData_rs2_exponent;
+ reg mul_mul_output_rData_rs2_sign;
+ reg mul_mul_output_rData_rs2_special;
+ reg [22:0] mul_mul_output_rData_rs3_mantissa;
+ reg [8:0] mul_mul_output_rData_rs3_exponent;
+ reg mul_mul_output_rData_rs3_sign;
+ reg mul_mul_output_rData_rs3_special;
+ reg [4:0] mul_mul_output_rData_rd;
+ reg mul_mul_output_rData_add;
+ reg mul_mul_output_rData_divSqrt;
+ reg mul_mul_output_rData_msb1;
+ reg mul_mul_output_rData_msb2;
+ reg [2:0] mul_mul_output_rData_roundMode;
+ reg [9:0] mul_mul_output_rData_exp;
+ reg [33:0] mul_mul_output_rData_muls_0;
+ reg [23:0] mul_mul_output_rData_muls_1;
+ reg [23:0] mul_mul_output_rData_muls_2;
+ reg [13:0] mul_mul_output_rData_muls_3;
+ wire when_Stream_l369_8;
+ wire [47:0] mul_sum1_sum;
+ wire mul_sum1_output_valid;
+ reg mul_sum1_output_ready;
+ wire [22:0] mul_sum1_output_payload_rs1_mantissa;
+ wire [8:0] mul_sum1_output_payload_rs1_exponent;
+ wire mul_sum1_output_payload_rs1_sign;
+ wire mul_sum1_output_payload_rs1_special;
+ wire [22:0] mul_sum1_output_payload_rs2_mantissa;
+ wire [8:0] mul_sum1_output_payload_rs2_exponent;
+ wire mul_sum1_output_payload_rs2_sign;
+ wire mul_sum1_output_payload_rs2_special;
+ wire [22:0] mul_sum1_output_payload_rs3_mantissa;
+ wire [8:0] mul_sum1_output_payload_rs3_exponent;
+ wire mul_sum1_output_payload_rs3_sign;
+ wire mul_sum1_output_payload_rs3_special;
+ wire [4:0] mul_sum1_output_payload_rd;
+ wire mul_sum1_output_payload_add;
+ wire mul_sum1_output_payload_divSqrt;
+ wire mul_sum1_output_payload_msb1;
+ wire mul_sum1_output_payload_msb2;
+ wire [2:0] mul_sum1_output_payload_roundMode;
+ wire [9:0] mul_sum1_output_payload_exp;
+ wire [23:0] mul_sum1_output_payload_muls2_0;
+ wire [13:0] mul_sum1_output_payload_muls2_1;
+ wire [47:0] mul_sum1_output_payload_mulC2;
+ wire mul_sum2_input_valid;
+ wire mul_sum2_input_ready;
+ wire [22:0] mul_sum2_input_payload_rs1_mantissa;
+ wire [8:0] mul_sum2_input_payload_rs1_exponent;
+ wire mul_sum2_input_payload_rs1_sign;
+ wire mul_sum2_input_payload_rs1_special;
+ wire [22:0] mul_sum2_input_payload_rs2_mantissa;
+ wire [8:0] mul_sum2_input_payload_rs2_exponent;
+ wire mul_sum2_input_payload_rs2_sign;
+ wire mul_sum2_input_payload_rs2_special;
+ wire [22:0] mul_sum2_input_payload_rs3_mantissa;
+ wire [8:0] mul_sum2_input_payload_rs3_exponent;
+ wire mul_sum2_input_payload_rs3_sign;
+ wire mul_sum2_input_payload_rs3_special;
+ wire [4:0] mul_sum2_input_payload_rd;
+ wire mul_sum2_input_payload_add;
+ wire mul_sum2_input_payload_divSqrt;
+ wire mul_sum2_input_payload_msb1;
+ wire mul_sum2_input_payload_msb2;
+ wire [2:0] mul_sum2_input_payload_roundMode;
+ wire [9:0] mul_sum2_input_payload_exp;
+ wire [23:0] mul_sum2_input_payload_muls2_0;
+ wire [13:0] mul_sum2_input_payload_muls2_1;
+ wire [47:0] mul_sum2_input_payload_mulC2;
+ reg mul_sum1_output_rValid;
+ reg [22:0] mul_sum1_output_rData_rs1_mantissa;
+ reg [8:0] mul_sum1_output_rData_rs1_exponent;
+ reg mul_sum1_output_rData_rs1_sign;
+ reg mul_sum1_output_rData_rs1_special;
+ reg [22:0] mul_sum1_output_rData_rs2_mantissa;
+ reg [8:0] mul_sum1_output_rData_rs2_exponent;
+ reg mul_sum1_output_rData_rs2_sign;
+ reg mul_sum1_output_rData_rs2_special;
+ reg [22:0] mul_sum1_output_rData_rs3_mantissa;
+ reg [8:0] mul_sum1_output_rData_rs3_exponent;
+ reg mul_sum1_output_rData_rs3_sign;
+ reg mul_sum1_output_rData_rs3_special;
+ reg [4:0] mul_sum1_output_rData_rd;
+ reg mul_sum1_output_rData_add;
+ reg mul_sum1_output_rData_divSqrt;
+ reg mul_sum1_output_rData_msb1;
+ reg mul_sum1_output_rData_msb2;
+ reg [2:0] mul_sum1_output_rData_roundMode;
+ reg [9:0] mul_sum1_output_rData_exp;
+ reg [23:0] mul_sum1_output_rData_muls2_0;
+ reg [13:0] mul_sum1_output_rData_muls2_1;
+ reg [47:0] mul_sum1_output_rData_mulC2;
+ wire when_Stream_l369_9;
+ wire [47:0] mul_sum2_sum;
+ wire mul_sum2_input_fire;
+ wire when_FpuCore_l221_1;
+ wire mul_sum2_isCommited;
+ wire _zz_mul_sum2_input_ready;
+ wire mul_sum2_output_valid;
+ reg mul_sum2_output_ready;
+ wire [22:0] mul_sum2_output_payload_rs1_mantissa;
+ wire [8:0] mul_sum2_output_payload_rs1_exponent;
+ wire mul_sum2_output_payload_rs1_sign;
+ wire mul_sum2_output_payload_rs1_special;
+ wire [22:0] mul_sum2_output_payload_rs2_mantissa;
+ wire [8:0] mul_sum2_output_payload_rs2_exponent;
+ wire mul_sum2_output_payload_rs2_sign;
+ wire mul_sum2_output_payload_rs2_special;
+ wire [22:0] mul_sum2_output_payload_rs3_mantissa;
+ wire [8:0] mul_sum2_output_payload_rs3_exponent;
+ wire mul_sum2_output_payload_rs3_sign;
+ wire mul_sum2_output_payload_rs3_special;
+ wire [4:0] mul_sum2_output_payload_rd;
+ wire mul_sum2_output_payload_add;
+ wire mul_sum2_output_payload_divSqrt;
+ wire mul_sum2_output_payload_msb1;
+ wire mul_sum2_output_payload_msb2;
+ wire [2:0] mul_sum2_output_payload_roundMode;
+ wire [9:0] mul_sum2_output_payload_exp;
+ wire [47:0] mul_sum2_output_payload_mulC;
+ wire mul_norm_input_valid;
+ wire mul_norm_input_ready;
+ wire [22:0] mul_norm_input_payload_rs1_mantissa;
+ wire [8:0] mul_norm_input_payload_rs1_exponent;
+ wire mul_norm_input_payload_rs1_sign;
+ wire mul_norm_input_payload_rs1_special;
+ wire [22:0] mul_norm_input_payload_rs2_mantissa;
+ wire [8:0] mul_norm_input_payload_rs2_exponent;
+ wire mul_norm_input_payload_rs2_sign;
+ wire mul_norm_input_payload_rs2_special;
+ wire [22:0] mul_norm_input_payload_rs3_mantissa;
+ wire [8:0] mul_norm_input_payload_rs3_exponent;
+ wire mul_norm_input_payload_rs3_sign;
+ wire mul_norm_input_payload_rs3_special;
+ wire [4:0] mul_norm_input_payload_rd;
+ wire mul_norm_input_payload_add;
+ wire mul_norm_input_payload_divSqrt;
+ wire mul_norm_input_payload_msb1;
+ wire mul_norm_input_payload_msb2;
+ wire [2:0] mul_norm_input_payload_roundMode;
+ wire [9:0] mul_norm_input_payload_exp;
+ wire [47:0] mul_norm_input_payload_mulC;
+ reg mul_sum2_output_rValid;
+ reg [22:0] mul_sum2_output_rData_rs1_mantissa;
+ reg [8:0] mul_sum2_output_rData_rs1_exponent;
+ reg mul_sum2_output_rData_rs1_sign;
+ reg mul_sum2_output_rData_rs1_special;
+ reg [22:0] mul_sum2_output_rData_rs2_mantissa;
+ reg [8:0] mul_sum2_output_rData_rs2_exponent;
+ reg mul_sum2_output_rData_rs2_sign;
+ reg mul_sum2_output_rData_rs2_special;
+ reg [22:0] mul_sum2_output_rData_rs3_mantissa;
+ reg [8:0] mul_sum2_output_rData_rs3_exponent;
+ reg mul_sum2_output_rData_rs3_sign;
+ reg mul_sum2_output_rData_rs3_special;
+ reg [4:0] mul_sum2_output_rData_rd;
+ reg mul_sum2_output_rData_add;
+ reg mul_sum2_output_rData_divSqrt;
+ reg mul_sum2_output_rData_msb1;
+ reg mul_sum2_output_rData_msb2;
+ reg [2:0] mul_sum2_output_rData_roundMode;
+ reg [9:0] mul_sum2_output_rData_exp;
+ reg [47:0] mul_sum2_output_rData_mulC;
+ wire when_Stream_l369_10;
+ wire [25:0] mul_norm_mulHigh;
+ wire [21:0] mul_norm_mulLow;
+ reg mul_norm_scrap;
+ wire mul_norm_needShift;
+ wire [9:0] mul_norm_exp;
+ wire [23:0] mul_norm_man;
+ wire when_FpuCore_l967;
+ wire mul_norm_forceZero;
+ wire [8:0] mul_norm_underflowThreshold;
+ wire [6:0] mul_norm_underflowExp;
+ wire mul_norm_forceUnderflow;
+ wire mul_norm_forceOverflow;
+ wire mul_norm_infinitynan;
+ wire mul_norm_forceNan;
+ reg [23:0] mul_norm_output_mantissa;
+ reg [8:0] mul_norm_output_exponent;
+ wire mul_norm_output_sign;
+ reg mul_norm_output_special;
+ reg mul_norm_NV;
+ wire when_FpuCore_l983;
+ wire when_FpuCore_l987;
+ wire mul_result_notMul_output_valid;
+ wire [23:0] mul_result_notMul_output_payload;
+ wire mul_result_output_valid;
+ wire mul_result_output_ready;
+ wire [4:0] mul_result_output_payload_rd;
+ wire [23:0] mul_result_output_payload_value_mantissa;
+ wire [8:0] mul_result_output_payload_value_exponent;
+ wire mul_result_output_payload_value_sign;
+ wire mul_result_output_payload_value_special;
+ wire mul_result_output_payload_scrap;
+ wire [2:0] mul_result_output_payload_roundMode;
+ wire mul_result_output_payload_NV;
+ wire mul_result_output_payload_DZ;
+ wire mul_result_mulToAdd_valid;
+ reg mul_result_mulToAdd_ready;
+ reg [24:0] mul_result_mulToAdd_payload_rs1_mantissa;
+ wire [8:0] mul_result_mulToAdd_payload_rs1_exponent;
+ wire mul_result_mulToAdd_payload_rs1_sign;
+ wire mul_result_mulToAdd_payload_rs1_special;
+ wire [24:0] mul_result_mulToAdd_payload_rs2_mantissa;
+ wire [8:0] mul_result_mulToAdd_payload_rs2_exponent;
+ wire mul_result_mulToAdd_payload_rs2_sign;
+ wire mul_result_mulToAdd_payload_rs2_special;
+ wire [4:0] mul_result_mulToAdd_payload_rd;
+ wire [2:0] mul_result_mulToAdd_payload_roundMode;
+ wire mul_result_mulToAdd_payload_needCommit;
+ wire mul_result_mulToAdd_m2sPipe_valid;
+ wire mul_result_mulToAdd_m2sPipe_ready;
+ wire [24:0] mul_result_mulToAdd_m2sPipe_payload_rs1_mantissa;
+ wire [8:0] mul_result_mulToAdd_m2sPipe_payload_rs1_exponent;
+ wire mul_result_mulToAdd_m2sPipe_payload_rs1_sign;
+ wire mul_result_mulToAdd_m2sPipe_payload_rs1_special;
+ wire [24:0] mul_result_mulToAdd_m2sPipe_payload_rs2_mantissa;
+ wire [8:0] mul_result_mulToAdd_m2sPipe_payload_rs2_exponent;
+ wire mul_result_mulToAdd_m2sPipe_payload_rs2_sign;
+ wire mul_result_mulToAdd_m2sPipe_payload_rs2_special;
+ wire [4:0] mul_result_mulToAdd_m2sPipe_payload_rd;
+ wire [2:0] mul_result_mulToAdd_m2sPipe_payload_roundMode;
+ wire mul_result_mulToAdd_m2sPipe_payload_needCommit;
+ reg mul_result_mulToAdd_rValid;
+ reg [24:0] mul_result_mulToAdd_rData_rs1_mantissa;
+ reg [8:0] mul_result_mulToAdd_rData_rs1_exponent;
+ reg mul_result_mulToAdd_rData_rs1_sign;
+ reg mul_result_mulToAdd_rData_rs1_special;
+ reg [24:0] mul_result_mulToAdd_rData_rs2_mantissa;
+ reg [8:0] mul_result_mulToAdd_rData_rs2_exponent;
+ reg mul_result_mulToAdd_rData_rs2_sign;
+ reg mul_result_mulToAdd_rData_rs2_special;
+ reg [4:0] mul_result_mulToAdd_rData_rd;
+ reg [2:0] mul_result_mulToAdd_rData_roundMode;
+ reg mul_result_mulToAdd_rData_needCommit;
+ wire when_Stream_l369_11;
+ wire div_input_valid;
+ wire div_input_ready;
+ wire [22:0] div_input_payload_rs1_mantissa;
+ wire [8:0] div_input_payload_rs1_exponent;
+ wire div_input_payload_rs1_sign;
+ wire div_input_payload_rs1_special;
+ wire [22:0] div_input_payload_rs2_mantissa;
+ wire [8:0] div_input_payload_rs2_exponent;
+ wire div_input_payload_rs2_sign;
+ wire div_input_payload_rs2_special;
+ wire [4:0] div_input_payload_rd;
+ wire [2:0] div_input_payload_roundMode;
+ reg decode_div_rValid;
+ wire div_input_fire;
+ reg [22:0] decode_div_rData_rs1_mantissa;
+ reg [8:0] decode_div_rData_rs1_exponent;
+ reg decode_div_rData_rs1_sign;
+ reg decode_div_rData_rs1_special;
+ reg [22:0] decode_div_rData_rs2_mantissa;
+ reg [8:0] decode_div_rData_rs2_exponent;
+ reg decode_div_rData_rs2_sign;
+ reg decode_div_rData_rs2_special;
+ reg [4:0] decode_div_rData_rd;
+ reg [2:0] decode_div_rData_roundMode;
+ reg div_haltIt;
+ wire when_FpuCore_l221_2;
+ reg div_isCommited;
+ wire _zz_div_input_ready;
+ wire div_output_valid;
+ wire div_output_ready;
+ wire [4:0] div_output_payload_rd;
+ reg [23:0] div_output_payload_value_mantissa;
+ reg [8:0] div_output_payload_value_exponent;
+ wire div_output_payload_value_sign;
+ reg div_output_payload_value_special;
+ wire div_output_payload_scrap;
+ wire [2:0] div_output_payload_roundMode;
+ reg div_output_payload_NV;
+ wire div_output_payload_DZ;
+ wire [25:0] div_dividerResult;
+ wire div_dividerScrap;
+ reg div_cmdSent;
+ wire FpuPlugin_fpu_div_divider_io_input_fire;
+ wire when_FpuCore_l1056;
+ wire div_needShift;
+ wire [23:0] div_mantissa;
+ wire div_scrap;
+ wire [10:0] div_exponent;
+ wire when_FpuCore_l1072;
+ wire [10:0] div_underflowThreshold;
+ wire [10:0] div_underflowExp;
+ wire div_forceUnderflow;
+ wire div_forceOverflow;
+ wire div_infinitynan;
+ wire div_forceNan;
+ wire div_forceZero;
+ wire when_FpuCore_l1089;
+ wire when_FpuCore_l1093;
+ wire sqrt_input_valid;
+ wire sqrt_input_ready;
+ wire [22:0] sqrt_input_payload_rs1_mantissa;
+ wire [8:0] sqrt_input_payload_rs1_exponent;
+ wire sqrt_input_payload_rs1_sign;
+ wire sqrt_input_payload_rs1_special;
+ wire [4:0] sqrt_input_payload_rd;
+ wire [2:0] sqrt_input_payload_roundMode;
+ reg decode_sqrt_rValid;
+ wire sqrt_input_fire;
+ reg [22:0] decode_sqrt_rData_rs1_mantissa;
+ reg [8:0] decode_sqrt_rData_rs1_exponent;
+ reg decode_sqrt_rData_rs1_sign;
+ reg decode_sqrt_rData_rs1_special;
+ reg [4:0] decode_sqrt_rData_rd;
+ reg [2:0] decode_sqrt_rData_roundMode;
+ reg sqrt_haltIt;
+ wire when_FpuCore_l221_3;
+ reg sqrt_isCommited;
+ wire _zz_sqrt_input_ready;
+ wire sqrt_output_valid;
+ wire sqrt_output_ready;
+ wire [4:0] sqrt_output_payload_rd;
+ reg [23:0] sqrt_output_payload_value_mantissa;
+ reg [8:0] sqrt_output_payload_value_exponent;
+ wire sqrt_output_payload_value_sign;
+ reg sqrt_output_payload_value_special;
+ wire sqrt_output_payload_scrap;
+ wire [2:0] sqrt_output_payload_roundMode;
+ reg sqrt_output_payload_NV;
+ wire sqrt_output_payload_DZ;
+ wire sqrt_needShift;
+ reg sqrt_cmdSent;
+ wire FpuPlugin_fpu_sqrt_sqrt_io_input_fire;
+ wire when_FpuCore_l1118;
+ wire sqrt_scrap;
+ reg [8:0] sqrt_exponent;
+ wire sqrt_negative;
+ wire when_FpuCore_l1137;
+ wire when_FpuCore_l1144;
+ wire when_FpuCore_l1148;
+ wire add_preShifter_input_valid;
+ wire add_preShifter_input_ready;
+ wire [24:0] add_preShifter_input_payload_rs1_mantissa;
+ wire [8:0] add_preShifter_input_payload_rs1_exponent;
+ wire add_preShifter_input_payload_rs1_sign;
+ wire add_preShifter_input_payload_rs1_special;
+ wire [24:0] add_preShifter_input_payload_rs2_mantissa;
+ wire [8:0] add_preShifter_input_payload_rs2_exponent;
+ wire add_preShifter_input_payload_rs2_sign;
+ wire add_preShifter_input_payload_rs2_special;
+ wire [4:0] add_preShifter_input_payload_rd;
+ wire [2:0] add_preShifter_input_payload_roundMode;
+ wire add_preShifter_input_payload_needCommit;
+ wire add_preShifter_output_valid;
+ reg add_preShifter_output_ready;
+ wire [24:0] add_preShifter_output_payload_rs1_mantissa;
+ wire [8:0] add_preShifter_output_payload_rs1_exponent;
+ wire add_preShifter_output_payload_rs1_sign;
+ wire add_preShifter_output_payload_rs1_special;
+ wire [24:0] add_preShifter_output_payload_rs2_mantissa;
+ wire [8:0] add_preShifter_output_payload_rs2_exponent;
+ wire add_preShifter_output_payload_rs2_sign;
+ wire add_preShifter_output_payload_rs2_special;
+ wire [4:0] add_preShifter_output_payload_rd;
+ wire [2:0] add_preShifter_output_payload_roundMode;
+ wire add_preShifter_output_payload_needCommit;
+ wire add_preShifter_output_payload_absRs1Bigger;
+ wire add_preShifter_output_payload_rs1ExponentBigger;
+ wire [9:0] add_preShifter_exp21;
+ wire add_preShifter_rs1ExponentBigger;
+ wire add_preShifter_rs1ExponentEqual;
+ wire add_preShifter_rs1MantissaBigger;
+ wire add_preShifter_absRs1Bigger;
+ wire add_shifter_input_valid;
+ wire add_shifter_input_ready;
+ wire [24:0] add_shifter_input_payload_rs1_mantissa;
+ wire [8:0] add_shifter_input_payload_rs1_exponent;
+ wire add_shifter_input_payload_rs1_sign;
+ wire add_shifter_input_payload_rs1_special;
+ wire [24:0] add_shifter_input_payload_rs2_mantissa;
+ wire [8:0] add_shifter_input_payload_rs2_exponent;
+ wire add_shifter_input_payload_rs2_sign;
+ wire add_shifter_input_payload_rs2_special;
+ wire [4:0] add_shifter_input_payload_rd;
+ wire [2:0] add_shifter_input_payload_roundMode;
+ wire add_shifter_input_payload_needCommit;
+ wire add_shifter_input_payload_absRs1Bigger;
+ wire add_shifter_input_payload_rs1ExponentBigger;
+ reg add_preShifter_output_rValid;
+ reg [24:0] add_preShifter_output_rData_rs1_mantissa;
+ reg [8:0] add_preShifter_output_rData_rs1_exponent;
+ reg add_preShifter_output_rData_rs1_sign;
+ reg add_preShifter_output_rData_rs1_special;
+ reg [24:0] add_preShifter_output_rData_rs2_mantissa;
+ reg [8:0] add_preShifter_output_rData_rs2_exponent;
+ reg add_preShifter_output_rData_rs2_sign;
+ reg add_preShifter_output_rData_rs2_special;
+ reg [4:0] add_preShifter_output_rData_rd;
+ reg [2:0] add_preShifter_output_rData_roundMode;
+ reg add_preShifter_output_rData_needCommit;
+ reg add_preShifter_output_rData_absRs1Bigger;
+ reg add_preShifter_output_rData_rs1ExponentBigger;
+ wire when_Stream_l369_12;
+ wire add_shifter_output_valid;
+ reg add_shifter_output_ready;
+ wire [24:0] add_shifter_output_payload_rs1_mantissa;
+ wire [8:0] add_shifter_output_payload_rs1_exponent;
+ wire add_shifter_output_payload_rs1_sign;
+ wire add_shifter_output_payload_rs1_special;
+ wire [24:0] add_shifter_output_payload_rs2_mantissa;
+ wire [8:0] add_shifter_output_payload_rs2_exponent;
+ wire add_shifter_output_payload_rs2_sign;
+ wire add_shifter_output_payload_rs2_special;
+ wire [4:0] add_shifter_output_payload_rd;
+ wire [2:0] add_shifter_output_payload_roundMode;
+ wire add_shifter_output_payload_needCommit;
+ wire add_shifter_output_payload_xSign;
+ wire add_shifter_output_payload_ySign;
+ wire [25:0] add_shifter_output_payload_xMantissa;
+ wire [25:0] add_shifter_output_payload_yMantissa;
+ wire [8:0] add_shifter_output_payload_xyExponent;
+ wire add_shifter_output_payload_xySign;
+ wire add_shifter_output_payload_roundingScrap;
+ wire [9:0] add_shifter_exp21;
+ wire [9:0] _zz_add_shifter_shiftBy;
+ wire [9:0] add_shifter_shiftBy;
+ wire add_shifter_shiftOverflow;
+ wire add_shifter_passThrough;
+ wire add_shifter_xySign;
+ wire [25:0] add_shifter_xMantissa;
+ wire [25:0] add_shifter_yMantissaUnshifted;
+ wire [25:0] add_shifter_yMantissa;
+ reg add_shifter_roundingScrap;
+ wire when_FpuCore_l1419;
+ wire when_FpuCore_l1419_1;
+ wire when_FpuCore_l1419_2;
+ wire when_FpuCore_l1419_3;
+ wire when_FpuCore_l1419_4;
+ wire when_FpuCore_l1424;
+ wire add_math_input_valid;
+ wire add_math_input_ready;
+ wire [24:0] add_math_input_payload_rs1_mantissa;
+ wire [8:0] add_math_input_payload_rs1_exponent;
+ wire add_math_input_payload_rs1_sign;
+ wire add_math_input_payload_rs1_special;
+ wire [24:0] add_math_input_payload_rs2_mantissa;
+ wire [8:0] add_math_input_payload_rs2_exponent;
+ wire add_math_input_payload_rs2_sign;
+ wire add_math_input_payload_rs2_special;
+ wire [4:0] add_math_input_payload_rd;
+ wire [2:0] add_math_input_payload_roundMode;
+ wire add_math_input_payload_needCommit;
+ wire add_math_input_payload_xSign;
+ wire add_math_input_payload_ySign;
+ wire [25:0] add_math_input_payload_xMantissa;
+ wire [25:0] add_math_input_payload_yMantissa;
+ wire [8:0] add_math_input_payload_xyExponent;
+ wire add_math_input_payload_xySign;
+ wire add_math_input_payload_roundingScrap;
+ reg add_shifter_output_rValid;
+ reg [24:0] add_shifter_output_rData_rs1_mantissa;
+ reg [8:0] add_shifter_output_rData_rs1_exponent;
+ reg add_shifter_output_rData_rs1_sign;
+ reg add_shifter_output_rData_rs1_special;
+ reg [24:0] add_shifter_output_rData_rs2_mantissa;
+ reg [8:0] add_shifter_output_rData_rs2_exponent;
+ reg add_shifter_output_rData_rs2_sign;
+ reg add_shifter_output_rData_rs2_special;
+ reg [4:0] add_shifter_output_rData_rd;
+ reg [2:0] add_shifter_output_rData_roundMode;
+ reg add_shifter_output_rData_needCommit;
+ reg add_shifter_output_rData_xSign;
+ reg add_shifter_output_rData_ySign;
+ reg [25:0] add_shifter_output_rData_xMantissa;
+ reg [25:0] add_shifter_output_rData_yMantissa;
+ reg [8:0] add_shifter_output_rData_xyExponent;
+ reg add_shifter_output_rData_xySign;
+ reg add_shifter_output_rData_roundingScrap;
+ wire when_Stream_l369_13;
+ wire add_math_output_valid;
+ reg add_math_output_ready;
+ wire [24:0] add_math_output_payload_rs1_mantissa;
+ wire [8:0] add_math_output_payload_rs1_exponent;
+ wire add_math_output_payload_rs1_sign;
+ wire add_math_output_payload_rs1_special;
+ wire [24:0] add_math_output_payload_rs2_mantissa;
+ wire [8:0] add_math_output_payload_rs2_exponent;
+ wire add_math_output_payload_rs2_sign;
+ wire add_math_output_payload_rs2_special;
+ wire [4:0] add_math_output_payload_rd;
+ wire [2:0] add_math_output_payload_roundMode;
+ wire add_math_output_payload_needCommit;
+ wire add_math_output_payload_xSign;
+ wire add_math_output_payload_ySign;
+ wire [25:0] add_math_output_payload_xMantissa;
+ wire [25:0] add_math_output_payload_yMantissa;
+ wire [8:0] add_math_output_payload_xyExponent;
+ wire add_math_output_payload_xySign;
+ wire add_math_output_payload_roundingScrap;
+ wire [26:0] add_math_output_payload_xyMantissa;
+ wire [26:0] add_math_xSigned;
+ wire [26:0] add_math_ySigned;
+ wire add_oh_input_valid;
+ wire add_oh_input_ready;
+ wire [24:0] add_oh_input_payload_rs1_mantissa;
+ wire [8:0] add_oh_input_payload_rs1_exponent;
+ wire add_oh_input_payload_rs1_sign;
+ wire add_oh_input_payload_rs1_special;
+ wire [24:0] add_oh_input_payload_rs2_mantissa;
+ wire [8:0] add_oh_input_payload_rs2_exponent;
+ wire add_oh_input_payload_rs2_sign;
+ wire add_oh_input_payload_rs2_special;
+ wire [4:0] add_oh_input_payload_rd;
+ wire [2:0] add_oh_input_payload_roundMode;
+ wire add_oh_input_payload_needCommit;
+ wire add_oh_input_payload_xSign;
+ wire add_oh_input_payload_ySign;
+ wire [25:0] add_oh_input_payload_xMantissa;
+ wire [25:0] add_oh_input_payload_yMantissa;
+ wire [8:0] add_oh_input_payload_xyExponent;
+ wire add_oh_input_payload_xySign;
+ wire add_oh_input_payload_roundingScrap;
+ wire [26:0] add_oh_input_payload_xyMantissa;
+ reg add_math_output_rValid;
+ reg [24:0] add_math_output_rData_rs1_mantissa;
+ reg [8:0] add_math_output_rData_rs1_exponent;
+ reg add_math_output_rData_rs1_sign;
+ reg add_math_output_rData_rs1_special;
+ reg [24:0] add_math_output_rData_rs2_mantissa;
+ reg [8:0] add_math_output_rData_rs2_exponent;
+ reg add_math_output_rData_rs2_sign;
+ reg add_math_output_rData_rs2_special;
+ reg [4:0] add_math_output_rData_rd;
+ reg [2:0] add_math_output_rData_roundMode;
+ reg add_math_output_rData_needCommit;
+ reg add_math_output_rData_xSign;
+ reg add_math_output_rData_ySign;
+ reg [25:0] add_math_output_rData_xMantissa;
+ reg [25:0] add_math_output_rData_yMantissa;
+ reg [8:0] add_math_output_rData_xyExponent;
+ reg add_math_output_rData_xySign;
+ reg add_math_output_rData_roundingScrap;
+ reg [26:0] add_math_output_rData_xyMantissa;
+ wire when_Stream_l369_14;
+ wire add_oh_input_fire;
+ wire when_FpuCore_l221_4;
+ wire add_oh_isCommited;
+ wire _zz_add_oh_input_ready;
+ wire add_oh_output_valid;
+ reg add_oh_output_ready;
+ wire [24:0] add_oh_output_payload_rs1_mantissa;
+ wire [8:0] add_oh_output_payload_rs1_exponent;
+ wire add_oh_output_payload_rs1_sign;
+ wire add_oh_output_payload_rs1_special;
+ wire [24:0] add_oh_output_payload_rs2_mantissa;
+ wire [8:0] add_oh_output_payload_rs2_exponent;
+ wire add_oh_output_payload_rs2_sign;
+ wire add_oh_output_payload_rs2_special;
+ wire [4:0] add_oh_output_payload_rd;
+ wire [2:0] add_oh_output_payload_roundMode;
+ wire add_oh_output_payload_needCommit;
+ wire add_oh_output_payload_xSign;
+ wire add_oh_output_payload_ySign;
+ wire [25:0] add_oh_output_payload_xMantissa;
+ wire [25:0] add_oh_output_payload_yMantissa;
+ wire [8:0] add_oh_output_payload_xyExponent;
+ wire add_oh_output_payload_xySign;
+ wire add_oh_output_payload_roundingScrap;
+ wire [26:0] add_oh_output_payload_xyMantissa;
+ wire [4:0] add_oh_output_payload_shift;
+ wire [26:0] _zz_add_oh_shift;
+ wire [26:0] _zz_add_oh_shift_1;
+ wire _zz_add_oh_shift_2;
+ wire _zz_add_oh_shift_3;
+ wire _zz_add_oh_shift_4;
+ wire _zz_add_oh_shift_5;
+ wire _zz_add_oh_shift_6;
+ wire _zz_add_oh_shift_7;
+ wire _zz_add_oh_shift_8;
+ wire _zz_add_oh_shift_9;
+ wire _zz_add_oh_shift_10;
+ wire _zz_add_oh_shift_11;
+ wire _zz_add_oh_shift_12;
+ wire _zz_add_oh_shift_13;
+ wire _zz_add_oh_shift_14;
+ wire _zz_add_oh_shift_15;
+ wire _zz_add_oh_shift_16;
+ wire _zz_add_oh_shift_17;
+ wire _zz_add_oh_shift_18;
+ wire _zz_add_oh_shift_19;
+ wire _zz_add_oh_shift_20;
+ wire _zz_add_oh_shift_21;
+ wire _zz_add_oh_shift_22;
+ wire _zz_add_oh_shift_23;
+ wire _zz_add_oh_shift_24;
+ wire _zz_add_oh_shift_25;
+ wire _zz_add_oh_shift_26;
+ wire _zz_add_oh_shift_27;
+ wire [4:0] add_oh_shift;
+ wire add_norm_input_valid;
+ wire add_norm_input_ready;
+ wire [24:0] add_norm_input_payload_rs1_mantissa;
+ wire [8:0] add_norm_input_payload_rs1_exponent;
+ wire add_norm_input_payload_rs1_sign;
+ wire add_norm_input_payload_rs1_special;
+ wire [24:0] add_norm_input_payload_rs2_mantissa;
+ wire [8:0] add_norm_input_payload_rs2_exponent;
+ wire add_norm_input_payload_rs2_sign;
+ wire add_norm_input_payload_rs2_special;
+ wire [4:0] add_norm_input_payload_rd;
+ wire [2:0] add_norm_input_payload_roundMode;
+ wire add_norm_input_payload_needCommit;
+ wire add_norm_input_payload_xSign;
+ wire add_norm_input_payload_ySign;
+ wire [25:0] add_norm_input_payload_xMantissa;
+ wire [25:0] add_norm_input_payload_yMantissa;
+ wire [8:0] add_norm_input_payload_xyExponent;
+ wire add_norm_input_payload_xySign;
+ wire add_norm_input_payload_roundingScrap;
+ wire [26:0] add_norm_input_payload_xyMantissa;
+ wire [4:0] add_norm_input_payload_shift;
+ reg add_oh_output_rValid;
+ reg [24:0] add_oh_output_rData_rs1_mantissa;
+ reg [8:0] add_oh_output_rData_rs1_exponent;
+ reg add_oh_output_rData_rs1_sign;
+ reg add_oh_output_rData_rs1_special;
+ reg [24:0] add_oh_output_rData_rs2_mantissa;
+ reg [8:0] add_oh_output_rData_rs2_exponent;
+ reg add_oh_output_rData_rs2_sign;
+ reg add_oh_output_rData_rs2_special;
+ reg [4:0] add_oh_output_rData_rd;
+ reg [2:0] add_oh_output_rData_roundMode;
+ reg add_oh_output_rData_needCommit;
+ reg add_oh_output_rData_xSign;
+ reg add_oh_output_rData_ySign;
+ reg [25:0] add_oh_output_rData_xMantissa;
+ reg [25:0] add_oh_output_rData_yMantissa;
+ reg [8:0] add_oh_output_rData_xyExponent;
+ reg add_oh_output_rData_xySign;
+ reg add_oh_output_rData_roundingScrap;
+ reg [26:0] add_oh_output_rData_xyMantissa;
+ reg [4:0] add_oh_output_rData_shift;
+ wire when_Stream_l369_15;
+ wire add_norm_output_valid;
+ wire add_norm_output_ready;
+ wire [24:0] add_norm_output_payload_rs1_mantissa;
+ wire [8:0] add_norm_output_payload_rs1_exponent;
+ wire add_norm_output_payload_rs1_sign;
+ wire add_norm_output_payload_rs1_special;
+ wire [24:0] add_norm_output_payload_rs2_mantissa;
+ wire [8:0] add_norm_output_payload_rs2_exponent;
+ wire add_norm_output_payload_rs2_sign;
+ wire add_norm_output_payload_rs2_special;
+ wire [4:0] add_norm_output_payload_rd;
+ wire [2:0] add_norm_output_payload_roundMode;
+ wire add_norm_output_payload_needCommit;
+ wire [26:0] add_norm_output_payload_mantissa;
+ wire [9:0] add_norm_output_payload_exponent;
+ wire add_norm_output_payload_infinityNan;
+ wire add_norm_output_payload_forceNan;
+ wire add_norm_output_payload_forceZero;
+ wire add_norm_output_payload_forceInfinity;
+ wire add_norm_output_payload_xySign;
+ wire add_norm_output_payload_roundingScrap;
+ wire add_norm_output_payload_xyMantissaZero;
+ wire add_result_input_valid;
+ wire add_result_input_ready;
+ wire [24:0] add_result_input_payload_rs1_mantissa;
+ wire [8:0] add_result_input_payload_rs1_exponent;
+ wire add_result_input_payload_rs1_sign;
+ wire add_result_input_payload_rs1_special;
+ wire [24:0] add_result_input_payload_rs2_mantissa;
+ wire [8:0] add_result_input_payload_rs2_exponent;
+ wire add_result_input_payload_rs2_sign;
+ wire add_result_input_payload_rs2_special;
+ wire [4:0] add_result_input_payload_rd;
+ wire [2:0] add_result_input_payload_roundMode;
+ wire add_result_input_payload_needCommit;
+ wire [26:0] add_result_input_payload_mantissa;
+ wire [9:0] add_result_input_payload_exponent;
+ wire add_result_input_payload_infinityNan;
+ wire add_result_input_payload_forceNan;
+ wire add_result_input_payload_forceZero;
+ wire add_result_input_payload_forceInfinity;
+ wire add_result_input_payload_xySign;
+ wire add_result_input_payload_roundingScrap;
+ wire add_result_input_payload_xyMantissaZero;
+ wire add_result_output_valid;
+ wire add_result_output_ready;
+ wire [4:0] add_result_output_payload_rd;
+ reg [23:0] add_result_output_payload_value_mantissa;
+ reg [8:0] add_result_output_payload_value_exponent;
+ reg add_result_output_payload_value_sign;
+ reg add_result_output_payload_value_special;
+ wire add_result_output_payload_scrap;
+ wire [2:0] add_result_output_payload_roundMode;
+ wire add_result_output_payload_NV;
+ wire add_result_output_payload_DZ;
+ wire when_FpuCore_l1513;
+ wire when_FpuCore_l1516;
+ wire load_s1_output_m2sPipe_valid;
+ wire load_s1_output_m2sPipe_ready;
+ wire [4:0] load_s1_output_m2sPipe_payload_rd;
+ wire [23:0] load_s1_output_m2sPipe_payload_value_mantissa;
+ wire [8:0] load_s1_output_m2sPipe_payload_value_exponent;
+ wire load_s1_output_m2sPipe_payload_value_sign;
+ wire load_s1_output_m2sPipe_payload_value_special;
+ wire load_s1_output_m2sPipe_payload_scrap;
+ wire [2:0] load_s1_output_m2sPipe_payload_roundMode;
+ wire load_s1_output_m2sPipe_payload_NV;
+ wire load_s1_output_m2sPipe_payload_DZ;
+ reg load_s1_output_rValid;
+ reg [4:0] load_s1_output_rData_rd;
+ reg [23:0] load_s1_output_rData_value_mantissa;
+ reg [8:0] load_s1_output_rData_value_exponent;
+ reg load_s1_output_rData_value_sign;
+ reg load_s1_output_rData_value_special;
+ reg load_s1_output_rData_scrap;
+ reg [2:0] load_s1_output_rData_roundMode;
+ reg load_s1_output_rData_NV;
+ reg load_s1_output_rData_DZ;
+ wire when_Stream_l369_16;
+ wire shortPip_output_m2sPipe_valid;
+ wire shortPip_output_m2sPipe_ready;
+ wire [4:0] shortPip_output_m2sPipe_payload_rd;
+ wire [23:0] shortPip_output_m2sPipe_payload_value_mantissa;
+ wire [8:0] shortPip_output_m2sPipe_payload_value_exponent;
+ wire shortPip_output_m2sPipe_payload_value_sign;
+ wire shortPip_output_m2sPipe_payload_value_special;
+ wire shortPip_output_m2sPipe_payload_scrap;
+ wire [2:0] shortPip_output_m2sPipe_payload_roundMode;
+ wire shortPip_output_m2sPipe_payload_NV;
+ wire shortPip_output_m2sPipe_payload_DZ;
+ reg shortPip_output_rValid;
+ reg [4:0] shortPip_output_rData_rd;
+ reg [23:0] shortPip_output_rData_value_mantissa;
+ reg [8:0] shortPip_output_rData_value_exponent;
+ reg shortPip_output_rData_value_sign;
+ reg shortPip_output_rData_value_special;
+ reg shortPip_output_rData_scrap;
+ reg [2:0] shortPip_output_rData_roundMode;
+ reg shortPip_output_rData_NV;
+ reg shortPip_output_rData_DZ;
+ wire when_Stream_l369_17;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_valid;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_ready;
+ wire [4:0] FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_rd;
+ wire [23:0] FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_mantissa;
+ wire [8:0] FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_exponent;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_sign;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_special;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_scrap;
+ wire [2:0] FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_NV;
+ wire FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_DZ;
+ wire merge_arbitrated_valid;
+ wire [4:0] merge_arbitrated_payload_rd;
+ wire [23:0] merge_arbitrated_payload_value_mantissa;
+ wire [8:0] merge_arbitrated_payload_value_exponent;
+ wire merge_arbitrated_payload_value_sign;
+ wire merge_arbitrated_payload_value_special;
+ wire merge_arbitrated_payload_scrap;
+ wire [2:0] merge_arbitrated_payload_roundMode;
+ wire merge_arbitrated_payload_NV;
+ wire merge_arbitrated_payload_DZ;
+ reg roundFront_input_valid;
+ reg [4:0] roundFront_input_payload_rd;
+ reg [23:0] roundFront_input_payload_value_mantissa;
+ reg [8:0] roundFront_input_payload_value_exponent;
+ reg roundFront_input_payload_value_sign;
+ reg roundFront_input_payload_value_special;
+ reg roundFront_input_payload_scrap;
+ reg [2:0] roundFront_input_payload_roundMode;
+ reg roundFront_input_payload_NV;
+ reg roundFront_input_payload_DZ;
+ wire roundFront_output_valid;
+ wire [4:0] roundFront_output_payload_rd;
+ wire [23:0] roundFront_output_payload_value_mantissa;
+ wire [8:0] roundFront_output_payload_value_exponent;
+ wire roundFront_output_payload_value_sign;
+ wire roundFront_output_payload_value_special;
+ wire roundFront_output_payload_scrap;
+ wire [2:0] roundFront_output_payload_roundMode;
+ wire roundFront_output_payload_NV;
+ wire roundFront_output_payload_DZ;
+ wire roundFront_output_payload_mantissaIncrement;
+ wire [1:0] roundFront_output_payload_roundAdjusted;
+ wire [24:0] roundFront_output_payload_exactMask;
+ wire [24:0] roundFront_manAggregate;
+ wire [7:0] roundFront_expBase;
+ wire [9:0] roundFront_expDif;
+ wire roundFront_expSubnormal;
+ wire [9:0] roundFront_discardCount;
+ wire [4:0] roundFront_discardCountTrunk;
+ reg [24:0] roundFront_exactMask;
+ reg [1:0] roundFront_roundAdjusted;
+ reg roundFront_rneBit;
+ wire when_FpuCore_l1559;
+ reg _zz_roundFront_mantissaIncrement;
+ wire roundFront_mantissaIncrement;
+ reg roundBack_input_valid;
+ reg [4:0] roundBack_input_payload_rd;
+ reg [23:0] roundBack_input_payload_value_mantissa;
+ reg [8:0] roundBack_input_payload_value_exponent;
+ reg roundBack_input_payload_value_sign;
+ reg roundBack_input_payload_value_special;
+ reg roundBack_input_payload_scrap;
+ reg [2:0] roundBack_input_payload_roundMode;
+ reg roundBack_input_payload_NV;
+ reg roundBack_input_payload_DZ;
+ reg roundBack_input_payload_mantissaIncrement;
+ reg [1:0] roundBack_input_payload_roundAdjusted;
+ reg [24:0] roundBack_input_payload_exactMask;
+ wire roundBack_output_valid;
+ wire [4:0] roundBack_output_payload_rd;
+ wire [22:0] roundBack_output_payload_value_mantissa;
+ wire [8:0] roundBack_output_payload_value_exponent;
+ wire roundBack_output_payload_value_sign;
+ wire roundBack_output_payload_value_special;
+ wire roundBack_output_payload_NV;
+ wire roundBack_output_payload_NX;
+ wire roundBack_output_payload_OF;
+ wire roundBack_output_payload_UF;
+ wire roundBack_output_payload_DZ;
+ wire roundBack_output_payload_write;
+ wire [22:0] roundBack_math_mantissa;
+ wire [8:0] roundBack_math_exponent;
+ wire roundBack_math_sign;
+ wire roundBack_math_special;
+ wire [22:0] roundBack_adderMantissa;
+ (* keep , syn_keep *) wire [22:0] roundBack_adderRightOp /* synthesis syn_keep = 1 */ ;
+ (* keep , syn_keep *) wire [31:0] _zz_roundBack_adder /* synthesis syn_keep = 1 */ ;
+ (* keep , syn_keep *) wire [0:0] _zz_roundBack_adder_1 /* synthesis syn_keep = 1 */ ;
+ (* keep , syn_keep *) wire [31:0] roundBack_adder /* synthesis syn_keep = 1 */ ;
+ wire [31:0] roundBack_masked;
+ reg [22:0] roundBack_patched_mantissa;
+ reg [8:0] roundBack_patched_exponent;
+ wire roundBack_patched_sign;
+ reg roundBack_patched_special;
+ reg roundBack_nx;
+ reg roundBack_of;
+ reg roundBack_uf;
+ wire [7:0] roundBack_ufSubnormalThreshold;
+ wire [6:0] roundBack_ufThreshold;
+ wire [8:0] roundBack_ofThreshold;
+ reg [2:0] roundBack_threshold;
+ wire [2:0] roundBack_borringRound;
+ wire roundBack_borringCase;
+ wire when_FpuCore_l1616;
+ wire when_FpuCore_l1619;
+ reg when_FpuCore_l1629;
+ wire when_FpuCore_l1638;
+ reg when_FpuCore_l1648;
+ wire when_FpuCore_l1657;
+ wire roundBack_writes_0;
+ wire roundBack_write;
+ reg writeback_input_valid;
+ reg [4:0] writeback_input_payload_rd;
+ reg [22:0] writeback_input_payload_value_mantissa;
+ reg [8:0] writeback_input_payload_value_exponent;
+ reg writeback_input_payload_value_sign;
+ reg writeback_input_payload_value_special;
+ reg writeback_input_payload_NV;
+ reg writeback_input_payload_NX;
+ reg writeback_input_payload_OF;
+ reg writeback_input_payload_UF;
+ reg writeback_input_payload_DZ;
+ reg writeback_input_payload_write;
+ wire when_FpuCore_l1689;
+ wire writeback_port_valid;
+ wire [4:0] writeback_port_payload_address;
+ wire [22:0] writeback_port_payload_data_value_mantissa;
+ wire [8:0] writeback_port_payload_data_value_exponent;
+ wire writeback_port_payload_data_value_sign;
+ wire writeback_port_payload_data_value_special;
+ `ifndef SYNTHESIS
+ reg [63:0] io_port_0_cmd_payload_opcode_string;
+ reg [47:0] io_port_0_cmd_payload_format_string;
+ reg [23:0] io_port_0_cmd_payload_roundMode_string;
+ reg [63:0] io_port_0_commit_payload_opcode_string;
+ reg [63:0] commitFork_load_0_payload_opcode_string;
+ reg [63:0] commitFork_commit_0_payload_opcode_string;
+ reg [63:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string;
+ reg [63:0] FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string;
+ reg [63:0] _zz_payload_opcode_string;
+ reg [63:0] _zz_commitLogic_0_input_payload_opcode_string;
+ reg [63:0] commitLogic_0_input_payload_opcode_string;
+ reg [63:0] scheduler_0_input_payload_opcode_string;
+ reg [47:0] scheduler_0_input_payload_format_string;
+ reg [23:0] scheduler_0_input_payload_roundMode_string;
+ reg [63:0] io_port_0_cmd_rData_opcode_string;
+ reg [47:0] io_port_0_cmd_rData_format_string;
+ reg [23:0] io_port_0_cmd_rData_roundMode_string;
+ reg [63:0] _zz_scheduler_0_input_payload_opcode_string;
+ reg [47:0] _zz_scheduler_0_input_payload_format_string;
+ reg [23:0] _zz_scheduler_0_input_payload_roundMode_string;
+ reg [63:0] scheduler_0_output_payload_opcode_string;
+ reg [47:0] scheduler_0_output_payload_format_string;
+ reg [23:0] scheduler_0_output_payload_roundMode_string;
+ reg [63:0] _zz_io_inputs_0_payload_opcode_string;
+ reg [47:0] _zz_io_inputs_0_payload_format_string;
+ reg [23:0] _zz_io_inputs_0_payload_roundMode_string;
+ reg [63:0] cmdArbiter_output_payload_opcode_string;
+ reg [23:0] cmdArbiter_output_payload_roundMode_string;
+ reg [63:0] read_s0_payload_opcode_string;
+ reg [23:0] read_s0_payload_roundMode_string;
+ reg [63:0] read_s1_payload_opcode_string;
+ reg [23:0] read_s1_payload_roundMode_string;
+ reg [63:0] read_s0_rData_opcode_string;
+ reg [23:0] read_s0_rData_roundMode_string;
+ reg [63:0] read_output_payload_opcode_string;
+ reg [23:0] read_output_payload_roundMode_string;
+ reg [63:0] decode_input_payload_opcode_string;
+ reg [23:0] decode_input_payload_roundMode_string;
+ reg [23:0] decode_load_payload_roundMode_string;
+ reg [63:0] decode_shortPip_payload_opcode_string;
+ reg [23:0] decode_shortPip_payload_roundMode_string;
+ reg [23:0] decode_divSqrt_payload_roundMode_string;
+ reg [23:0] decode_div_payload_roundMode_string;
+ reg [23:0] decode_sqrt_payload_roundMode_string;
+ reg [23:0] decode_mul_payload_roundMode_string;
+ reg [23:0] decode_divSqrtToMul_payload_roundMode_string;
+ reg [23:0] decode_add_payload_roundMode_string;
+ reg [23:0] decode_mulToAdd_payload_roundMode_string;
+ reg [23:0] decode_load_s2mPipe_payload_roundMode_string;
+ reg [23:0] decode_load_rData_roundMode_string;
+ reg [23:0] _zz_decode_load_s2mPipe_payload_roundMode_string;
+ reg [23:0] decode_load_s2mPipe_m2sPipe_payload_roundMode_string;
+ reg [23:0] decode_load_s2mPipe_rData_roundMode_string;
+ reg [23:0] load_s0_input_payload_roundMode_string;
+ reg [23:0] decode_load_s2mPipe_m2sPipe_rData_roundMode_string;
+ reg [63:0] load_s0_filtred_0_payload_opcode_string;
+ reg [23:0] load_s0_output_payload_roundMode_string;
+ reg [23:0] load_s1_input_payload_roundMode_string;
+ reg [23:0] load_s0_output_rData_roundMode_string;
+ reg [23:0] load_s1_output_payload_roundMode_string;
+ reg [63:0] shortPip_input_payload_opcode_string;
+ reg [23:0] shortPip_input_payload_roundMode_string;
+ reg [63:0] decode_shortPip_rData_opcode_string;
+ reg [23:0] decode_shortPip_rData_roundMode_string;
+ reg [23:0] shortPip_rfOutput_payload_roundMode_string;
+ reg [23:0] shortPip_output_payload_roundMode_string;
+ reg [23:0] mul_preMul_input_payload_roundMode_string;
+ reg [23:0] decode_mul_rData_roundMode_string;
+ reg [23:0] mul_preMul_output_payload_roundMode_string;
+ reg [23:0] mul_mul_input_payload_roundMode_string;
+ reg [23:0] mul_preMul_output_rData_roundMode_string;
+ reg [23:0] mul_mul_output_payload_roundMode_string;
+ reg [23:0] mul_sum1_input_payload_roundMode_string;
+ reg [23:0] mul_mul_output_rData_roundMode_string;
+ reg [23:0] mul_sum1_output_payload_roundMode_string;
+ reg [23:0] mul_sum2_input_payload_roundMode_string;
+ reg [23:0] mul_sum1_output_rData_roundMode_string;
+ reg [23:0] mul_sum2_output_payload_roundMode_string;
+ reg [23:0] mul_norm_input_payload_roundMode_string;
+ reg [23:0] mul_sum2_output_rData_roundMode_string;
+ reg [23:0] mul_result_output_payload_roundMode_string;
+ reg [23:0] mul_result_mulToAdd_payload_roundMode_string;
+ reg [23:0] mul_result_mulToAdd_m2sPipe_payload_roundMode_string;
+ reg [23:0] mul_result_mulToAdd_rData_roundMode_string;
+ reg [23:0] div_input_payload_roundMode_string;
+ reg [23:0] decode_div_rData_roundMode_string;
+ reg [23:0] div_output_payload_roundMode_string;
+ reg [23:0] sqrt_input_payload_roundMode_string;
+ reg [23:0] decode_sqrt_rData_roundMode_string;
+ reg [23:0] sqrt_output_payload_roundMode_string;
+ reg [23:0] add_preShifter_input_payload_roundMode_string;
+ reg [23:0] add_preShifter_output_payload_roundMode_string;
+ reg [23:0] add_shifter_input_payload_roundMode_string;
+ reg [23:0] add_preShifter_output_rData_roundMode_string;
+ reg [23:0] add_shifter_output_payload_roundMode_string;
+ reg [23:0] add_math_input_payload_roundMode_string;
+ reg [23:0] add_shifter_output_rData_roundMode_string;
+ reg [23:0] add_math_output_payload_roundMode_string;
+ reg [23:0] add_oh_input_payload_roundMode_string;
+ reg [23:0] add_math_output_rData_roundMode_string;
+ reg [23:0] add_oh_output_payload_roundMode_string;
+ reg [23:0] add_norm_input_payload_roundMode_string;
+ reg [23:0] add_oh_output_rData_roundMode_string;
+ reg [23:0] add_norm_output_payload_roundMode_string;
+ reg [23:0] add_result_input_payload_roundMode_string;
+ reg [23:0] add_result_output_payload_roundMode_string;
+ reg [23:0] load_s1_output_m2sPipe_payload_roundMode_string;
+ reg [23:0] load_s1_output_rData_roundMode_string;
+ reg [23:0] shortPip_output_m2sPipe_payload_roundMode_string;
+ reg [23:0] shortPip_output_rData_roundMode_string;
+ reg [23:0] FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string;
+ reg [23:0] merge_arbitrated_payload_roundMode_string;
+ reg [23:0] roundFront_input_payload_roundMode_string;
+ reg [23:0] roundFront_output_payload_roundMode_string;
+ reg [23:0] roundBack_input_payload_roundMode_string;
+ `endif
+
+ reg [33:0] rf_ram [0:31];
+ (* ram_style = "distributed" *) reg [0:0] rf_scoreboards_0_target [0:31];
+ (* ram_style = "distributed" *) reg [0:0] rf_scoreboards_0_hit [0:31];
+ (* ram_style = "distributed" *) reg [0:0] rf_scoreboards_0_writes [0:31];
+
+ assign _zz_commitLogic_0_pending_counter = (commitLogic_0_pending_counter + _zz_commitLogic_0_pending_counter_1);
+ assign _zz_commitLogic_0_pending_counter_2 = commitLogic_0_pending_inc;
+ assign _zz_commitLogic_0_pending_counter_1 = {3'd0, _zz_commitLogic_0_pending_counter_2};
+ assign _zz_commitLogic_0_pending_counter_4 = commitLogic_0_pending_dec;
+ assign _zz_commitLogic_0_pending_counter_3 = {3'd0, _zz_commitLogic_0_pending_counter_4};
+ assign _zz_commitLogic_0_add_counter = (commitLogic_0_add_counter + _zz_commitLogic_0_add_counter_1);
+ assign _zz_commitLogic_0_add_counter_2 = commitLogic_0_add_inc;
+ assign _zz_commitLogic_0_add_counter_1 = {3'd0, _zz_commitLogic_0_add_counter_2};
+ assign _zz_commitLogic_0_add_counter_4 = commitLogic_0_add_dec;
+ assign _zz_commitLogic_0_add_counter_3 = {3'd0, _zz_commitLogic_0_add_counter_4};
+ assign _zz_commitLogic_0_mul_counter = (commitLogic_0_mul_counter + _zz_commitLogic_0_mul_counter_1);
+ assign _zz_commitLogic_0_mul_counter_2 = commitLogic_0_mul_inc;
+ assign _zz_commitLogic_0_mul_counter_1 = {3'd0, _zz_commitLogic_0_mul_counter_2};
+ assign _zz_commitLogic_0_mul_counter_4 = commitLogic_0_mul_dec;
+ assign _zz_commitLogic_0_mul_counter_3 = {3'd0, _zz_commitLogic_0_mul_counter_4};
+ assign _zz_commitLogic_0_div_counter = (commitLogic_0_div_counter + _zz_commitLogic_0_div_counter_1);
+ assign _zz_commitLogic_0_div_counter_2 = commitLogic_0_div_inc;
+ assign _zz_commitLogic_0_div_counter_1 = {3'd0, _zz_commitLogic_0_div_counter_2};
+ assign _zz_commitLogic_0_div_counter_4 = commitLogic_0_div_dec;
+ assign _zz_commitLogic_0_div_counter_3 = {3'd0, _zz_commitLogic_0_div_counter_4};
+ assign _zz_commitLogic_0_sqrt_counter = (commitLogic_0_sqrt_counter + _zz_commitLogic_0_sqrt_counter_1);
+ assign _zz_commitLogic_0_sqrt_counter_2 = commitLogic_0_sqrt_inc;
+ assign _zz_commitLogic_0_sqrt_counter_1 = {3'd0, _zz_commitLogic_0_sqrt_counter_2};
+ assign _zz_commitLogic_0_sqrt_counter_4 = commitLogic_0_sqrt_dec;
+ assign _zz_commitLogic_0_sqrt_counter_3 = {3'd0, _zz_commitLogic_0_sqrt_counter_4};
+ assign _zz_commitLogic_0_short_counter = (commitLogic_0_short_counter + _zz_commitLogic_0_short_counter_1);
+ assign _zz_commitLogic_0_short_counter_2 = commitLogic_0_short_inc;
+ assign _zz_commitLogic_0_short_counter_1 = {3'd0, _zz_commitLogic_0_short_counter_2};
+ assign _zz_commitLogic_0_short_counter_4 = commitLogic_0_short_dec;
+ assign _zz_commitLogic_0_short_counter_3 = {3'd0, _zz_commitLogic_0_short_counter_4};
+ assign _zz_when = 1'b1;
+ assign _zz_load_s1_fsm_shift_input_1 = (load_s1_fsm_shift_input <<< 1'b1);
+ assign _zz_load_s1_fsm_shift_input_2 = (load_s1_fsm_shift_input_1 <<< 2'b10);
+ assign _zz_load_s1_fsm_shift_input_3 = (load_s1_fsm_shift_input_2 <<< 3'b100);
+ assign _zz_load_s1_fsm_shift_input_4 = (load_s1_fsm_shift_input_3 <<< 4'b1000);
+ assign _zz_load_s1_fsm_shift_input_5 = (load_s1_fsm_shift_input_4 <<< 5'h10);
+ assign _zz_load_s0_output_rData_value_3 = _zz_load_s0_output_rData_value_4;
+ assign _zz_load_s0_output_rData_value_2 = _zz_load_s0_output_rData_value_3[31:0];
+ assign _zz_load_s0_output_rData_value_4 = ({_zz_load_s0_output_rData_value_1,(_zz_load_s0_output_rData_value_1 ? (~ _zz_load_s0_output_rData_value) : _zz_load_s0_output_rData_value)} + _zz_load_s0_output_rData_value_5);
+ assign _zz_load_s0_output_rData_value_6 = _zz_load_s0_output_rData_value_1;
+ assign _zz_load_s0_output_rData_value_5 = {32'd0, _zz_load_s0_output_rData_value_6};
+ assign _zz__zz_load_s1_fsm_shift_by_1_1 = (_zz_load_s1_fsm_shift_by - 32'h00000001);
+ assign _zz_load_s1_recoded_exponent = (_zz_load_s1_recoded_exponent_1 + _zz_load_s1_recoded_exponent_2);
+ assign _zz_load_s1_recoded_exponent_1 = ({1'b0,load_s1_passThroughFloat_exponent} - {1'b0,load_s1_fsm_expOffset});
+ assign _zz_load_s1_recoded_exponent_2 = {1'd0, load_s1_recodedExpOffset};
+ assign _zz_load_s1_output_payload_value_exponent = {4'd0, load_s1_fsm_shift_by};
+ assign _zz_shortPip_f32_exp = (shortPip_input_payload_rs1_exponent - 9'h080);
+ assign _zz_shortPip_expInSubnormalRange = {1'd0, shortPip_expSubnormalThreshold};
+ assign _zz_shortPip_fsm_shift_input_1 = (shortPip_fsm_shift_input >>> 6'h20);
+ assign _zz_shortPip_fsm_shift_input_2 = (shortPip_fsm_shift_input_1 >>> 5'h10);
+ assign _zz_shortPip_fsm_shift_input_3 = (shortPip_fsm_shift_input_2 >>> 4'b1000);
+ assign _zz_shortPip_fsm_shift_input_4 = (shortPip_fsm_shift_input_3 >>> 3'b100);
+ assign _zz_shortPip_fsm_shift_input_5 = (shortPip_fsm_shift_input_4 >>> 2'b10);
+ assign _zz_shortPip_fsm_shift_input_6 = (shortPip_fsm_shift_input_5 >>> 1'b1);
+ assign _zz_shortPip_fsm_shift_by_2 = (((_zz_shortPip_fsm_shift_by < _zz_shortPip_fsm_shift_by_3) ? _zz_shortPip_fsm_shift_by : _zz_shortPip_fsm_shift_by_4) + 9'h000);
+ assign _zz_shortPip_fsm_shift_by_3 = {3'd0, _zz_shortPip_fsm_shift_by_1};
+ assign _zz_shortPip_fsm_shift_by_4 = {3'd0, _zz_shortPip_fsm_shift_by_1};
+ assign _zz_shortPip_fsm_shift_by_5 = (_zz_shortPip_fsm_shift_by_6 - shortPip_input_payload_rs1_exponent);
+ assign _zz_shortPip_fsm_shift_by_6 = {1'd0, shortPip_fsm_formatShiftOffset};
+ assign _zz_shortPip_f2i_result_1 = (shortPip_f2i_resign ^ shortPip_f2i_increment);
+ assign _zz_shortPip_f2i_result = {31'd0, _zz_shortPip_f2i_result_1};
+ assign _zz_mul_sum1_sum = {14'd0, mul_sum1_input_payload_muls_0};
+ assign _zz_mul_sum1_sum_2 = ({17'd0,mul_sum1_input_payload_muls_1} <<< 5'd17);
+ assign _zz_mul_sum1_sum_1 = {7'd0, _zz_mul_sum1_sum_2};
+ assign _zz_mul_sum2_sum = (_zz_mul_sum2_sum_1 + _zz_mul_sum2_sum_3);
+ assign _zz_mul_sum2_sum_2 = ({17'd0,mul_sum2_input_payload_muls2_0} <<< 5'd17);
+ assign _zz_mul_sum2_sum_1 = {7'd0, _zz_mul_sum2_sum_2};
+ assign _zz_mul_sum2_sum_3 = ({34'd0,mul_sum2_input_payload_muls2_1} <<< 6'd34);
+ assign _zz_mul_norm_exp_1 = mul_norm_needShift;
+ assign _zz_mul_norm_exp = {9'd0, _zz_mul_norm_exp_1};
+ assign _zz_mul_norm_forceUnderflow = {1'd0, mul_norm_underflowThreshold};
+ assign _zz_mul_norm_output_exponent = (mul_norm_exp - 10'h0ff);
+ assign _zz_div_exponent = (_zz_div_exponent_1 - _zz_div_exponent_3);
+ assign _zz_div_exponent_1 = (_zz_div_exponent_2 + 11'h4ff);
+ assign _zz_div_exponent_2 = {2'd0, div_input_payload_rs1_exponent};
+ assign _zz_div_exponent_3 = {2'd0, div_input_payload_rs2_exponent};
+ assign _zz_div_exponent_5 = div_needShift;
+ assign _zz_div_exponent_4 = {10'd0, _zz_div_exponent_5};
+ assign _zz_sqrt_exponent = (_zz_sqrt_exponent_1 + {1'b0,_zz_sqrt_exponent_3});
+ assign _zz_sqrt_exponent_2 = {1'b0,7'h7f};
+ assign _zz_sqrt_exponent_1 = {1'd0, _zz_sqrt_exponent_2};
+ assign _zz_sqrt_exponent_3 = (sqrt_input_payload_rs1_exponent >>> 1'd1);
+ assign _zz_sqrt_exponent_5 = sqrt_input_payload_rs1_exponent[0];
+ assign _zz_sqrt_exponent_4 = {8'd0, _zz_sqrt_exponent_5};
+ assign _zz_add_shifter_shiftBy_1 = (_zz_add_shifter_shiftBy[9] ? _zz_add_shifter_shiftBy_2 : _zz_add_shifter_shiftBy);
+ assign _zz_add_shifter_shiftBy_2 = (~ _zz_add_shifter_shiftBy);
+ assign _zz_add_shifter_shiftBy_4 = _zz_add_shifter_shiftBy[9];
+ assign _zz_add_shifter_shiftBy_3 = {9'd0, _zz_add_shifter_shiftBy_4};
+ assign _zz_add_shifter_yMantissa_1 = (add_shifter_yMantissa >>> 5'h10);
+ assign _zz_add_shifter_yMantissa_2 = (add_shifter_yMantissa_1 >>> 4'b1000);
+ assign _zz_add_shifter_yMantissa_3 = (add_shifter_yMantissa_2 >>> 3'b100);
+ assign _zz_add_shifter_yMantissa_4 = (add_shifter_yMantissa_3 >>> 2'b10);
+ assign _zz_add_shifter_yMantissa_5 = (add_shifter_yMantissa_4 >>> 1'b1);
+ assign _zz_add_math_xSigned = ({add_math_input_payload_xSign,(add_math_input_payload_xSign ? (~ add_math_input_payload_xMantissa) : add_math_input_payload_xMantissa)} + _zz_add_math_xSigned_1);
+ assign _zz_add_math_xSigned_2 = add_math_input_payload_xSign;
+ assign _zz_add_math_xSigned_1 = {26'd0, _zz_add_math_xSigned_2};
+ assign _zz_add_math_ySigned = ({add_math_input_payload_ySign,(add_math_input_payload_ySign ? (~ add_math_input_payload_yMantissa) : add_math_input_payload_yMantissa)} + _zz_add_math_ySigned_1);
+ assign _zz_add_math_ySigned_2 = (add_math_input_payload_ySign && (! add_math_input_payload_roundingScrap));
+ assign _zz_add_math_ySigned_1 = {26'd0, _zz_add_math_ySigned_2};
+ assign _zz_add_math_output_payload_xyMantissa = _zz_add_math_output_payload_xyMantissa_1;
+ assign _zz_add_math_output_payload_xyMantissa_1 = ($signed(_zz_add_math_output_payload_xyMantissa_2) + $signed(_zz_add_math_output_payload_xyMantissa_3));
+ assign _zz_add_math_output_payload_xyMantissa_2 = {add_math_xSigned[26],add_math_xSigned};
+ assign _zz_add_math_output_payload_xyMantissa_3 = {add_math_ySigned[26],add_math_ySigned};
+ assign _zz__zz_add_oh_shift_1_1 = (_zz_add_oh_shift - 27'h0000001);
+ assign _zz_add_norm_output_payload_exponent = ({1'b0,add_norm_input_payload_xyExponent} - _zz_add_norm_output_payload_exponent_1);
+ assign _zz_add_norm_output_payload_exponent_2 = {1'b0,add_norm_input_payload_shift};
+ assign _zz_add_norm_output_payload_exponent_1 = {4'd0, _zz_add_norm_output_payload_exponent_2};
+ assign _zz_add_result_output_payload_value_mantissa = (add_result_input_payload_mantissa >>> 2'd2);
+ assign _zz_roundFront_expDif_1 = {1'b0,roundFront_expBase};
+ assign _zz_roundFront_expDif = {1'd0, _zz_roundFront_expDif_1};
+ assign _zz_roundFront_roundAdjusted = {1'b1,_zz_roundFront_roundAdjusted_1};
+ assign _zz_roundFront_roundAdjusted_1 = (roundFront_manAggregate >>> 1'd1);
+ assign _zz_roundFront_rneBit = {2'b01,_zz_roundFront_rneBit_1};
+ assign _zz_roundFront_rneBit_1 = (roundFront_manAggregate >>> 2'd2);
+ assign _zz_roundBack_adderMantissa = (roundBack_input_payload_exactMask[23 : 0] >>> 1'd1);
+ assign _zz_roundBack_adderRightOp = (roundBack_input_payload_mantissaIncrement ? _zz_roundBack_adderRightOp_1 : 24'h000000);
+ assign _zz_roundBack_adderRightOp_1 = (roundBack_input_payload_exactMask >>> 1'd1);
+ assign _zz_roundBack_adder_2 = (_zz_roundBack_adder + _zz_roundBack_adder_3);
+ assign _zz_roundBack_adder_3 = {9'd0, roundBack_adderRightOp};
+ assign _zz_roundBack_adder_4 = {31'd0, _zz_roundBack_adder_1};
+ assign _zz_roundBack_masked_1 = _zz_roundBack_masked_2[22:0];
+ assign _zz_roundBack_masked = {9'd0, _zz_roundBack_masked_1};
+ assign _zz_roundBack_masked_2 = (roundBack_input_payload_exactMask >>> 1'd1);
+ assign _zz_roundBack_borringCase = {1'd0, roundBack_ufSubnormalThreshold};
+ assign _zz_when_FpuCore_l1616 = {1'd0, roundBack_ufSubnormalThreshold};
+ assign _zz_when_FpuCore_l1638 = {2'd0, roundBack_ufThreshold};
+ assign _zz_rf_ram_port = {writeback_port_payload_data_value_special,{writeback_port_payload_data_value_sign,{writeback_port_payload_data_value_exponent,writeback_port_payload_data_value_mantissa}}};
+ assign _zz_rf_scoreboards_0_target_port = rf_scoreboards_0_targetWrite_payload_data;
+ assign _zz_rf_scoreboards_0_hit_port = rf_scoreboards_0_hitWrite_payload_data;
+ assign _zz_rf_scoreboards_0_writes_port = commitLogic_0_input_payload_write;
+ assign _zz_decode_shortPipHit = FpuOpcode_MIN_MAX;
+ assign _zz_decode_shortPipHit_1 = (decode_input_payload_opcode == FpuOpcode_CMP);
+ assign _zz_decode_shortPipHit_2 = (decode_input_payload_opcode == FpuOpcode_F2I);
+ assign _zz_decode_shortPipHit_3 = (decode_input_payload_opcode == FpuOpcode_STORE);
+ assign _zz__zz_load_s1_fsm_shift_by = load_s1_fsm_ohInput[7];
+ assign _zz__zz_load_s1_fsm_shift_by_1 = load_s1_fsm_ohInput[8];
+ assign _zz__zz_load_s1_fsm_shift_by_2 = {load_s1_fsm_ohInput[9],{load_s1_fsm_ohInput[10],{load_s1_fsm_ohInput[11],{load_s1_fsm_ohInput[12],{load_s1_fsm_ohInput[13],{load_s1_fsm_ohInput[14],{load_s1_fsm_ohInput[15],{load_s1_fsm_ohInput[16],{load_s1_fsm_ohInput[17],{_zz__zz_load_s1_fsm_shift_by_3,{_zz__zz_load_s1_fsm_shift_by_4,_zz__zz_load_s1_fsm_shift_by_5}}}}}}}}}}};
+ assign _zz__zz_load_s1_fsm_shift_by_3 = load_s1_fsm_ohInput[18];
+ assign _zz__zz_load_s1_fsm_shift_by_4 = load_s1_fsm_ohInput[19];
+ assign _zz__zz_load_s1_fsm_shift_by_5 = {load_s1_fsm_ohInput[20],{load_s1_fsm_ohInput[21],{load_s1_fsm_ohInput[22],{load_s1_fsm_ohInput[23],{load_s1_fsm_ohInput[24],{load_s1_fsm_ohInput[25],{load_s1_fsm_ohInput[26],{load_s1_fsm_ohInput[27],{load_s1_fsm_ohInput[28],{_zz__zz_load_s1_fsm_shift_by_6,{_zz__zz_load_s1_fsm_shift_by_7,_zz__zz_load_s1_fsm_shift_by_8}}}}}}}}}}};
+ assign _zz__zz_load_s1_fsm_shift_by_6 = load_s1_fsm_ohInput[29];
+ assign _zz__zz_load_s1_fsm_shift_by_7 = load_s1_fsm_ohInput[30];
+ assign _zz__zz_load_s1_fsm_shift_by_8 = load_s1_fsm_ohInput[31];
+ assign _zz_shortPip_f2i_underflow = shortPip_f2i_unsigned[30 : 0];
+ assign _zz_shortPip_f2i_underflow_1 = 31'h00000000;
+ assign _zz__zz_add_oh_shift = add_oh_output_payload_xyMantissa[7];
+ assign _zz__zz_add_oh_shift_1 = add_oh_output_payload_xyMantissa[8];
+ assign _zz__zz_add_oh_shift_2 = {add_oh_output_payload_xyMantissa[9],{add_oh_output_payload_xyMantissa[10],{add_oh_output_payload_xyMantissa[11],{add_oh_output_payload_xyMantissa[12],{add_oh_output_payload_xyMantissa[13],{add_oh_output_payload_xyMantissa[14],{add_oh_output_payload_xyMantissa[15],{add_oh_output_payload_xyMantissa[16],{add_oh_output_payload_xyMantissa[17],{_zz__zz_add_oh_shift_3,{_zz__zz_add_oh_shift_4,_zz__zz_add_oh_shift_5}}}}}}}}}}};
+ assign _zz__zz_add_oh_shift_3 = add_oh_output_payload_xyMantissa[18];
+ assign _zz__zz_add_oh_shift_4 = add_oh_output_payload_xyMantissa[19];
+ assign _zz__zz_add_oh_shift_5 = {add_oh_output_payload_xyMantissa[20],{add_oh_output_payload_xyMantissa[21],{add_oh_output_payload_xyMantissa[22],{add_oh_output_payload_xyMantissa[23],{add_oh_output_payload_xyMantissa[24],{add_oh_output_payload_xyMantissa[25],add_oh_output_payload_xyMantissa[26]}}}}}};
+ assign _zz_roundFront_exactMask = 5'h13;
+ assign _zz_roundFront_exactMask_1 = (5'h12 < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_2 = (5'h11 < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_3 = {(5'h10 < roundFront_discardCountTrunk),{(5'h0f < roundFront_discardCountTrunk),{(5'h0e < roundFront_discardCountTrunk),{(5'h0d < roundFront_discardCountTrunk),{(5'h0c < roundFront_discardCountTrunk),{(_zz_roundFront_exactMask_4 < roundFront_discardCountTrunk),{_zz_roundFront_exactMask_5,{_zz_roundFront_exactMask_6,_zz_roundFront_exactMask_7}}}}}}}};
+ assign _zz_roundFront_exactMask_4 = 5'h0b;
+ assign _zz_roundFront_exactMask_5 = (5'h0a < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_6 = (5'h09 < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_7 = {(5'h08 < roundFront_discardCountTrunk),{(5'h07 < roundFront_discardCountTrunk),{(5'h06 < roundFront_discardCountTrunk),{(5'h05 < roundFront_discardCountTrunk),{(5'h04 < roundFront_discardCountTrunk),{(_zz_roundFront_exactMask_8 < roundFront_discardCountTrunk),{_zz_roundFront_exactMask_9,{_zz_roundFront_exactMask_10,_zz_roundFront_exactMask_11}}}}}}}};
+ assign _zz_roundFront_exactMask_8 = 5'h03;
+ assign _zz_roundFront_exactMask_9 = (5'h02 < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_10 = (5'h01 < roundFront_discardCountTrunk);
+ assign _zz_roundFront_exactMask_11 = {(5'h00 < roundFront_discardCountTrunk),1'b1};
+ always @(posedge clk) begin
+ if(_zz_read_rs_0_value_mantissa_1) begin
+ _zz_rf_ram_port0 <= rf_ram[_zz_read_rs_0_value_mantissa];
+ end
+ end
+
+ always @(posedge clk) begin
+ if(_zz_read_rs_1_value_mantissa_1) begin
+ _zz_rf_ram_port1 <= rf_ram[_zz_read_rs_1_value_mantissa];
+ end
+ end
+
+ always @(posedge clk) begin
+ if(_zz_read_rs_2_value_mantissa_1) begin
+ _zz_rf_ram_port2 <= rf_ram[_zz_read_rs_2_value_mantissa];
+ end
+ end
+
+ always @(posedge clk) begin
+ if(_zz_1) begin
+ rf_ram[writeback_port_payload_address] <= _zz_rf_ram_port;
+ end
+ end
+
+ always @(posedge clk) begin
+ if(_zz_4) begin
+ rf_scoreboards_0_target[rf_scoreboards_0_targetWrite_payload_address] <= _zz_rf_scoreboards_0_target_port;
+ end
+ end
+
+ assign _zz_rf_scoreboards_0_target_port1 = rf_scoreboards_0_target[scheduler_0_input_payload_rs1];
+ assign _zz_rf_scoreboards_0_target_port2 = rf_scoreboards_0_target[scheduler_0_input_payload_rs2];
+ assign _zz_rf_scoreboards_0_target_port3 = rf_scoreboards_0_target[scheduler_0_input_payload_rs3];
+ assign _zz_rf_scoreboards_0_target_port4 = rf_scoreboards_0_target[scheduler_0_input_payload_rd];
+ always @(posedge clk) begin
+ if(_zz_3) begin
+ rf_scoreboards_0_hit[rf_scoreboards_0_hitWrite_payload_address] <= _zz_rf_scoreboards_0_hit_port;
+ end
+ end
+
+ assign _zz_rf_scoreboards_0_hit_port1 = rf_scoreboards_0_hit[scheduler_0_input_payload_rs1];
+ assign _zz_rf_scoreboards_0_hit_port2 = rf_scoreboards_0_hit[scheduler_0_input_payload_rs2];
+ assign _zz_rf_scoreboards_0_hit_port3 = rf_scoreboards_0_hit[scheduler_0_input_payload_rs3];
+ assign _zz_rf_scoreboards_0_hit_port4 = rf_scoreboards_0_hit[scheduler_0_input_payload_rd];
+ assign _zz_rf_scoreboards_0_hit_port5 = rf_scoreboards_0_hit[writeback_input_payload_rd];
+ always @(posedge clk) begin
+ if(_zz_2) begin
+ rf_scoreboards_0_writes[commitLogic_0_input_payload_rd] <= _zz_rf_scoreboards_0_writes_port;
+ end
+ end
+
+ assign _zz_rf_scoreboards_0_writes_port1 = rf_scoreboards_0_writes[roundBack_input_payload_rd];
+ StreamFork streamFork_1 (
+ .io_input_valid (io_port_0_commit_valid ), //i
+ .io_input_ready (streamFork_1_io_input_ready ), //o
+ .io_input_payload_opcode (io_port_0_commit_payload_opcode[3:0] ), //i
+ .io_input_payload_rd (io_port_0_commit_payload_rd[4:0] ), //i
+ .io_input_payload_write (io_port_0_commit_payload_write ), //i
+ .io_input_payload_value (io_port_0_commit_payload_value[31:0] ), //i
+ .io_outputs_0_valid (streamFork_1_io_outputs_0_valid ), //o
+ .io_outputs_0_ready (commitFork_load_0_ready ), //i
+ .io_outputs_0_payload_opcode (streamFork_1_io_outputs_0_payload_opcode[3:0] ), //o
+ .io_outputs_0_payload_rd (streamFork_1_io_outputs_0_payload_rd[4:0] ), //o
+ .io_outputs_0_payload_write (streamFork_1_io_outputs_0_payload_write ), //o
+ .io_outputs_0_payload_value (streamFork_1_io_outputs_0_payload_value[31:0] ), //o
+ .io_outputs_1_valid (streamFork_1_io_outputs_1_valid ), //o
+ .io_outputs_1_ready (FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN), //i
+ .io_outputs_1_payload_opcode (streamFork_1_io_outputs_1_payload_opcode[3:0] ), //o
+ .io_outputs_1_payload_rd (streamFork_1_io_outputs_1_payload_rd[4:0] ), //o
+ .io_outputs_1_payload_write (streamFork_1_io_outputs_1_payload_write ), //o
+ .io_outputs_1_payload_value (streamFork_1_io_outputs_1_payload_value[31:0] ) //o
+ );
+ StreamArbiter cmdArbiter_arbiter (
+ .io_inputs_0_valid (scheduler_0_output_valid ), //i
+ .io_inputs_0_ready (cmdArbiter_arbiter_io_inputs_0_ready ), //o
+ .io_inputs_0_payload_opcode (_zz_io_inputs_0_payload_opcode[3:0] ), //i
+ .io_inputs_0_payload_arg (scheduler_0_output_payload_arg[1:0] ), //i
+ .io_inputs_0_payload_rs1 (scheduler_0_output_payload_rs1[4:0] ), //i
+ .io_inputs_0_payload_rs2 (scheduler_0_output_payload_rs2[4:0] ), //i
+ .io_inputs_0_payload_rs3 (scheduler_0_output_payload_rs3[4:0] ), //i
+ .io_inputs_0_payload_rd (scheduler_0_output_payload_rd[4:0] ), //i
+ .io_inputs_0_payload_format (_zz_io_inputs_0_payload_format ), //i
+ .io_inputs_0_payload_roundMode (_zz_io_inputs_0_payload_roundMode[2:0] ), //i
+ .io_output_valid (cmdArbiter_arbiter_io_output_valid ), //o
+ .io_output_ready (cmdArbiter_output_ready ), //i
+ .io_output_payload_opcode (cmdArbiter_arbiter_io_output_payload_opcode[3:0] ), //o
+ .io_output_payload_arg (cmdArbiter_arbiter_io_output_payload_arg[1:0] ), //o
+ .io_output_payload_rs1 (cmdArbiter_arbiter_io_output_payload_rs1[4:0] ), //o
+ .io_output_payload_rs2 (cmdArbiter_arbiter_io_output_payload_rs2[4:0] ), //o
+ .io_output_payload_rs3 (cmdArbiter_arbiter_io_output_payload_rs3[4:0] ), //o
+ .io_output_payload_rd (cmdArbiter_arbiter_io_output_payload_rd[4:0] ), //o
+ .io_output_payload_format (cmdArbiter_arbiter_io_output_payload_format ), //o
+ .io_output_payload_roundMode (cmdArbiter_arbiter_io_output_payload_roundMode[2:0]), //o
+ .io_chosenOH (cmdArbiter_arbiter_io_chosenOH ), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ FpuDiv div_divider (
+ .io_input_valid (div_divider_io_input_valid ), //i
+ .io_input_ready (div_divider_io_input_ready ), //o
+ .io_input_payload_a (div_divider_io_input_payload_a[23:0] ), //i
+ .io_input_payload_b (div_divider_io_input_payload_b[23:0] ), //i
+ .io_output_valid (div_divider_io_output_valid ), //o
+ .io_output_ready (div_input_ready ), //i
+ .io_output_payload_result (div_divider_io_output_payload_result[26:0]), //o
+ .io_output_payload_remain (div_divider_io_output_payload_remain[24:0]), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ FpuSqrt sqrt_sqrt (
+ .io_input_valid (sqrt_sqrt_io_input_valid ), //i
+ .io_input_ready (sqrt_sqrt_io_input_ready ), //o
+ .io_input_payload_a (sqrt_sqrt_io_input_payload_a[24:0] ), //i
+ .io_output_valid (sqrt_sqrt_io_output_valid ), //o
+ .io_output_ready (sqrt_input_ready ), //i
+ .io_output_payload_result (sqrt_sqrt_io_output_payload_result[23:0]), //o
+ .io_output_payload_remain (sqrt_sqrt_io_output_payload_remain[27:0]), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ StreamArbiter_1 streamArbiter_2 (
+ .io_inputs_0_valid (load_s1_output_m2sPipe_valid ), //i
+ .io_inputs_0_ready (streamArbiter_2_io_inputs_0_ready ), //o
+ .io_inputs_0_payload_rd (load_s1_output_m2sPipe_payload_rd[4:0] ), //i
+ .io_inputs_0_payload_value_mantissa (load_s1_output_m2sPipe_payload_value_mantissa[23:0] ), //i
+ .io_inputs_0_payload_value_exponent (load_s1_output_m2sPipe_payload_value_exponent[8:0] ), //i
+ .io_inputs_0_payload_value_sign (load_s1_output_m2sPipe_payload_value_sign ), //i
+ .io_inputs_0_payload_value_special (load_s1_output_m2sPipe_payload_value_special ), //i
+ .io_inputs_0_payload_scrap (load_s1_output_m2sPipe_payload_scrap ), //i
+ .io_inputs_0_payload_roundMode (load_s1_output_m2sPipe_payload_roundMode[2:0] ), //i
+ .io_inputs_0_payload_NV (load_s1_output_m2sPipe_payload_NV ), //i
+ .io_inputs_0_payload_DZ (load_s1_output_m2sPipe_payload_DZ ), //i
+ .io_inputs_1_valid (sqrt_output_valid ), //i
+ .io_inputs_1_ready (streamArbiter_2_io_inputs_1_ready ), //o
+ .io_inputs_1_payload_rd (sqrt_output_payload_rd[4:0] ), //i
+ .io_inputs_1_payload_value_mantissa (sqrt_output_payload_value_mantissa[23:0] ), //i
+ .io_inputs_1_payload_value_exponent (sqrt_output_payload_value_exponent[8:0] ), //i
+ .io_inputs_1_payload_value_sign (sqrt_output_payload_value_sign ), //i
+ .io_inputs_1_payload_value_special (sqrt_output_payload_value_special ), //i
+ .io_inputs_1_payload_scrap (sqrt_output_payload_scrap ), //i
+ .io_inputs_1_payload_roundMode (sqrt_output_payload_roundMode[2:0] ), //i
+ .io_inputs_1_payload_NV (sqrt_output_payload_NV ), //i
+ .io_inputs_1_payload_DZ (sqrt_output_payload_DZ ), //i
+ .io_inputs_2_valid (div_output_valid ), //i
+ .io_inputs_2_ready (streamArbiter_2_io_inputs_2_ready ), //o
+ .io_inputs_2_payload_rd (div_output_payload_rd[4:0] ), //i
+ .io_inputs_2_payload_value_mantissa (div_output_payload_value_mantissa[23:0] ), //i
+ .io_inputs_2_payload_value_exponent (div_output_payload_value_exponent[8:0] ), //i
+ .io_inputs_2_payload_value_sign (div_output_payload_value_sign ), //i
+ .io_inputs_2_payload_value_special (div_output_payload_value_special ), //i
+ .io_inputs_2_payload_scrap (div_output_payload_scrap ), //i
+ .io_inputs_2_payload_roundMode (div_output_payload_roundMode[2:0] ), //i
+ .io_inputs_2_payload_NV (div_output_payload_NV ), //i
+ .io_inputs_2_payload_DZ (div_output_payload_DZ ), //i
+ .io_inputs_3_valid (add_result_output_valid ), //i
+ .io_inputs_3_ready (streamArbiter_2_io_inputs_3_ready ), //o
+ .io_inputs_3_payload_rd (add_result_output_payload_rd[4:0] ), //i
+ .io_inputs_3_payload_value_mantissa (add_result_output_payload_value_mantissa[23:0] ), //i
+ .io_inputs_3_payload_value_exponent (add_result_output_payload_value_exponent[8:0] ), //i
+ .io_inputs_3_payload_value_sign (add_result_output_payload_value_sign ), //i
+ .io_inputs_3_payload_value_special (add_result_output_payload_value_special ), //i
+ .io_inputs_3_payload_scrap (add_result_output_payload_scrap ), //i
+ .io_inputs_3_payload_roundMode (add_result_output_payload_roundMode[2:0] ), //i
+ .io_inputs_3_payload_NV (add_result_output_payload_NV ), //i
+ .io_inputs_3_payload_DZ (add_result_output_payload_DZ ), //i
+ .io_inputs_4_valid (mul_result_output_valid ), //i
+ .io_inputs_4_ready (streamArbiter_2_io_inputs_4_ready ), //o
+ .io_inputs_4_payload_rd (mul_result_output_payload_rd[4:0] ), //i
+ .io_inputs_4_payload_value_mantissa (mul_result_output_payload_value_mantissa[23:0] ), //i
+ .io_inputs_4_payload_value_exponent (mul_result_output_payload_value_exponent[8:0] ), //i
+ .io_inputs_4_payload_value_sign (mul_result_output_payload_value_sign ), //i
+ .io_inputs_4_payload_value_special (mul_result_output_payload_value_special ), //i
+ .io_inputs_4_payload_scrap (mul_result_output_payload_scrap ), //i
+ .io_inputs_4_payload_roundMode (mul_result_output_payload_roundMode[2:0] ), //i
+ .io_inputs_4_payload_NV (mul_result_output_payload_NV ), //i
+ .io_inputs_4_payload_DZ (mul_result_output_payload_DZ ), //i
+ .io_inputs_5_valid (shortPip_output_m2sPipe_valid ), //i
+ .io_inputs_5_ready (streamArbiter_2_io_inputs_5_ready ), //o
+ .io_inputs_5_payload_rd (shortPip_output_m2sPipe_payload_rd[4:0] ), //i
+ .io_inputs_5_payload_value_mantissa (shortPip_output_m2sPipe_payload_value_mantissa[23:0] ), //i
+ .io_inputs_5_payload_value_exponent (shortPip_output_m2sPipe_payload_value_exponent[8:0] ), //i
+ .io_inputs_5_payload_value_sign (shortPip_output_m2sPipe_payload_value_sign ), //i
+ .io_inputs_5_payload_value_special (shortPip_output_m2sPipe_payload_value_special ), //i
+ .io_inputs_5_payload_scrap (shortPip_output_m2sPipe_payload_scrap ), //i
+ .io_inputs_5_payload_roundMode (shortPip_output_m2sPipe_payload_roundMode[2:0] ), //i
+ .io_inputs_5_payload_NV (shortPip_output_m2sPipe_payload_NV ), //i
+ .io_inputs_5_payload_DZ (shortPip_output_m2sPipe_payload_DZ ), //i
+ .io_output_valid (streamArbiter_2_io_output_valid ), //o
+ .io_output_ready (FpuPlugin_fpu_streamArbiter_2_io_output_combStage_ready), //i
+ .io_output_payload_rd (streamArbiter_2_io_output_payload_rd[4:0] ), //o
+ .io_output_payload_value_mantissa (streamArbiter_2_io_output_payload_value_mantissa[23:0] ), //o
+ .io_output_payload_value_exponent (streamArbiter_2_io_output_payload_value_exponent[8:0] ), //o
+ .io_output_payload_value_sign (streamArbiter_2_io_output_payload_value_sign ), //o
+ .io_output_payload_value_special (streamArbiter_2_io_output_payload_value_special ), //o
+ .io_output_payload_scrap (streamArbiter_2_io_output_payload_scrap ), //o
+ .io_output_payload_roundMode (streamArbiter_2_io_output_payload_roundMode[2:0] ), //o
+ .io_output_payload_NV (streamArbiter_2_io_output_payload_NV ), //o
+ .io_output_payload_DZ (streamArbiter_2_io_output_payload_DZ ), //o
+ .io_chosen (streamArbiter_2_io_chosen[2:0] ), //o
+ .io_chosenOH (streamArbiter_2_io_chosenOH[5:0] ), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(io_port_0_cmd_payload_opcode)
+ FpuOpcode_LOAD : io_port_0_cmd_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_port_0_cmd_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_port_0_cmd_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_port_0_cmd_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_port_0_cmd_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_port_0_cmd_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_port_0_cmd_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_port_0_cmd_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_port_0_cmd_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_port_0_cmd_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_port_0_cmd_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_port_0_cmd_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_port_0_cmd_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_port_0_cmd_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_port_0_cmd_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_port_0_cmd_payload_opcode_string = "FCVT_X_X";
+ default : io_port_0_cmd_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_cmd_payload_format)
+ FpuFormat_FLOAT : io_port_0_cmd_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : io_port_0_cmd_payload_format_string = "DOUBLE";
+ default : io_port_0_cmd_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_cmd_payload_roundMode)
+ FpuRoundMode_RNE : io_port_0_cmd_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_port_0_cmd_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_port_0_cmd_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_port_0_cmd_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_port_0_cmd_payload_roundMode_string = "RMM";
+ default : io_port_0_cmd_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_commit_payload_opcode)
+ FpuOpcode_LOAD : io_port_0_commit_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_port_0_commit_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_port_0_commit_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_port_0_commit_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_port_0_commit_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_port_0_commit_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_port_0_commit_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_port_0_commit_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_port_0_commit_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_port_0_commit_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_port_0_commit_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_port_0_commit_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_port_0_commit_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_port_0_commit_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_port_0_commit_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_port_0_commit_payload_opcode_string = "FCVT_X_X";
+ default : io_port_0_commit_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(commitFork_load_0_payload_opcode)
+ FpuOpcode_LOAD : commitFork_load_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : commitFork_load_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : commitFork_load_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : commitFork_load_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : commitFork_load_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : commitFork_load_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : commitFork_load_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : commitFork_load_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : commitFork_load_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : commitFork_load_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : commitFork_load_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : commitFork_load_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : commitFork_load_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : commitFork_load_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : commitFork_load_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : commitFork_load_0_payload_opcode_string = "FCVT_X_X";
+ default : commitFork_load_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(commitFork_commit_0_payload_opcode)
+ FpuOpcode_LOAD : commitFork_commit_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : commitFork_commit_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : commitFork_commit_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : commitFork_commit_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : commitFork_commit_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : commitFork_commit_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : commitFork_commit_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : commitFork_commit_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : commitFork_commit_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : commitFork_commit_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : commitFork_commit_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : commitFork_commit_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : commitFork_commit_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : commitFork_commit_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : commitFork_commit_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : commitFork_commit_0_payload_opcode_string = "FCVT_X_X";
+ default : commitFork_commit_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode)
+ FpuOpcode_LOAD : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "FCVT_X_X";
+ default : FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode)
+ FpuOpcode_LOAD : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "LOAD ";
+ FpuOpcode_STORE : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "STORE ";
+ FpuOpcode_MUL : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "MUL ";
+ FpuOpcode_ADD : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "ADD ";
+ FpuOpcode_FMA : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "FMA ";
+ FpuOpcode_I2F : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "I2F ";
+ FpuOpcode_F2I : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "F2I ";
+ FpuOpcode_CMP : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "CMP ";
+ FpuOpcode_DIV : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "DIV ";
+ FpuOpcode_SQRT : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "FCVT_X_X";
+ default : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_payload_opcode)
+ FpuOpcode_LOAD : _zz_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_payload_opcode_string = "FCVT_X_X";
+ default : _zz_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_commitLogic_0_input_payload_opcode)
+ FpuOpcode_LOAD : _zz_commitLogic_0_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_commitLogic_0_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_commitLogic_0_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_commitLogic_0_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_commitLogic_0_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_commitLogic_0_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_commitLogic_0_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_commitLogic_0_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_commitLogic_0_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_commitLogic_0_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_commitLogic_0_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_commitLogic_0_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_commitLogic_0_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_commitLogic_0_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_commitLogic_0_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_commitLogic_0_input_payload_opcode_string = "FCVT_X_X";
+ default : _zz_commitLogic_0_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(commitLogic_0_input_payload_opcode)
+ FpuOpcode_LOAD : commitLogic_0_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : commitLogic_0_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : commitLogic_0_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : commitLogic_0_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : commitLogic_0_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : commitLogic_0_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : commitLogic_0_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : commitLogic_0_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : commitLogic_0_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : commitLogic_0_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : commitLogic_0_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : commitLogic_0_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : commitLogic_0_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : commitLogic_0_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : commitLogic_0_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : commitLogic_0_input_payload_opcode_string = "FCVT_X_X";
+ default : commitLogic_0_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : scheduler_0_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : scheduler_0_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : scheduler_0_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : scheduler_0_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : scheduler_0_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : scheduler_0_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : scheduler_0_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : scheduler_0_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : scheduler_0_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : scheduler_0_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : scheduler_0_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : scheduler_0_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : scheduler_0_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : scheduler_0_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : scheduler_0_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : scheduler_0_input_payload_opcode_string = "FCVT_X_X";
+ default : scheduler_0_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_input_payload_format)
+ FpuFormat_FLOAT : scheduler_0_input_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : scheduler_0_input_payload_format_string = "DOUBLE";
+ default : scheduler_0_input_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_input_payload_roundMode)
+ FpuRoundMode_RNE : scheduler_0_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : scheduler_0_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : scheduler_0_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : scheduler_0_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : scheduler_0_input_payload_roundMode_string = "RMM";
+ default : scheduler_0_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_cmd_rData_opcode)
+ FpuOpcode_LOAD : io_port_0_cmd_rData_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_port_0_cmd_rData_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_port_0_cmd_rData_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_port_0_cmd_rData_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_port_0_cmd_rData_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_port_0_cmd_rData_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_port_0_cmd_rData_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_port_0_cmd_rData_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_port_0_cmd_rData_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_port_0_cmd_rData_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_port_0_cmd_rData_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_port_0_cmd_rData_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_port_0_cmd_rData_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_port_0_cmd_rData_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_port_0_cmd_rData_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_port_0_cmd_rData_opcode_string = "FCVT_X_X";
+ default : io_port_0_cmd_rData_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_cmd_rData_format)
+ FpuFormat_FLOAT : io_port_0_cmd_rData_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : io_port_0_cmd_rData_format_string = "DOUBLE";
+ default : io_port_0_cmd_rData_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(io_port_0_cmd_rData_roundMode)
+ FpuRoundMode_RNE : io_port_0_cmd_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_port_0_cmd_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_port_0_cmd_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_port_0_cmd_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_port_0_cmd_rData_roundMode_string = "RMM";
+ default : io_port_0_cmd_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : _zz_scheduler_0_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_scheduler_0_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_scheduler_0_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_scheduler_0_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_scheduler_0_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_scheduler_0_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_scheduler_0_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_scheduler_0_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_scheduler_0_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_scheduler_0_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_scheduler_0_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_scheduler_0_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_scheduler_0_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_scheduler_0_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_scheduler_0_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_scheduler_0_input_payload_opcode_string = "FCVT_X_X";
+ default : _zz_scheduler_0_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_scheduler_0_input_payload_format)
+ FpuFormat_FLOAT : _zz_scheduler_0_input_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : _zz_scheduler_0_input_payload_format_string = "DOUBLE";
+ default : _zz_scheduler_0_input_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_scheduler_0_input_payload_roundMode)
+ FpuRoundMode_RNE : _zz_scheduler_0_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_scheduler_0_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_scheduler_0_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_scheduler_0_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_scheduler_0_input_payload_roundMode_string = "RMM";
+ default : _zz_scheduler_0_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_output_payload_opcode)
+ FpuOpcode_LOAD : scheduler_0_output_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : scheduler_0_output_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : scheduler_0_output_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : scheduler_0_output_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : scheduler_0_output_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : scheduler_0_output_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : scheduler_0_output_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : scheduler_0_output_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : scheduler_0_output_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : scheduler_0_output_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : scheduler_0_output_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : scheduler_0_output_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : scheduler_0_output_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : scheduler_0_output_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : scheduler_0_output_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : scheduler_0_output_payload_opcode_string = "FCVT_X_X";
+ default : scheduler_0_output_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_output_payload_format)
+ FpuFormat_FLOAT : scheduler_0_output_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : scheduler_0_output_payload_format_string = "DOUBLE";
+ default : scheduler_0_output_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(scheduler_0_output_payload_roundMode)
+ FpuRoundMode_RNE : scheduler_0_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : scheduler_0_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : scheduler_0_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : scheduler_0_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : scheduler_0_output_payload_roundMode_string = "RMM";
+ default : scheduler_0_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_inputs_0_payload_opcode)
+ FpuOpcode_LOAD : _zz_io_inputs_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_io_inputs_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_io_inputs_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_io_inputs_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_io_inputs_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_io_inputs_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_io_inputs_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_io_inputs_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_io_inputs_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_io_inputs_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_io_inputs_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_io_inputs_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_io_inputs_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_io_inputs_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_io_inputs_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_io_inputs_0_payload_opcode_string = "FCVT_X_X";
+ default : _zz_io_inputs_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_inputs_0_payload_format)
+ FpuFormat_FLOAT : _zz_io_inputs_0_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : _zz_io_inputs_0_payload_format_string = "DOUBLE";
+ default : _zz_io_inputs_0_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_inputs_0_payload_roundMode)
+ FpuRoundMode_RNE : _zz_io_inputs_0_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_io_inputs_0_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_io_inputs_0_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_io_inputs_0_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_io_inputs_0_payload_roundMode_string = "RMM";
+ default : _zz_io_inputs_0_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(cmdArbiter_output_payload_opcode)
+ FpuOpcode_LOAD : cmdArbiter_output_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : cmdArbiter_output_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : cmdArbiter_output_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : cmdArbiter_output_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : cmdArbiter_output_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : cmdArbiter_output_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : cmdArbiter_output_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : cmdArbiter_output_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : cmdArbiter_output_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : cmdArbiter_output_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : cmdArbiter_output_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : cmdArbiter_output_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : cmdArbiter_output_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : cmdArbiter_output_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : cmdArbiter_output_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : cmdArbiter_output_payload_opcode_string = "FCVT_X_X";
+ default : cmdArbiter_output_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(cmdArbiter_output_payload_roundMode)
+ FpuRoundMode_RNE : cmdArbiter_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : cmdArbiter_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : cmdArbiter_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : cmdArbiter_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : cmdArbiter_output_payload_roundMode_string = "RMM";
+ default : cmdArbiter_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(read_s0_payload_opcode)
+ FpuOpcode_LOAD : read_s0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : read_s0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : read_s0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : read_s0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : read_s0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : read_s0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : read_s0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : read_s0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : read_s0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : read_s0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : read_s0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : read_s0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : read_s0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : read_s0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : read_s0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : read_s0_payload_opcode_string = "FCVT_X_X";
+ default : read_s0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(read_s0_payload_roundMode)
+ FpuRoundMode_RNE : read_s0_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : read_s0_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : read_s0_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : read_s0_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : read_s0_payload_roundMode_string = "RMM";
+ default : read_s0_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(read_s1_payload_opcode)
+ FpuOpcode_LOAD : read_s1_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : read_s1_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : read_s1_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : read_s1_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : read_s1_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : read_s1_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : read_s1_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : read_s1_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : read_s1_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : read_s1_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : read_s1_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : read_s1_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : read_s1_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : read_s1_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : read_s1_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : read_s1_payload_opcode_string = "FCVT_X_X";
+ default : read_s1_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(read_s1_payload_roundMode)
+ FpuRoundMode_RNE : read_s1_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : read_s1_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : read_s1_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : read_s1_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : read_s1_payload_roundMode_string = "RMM";
+ default : read_s1_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(read_s0_rData_opcode)
+ FpuOpcode_LOAD : read_s0_rData_opcode_string = "LOAD ";
+ FpuOpcode_STORE : read_s0_rData_opcode_string = "STORE ";
+ FpuOpcode_MUL : read_s0_rData_opcode_string = "MUL ";
+ FpuOpcode_ADD : read_s0_rData_opcode_string = "ADD ";
+ FpuOpcode_FMA : read_s0_rData_opcode_string = "FMA ";
+ FpuOpcode_I2F : read_s0_rData_opcode_string = "I2F ";
+ FpuOpcode_F2I : read_s0_rData_opcode_string = "F2I ";
+ FpuOpcode_CMP : read_s0_rData_opcode_string = "CMP ";
+ FpuOpcode_DIV : read_s0_rData_opcode_string = "DIV ";
+ FpuOpcode_SQRT : read_s0_rData_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : read_s0_rData_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : read_s0_rData_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : read_s0_rData_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : read_s0_rData_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : read_s0_rData_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : read_s0_rData_opcode_string = "FCVT_X_X";
+ default : read_s0_rData_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(read_s0_rData_roundMode)
+ FpuRoundMode_RNE : read_s0_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : read_s0_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : read_s0_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : read_s0_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : read_s0_rData_roundMode_string = "RMM";
+ default : read_s0_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(read_output_payload_opcode)
+ FpuOpcode_LOAD : read_output_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : read_output_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : read_output_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : read_output_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : read_output_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : read_output_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : read_output_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : read_output_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : read_output_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : read_output_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : read_output_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : read_output_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : read_output_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : read_output_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : read_output_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : read_output_payload_opcode_string = "FCVT_X_X";
+ default : read_output_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(read_output_payload_roundMode)
+ FpuRoundMode_RNE : read_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : read_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : read_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : read_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : read_output_payload_roundMode_string = "RMM";
+ default : read_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_input_payload_opcode)
+ FpuOpcode_LOAD : decode_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : decode_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : decode_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : decode_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : decode_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : decode_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : decode_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : decode_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : decode_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : decode_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : decode_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : decode_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : decode_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : decode_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : decode_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : decode_input_payload_opcode_string = "FCVT_X_X";
+ default : decode_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(decode_input_payload_roundMode)
+ FpuRoundMode_RNE : decode_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_input_payload_roundMode_string = "RMM";
+ default : decode_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_payload_roundMode)
+ FpuRoundMode_RNE : decode_load_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_payload_roundMode_string = "RMM";
+ default : decode_load_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_shortPip_payload_opcode)
+ FpuOpcode_LOAD : decode_shortPip_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : decode_shortPip_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : decode_shortPip_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : decode_shortPip_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : decode_shortPip_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : decode_shortPip_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : decode_shortPip_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : decode_shortPip_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : decode_shortPip_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : decode_shortPip_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : decode_shortPip_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : decode_shortPip_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : decode_shortPip_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : decode_shortPip_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : decode_shortPip_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : decode_shortPip_payload_opcode_string = "FCVT_X_X";
+ default : decode_shortPip_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(decode_shortPip_payload_roundMode)
+ FpuRoundMode_RNE : decode_shortPip_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_shortPip_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_shortPip_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_shortPip_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_shortPip_payload_roundMode_string = "RMM";
+ default : decode_shortPip_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_divSqrt_payload_roundMode)
+ FpuRoundMode_RNE : decode_divSqrt_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_divSqrt_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_divSqrt_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_divSqrt_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_divSqrt_payload_roundMode_string = "RMM";
+ default : decode_divSqrt_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_div_payload_roundMode)
+ FpuRoundMode_RNE : decode_div_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_div_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_div_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_div_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_div_payload_roundMode_string = "RMM";
+ default : decode_div_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_sqrt_payload_roundMode)
+ FpuRoundMode_RNE : decode_sqrt_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_sqrt_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_sqrt_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_sqrt_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_sqrt_payload_roundMode_string = "RMM";
+ default : decode_sqrt_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_mul_payload_roundMode)
+ FpuRoundMode_RNE : decode_mul_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_mul_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_mul_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_mul_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_mul_payload_roundMode_string = "RMM";
+ default : decode_mul_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_divSqrtToMul_payload_roundMode)
+ FpuRoundMode_RNE : decode_divSqrtToMul_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_divSqrtToMul_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_divSqrtToMul_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_divSqrtToMul_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_divSqrtToMul_payload_roundMode_string = "RMM";
+ default : decode_divSqrtToMul_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_add_payload_roundMode)
+ FpuRoundMode_RNE : decode_add_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_add_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_add_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_add_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_add_payload_roundMode_string = "RMM";
+ default : decode_add_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_mulToAdd_payload_roundMode)
+ FpuRoundMode_RNE : decode_mulToAdd_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_mulToAdd_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_mulToAdd_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_mulToAdd_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_mulToAdd_payload_roundMode_string = "RMM";
+ default : decode_mulToAdd_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_s2mPipe_payload_roundMode)
+ FpuRoundMode_RNE : decode_load_s2mPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_s2mPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_s2mPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_s2mPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_s2mPipe_payload_roundMode_string = "RMM";
+ default : decode_load_s2mPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_rData_roundMode)
+ FpuRoundMode_RNE : decode_load_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_rData_roundMode_string = "RMM";
+ default : decode_load_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_decode_load_s2mPipe_payload_roundMode)
+ FpuRoundMode_RNE : _zz_decode_load_s2mPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_decode_load_s2mPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_decode_load_s2mPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_decode_load_s2mPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_decode_load_s2mPipe_payload_roundMode_string = "RMM";
+ default : _zz_decode_load_s2mPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_s2mPipe_m2sPipe_payload_roundMode)
+ FpuRoundMode_RNE : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "RMM";
+ default : decode_load_s2mPipe_m2sPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_s2mPipe_rData_roundMode)
+ FpuRoundMode_RNE : decode_load_s2mPipe_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_s2mPipe_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_s2mPipe_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_s2mPipe_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_s2mPipe_rData_roundMode_string = "RMM";
+ default : decode_load_s2mPipe_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s0_input_payload_roundMode)
+ FpuRoundMode_RNE : load_s0_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s0_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s0_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s0_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s0_input_payload_roundMode_string = "RMM";
+ default : load_s0_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_load_s2mPipe_m2sPipe_rData_roundMode)
+ FpuRoundMode_RNE : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "RMM";
+ default : decode_load_s2mPipe_m2sPipe_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s0_filtred_0_payload_opcode)
+ FpuOpcode_LOAD : load_s0_filtred_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : load_s0_filtred_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : load_s0_filtred_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : load_s0_filtred_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : load_s0_filtred_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : load_s0_filtred_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : load_s0_filtred_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : load_s0_filtred_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : load_s0_filtred_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : load_s0_filtred_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : load_s0_filtred_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : load_s0_filtred_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : load_s0_filtred_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : load_s0_filtred_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : load_s0_filtred_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : load_s0_filtred_0_payload_opcode_string = "FCVT_X_X";
+ default : load_s0_filtred_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(load_s0_output_payload_roundMode)
+ FpuRoundMode_RNE : load_s0_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s0_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s0_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s0_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s0_output_payload_roundMode_string = "RMM";
+ default : load_s0_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s1_input_payload_roundMode)
+ FpuRoundMode_RNE : load_s1_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s1_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s1_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s1_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s1_input_payload_roundMode_string = "RMM";
+ default : load_s1_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s0_output_rData_roundMode)
+ FpuRoundMode_RNE : load_s0_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s0_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s0_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s0_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s0_output_rData_roundMode_string = "RMM";
+ default : load_s0_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s1_output_payload_roundMode)
+ FpuRoundMode_RNE : load_s1_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s1_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s1_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s1_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s1_output_payload_roundMode_string = "RMM";
+ default : load_s1_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_LOAD : shortPip_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : shortPip_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : shortPip_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : shortPip_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : shortPip_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : shortPip_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : shortPip_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : shortPip_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : shortPip_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : shortPip_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : shortPip_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : shortPip_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : shortPip_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : shortPip_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : shortPip_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : shortPip_input_payload_opcode_string = "FCVT_X_X";
+ default : shortPip_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_input_payload_roundMode)
+ FpuRoundMode_RNE : shortPip_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : shortPip_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : shortPip_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : shortPip_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : shortPip_input_payload_roundMode_string = "RMM";
+ default : shortPip_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_shortPip_rData_opcode)
+ FpuOpcode_LOAD : decode_shortPip_rData_opcode_string = "LOAD ";
+ FpuOpcode_STORE : decode_shortPip_rData_opcode_string = "STORE ";
+ FpuOpcode_MUL : decode_shortPip_rData_opcode_string = "MUL ";
+ FpuOpcode_ADD : decode_shortPip_rData_opcode_string = "ADD ";
+ FpuOpcode_FMA : decode_shortPip_rData_opcode_string = "FMA ";
+ FpuOpcode_I2F : decode_shortPip_rData_opcode_string = "I2F ";
+ FpuOpcode_F2I : decode_shortPip_rData_opcode_string = "F2I ";
+ FpuOpcode_CMP : decode_shortPip_rData_opcode_string = "CMP ";
+ FpuOpcode_DIV : decode_shortPip_rData_opcode_string = "DIV ";
+ FpuOpcode_SQRT : decode_shortPip_rData_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : decode_shortPip_rData_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : decode_shortPip_rData_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : decode_shortPip_rData_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : decode_shortPip_rData_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : decode_shortPip_rData_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : decode_shortPip_rData_opcode_string = "FCVT_X_X";
+ default : decode_shortPip_rData_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(decode_shortPip_rData_roundMode)
+ FpuRoundMode_RNE : decode_shortPip_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_shortPip_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_shortPip_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_shortPip_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_shortPip_rData_roundMode_string = "RMM";
+ default : decode_shortPip_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_rfOutput_payload_roundMode)
+ FpuRoundMode_RNE : shortPip_rfOutput_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : shortPip_rfOutput_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : shortPip_rfOutput_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : shortPip_rfOutput_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : shortPip_rfOutput_payload_roundMode_string = "RMM";
+ default : shortPip_rfOutput_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_output_payload_roundMode)
+ FpuRoundMode_RNE : shortPip_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : shortPip_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : shortPip_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : shortPip_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : shortPip_output_payload_roundMode_string = "RMM";
+ default : shortPip_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_preMul_input_payload_roundMode)
+ FpuRoundMode_RNE : mul_preMul_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_preMul_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_preMul_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_preMul_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_preMul_input_payload_roundMode_string = "RMM";
+ default : mul_preMul_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_mul_rData_roundMode)
+ FpuRoundMode_RNE : decode_mul_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_mul_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_mul_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_mul_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_mul_rData_roundMode_string = "RMM";
+ default : decode_mul_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_preMul_output_payload_roundMode)
+ FpuRoundMode_RNE : mul_preMul_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_preMul_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_preMul_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_preMul_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_preMul_output_payload_roundMode_string = "RMM";
+ default : mul_preMul_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_mul_input_payload_roundMode)
+ FpuRoundMode_RNE : mul_mul_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_mul_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_mul_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_mul_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_mul_input_payload_roundMode_string = "RMM";
+ default : mul_mul_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_preMul_output_rData_roundMode)
+ FpuRoundMode_RNE : mul_preMul_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_preMul_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_preMul_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_preMul_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_preMul_output_rData_roundMode_string = "RMM";
+ default : mul_preMul_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_mul_output_payload_roundMode)
+ FpuRoundMode_RNE : mul_mul_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_mul_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_mul_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_mul_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_mul_output_payload_roundMode_string = "RMM";
+ default : mul_mul_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum1_input_payload_roundMode)
+ FpuRoundMode_RNE : mul_sum1_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum1_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum1_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum1_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum1_input_payload_roundMode_string = "RMM";
+ default : mul_sum1_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_mul_output_rData_roundMode)
+ FpuRoundMode_RNE : mul_mul_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_mul_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_mul_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_mul_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_mul_output_rData_roundMode_string = "RMM";
+ default : mul_mul_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum1_output_payload_roundMode)
+ FpuRoundMode_RNE : mul_sum1_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum1_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum1_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum1_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum1_output_payload_roundMode_string = "RMM";
+ default : mul_sum1_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum2_input_payload_roundMode)
+ FpuRoundMode_RNE : mul_sum2_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum2_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum2_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum2_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum2_input_payload_roundMode_string = "RMM";
+ default : mul_sum2_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum1_output_rData_roundMode)
+ FpuRoundMode_RNE : mul_sum1_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum1_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum1_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum1_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum1_output_rData_roundMode_string = "RMM";
+ default : mul_sum1_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum2_output_payload_roundMode)
+ FpuRoundMode_RNE : mul_sum2_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum2_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum2_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum2_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum2_output_payload_roundMode_string = "RMM";
+ default : mul_sum2_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_norm_input_payload_roundMode)
+ FpuRoundMode_RNE : mul_norm_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_norm_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_norm_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_norm_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_norm_input_payload_roundMode_string = "RMM";
+ default : mul_norm_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_sum2_output_rData_roundMode)
+ FpuRoundMode_RNE : mul_sum2_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_sum2_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_sum2_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_sum2_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_sum2_output_rData_roundMode_string = "RMM";
+ default : mul_sum2_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_result_output_payload_roundMode)
+ FpuRoundMode_RNE : mul_result_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_result_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_result_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_result_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_result_output_payload_roundMode_string = "RMM";
+ default : mul_result_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_result_mulToAdd_payload_roundMode)
+ FpuRoundMode_RNE : mul_result_mulToAdd_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_result_mulToAdd_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_result_mulToAdd_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_result_mulToAdd_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_result_mulToAdd_payload_roundMode_string = "RMM";
+ default : mul_result_mulToAdd_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_result_mulToAdd_m2sPipe_payload_roundMode)
+ FpuRoundMode_RNE : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "RMM";
+ default : mul_result_mulToAdd_m2sPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(mul_result_mulToAdd_rData_roundMode)
+ FpuRoundMode_RNE : mul_result_mulToAdd_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : mul_result_mulToAdd_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : mul_result_mulToAdd_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : mul_result_mulToAdd_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : mul_result_mulToAdd_rData_roundMode_string = "RMM";
+ default : mul_result_mulToAdd_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(div_input_payload_roundMode)
+ FpuRoundMode_RNE : div_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : div_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : div_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : div_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : div_input_payload_roundMode_string = "RMM";
+ default : div_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_div_rData_roundMode)
+ FpuRoundMode_RNE : decode_div_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_div_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_div_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_div_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_div_rData_roundMode_string = "RMM";
+ default : decode_div_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(div_output_payload_roundMode)
+ FpuRoundMode_RNE : div_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : div_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : div_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : div_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : div_output_payload_roundMode_string = "RMM";
+ default : div_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(sqrt_input_payload_roundMode)
+ FpuRoundMode_RNE : sqrt_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : sqrt_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : sqrt_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : sqrt_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : sqrt_input_payload_roundMode_string = "RMM";
+ default : sqrt_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(decode_sqrt_rData_roundMode)
+ FpuRoundMode_RNE : decode_sqrt_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : decode_sqrt_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : decode_sqrt_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : decode_sqrt_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : decode_sqrt_rData_roundMode_string = "RMM";
+ default : decode_sqrt_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(sqrt_output_payload_roundMode)
+ FpuRoundMode_RNE : sqrt_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : sqrt_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : sqrt_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : sqrt_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : sqrt_output_payload_roundMode_string = "RMM";
+ default : sqrt_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_preShifter_input_payload_roundMode)
+ FpuRoundMode_RNE : add_preShifter_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_preShifter_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_preShifter_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_preShifter_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_preShifter_input_payload_roundMode_string = "RMM";
+ default : add_preShifter_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_preShifter_output_payload_roundMode)
+ FpuRoundMode_RNE : add_preShifter_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_preShifter_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_preShifter_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_preShifter_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_preShifter_output_payload_roundMode_string = "RMM";
+ default : add_preShifter_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_shifter_input_payload_roundMode)
+ FpuRoundMode_RNE : add_shifter_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_shifter_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_shifter_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_shifter_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_shifter_input_payload_roundMode_string = "RMM";
+ default : add_shifter_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_preShifter_output_rData_roundMode)
+ FpuRoundMode_RNE : add_preShifter_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_preShifter_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_preShifter_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_preShifter_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_preShifter_output_rData_roundMode_string = "RMM";
+ default : add_preShifter_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_shifter_output_payload_roundMode)
+ FpuRoundMode_RNE : add_shifter_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_shifter_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_shifter_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_shifter_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_shifter_output_payload_roundMode_string = "RMM";
+ default : add_shifter_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_math_input_payload_roundMode)
+ FpuRoundMode_RNE : add_math_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_math_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_math_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_math_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_math_input_payload_roundMode_string = "RMM";
+ default : add_math_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_shifter_output_rData_roundMode)
+ FpuRoundMode_RNE : add_shifter_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_shifter_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_shifter_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_shifter_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_shifter_output_rData_roundMode_string = "RMM";
+ default : add_shifter_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_math_output_payload_roundMode)
+ FpuRoundMode_RNE : add_math_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_math_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_math_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_math_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_math_output_payload_roundMode_string = "RMM";
+ default : add_math_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_oh_input_payload_roundMode)
+ FpuRoundMode_RNE : add_oh_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_oh_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_oh_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_oh_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_oh_input_payload_roundMode_string = "RMM";
+ default : add_oh_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_math_output_rData_roundMode)
+ FpuRoundMode_RNE : add_math_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_math_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_math_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_math_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_math_output_rData_roundMode_string = "RMM";
+ default : add_math_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_oh_output_payload_roundMode)
+ FpuRoundMode_RNE : add_oh_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_oh_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_oh_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_oh_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_oh_output_payload_roundMode_string = "RMM";
+ default : add_oh_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_norm_input_payload_roundMode)
+ FpuRoundMode_RNE : add_norm_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_norm_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_norm_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_norm_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_norm_input_payload_roundMode_string = "RMM";
+ default : add_norm_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_oh_output_rData_roundMode)
+ FpuRoundMode_RNE : add_oh_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_oh_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_oh_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_oh_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_oh_output_rData_roundMode_string = "RMM";
+ default : add_oh_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_norm_output_payload_roundMode)
+ FpuRoundMode_RNE : add_norm_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_norm_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_norm_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_norm_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_norm_output_payload_roundMode_string = "RMM";
+ default : add_norm_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_result_input_payload_roundMode)
+ FpuRoundMode_RNE : add_result_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_result_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_result_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_result_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_result_input_payload_roundMode_string = "RMM";
+ default : add_result_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(add_result_output_payload_roundMode)
+ FpuRoundMode_RNE : add_result_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : add_result_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : add_result_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : add_result_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : add_result_output_payload_roundMode_string = "RMM";
+ default : add_result_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s1_output_m2sPipe_payload_roundMode)
+ FpuRoundMode_RNE : load_s1_output_m2sPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s1_output_m2sPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s1_output_m2sPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s1_output_m2sPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s1_output_m2sPipe_payload_roundMode_string = "RMM";
+ default : load_s1_output_m2sPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(load_s1_output_rData_roundMode)
+ FpuRoundMode_RNE : load_s1_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : load_s1_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : load_s1_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : load_s1_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : load_s1_output_rData_roundMode_string = "RMM";
+ default : load_s1_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_output_m2sPipe_payload_roundMode)
+ FpuRoundMode_RNE : shortPip_output_m2sPipe_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : shortPip_output_m2sPipe_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : shortPip_output_m2sPipe_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : shortPip_output_m2sPipe_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : shortPip_output_m2sPipe_payload_roundMode_string = "RMM";
+ default : shortPip_output_m2sPipe_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(shortPip_output_rData_roundMode)
+ FpuRoundMode_RNE : shortPip_output_rData_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : shortPip_output_rData_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : shortPip_output_rData_roundMode_string = "RDN";
+ FpuRoundMode_RUP : shortPip_output_rData_roundMode_string = "RUP";
+ FpuRoundMode_RMM : shortPip_output_rData_roundMode_string = "RMM";
+ default : shortPip_output_rData_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode)
+ FpuRoundMode_RNE : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "RMM";
+ default : FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(merge_arbitrated_payload_roundMode)
+ FpuRoundMode_RNE : merge_arbitrated_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : merge_arbitrated_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : merge_arbitrated_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : merge_arbitrated_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : merge_arbitrated_payload_roundMode_string = "RMM";
+ default : merge_arbitrated_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(roundFront_input_payload_roundMode)
+ FpuRoundMode_RNE : roundFront_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : roundFront_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : roundFront_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : roundFront_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : roundFront_input_payload_roundMode_string = "RMM";
+ default : roundFront_input_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(roundFront_output_payload_roundMode)
+ FpuRoundMode_RNE : roundFront_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : roundFront_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : roundFront_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : roundFront_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : roundFront_output_payload_roundMode_string = "RMM";
+ default : roundFront_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(roundBack_input_payload_roundMode)
+ FpuRoundMode_RNE : roundBack_input_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : roundBack_input_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : roundBack_input_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : roundBack_input_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : roundBack_input_payload_roundMode_string = "RMM";
+ default : roundBack_input_payload_roundMode_string = "???";
+ endcase
+ end
+ `endif
+
+ always @(*) begin
+ _zz_1 = 1'b0;
+ if(writeback_port_valid) begin
+ _zz_1 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ add_shifter_yMantissa_5 = add_shifter_yMantissa_4;
+ add_shifter_yMantissa_5 = (add_shifter_shiftBy[0] ? _zz_add_shifter_yMantissa_5 : add_shifter_yMantissa_4);
+ if(add_shifter_passThrough) begin
+ add_shifter_yMantissa_5 = 26'h0000000;
+ end
+ end
+
+ always @(*) begin
+ add_shifter_yMantissa_4 = add_shifter_yMantissa_3;
+ add_shifter_yMantissa_4 = (add_shifter_shiftBy[1] ? _zz_add_shifter_yMantissa_4 : add_shifter_yMantissa_3);
+ end
+
+ always @(*) begin
+ add_shifter_yMantissa_3 = add_shifter_yMantissa_2;
+ add_shifter_yMantissa_3 = (add_shifter_shiftBy[2] ? _zz_add_shifter_yMantissa_3 : add_shifter_yMantissa_2);
+ end
+
+ always @(*) begin
+ add_shifter_yMantissa_2 = add_shifter_yMantissa_1;
+ add_shifter_yMantissa_2 = (add_shifter_shiftBy[3] ? _zz_add_shifter_yMantissa_2 : add_shifter_yMantissa_1);
+ end
+
+ always @(*) begin
+ add_shifter_yMantissa_1 = add_shifter_yMantissa;
+ add_shifter_yMantissa_1 = (add_shifter_shiftBy[4] ? _zz_add_shifter_yMantissa_1 : add_shifter_yMantissa);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_6 = shortPip_fsm_shift_input_5;
+ shortPip_fsm_shift_input_6 = (shortPip_fsm_shift_by[0] ? _zz_shortPip_fsm_shift_input_6 : shortPip_fsm_shift_input_5);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_5 = shortPip_fsm_shift_input_4;
+ shortPip_fsm_shift_input_5 = (shortPip_fsm_shift_by[1] ? _zz_shortPip_fsm_shift_input_5 : shortPip_fsm_shift_input_4);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_4 = shortPip_fsm_shift_input_3;
+ shortPip_fsm_shift_input_4 = (shortPip_fsm_shift_by[2] ? _zz_shortPip_fsm_shift_input_4 : shortPip_fsm_shift_input_3);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_3 = shortPip_fsm_shift_input_2;
+ shortPip_fsm_shift_input_3 = (shortPip_fsm_shift_by[3] ? _zz_shortPip_fsm_shift_input_3 : shortPip_fsm_shift_input_2);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_2 = shortPip_fsm_shift_input_1;
+ shortPip_fsm_shift_input_2 = (shortPip_fsm_shift_by[4] ? _zz_shortPip_fsm_shift_input_2 : shortPip_fsm_shift_input_1);
+ end
+
+ always @(*) begin
+ shortPip_fsm_shift_input_1 = shortPip_fsm_shift_input;
+ shortPip_fsm_shift_input_1 = (shortPip_fsm_shift_by[5] ? _zz_shortPip_fsm_shift_input_1 : shortPip_fsm_shift_input);
+ end
+
+ always @(*) begin
+ load_s1_fsm_shift_input_5 = load_s1_fsm_shift_input_4;
+ load_s1_fsm_shift_input_5 = (load_s1_fsm_shift_by[4] ? _zz_load_s1_fsm_shift_input_5 : load_s1_fsm_shift_input_4);
+ end
+
+ always @(*) begin
+ load_s1_fsm_shift_input_4 = load_s1_fsm_shift_input_3;
+ load_s1_fsm_shift_input_4 = (load_s1_fsm_shift_by[3] ? _zz_load_s1_fsm_shift_input_4 : load_s1_fsm_shift_input_3);
+ end
+
+ always @(*) begin
+ load_s1_fsm_shift_input_3 = load_s1_fsm_shift_input_2;
+ load_s1_fsm_shift_input_3 = (load_s1_fsm_shift_by[2] ? _zz_load_s1_fsm_shift_input_3 : load_s1_fsm_shift_input_2);
+ end
+
+ always @(*) begin
+ load_s1_fsm_shift_input_2 = load_s1_fsm_shift_input_1;
+ load_s1_fsm_shift_input_2 = (load_s1_fsm_shift_by[1] ? _zz_load_s1_fsm_shift_input_2 : load_s1_fsm_shift_input_1);
+ end
+
+ always @(*) begin
+ load_s1_fsm_shift_input_1 = load_s1_fsm_shift_input;
+ load_s1_fsm_shift_input_1 = (load_s1_fsm_shift_by[0] ? _zz_load_s1_fsm_shift_input_1 : load_s1_fsm_shift_input);
+ end
+
+ always @(*) begin
+ _zz_2 = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ _zz_2 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ _zz_3 = 1'b0;
+ if(rf_scoreboards_0_hitWrite_valid) begin
+ _zz_3 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ _zz_4 = 1'b0;
+ if(rf_scoreboards_0_targetWrite_valid) begin
+ _zz_4 = 1'b1;
+ end
+ end
+
+ assign rf_init_done = rf_init_counter[5];
+ assign when_FpuCore_l163 = (! rf_init_done);
+ always @(*) begin
+ rf_scoreboards_0_targetWrite_valid = (! rf_init_done);
+ if(when_FpuCore_l265) begin
+ rf_scoreboards_0_targetWrite_valid = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ rf_scoreboards_0_targetWrite_payload_address = rf_init_counter[4:0];
+ if(when_FpuCore_l261) begin
+ rf_scoreboards_0_targetWrite_payload_address = scheduler_0_input_payload_rd;
+ end
+ end
+
+ always @(*) begin
+ rf_scoreboards_0_targetWrite_payload_data = 1'b0;
+ if(when_FpuCore_l261) begin
+ rf_scoreboards_0_targetWrite_payload_data = (! scheduler_0_rfTargets_3);
+ end
+ end
+
+ always @(*) begin
+ rf_scoreboards_0_hitWrite_valid = (! rf_init_done);
+ if(writeback_input_valid) begin
+ if(when_FpuCore_l1689) begin
+ rf_scoreboards_0_hitWrite_valid = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ rf_scoreboards_0_hitWrite_payload_address = rf_init_counter[4:0];
+ if(writeback_input_valid) begin
+ rf_scoreboards_0_hitWrite_payload_address = writeback_input_payload_rd;
+ end
+ end
+
+ always @(*) begin
+ rf_scoreboards_0_hitWrite_payload_data = 1'b0;
+ if(writeback_input_valid) begin
+ rf_scoreboards_0_hitWrite_payload_data = (! _zz_rf_scoreboards_0_hit_port5[0]);
+ end
+ end
+
+ assign io_port_0_commit_ready = streamFork_1_io_input_ready;
+ assign commitFork_load_0_valid = streamFork_1_io_outputs_0_valid;
+ assign commitFork_load_0_payload_opcode = streamFork_1_io_outputs_0_payload_opcode;
+ assign commitFork_load_0_payload_rd = streamFork_1_io_outputs_0_payload_rd;
+ assign commitFork_load_0_payload_write = streamFork_1_io_outputs_0_payload_write;
+ assign commitFork_load_0_payload_value = streamFork_1_io_outputs_0_payload_value;
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_valid = (streamFork_1_io_outputs_1_valid || (! FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN));
+ assign _zz_payload_opcode = (FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN ? streamFork_1_io_outputs_1_payload_opcode : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode);
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode = _zz_payload_opcode;
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_rd = (FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN ? streamFork_1_io_outputs_1_payload_rd : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_rd);
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_write = (FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN ? streamFork_1_io_outputs_1_payload_write : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_write);
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_value = (FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN ? streamFork_1_io_outputs_1_payload_value : FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_value);
+ assign commitFork_commit_0_valid = FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_valid;
+ assign FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_ready = commitFork_commit_0_ready;
+ assign commitFork_commit_0_payload_opcode = FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_opcode;
+ assign commitFork_commit_0_payload_rd = FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_rd;
+ assign commitFork_commit_0_payload_write = FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_write;
+ assign commitFork_commit_0_payload_value = FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_payload_value;
+ assign commitLogic_0_pending_full = (&commitLogic_0_pending_counter);
+ assign commitLogic_0_pending_notEmpty = (|commitLogic_0_pending_counter);
+ always @(*) begin
+ commitLogic_0_pending_inc = 1'b0;
+ if(when_FpuCore_l265) begin
+ commitLogic_0_pending_inc = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_pending_dec = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ commitLogic_0_pending_dec = 1'b1;
+ end
+ end
+
+ assign commitLogic_0_add_full = (&commitLogic_0_add_counter);
+ assign commitLogic_0_add_notEmpty = (|commitLogic_0_add_counter);
+ always @(*) begin
+ commitLogic_0_add_inc = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ if(when_FpuCore_l208) begin
+ commitLogic_0_add_inc = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_add_dec = 1'b0;
+ if(when_FpuCore_l221_4) begin
+ commitLogic_0_add_dec = 1'b1;
+ end
+ end
+
+ assign commitLogic_0_mul_full = (&commitLogic_0_mul_counter);
+ assign commitLogic_0_mul_notEmpty = (|commitLogic_0_mul_counter);
+ always @(*) begin
+ commitLogic_0_mul_inc = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ if(when_FpuCore_l209) begin
+ commitLogic_0_mul_inc = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_mul_dec = 1'b0;
+ if(when_FpuCore_l221_1) begin
+ commitLogic_0_mul_dec = 1'b1;
+ end
+ end
+
+ assign commitLogic_0_div_full = (&commitLogic_0_div_counter);
+ assign commitLogic_0_div_notEmpty = (|commitLogic_0_div_counter);
+ always @(*) begin
+ commitLogic_0_div_inc = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ if(when_FpuCore_l210) begin
+ commitLogic_0_div_inc = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_div_dec = 1'b0;
+ if(when_FpuCore_l221_2) begin
+ commitLogic_0_div_dec = 1'b1;
+ end
+ end
+
+ assign commitLogic_0_sqrt_full = (&commitLogic_0_sqrt_counter);
+ assign commitLogic_0_sqrt_notEmpty = (|commitLogic_0_sqrt_counter);
+ always @(*) begin
+ commitLogic_0_sqrt_inc = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ if(when_FpuCore_l211) begin
+ commitLogic_0_sqrt_inc = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_sqrt_dec = 1'b0;
+ if(when_FpuCore_l221_3) begin
+ commitLogic_0_sqrt_dec = 1'b1;
+ end
+ end
+
+ assign commitLogic_0_short_full = (&commitLogic_0_short_counter);
+ assign commitLogic_0_short_notEmpty = (|commitLogic_0_short_counter);
+ always @(*) begin
+ commitLogic_0_short_inc = 1'b0;
+ if(commitLogic_0_input_valid) begin
+ if(when_FpuCore_l212) begin
+ commitLogic_0_short_inc = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ commitLogic_0_short_dec = 1'b0;
+ if(when_FpuCore_l221) begin
+ commitLogic_0_short_dec = 1'b1;
+ end
+ end
+
+ assign _zz_commitFork_commit_0_ready = (! ((|{commitLogic_0_short_full,{commitLogic_0_sqrt_full,{commitLogic_0_div_full,{commitLogic_0_mul_full,commitLogic_0_add_full}}}}) || (! commitLogic_0_pending_notEmpty)));
+ assign commitFork_commit_0_ready = (1'b1 && _zz_commitFork_commit_0_ready);
+ assign _zz_commitLogic_0_input_payload_opcode = commitFork_commit_0_payload_opcode;
+ assign commitLogic_0_input_valid = (commitFork_commit_0_valid && _zz_commitFork_commit_0_ready);
+ assign commitLogic_0_input_payload_opcode = _zz_commitLogic_0_input_payload_opcode;
+ assign commitLogic_0_input_payload_rd = commitFork_commit_0_payload_rd;
+ assign commitLogic_0_input_payload_write = commitFork_commit_0_payload_write;
+ assign commitLogic_0_input_payload_value = commitFork_commit_0_payload_value;
+ assign when_FpuCore_l208 = (|(commitLogic_0_input_payload_opcode == FpuOpcode_ADD));
+ assign when_FpuCore_l209 = (|{(commitLogic_0_input_payload_opcode == FpuOpcode_FMA),(commitLogic_0_input_payload_opcode == FpuOpcode_MUL)});
+ assign when_FpuCore_l210 = (|(commitLogic_0_input_payload_opcode == FpuOpcode_DIV));
+ assign when_FpuCore_l211 = (|(commitLogic_0_input_payload_opcode == FpuOpcode_SQRT));
+ assign when_FpuCore_l212 = (|{(commitLogic_0_input_payload_opcode == FpuOpcode_FCVT_X_X),{(commitLogic_0_input_payload_opcode == FpuOpcode_MIN_MAX),(commitLogic_0_input_payload_opcode == FpuOpcode_SGNJ)}});
+ assign io_port_0_cmd_ready = io_port_0_cmd_rValidN;
+ assign scheduler_0_input_valid = (io_port_0_cmd_valid || (! io_port_0_cmd_rValidN));
+ assign _zz_scheduler_0_input_payload_opcode = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_opcode : io_port_0_cmd_rData_opcode);
+ assign _zz_scheduler_0_input_payload_format = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_format : io_port_0_cmd_rData_format);
+ assign _zz_scheduler_0_input_payload_roundMode = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_roundMode : io_port_0_cmd_rData_roundMode);
+ assign scheduler_0_input_payload_opcode = _zz_scheduler_0_input_payload_opcode;
+ assign scheduler_0_input_payload_arg = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_arg : io_port_0_cmd_rData_arg);
+ assign scheduler_0_input_payload_rs1 = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_rs1 : io_port_0_cmd_rData_rs1);
+ assign scheduler_0_input_payload_rs2 = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_rs2 : io_port_0_cmd_rData_rs2);
+ assign scheduler_0_input_payload_rs3 = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_rs3 : io_port_0_cmd_rData_rs3);
+ assign scheduler_0_input_payload_rd = (io_port_0_cmd_rValidN ? io_port_0_cmd_payload_rd : io_port_0_cmd_rData_rd);
+ assign scheduler_0_input_payload_format = _zz_scheduler_0_input_payload_format;
+ assign scheduler_0_input_payload_roundMode = _zz_scheduler_0_input_payload_roundMode;
+ always @(*) begin
+ scheduler_0_useRs1 = 1'b0;
+ case(scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : begin
+ end
+ FpuOpcode_STORE : begin
+ end
+ FpuOpcode_ADD : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_MUL : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_DIV : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_SQRT : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_FMA : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_I2F : begin
+ end
+ FpuOpcode_F2I : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_MIN_MAX : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_CMP : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_SGNJ : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_FMV_X_W : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ FpuOpcode_FMV_W_X : begin
+ end
+ FpuOpcode_FCLASS : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ default : begin
+ scheduler_0_useRs1 = 1'b1;
+ end
+ endcase
+ end
+
+ always @(*) begin
+ scheduler_0_useRs2 = 1'b0;
+ case(scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : begin
+ end
+ FpuOpcode_STORE : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_ADD : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_MUL : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_DIV : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_SQRT : begin
+ end
+ FpuOpcode_FMA : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_I2F : begin
+ end
+ FpuOpcode_F2I : begin
+ end
+ FpuOpcode_MIN_MAX : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_CMP : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_SGNJ : begin
+ scheduler_0_useRs2 = 1'b1;
+ end
+ FpuOpcode_FMV_X_W : begin
+ end
+ FpuOpcode_FMV_W_X : begin
+ end
+ FpuOpcode_FCLASS : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ scheduler_0_useRs3 = 1'b0;
+ case(scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : begin
+ end
+ FpuOpcode_STORE : begin
+ end
+ FpuOpcode_ADD : begin
+ end
+ FpuOpcode_MUL : begin
+ end
+ FpuOpcode_DIV : begin
+ end
+ FpuOpcode_SQRT : begin
+ end
+ FpuOpcode_FMA : begin
+ scheduler_0_useRs3 = 1'b1;
+ end
+ FpuOpcode_I2F : begin
+ end
+ FpuOpcode_F2I : begin
+ end
+ FpuOpcode_MIN_MAX : begin
+ end
+ FpuOpcode_CMP : begin
+ end
+ FpuOpcode_SGNJ : begin
+ end
+ FpuOpcode_FMV_X_W : begin
+ end
+ FpuOpcode_FMV_W_X : begin
+ end
+ FpuOpcode_FCLASS : begin
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ scheduler_0_useRd = 1'b0;
+ case(scheduler_0_input_payload_opcode)
+ FpuOpcode_LOAD : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_STORE : begin
+ end
+ FpuOpcode_ADD : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_MUL : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_DIV : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_SQRT : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_FMA : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_I2F : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_F2I : begin
+ end
+ FpuOpcode_MIN_MAX : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_CMP : begin
+ end
+ FpuOpcode_SGNJ : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_FMV_X_W : begin
+ end
+ FpuOpcode_FMV_W_X : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ FpuOpcode_FCLASS : begin
+ end
+ default : begin
+ scheduler_0_useRd = 1'b1;
+ end
+ endcase
+ end
+
+ assign scheduler_0_rfHits_0 = _zz_rf_scoreboards_0_hit_port1[0];
+ assign scheduler_0_rfHits_1 = _zz_rf_scoreboards_0_hit_port2[0];
+ assign scheduler_0_rfHits_2 = _zz_rf_scoreboards_0_hit_port3[0];
+ assign scheduler_0_rfHits_3 = _zz_rf_scoreboards_0_hit_port4[0];
+ assign scheduler_0_rfTargets_0 = _zz_rf_scoreboards_0_target_port1[0];
+ assign scheduler_0_rfTargets_1 = _zz_rf_scoreboards_0_target_port2[0];
+ assign scheduler_0_rfTargets_2 = _zz_rf_scoreboards_0_target_port3[0];
+ assign scheduler_0_rfTargets_3 = _zz_rf_scoreboards_0_target_port4[0];
+ assign scheduler_0_rfBusy_0 = (scheduler_0_rfHits_0 ^ scheduler_0_rfTargets_0);
+ assign scheduler_0_rfBusy_1 = (scheduler_0_rfHits_1 ^ scheduler_0_rfTargets_1);
+ assign scheduler_0_rfBusy_2 = (scheduler_0_rfHits_2 ^ scheduler_0_rfTargets_2);
+ assign scheduler_0_rfBusy_3 = (scheduler_0_rfHits_3 ^ scheduler_0_rfTargets_3);
+ assign scheduler_0_hits_0 = (scheduler_0_useRs1 && scheduler_0_rfBusy_0);
+ assign scheduler_0_hits_1 = (scheduler_0_useRs2 && scheduler_0_rfBusy_1);
+ assign scheduler_0_hits_2 = (scheduler_0_useRs3 && scheduler_0_rfBusy_2);
+ assign scheduler_0_hits_3 = (scheduler_0_useRd && scheduler_0_rfBusy_3);
+ assign scheduler_0_hazard = (((|{scheduler_0_hits_3,{scheduler_0_hits_2,{scheduler_0_hits_1,scheduler_0_hits_0}}}) || (! rf_init_done)) || commitLogic_0_pending_full);
+ assign _zz_scheduler_0_input_ready = (! scheduler_0_hazard);
+ assign scheduler_0_output_valid = (scheduler_0_input_valid && _zz_scheduler_0_input_ready);
+ assign scheduler_0_input_ready = (scheduler_0_output_ready && _zz_scheduler_0_input_ready);
+ assign scheduler_0_output_payload_opcode = scheduler_0_input_payload_opcode;
+ assign scheduler_0_output_payload_arg = scheduler_0_input_payload_arg;
+ always @(*) begin
+ scheduler_0_output_payload_rs1 = scheduler_0_input_payload_rs1;
+ if(when_FpuCore_l258) begin
+ scheduler_0_output_payload_rs1 = scheduler_0_input_payload_rs2;
+ end
+ end
+
+ assign scheduler_0_output_payload_rs2 = scheduler_0_input_payload_rs2;
+ assign scheduler_0_output_payload_rs3 = scheduler_0_input_payload_rs3;
+ assign scheduler_0_output_payload_rd = scheduler_0_input_payload_rd;
+ assign scheduler_0_output_payload_format = scheduler_0_input_payload_format;
+ assign scheduler_0_output_payload_roundMode = scheduler_0_input_payload_roundMode;
+ assign when_FpuCore_l258 = (scheduler_0_input_payload_opcode == FpuOpcode_STORE);
+ assign when_FpuCore_l261 = (scheduler_0_input_valid && rf_init_done);
+ assign scheduler_0_output_fire = (scheduler_0_output_valid && scheduler_0_output_ready);
+ assign when_FpuCore_l265 = (scheduler_0_output_fire && scheduler_0_useRd);
+ assign scheduler_0_output_ready = cmdArbiter_arbiter_io_inputs_0_ready;
+ assign _zz_io_inputs_0_payload_opcode = scheduler_0_output_payload_opcode;
+ assign _zz_io_inputs_0_payload_format = scheduler_0_output_payload_format;
+ assign _zz_io_inputs_0_payload_roundMode = scheduler_0_output_payload_roundMode;
+ assign cmdArbiter_output_valid = cmdArbiter_arbiter_io_output_valid;
+ assign cmdArbiter_output_payload_opcode = cmdArbiter_arbiter_io_output_payload_opcode;
+ assign cmdArbiter_output_payload_rs1 = cmdArbiter_arbiter_io_output_payload_rs1;
+ assign cmdArbiter_output_payload_rs2 = cmdArbiter_arbiter_io_output_payload_rs2;
+ assign cmdArbiter_output_payload_rs3 = cmdArbiter_arbiter_io_output_payload_rs3;
+ assign cmdArbiter_output_payload_rd = cmdArbiter_arbiter_io_output_payload_rd;
+ assign cmdArbiter_output_payload_arg = cmdArbiter_arbiter_io_output_payload_arg;
+ assign cmdArbiter_output_payload_roundMode = cmdArbiter_arbiter_io_output_payload_roundMode;
+ assign read_s0_valid = cmdArbiter_output_valid;
+ assign cmdArbiter_output_ready = read_s0_ready;
+ assign read_s0_payload_opcode = cmdArbiter_output_payload_opcode;
+ assign read_s0_payload_rs1 = cmdArbiter_output_payload_rs1;
+ assign read_s0_payload_rs2 = cmdArbiter_output_payload_rs2;
+ assign read_s0_payload_rs3 = cmdArbiter_output_payload_rs3;
+ assign read_s0_payload_rd = cmdArbiter_output_payload_rd;
+ assign read_s0_payload_arg = cmdArbiter_output_payload_arg;
+ assign read_s0_payload_roundMode = cmdArbiter_output_payload_roundMode;
+ always @(*) begin
+ read_s0_ready = read_s1_ready;
+ if(when_Stream_l369) begin
+ read_s0_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369 = (! read_s1_valid);
+ assign read_s1_valid = read_s0_rValid;
+ assign read_s1_payload_opcode = read_s0_rData_opcode;
+ assign read_s1_payload_rs1 = read_s0_rData_rs1;
+ assign read_s1_payload_rs2 = read_s0_rData_rs2;
+ assign read_s1_payload_rs3 = read_s0_rData_rs3;
+ assign read_s1_payload_rd = read_s0_rData_rd;
+ assign read_s1_payload_arg = read_s0_rData_arg;
+ assign read_s1_payload_roundMode = read_s0_rData_roundMode;
+ assign read_output_valid = read_s1_valid;
+ assign read_s1_ready = read_output_ready;
+ assign _zz_read_rs_0_value_mantissa = read_s0_payload_rs1;
+ assign read_output_isStall = (read_output_valid && (! read_output_ready));
+ assign _zz_read_rs_0_value_mantissa_1 = (! read_output_isStall);
+ assign _zz_read_rs_0_value_mantissa_2 = _zz_rf_ram_port0[33 : 0];
+ assign read_rs_0_value_mantissa = _zz_read_rs_0_value_mantissa_2[22 : 0];
+ assign read_rs_0_value_exponent = _zz_read_rs_0_value_mantissa_2[31 : 23];
+ assign read_rs_0_value_sign = _zz_read_rs_0_value_mantissa_2[32];
+ assign read_rs_0_value_special = _zz_read_rs_0_value_mantissa_2[33];
+ assign _zz_read_rs_1_value_mantissa = read_s0_payload_rs2;
+ assign _zz_read_rs_1_value_mantissa_1 = (! read_output_isStall);
+ assign _zz_read_rs_1_value_mantissa_2 = _zz_rf_ram_port1[33 : 0];
+ assign read_rs_1_value_mantissa = _zz_read_rs_1_value_mantissa_2[22 : 0];
+ assign read_rs_1_value_exponent = _zz_read_rs_1_value_mantissa_2[31 : 23];
+ assign read_rs_1_value_sign = _zz_read_rs_1_value_mantissa_2[32];
+ assign read_rs_1_value_special = _zz_read_rs_1_value_mantissa_2[33];
+ assign _zz_read_rs_2_value_mantissa = read_s0_payload_rs3;
+ assign _zz_read_rs_2_value_mantissa_1 = (! read_output_isStall);
+ assign _zz_read_rs_2_value_mantissa_2 = _zz_rf_ram_port2[33 : 0];
+ assign read_rs_2_value_mantissa = _zz_read_rs_2_value_mantissa_2[22 : 0];
+ assign read_rs_2_value_exponent = _zz_read_rs_2_value_mantissa_2[31 : 23];
+ assign read_rs_2_value_sign = _zz_read_rs_2_value_mantissa_2[32];
+ assign read_rs_2_value_special = _zz_read_rs_2_value_mantissa_2[33];
+ assign read_output_payload_opcode = read_s1_payload_opcode;
+ assign read_output_payload_arg = read_s1_payload_arg;
+ assign read_output_payload_roundMode = read_s1_payload_roundMode;
+ assign read_output_payload_rd = read_s1_payload_rd;
+ assign read_output_payload_rs1_mantissa = read_rs_0_value_mantissa;
+ assign read_output_payload_rs1_exponent = read_rs_0_value_exponent;
+ assign read_output_payload_rs1_sign = read_rs_0_value_sign;
+ assign read_output_payload_rs1_special = read_rs_0_value_special;
+ assign read_output_payload_rs2_mantissa = read_rs_1_value_mantissa;
+ assign read_output_payload_rs2_exponent = read_rs_1_value_exponent;
+ assign read_output_payload_rs2_sign = read_rs_1_value_sign;
+ assign read_output_payload_rs2_special = read_rs_1_value_special;
+ assign read_output_payload_rs3_mantissa = read_rs_2_value_mantissa;
+ assign read_output_payload_rs3_exponent = read_rs_2_value_exponent;
+ assign read_output_payload_rs3_sign = read_rs_2_value_sign;
+ assign read_output_payload_rs3_special = read_rs_2_value_special;
+ assign decode_input_valid = read_output_valid;
+ assign read_output_ready = decode_input_ready;
+ assign decode_input_payload_opcode = read_output_payload_opcode;
+ assign decode_input_payload_rs1_mantissa = read_output_payload_rs1_mantissa;
+ assign decode_input_payload_rs1_exponent = read_output_payload_rs1_exponent;
+ assign decode_input_payload_rs1_sign = read_output_payload_rs1_sign;
+ assign decode_input_payload_rs1_special = read_output_payload_rs1_special;
+ assign decode_input_payload_rs2_mantissa = read_output_payload_rs2_mantissa;
+ assign decode_input_payload_rs2_exponent = read_output_payload_rs2_exponent;
+ assign decode_input_payload_rs2_sign = read_output_payload_rs2_sign;
+ assign decode_input_payload_rs2_special = read_output_payload_rs2_special;
+ assign decode_input_payload_rs3_mantissa = read_output_payload_rs3_mantissa;
+ assign decode_input_payload_rs3_exponent = read_output_payload_rs3_exponent;
+ assign decode_input_payload_rs3_sign = read_output_payload_rs3_sign;
+ assign decode_input_payload_rs3_special = read_output_payload_rs3_special;
+ assign decode_input_payload_rd = read_output_payload_rd;
+ assign decode_input_payload_arg = read_output_payload_arg;
+ assign decode_input_payload_roundMode = read_output_payload_roundMode;
+ always @(*) begin
+ decode_input_ready = 1'b0;
+ if(when_FpuCore_l329) begin
+ decode_input_ready = 1'b1;
+ end
+ if(when_FpuCore_l335) begin
+ decode_input_ready = 1'b1;
+ end
+ if(when_FpuCore_l351) begin
+ decode_input_ready = 1'b1;
+ end
+ if(when_FpuCore_l359) begin
+ decode_input_ready = 1'b1;
+ end
+ if(when_FpuCore_l375) begin
+ decode_input_ready = 1'b1;
+ end
+ if(when_FpuCore_l399) begin
+ decode_input_ready = 1'b1;
+ end
+ end
+
+ assign decode_loadHit = (|{(decode_input_payload_opcode == FpuOpcode_I2F),{(decode_input_payload_opcode == FpuOpcode_FMV_W_X),(decode_input_payload_opcode == FpuOpcode_LOAD)}});
+ assign decode_load_valid = (decode_input_valid && decode_loadHit);
+ assign when_FpuCore_l329 = (decode_loadHit && decode_load_ready);
+ assign decode_load_payload_rd = decode_input_payload_rd;
+ assign decode_load_payload_arg = decode_input_payload_arg;
+ assign decode_load_payload_roundMode = decode_input_payload_roundMode;
+ assign decode_load_payload_i2f = (decode_input_payload_opcode == FpuOpcode_I2F);
+ assign decode_shortPipHit = (|{(decode_input_payload_opcode == FpuOpcode_FCVT_X_X),{(decode_input_payload_opcode == FpuOpcode_FCLASS),{(decode_input_payload_opcode == FpuOpcode_FMV_X_W),{(decode_input_payload_opcode == FpuOpcode_SGNJ),{(decode_input_payload_opcode == _zz_decode_shortPipHit),{_zz_decode_shortPipHit_1,{_zz_decode_shortPipHit_2,_zz_decode_shortPipHit_3}}}}}}});
+ assign when_FpuCore_l335 = (decode_shortPipHit && decode_shortPip_ready);
+ assign decode_shortPip_valid = (decode_input_valid && decode_shortPipHit);
+ assign decode_shortPip_payload_opcode = decode_input_payload_opcode;
+ assign decode_shortPip_payload_rs1_mantissa = decode_input_payload_rs1_mantissa;
+ assign decode_shortPip_payload_rs1_exponent = decode_input_payload_rs1_exponent;
+ assign decode_shortPip_payload_rs1_sign = decode_input_payload_rs1_sign;
+ assign decode_shortPip_payload_rs1_special = decode_input_payload_rs1_special;
+ assign decode_shortPip_payload_rs2_mantissa = decode_input_payload_rs2_mantissa;
+ assign decode_shortPip_payload_rs2_exponent = decode_input_payload_rs2_exponent;
+ assign decode_shortPip_payload_rs2_sign = decode_input_payload_rs2_sign;
+ assign decode_shortPip_payload_rs2_special = decode_input_payload_rs2_special;
+ assign decode_shortPip_payload_rd = decode_input_payload_rd;
+ assign decode_shortPip_payload_arg = decode_input_payload_arg;
+ assign decode_shortPip_payload_roundMode = decode_input_payload_roundMode;
+ assign decode_divSqrtHit = ((decode_input_payload_opcode == FpuOpcode_DIV) || (decode_input_payload_opcode == FpuOpcode_SQRT));
+ assign decode_divHit = (decode_input_payload_opcode == FpuOpcode_DIV);
+ assign when_FpuCore_l351 = (decode_divHit && decode_div_ready);
+ assign decode_div_valid = (decode_input_valid && decode_divHit);
+ assign decode_div_payload_rs1_mantissa = decode_input_payload_rs1_mantissa;
+ assign decode_div_payload_rs1_exponent = decode_input_payload_rs1_exponent;
+ assign decode_div_payload_rs1_sign = decode_input_payload_rs1_sign;
+ assign decode_div_payload_rs1_special = decode_input_payload_rs1_special;
+ assign decode_div_payload_rs2_mantissa = decode_input_payload_rs2_mantissa;
+ assign decode_div_payload_rs2_exponent = decode_input_payload_rs2_exponent;
+ assign decode_div_payload_rs2_sign = decode_input_payload_rs2_sign;
+ assign decode_div_payload_rs2_special = decode_input_payload_rs2_special;
+ assign decode_div_payload_rd = decode_input_payload_rd;
+ assign decode_div_payload_roundMode = decode_input_payload_roundMode;
+ assign decode_sqrtHit = (decode_input_payload_opcode == FpuOpcode_SQRT);
+ assign when_FpuCore_l359 = (decode_sqrtHit && decode_sqrt_ready);
+ assign decode_sqrt_valid = (decode_input_valid && decode_sqrtHit);
+ assign decode_sqrt_payload_rs1_mantissa = decode_input_payload_rs1_mantissa;
+ assign decode_sqrt_payload_rs1_exponent = decode_input_payload_rs1_exponent;
+ assign decode_sqrt_payload_rs1_sign = decode_input_payload_rs1_sign;
+ assign decode_sqrt_payload_rs1_special = decode_input_payload_rs1_special;
+ assign decode_sqrt_payload_rd = decode_input_payload_rd;
+ assign decode_sqrt_payload_roundMode = decode_input_payload_roundMode;
+ assign decode_fmaHit = (decode_input_payload_opcode == FpuOpcode_FMA);
+ assign decode_mulHit = ((decode_input_payload_opcode == FpuOpcode_MUL) || decode_fmaHit);
+ assign decode_divSqrtToMul_valid = 1'b0;
+ assign decode_divSqrtToMul_payload_rs1_mantissa = 23'bxxxxxxxxxxxxxxxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs1_exponent = 9'bxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs1_sign = 1'bx;
+ assign decode_divSqrtToMul_payload_rs1_special = 1'bx;
+ assign decode_divSqrtToMul_payload_rs2_mantissa = 23'bxxxxxxxxxxxxxxxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs2_exponent = 9'bxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs2_sign = 1'bx;
+ assign decode_divSqrtToMul_payload_rs2_special = 1'bx;
+ assign decode_divSqrtToMul_payload_rs3_mantissa = 23'bxxxxxxxxxxxxxxxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs3_exponent = 9'bxxxxxxxxx;
+ assign decode_divSqrtToMul_payload_rs3_sign = 1'bx;
+ assign decode_divSqrtToMul_payload_rs3_special = 1'bx;
+ assign decode_divSqrtToMul_payload_rd = 5'bxxxxx;
+ assign decode_divSqrtToMul_payload_add = 1'bx;
+ assign decode_divSqrtToMul_payload_divSqrt = 1'bx;
+ assign decode_divSqrtToMul_payload_msb1 = 1'bx;
+ assign decode_divSqrtToMul_payload_msb2 = 1'bx;
+ assign decode_divSqrtToMul_payload_roundMode = (3'bxxx);
+ assign when_FpuCore_l375 = ((decode_mulHit && decode_mul_ready) && (! decode_divSqrtToMul_valid));
+ assign decode_mul_valid = ((decode_input_valid && decode_mulHit) || decode_divSqrtToMul_valid);
+ assign decode_divSqrtToMul_ready = decode_mul_ready;
+ always @(*) begin
+ decode_mul_payload_rs1_mantissa = decode_divSqrtToMul_payload_rs1_mantissa;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs1_mantissa = decode_input_payload_rs1_mantissa;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs1_exponent = decode_divSqrtToMul_payload_rs1_exponent;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs1_exponent = decode_input_payload_rs1_exponent;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs1_sign = decode_divSqrtToMul_payload_rs1_sign;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs1_sign = decode_input_payload_rs1_sign;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs1_special = decode_divSqrtToMul_payload_rs1_special;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs1_special = decode_input_payload_rs1_special;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs2_mantissa = decode_divSqrtToMul_payload_rs2_mantissa;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs2_mantissa = decode_input_payload_rs2_mantissa;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs2_exponent = decode_divSqrtToMul_payload_rs2_exponent;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs2_exponent = decode_input_payload_rs2_exponent;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs2_sign = decode_divSqrtToMul_payload_rs2_sign;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs2_sign = decode_input_payload_rs2_sign;
+ decode_mul_payload_rs2_sign = (decode_input_payload_rs2_sign ^ decode_input_payload_arg[0]);
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs2_special = decode_divSqrtToMul_payload_rs2_special;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs2_special = decode_input_payload_rs2_special;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs3_mantissa = decode_divSqrtToMul_payload_rs3_mantissa;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs3_mantissa = decode_input_payload_rs3_mantissa;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs3_exponent = decode_divSqrtToMul_payload_rs3_exponent;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs3_exponent = decode_input_payload_rs3_exponent;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs3_sign = decode_divSqrtToMul_payload_rs3_sign;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs3_sign = decode_input_payload_rs3_sign;
+ decode_mul_payload_rs3_sign = (decode_input_payload_rs3_sign ^ decode_input_payload_arg[1]);
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rs3_special = decode_divSqrtToMul_payload_rs3_special;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rs3_special = decode_input_payload_rs3_special;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_rd = decode_divSqrtToMul_payload_rd;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_rd = decode_input_payload_rd;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_add = decode_divSqrtToMul_payload_add;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_add = decode_fmaHit;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_divSqrt = decode_divSqrtToMul_payload_divSqrt;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_divSqrt = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_msb1 = decode_divSqrtToMul_payload_msb1;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_msb1 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_msb2 = decode_divSqrtToMul_payload_msb2;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_msb2 = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ decode_mul_payload_roundMode = decode_divSqrtToMul_payload_roundMode;
+ if(when_FpuCore_l380) begin
+ decode_mul_payload_roundMode = decode_input_payload_roundMode;
+ end
+ end
+
+ assign when_FpuCore_l380 = (! decode_divSqrtToMul_valid);
+ assign decode_addHit = (decode_input_payload_opcode == FpuOpcode_ADD);
+ assign when_FpuCore_l399 = ((decode_addHit && decode_add_ready) && (! decode_mulToAdd_valid));
+ assign decode_add_valid = ((decode_input_valid && decode_addHit) || decode_mulToAdd_valid);
+ assign decode_mulToAdd_ready = decode_add_ready;
+ always @(*) begin
+ decode_add_payload_rs1_mantissa = decode_mulToAdd_payload_rs1_mantissa;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs1_mantissa = ({2'd0,decode_input_payload_rs1_mantissa} <<< 2'd2);
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs1_exponent = decode_mulToAdd_payload_rs1_exponent;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs1_exponent = decode_input_payload_rs1_exponent;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs1_sign = decode_mulToAdd_payload_rs1_sign;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs1_sign = decode_input_payload_rs1_sign;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs1_special = decode_mulToAdd_payload_rs1_special;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs1_special = decode_input_payload_rs1_special;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs2_mantissa = decode_mulToAdd_payload_rs2_mantissa;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs2_mantissa = ({2'd0,decode_input_payload_rs2_mantissa} <<< 2'd2);
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs2_exponent = decode_mulToAdd_payload_rs2_exponent;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs2_exponent = decode_input_payload_rs2_exponent;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs2_sign = decode_mulToAdd_payload_rs2_sign;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs2_sign = (decode_input_payload_rs2_sign ^ decode_input_payload_arg[0]);
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rs2_special = decode_mulToAdd_payload_rs2_special;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rs2_special = decode_input_payload_rs2_special;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_rd = decode_mulToAdd_payload_rd;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_rd = decode_input_payload_rd;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_roundMode = decode_mulToAdd_payload_roundMode;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_roundMode = decode_input_payload_roundMode;
+ end
+ end
+
+ always @(*) begin
+ decode_add_payload_needCommit = decode_mulToAdd_payload_needCommit;
+ if(when_FpuCore_l404) begin
+ decode_add_payload_needCommit = 1'b1;
+ end
+ end
+
+ assign when_FpuCore_l404 = (! decode_mulToAdd_valid);
+ assign decode_load_ready = decode_load_rValidN;
+ assign decode_load_s2mPipe_valid = (decode_load_valid || (! decode_load_rValidN));
+ assign _zz_decode_load_s2mPipe_payload_roundMode = (decode_load_rValidN ? decode_load_payload_roundMode : decode_load_rData_roundMode);
+ assign decode_load_s2mPipe_payload_rd = (decode_load_rValidN ? decode_load_payload_rd : decode_load_rData_rd);
+ assign decode_load_s2mPipe_payload_i2f = (decode_load_rValidN ? decode_load_payload_i2f : decode_load_rData_i2f);
+ assign decode_load_s2mPipe_payload_arg = (decode_load_rValidN ? decode_load_payload_arg : decode_load_rData_arg);
+ assign decode_load_s2mPipe_payload_roundMode = _zz_decode_load_s2mPipe_payload_roundMode;
+ always @(*) begin
+ decode_load_s2mPipe_ready = decode_load_s2mPipe_m2sPipe_ready;
+ if(when_Stream_l369_1) begin
+ decode_load_s2mPipe_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_1 = (! decode_load_s2mPipe_m2sPipe_valid);
+ assign decode_load_s2mPipe_m2sPipe_valid = decode_load_s2mPipe_rValid;
+ assign decode_load_s2mPipe_m2sPipe_payload_rd = decode_load_s2mPipe_rData_rd;
+ assign decode_load_s2mPipe_m2sPipe_payload_i2f = decode_load_s2mPipe_rData_i2f;
+ assign decode_load_s2mPipe_m2sPipe_payload_arg = decode_load_s2mPipe_rData_arg;
+ assign decode_load_s2mPipe_m2sPipe_payload_roundMode = decode_load_s2mPipe_rData_roundMode;
+ always @(*) begin
+ decode_load_s2mPipe_m2sPipe_ready = load_s0_input_ready;
+ if(when_Stream_l369_2) begin
+ decode_load_s2mPipe_m2sPipe_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_2 = (! load_s0_input_valid);
+ assign load_s0_input_valid = decode_load_s2mPipe_m2sPipe_rValid;
+ assign load_s0_input_payload_rd = decode_load_s2mPipe_m2sPipe_rData_rd;
+ assign load_s0_input_payload_i2f = decode_load_s2mPipe_m2sPipe_rData_i2f;
+ assign load_s0_input_payload_arg = decode_load_s2mPipe_m2sPipe_rData_arg;
+ assign load_s0_input_payload_roundMode = decode_load_s2mPipe_m2sPipe_rData_roundMode;
+ assign when_Stream_l439 = (! (|{(commitFork_load_0_payload_opcode == FpuOpcode_I2F),{(commitFork_load_0_payload_opcode == FpuOpcode_FMV_W_X),(commitFork_load_0_payload_opcode == FpuOpcode_LOAD)}}));
+ always @(*) begin
+ load_s0_filtred_0_valid = commitFork_load_0_valid;
+ if(when_Stream_l439) begin
+ load_s0_filtred_0_valid = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ commitFork_load_0_ready = load_s0_filtred_0_ready;
+ if(when_Stream_l439) begin
+ commitFork_load_0_ready = 1'b1;
+ end
+ end
+
+ assign load_s0_filtred_0_payload_opcode = commitFork_load_0_payload_opcode;
+ assign load_s0_filtred_0_payload_rd = commitFork_load_0_payload_rd;
+ assign load_s0_filtred_0_payload_write = commitFork_load_0_payload_write;
+ assign load_s0_filtred_0_payload_value = commitFork_load_0_payload_value;
+ assign load_s0_hazard = (! load_s0_filtred_0_valid);
+ assign _zz_load_s0_input_ready = (! load_s0_hazard);
+ assign load_s0_input_ready = (load_s0_output_ready && _zz_load_s0_input_ready);
+ assign load_s0_output_valid = (load_s0_input_valid && _zz_load_s0_input_ready);
+ always @(*) begin
+ load_s0_filtred_0_ready = 1'b0;
+ if(_zz_when[0]) begin
+ load_s0_filtred_0_ready = (load_s0_input_valid && load_s0_output_ready);
+ end
+ end
+
+ assign load_s0_output_payload_rd = load_s0_input_payload_rd;
+ assign load_s0_output_payload_value = load_s0_filtred_0_payload_value;
+ assign load_s0_output_payload_i2f = load_s0_input_payload_i2f;
+ assign load_s0_output_payload_arg = load_s0_input_payload_arg;
+ assign load_s0_output_payload_roundMode = load_s0_input_payload_roundMode;
+ always @(*) begin
+ load_s0_output_ready = load_s1_input_ready;
+ if(when_Stream_l369_3) begin
+ load_s0_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_3 = (! load_s1_input_valid);
+ assign load_s1_input_valid = load_s0_output_rValid;
+ assign load_s1_input_payload_rd = load_s0_output_rData_rd;
+ assign load_s1_input_payload_value = load_s0_output_rData_value;
+ assign load_s1_input_payload_i2f = load_s0_output_rData_i2f;
+ assign load_s1_input_payload_arg = load_s0_output_rData_arg;
+ assign load_s1_input_payload_roundMode = load_s0_output_rData_roundMode;
+ always @(*) begin
+ load_s1_busy = 1'b0;
+ if(when_FpuCore_l529) begin
+ load_s1_busy = 1'b1;
+ end
+ end
+
+ assign load_s1_f32_mantissa = load_s1_input_payload_value[22 : 0];
+ assign load_s1_f32_exponent = load_s1_input_payload_value[30 : 23];
+ assign load_s1_f32_sign = load_s1_input_payload_value[31];
+ assign load_s1_passThroughFloat_special = 1'b0;
+ assign load_s1_passThroughFloat_sign = load_s1_f32_sign;
+ assign load_s1_passThroughFloat_exponent = {1'd0, load_s1_f32_exponent};
+ assign load_s1_passThroughFloat_mantissa = load_s1_f32_mantissa;
+ assign load_s1_recodedExpOffset = 9'h080;
+ assign load_s1_manZero = (load_s1_passThroughFloat_mantissa == 23'h000000);
+ assign load_s1_expZero = (load_s1_passThroughFloat_exponent == 9'h000);
+ assign load_s1_expOne = (&load_s1_passThroughFloat_exponent[7 : 0]);
+ assign load_s1_isZero = (load_s1_expZero && load_s1_manZero);
+ assign load_s1_isSubnormal = (load_s1_expZero && (! load_s1_manZero));
+ assign load_s1_isInfinity = (load_s1_expOne && load_s1_manZero);
+ assign load_s1_isNan = (load_s1_expOne && (! load_s1_manZero));
+ always @(*) begin
+ load_s1_fsm_ohInput = 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
+ if(when_FpuCore_l508) begin
+ load_s1_fsm_ohInput = ({9'd0,load_s1_input_payload_value[22 : 0]} <<< 4'd9);
+ end else begin
+ load_s1_fsm_ohInput[31 : 0] = load_s1_input_payload_value[31 : 0];
+ end
+ end
+
+ assign when_FpuCore_l508 = (! load_s1_input_payload_i2f);
+ always @(*) begin
+ load_s1_fsm_shift_input = 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
+ load_s1_fsm_shift_input = (load_s1_fsm_ohInput <<< 1);
+ end
+
+ assign when_FpuCore_l525 = (! load_s1_fsm_done);
+ assign when_FpuCore_l529 = ((load_s1_input_valid && (load_s1_input_payload_i2f || load_s1_isSubnormal)) && (! load_s1_fsm_done));
+ assign when_FpuCore_l532 = (((load_s1_input_payload_i2f && (! load_s1_fsm_patched)) && load_s1_input_payload_value[31]) && load_s1_input_payload_arg[0]);
+ assign _zz_load_s0_output_rData_value = load_s1_input_payload_value;
+ assign _zz_load_s0_output_rData_value_1 = 1'b1;
+ assign _zz_load_s1_fsm_shift_by = {load_s1_fsm_ohInput[0],{load_s1_fsm_ohInput[1],{load_s1_fsm_ohInput[2],{load_s1_fsm_ohInput[3],{load_s1_fsm_ohInput[4],{load_s1_fsm_ohInput[5],{load_s1_fsm_ohInput[6],{_zz__zz_load_s1_fsm_shift_by,{_zz__zz_load_s1_fsm_shift_by_1,_zz__zz_load_s1_fsm_shift_by_2}}}}}}}}};
+ assign _zz_load_s1_fsm_shift_by_1 = (_zz_load_s1_fsm_shift_by & (~ _zz__zz_load_s1_fsm_shift_by_1_1));
+ assign _zz_load_s1_fsm_shift_by_2 = _zz_load_s1_fsm_shift_by_1[3];
+ assign _zz_load_s1_fsm_shift_by_3 = _zz_load_s1_fsm_shift_by_1[5];
+ assign _zz_load_s1_fsm_shift_by_4 = _zz_load_s1_fsm_shift_by_1[6];
+ assign _zz_load_s1_fsm_shift_by_5 = _zz_load_s1_fsm_shift_by_1[7];
+ assign _zz_load_s1_fsm_shift_by_6 = _zz_load_s1_fsm_shift_by_1[9];
+ assign _zz_load_s1_fsm_shift_by_7 = _zz_load_s1_fsm_shift_by_1[10];
+ assign _zz_load_s1_fsm_shift_by_8 = _zz_load_s1_fsm_shift_by_1[11];
+ assign _zz_load_s1_fsm_shift_by_9 = _zz_load_s1_fsm_shift_by_1[12];
+ assign _zz_load_s1_fsm_shift_by_10 = _zz_load_s1_fsm_shift_by_1[13];
+ assign _zz_load_s1_fsm_shift_by_11 = _zz_load_s1_fsm_shift_by_1[14];
+ assign _zz_load_s1_fsm_shift_by_12 = _zz_load_s1_fsm_shift_by_1[15];
+ assign _zz_load_s1_fsm_shift_by_13 = _zz_load_s1_fsm_shift_by_1[17];
+ assign _zz_load_s1_fsm_shift_by_14 = _zz_load_s1_fsm_shift_by_1[18];
+ assign _zz_load_s1_fsm_shift_by_15 = _zz_load_s1_fsm_shift_by_1[19];
+ assign _zz_load_s1_fsm_shift_by_16 = _zz_load_s1_fsm_shift_by_1[20];
+ assign _zz_load_s1_fsm_shift_by_17 = _zz_load_s1_fsm_shift_by_1[21];
+ assign _zz_load_s1_fsm_shift_by_18 = _zz_load_s1_fsm_shift_by_1[22];
+ assign _zz_load_s1_fsm_shift_by_19 = _zz_load_s1_fsm_shift_by_1[23];
+ assign _zz_load_s1_fsm_shift_by_20 = _zz_load_s1_fsm_shift_by_1[24];
+ assign _zz_load_s1_fsm_shift_by_21 = _zz_load_s1_fsm_shift_by_1[25];
+ assign _zz_load_s1_fsm_shift_by_22 = _zz_load_s1_fsm_shift_by_1[26];
+ assign _zz_load_s1_fsm_shift_by_23 = _zz_load_s1_fsm_shift_by_1[27];
+ assign _zz_load_s1_fsm_shift_by_24 = _zz_load_s1_fsm_shift_by_1[28];
+ assign _zz_load_s1_fsm_shift_by_25 = _zz_load_s1_fsm_shift_by_1[29];
+ assign _zz_load_s1_fsm_shift_by_26 = _zz_load_s1_fsm_shift_by_1[30];
+ assign _zz_load_s1_fsm_shift_by_27 = _zz_load_s1_fsm_shift_by_1[31];
+ assign _zz_load_s1_fsm_shift_by_28 = (((((((((((((((_zz_load_s1_fsm_shift_by_1[1] || _zz_load_s1_fsm_shift_by_2) || _zz_load_s1_fsm_shift_by_3) || _zz_load_s1_fsm_shift_by_5) || _zz_load_s1_fsm_shift_by_6) || _zz_load_s1_fsm_shift_by_8) || _zz_load_s1_fsm_shift_by_10) || _zz_load_s1_fsm_shift_by_12) || _zz_load_s1_fsm_shift_by_13) || _zz_load_s1_fsm_shift_by_15) || _zz_load_s1_fsm_shift_by_17) || _zz_load_s1_fsm_shift_by_19) || _zz_load_s1_fsm_shift_by_21) || _zz_load_s1_fsm_shift_by_23) || _zz_load_s1_fsm_shift_by_25) || _zz_load_s1_fsm_shift_by_27);
+ assign _zz_load_s1_fsm_shift_by_29 = (((((((((((((((_zz_load_s1_fsm_shift_by_1[2] || _zz_load_s1_fsm_shift_by_2) || _zz_load_s1_fsm_shift_by_4) || _zz_load_s1_fsm_shift_by_5) || _zz_load_s1_fsm_shift_by_7) || _zz_load_s1_fsm_shift_by_8) || _zz_load_s1_fsm_shift_by_11) || _zz_load_s1_fsm_shift_by_12) || _zz_load_s1_fsm_shift_by_14) || _zz_load_s1_fsm_shift_by_15) || _zz_load_s1_fsm_shift_by_18) || _zz_load_s1_fsm_shift_by_19) || _zz_load_s1_fsm_shift_by_22) || _zz_load_s1_fsm_shift_by_23) || _zz_load_s1_fsm_shift_by_26) || _zz_load_s1_fsm_shift_by_27);
+ assign _zz_load_s1_fsm_shift_by_30 = (((((((((((((((_zz_load_s1_fsm_shift_by_1[4] || _zz_load_s1_fsm_shift_by_3) || _zz_load_s1_fsm_shift_by_4) || _zz_load_s1_fsm_shift_by_5) || _zz_load_s1_fsm_shift_by_9) || _zz_load_s1_fsm_shift_by_10) || _zz_load_s1_fsm_shift_by_11) || _zz_load_s1_fsm_shift_by_12) || _zz_load_s1_fsm_shift_by_16) || _zz_load_s1_fsm_shift_by_17) || _zz_load_s1_fsm_shift_by_18) || _zz_load_s1_fsm_shift_by_19) || _zz_load_s1_fsm_shift_by_24) || _zz_load_s1_fsm_shift_by_25) || _zz_load_s1_fsm_shift_by_26) || _zz_load_s1_fsm_shift_by_27);
+ assign _zz_load_s1_fsm_shift_by_31 = (((((((((((((((_zz_load_s1_fsm_shift_by_1[8] || _zz_load_s1_fsm_shift_by_6) || _zz_load_s1_fsm_shift_by_7) || _zz_load_s1_fsm_shift_by_8) || _zz_load_s1_fsm_shift_by_9) || _zz_load_s1_fsm_shift_by_10) || _zz_load_s1_fsm_shift_by_11) || _zz_load_s1_fsm_shift_by_12) || _zz_load_s1_fsm_shift_by_20) || _zz_load_s1_fsm_shift_by_21) || _zz_load_s1_fsm_shift_by_22) || _zz_load_s1_fsm_shift_by_23) || _zz_load_s1_fsm_shift_by_24) || _zz_load_s1_fsm_shift_by_25) || _zz_load_s1_fsm_shift_by_26) || _zz_load_s1_fsm_shift_by_27);
+ assign _zz_load_s1_fsm_shift_by_32 = (((((((((((((((_zz_load_s1_fsm_shift_by_1[16] || _zz_load_s1_fsm_shift_by_13) || _zz_load_s1_fsm_shift_by_14) || _zz_load_s1_fsm_shift_by_15) || _zz_load_s1_fsm_shift_by_16) || _zz_load_s1_fsm_shift_by_17) || _zz_load_s1_fsm_shift_by_18) || _zz_load_s1_fsm_shift_by_19) || _zz_load_s1_fsm_shift_by_20) || _zz_load_s1_fsm_shift_by_21) || _zz_load_s1_fsm_shift_by_22) || _zz_load_s1_fsm_shift_by_23) || _zz_load_s1_fsm_shift_by_24) || _zz_load_s1_fsm_shift_by_25) || _zz_load_s1_fsm_shift_by_26) || _zz_load_s1_fsm_shift_by_27);
+ always @(*) begin
+ load_s1_fsm_expOffset = 9'h000;
+ if(load_s1_isSubnormal) begin
+ load_s1_fsm_expOffset = {4'd0, load_s1_fsm_shift_by};
+ end
+ end
+
+ assign load_s1_input_isStall = (load_s1_input_valid && (! load_s1_input_ready));
+ assign when_FpuCore_l551 = (! load_s1_input_isStall);
+ assign load_s1_i2fHigh = load_s1_fsm_shift_output[31 : 8];
+ assign load_s1_i2fLow = load_s1_fsm_shift_output[7 : 0];
+ assign load_s1_scrap = (load_s1_i2fLow != 8'h00);
+ assign load_s1_recoded_mantissa = load_s1_passThroughFloat_mantissa;
+ always @(*) begin
+ load_s1_recoded_exponent = _zz_load_s1_recoded_exponent[8:0];
+ if(load_s1_isZero) begin
+ load_s1_recoded_exponent[1 : 0] = 2'b00;
+ end
+ if(load_s1_isInfinity) begin
+ load_s1_recoded_exponent[1 : 0] = 2'b01;
+ end
+ if(load_s1_isNan) begin
+ load_s1_recoded_exponent[1 : 0] = 2'b10;
+ load_s1_recoded_exponent[2] = 1'b0;
+ end
+ end
+
+ assign load_s1_recoded_sign = load_s1_passThroughFloat_sign;
+ always @(*) begin
+ load_s1_recoded_special = 1'b0;
+ if(load_s1_isZero) begin
+ load_s1_recoded_special = 1'b1;
+ end
+ if(load_s1_isInfinity) begin
+ load_s1_recoded_special = 1'b1;
+ end
+ if(load_s1_isNan) begin
+ load_s1_recoded_special = 1'b1;
+ end
+ end
+
+ assign _zz_load_s1_input_ready = (! load_s1_busy);
+ assign load_s1_input_ready = (load_s1_output_ready && _zz_load_s1_input_ready);
+ assign load_s1_output_valid = (load_s1_input_valid && _zz_load_s1_input_ready);
+ assign load_s1_output_payload_roundMode = load_s1_input_payload_roundMode;
+ assign load_s1_output_payload_rd = load_s1_input_payload_rd;
+ always @(*) begin
+ load_s1_output_payload_value_sign = load_s1_recoded_sign;
+ if(load_s1_input_payload_i2f) begin
+ load_s1_output_payload_value_sign = load_s1_fsm_patched;
+ end
+ end
+
+ always @(*) begin
+ load_s1_output_payload_value_exponent = load_s1_recoded_exponent;
+ if(load_s1_input_payload_i2f) begin
+ load_s1_output_payload_value_exponent = (9'h11e - _zz_load_s1_output_payload_value_exponent);
+ if(load_s1_fsm_i2fZero) begin
+ load_s1_output_payload_value_exponent[1 : 0] = 2'b00;
+ end
+ end
+ end
+
+ always @(*) begin
+ load_s1_output_payload_value_mantissa = {load_s1_recoded_mantissa,1'b0};
+ if(when_FpuCore_l594) begin
+ load_s1_output_payload_value_mantissa = load_s1_i2fHigh;
+ end
+ end
+
+ always @(*) begin
+ load_s1_output_payload_value_special = load_s1_recoded_special;
+ if(load_s1_input_payload_i2f) begin
+ load_s1_output_payload_value_special = 1'b0;
+ if(load_s1_fsm_i2fZero) begin
+ load_s1_output_payload_value_special = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ load_s1_output_payload_scrap = 1'b0;
+ if(load_s1_input_payload_i2f) begin
+ load_s1_output_payload_scrap = load_s1_scrap;
+ end
+ end
+
+ assign load_s1_output_payload_NV = 1'b0;
+ assign load_s1_output_payload_DZ = 1'b0;
+ assign when_FpuCore_l594 = (load_s1_input_payload_i2f || load_s1_isSubnormal);
+ always @(*) begin
+ decode_shortPip_ready = shortPip_input_ready;
+ if(when_Stream_l369_4) begin
+ decode_shortPip_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_4 = (! shortPip_input_valid);
+ assign shortPip_input_valid = decode_shortPip_rValid;
+ assign shortPip_input_payload_opcode = decode_shortPip_rData_opcode;
+ assign shortPip_input_payload_rs1_mantissa = decode_shortPip_rData_rs1_mantissa;
+ assign shortPip_input_payload_rs1_exponent = decode_shortPip_rData_rs1_exponent;
+ assign shortPip_input_payload_rs1_sign = decode_shortPip_rData_rs1_sign;
+ assign shortPip_input_payload_rs1_special = decode_shortPip_rData_rs1_special;
+ assign shortPip_input_payload_rs2_mantissa = decode_shortPip_rData_rs2_mantissa;
+ assign shortPip_input_payload_rs2_exponent = decode_shortPip_rData_rs2_exponent;
+ assign shortPip_input_payload_rs2_sign = decode_shortPip_rData_rs2_sign;
+ assign shortPip_input_payload_rs2_special = decode_shortPip_rData_rs2_special;
+ assign shortPip_input_payload_rd = decode_shortPip_rData_rd;
+ assign shortPip_input_payload_value = decode_shortPip_rData_value;
+ assign shortPip_input_payload_arg = decode_shortPip_rData_arg;
+ assign shortPip_input_payload_roundMode = decode_shortPip_rData_roundMode;
+ assign shortPip_toFpuRf = (|{(shortPip_input_payload_opcode == FpuOpcode_FCVT_X_X),{(shortPip_input_payload_opcode == FpuOpcode_SGNJ),(shortPip_input_payload_opcode == FpuOpcode_MIN_MAX)}});
+ assign shortPip_input_fire = (shortPip_input_valid && shortPip_input_ready);
+ assign when_FpuCore_l221 = ((shortPip_input_fire && shortPip_toFpuRf) && 1'b1);
+ assign shortPip_isCommited = commitLogic_0_short_notEmpty;
+ assign _zz_shortPip_rfOutput_ready = (! (! shortPip_isCommited));
+ assign shortPip_output_valid = (shortPip_rfOutput_valid && _zz_shortPip_rfOutput_ready);
+ assign shortPip_rfOutput_ready = (shortPip_output_ready && _zz_shortPip_rfOutput_ready);
+ assign shortPip_output_payload_rd = shortPip_rfOutput_payload_rd;
+ assign shortPip_output_payload_value_mantissa = shortPip_rfOutput_payload_value_mantissa;
+ assign shortPip_output_payload_value_exponent = shortPip_rfOutput_payload_value_exponent;
+ assign shortPip_output_payload_value_sign = shortPip_rfOutput_payload_value_sign;
+ assign shortPip_output_payload_value_special = shortPip_rfOutput_payload_value_special;
+ assign shortPip_output_payload_scrap = shortPip_rfOutput_payload_scrap;
+ assign shortPip_output_payload_roundMode = shortPip_rfOutput_payload_roundMode;
+ assign shortPip_output_payload_NV = shortPip_rfOutput_payload_NV;
+ assign shortPip_output_payload_DZ = shortPip_rfOutput_payload_DZ;
+ always @(*) begin
+ shortPip_result = 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_STORE : begin
+ shortPip_result = shortPip_recodedResult;
+ end
+ FpuOpcode_FMV_X_W : begin
+ shortPip_result = shortPip_recodedResult;
+ end
+ FpuOpcode_F2I : begin
+ shortPip_result[31 : 0] = shortPip_f2i_result;
+ end
+ FpuOpcode_CMP : begin
+ shortPip_result[31 : 0] = {31'd0, shortPip_cmpResult};
+ end
+ FpuOpcode_FCLASS : begin
+ shortPip_result[31 : 0] = shortPip_fclassResult;
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ shortPip_halt = 1'b0;
+ if(when_FpuCore_l658) begin
+ shortPip_halt = 1'b1;
+ end
+ end
+
+ assign shortPip_f32_exp = _zz_shortPip_f32_exp[7:0];
+ assign shortPip_f32_man = shortPip_input_payload_rs1_mantissa[22 : 0];
+ always @(*) begin
+ shortPip_recodedResult = {{shortPip_input_payload_rs1_sign,shortPip_f32_exp},shortPip_f32_man};
+ if(shortPip_isSubnormal) begin
+ shortPip_recodedResult[22 : 0] = shortPip_fsm_shift_output[22 : 0];
+ end
+ if(shortPip_mantissaForced) begin
+ shortPip_recodedResult[22 : 0] = (shortPip_mantissaForcedValue ? 23'h7fffff : 23'h000000);
+ end
+ if(shortPip_exponentForced) begin
+ shortPip_recodedResult[30 : 23] = (shortPip_exponentForcedValue ? 8'hff : 8'h00);
+ end
+ if(shortPip_cononicalForced) begin
+ shortPip_recodedResult[31] = 1'b0;
+ shortPip_recodedResult[22] = 1'b1;
+ end
+ end
+
+ assign shortPip_expSubnormalThreshold = 8'h80;
+ assign shortPip_expInSubnormalRange = (shortPip_input_payload_rs1_exponent <= _zz_shortPip_expInSubnormalRange);
+ assign shortPip_isSubnormal = ((! shortPip_input_payload_rs1_special) && shortPip_expInSubnormalRange);
+ assign shortPip_isNormal = ((! shortPip_input_payload_rs1_special) && (! shortPip_expInSubnormalRange));
+ assign shortPip_fsm_f2iShift = (shortPip_input_payload_rs1_exponent - 9'h0ff);
+ assign shortPip_fsm_isF2i = (shortPip_input_payload_opcode == FpuOpcode_F2I);
+ assign shortPip_fsm_needRecoding = ((|{(shortPip_input_payload_opcode == FpuOpcode_STORE),(shortPip_input_payload_opcode == FpuOpcode_FMV_X_W)}) && shortPip_isSubnormal);
+ assign shortPip_fsm_isZero = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b00));
+ always @(*) begin
+ shortPip_fsm_shift_input = 33'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
+ shortPip_fsm_shift_input = ({9'd0,{(! shortPip_fsm_isZero),shortPip_input_payload_rs1_mantissa}} <<< 4'd9);
+ end
+
+ assign when_FpuCore_l646 = (shortPip_fsm_shift_by[5] && (shortPip_fsm_shift_input[31 : 0] != 32'h00000000));
+ assign when_FpuCore_l646_1 = (shortPip_fsm_shift_by[4] && (shortPip_fsm_shift_input_1[15 : 0] != 16'h0000));
+ assign when_FpuCore_l646_2 = (shortPip_fsm_shift_by[3] && (shortPip_fsm_shift_input_2[7 : 0] != 8'h00));
+ assign when_FpuCore_l646_3 = (shortPip_fsm_shift_by[2] && (shortPip_fsm_shift_input_3[3 : 0] != 4'b0000));
+ assign when_FpuCore_l646_4 = (shortPip_fsm_shift_by[1] && (shortPip_fsm_shift_input_4[1 : 0] != 2'b00));
+ assign when_FpuCore_l646_5 = (shortPip_fsm_shift_by[0] && (shortPip_fsm_shift_input_5[0 : 0] != 1'b0));
+ assign when_FpuCore_l652 = (! shortPip_fsm_done);
+ assign shortPip_fsm_formatShiftOffset = 8'h8a;
+ assign when_FpuCore_l658 = ((shortPip_input_valid && (shortPip_fsm_needRecoding || shortPip_fsm_isF2i)) && (! shortPip_fsm_done));
+ assign _zz_shortPip_fsm_shift_by = (9'h11e - shortPip_input_payload_rs1_exponent);
+ assign _zz_shortPip_fsm_shift_by_1 = 6'h21;
+ assign shortPip_input_isStall = (shortPip_input_valid && (! shortPip_input_ready));
+ assign when_FpuCore_l672 = (! shortPip_input_isStall);
+ always @(*) begin
+ shortPip_mantissaForced = 1'b0;
+ if(shortPip_input_payload_rs1_special) begin
+ case(switch_FpuCore_l686)
+ 2'b00 : begin
+ shortPip_mantissaForced = 1'b1;
+ end
+ 2'b01 : begin
+ shortPip_mantissaForced = 1'b1;
+ end
+ 2'b10 : begin
+ if(when_FpuCore_l702) begin
+ shortPip_mantissaForced = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ always @(*) begin
+ shortPip_exponentForced = 1'b0;
+ if(shortPip_input_payload_rs1_special) begin
+ case(switch_FpuCore_l686)
+ 2'b00 : begin
+ shortPip_exponentForced = 1'b1;
+ end
+ 2'b01 : begin
+ shortPip_exponentForced = 1'b1;
+ end
+ 2'b10 : begin
+ shortPip_exponentForced = 1'b1;
+ end
+ default : begin
+ end
+ endcase
+ end
+ if(shortPip_isSubnormal) begin
+ shortPip_exponentForced = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ shortPip_mantissaForcedValue = 1'bx;
+ if(shortPip_input_payload_rs1_special) begin
+ case(switch_FpuCore_l686)
+ 2'b00 : begin
+ shortPip_mantissaForcedValue = 1'b0;
+ end
+ 2'b01 : begin
+ shortPip_mantissaForcedValue = 1'b0;
+ end
+ 2'b10 : begin
+ if(when_FpuCore_l702) begin
+ shortPip_mantissaForcedValue = 1'b0;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ always @(*) begin
+ shortPip_exponentForcedValue = 1'bx;
+ if(shortPip_input_payload_rs1_special) begin
+ case(switch_FpuCore_l686)
+ 2'b00 : begin
+ shortPip_exponentForcedValue = 1'b0;
+ end
+ 2'b01 : begin
+ shortPip_exponentForcedValue = 1'b1;
+ end
+ 2'b10 : begin
+ shortPip_exponentForcedValue = 1'b1;
+ end
+ default : begin
+ end
+ endcase
+ end
+ if(shortPip_isSubnormal) begin
+ shortPip_exponentForcedValue = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ shortPip_cononicalForced = 1'b0;
+ if(shortPip_input_payload_rs1_special) begin
+ case(switch_FpuCore_l686)
+ 2'b10 : begin
+ if(when_FpuCore_l702) begin
+ shortPip_cononicalForced = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+ end
+
+ assign switch_FpuCore_l686 = shortPip_input_payload_rs1_exponent[1 : 0];
+ assign when_FpuCore_l702 = shortPip_input_payload_rs1_exponent[2];
+ always @(*) begin
+ shortPip_rspNv = 1'b0;
+ if(!shortPip_f2i_isZero) begin
+ if(when_FpuCore_l767) begin
+ shortPip_rspNv = (((shortPip_input_valid && (shortPip_input_payload_opcode == FpuOpcode_F2I)) && shortPip_fsm_done) && (! shortPip_f2i_isZero));
+ end
+ end
+ if(shortPip_NV) begin
+ shortPip_rspNv = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ shortPip_rspNx = 1'b0;
+ if(!shortPip_f2i_isZero) begin
+ if(!when_FpuCore_l767) begin
+ shortPip_rspNx = (((shortPip_input_valid && (shortPip_input_payload_opcode == FpuOpcode_F2I)) && shortPip_fsm_done) && (shortPip_f2i_round != 2'b00));
+ end
+ end
+ end
+
+ assign shortPip_f2i_unsigned = (shortPip_fsm_shift_output[32 : 0] >>> 1'd1);
+ assign shortPip_f2i_resign = (shortPip_input_payload_arg[0] && shortPip_input_payload_rs1_sign);
+ assign shortPip_f2i_round = {shortPip_fsm_shift_output[0],shortPip_fsm_shift_scrap};
+ always @(*) begin
+ case(shortPip_input_payload_roundMode)
+ FpuRoundMode_RNE : begin
+ shortPip_f2i_increment = (shortPip_f2i_round[1] && (shortPip_f2i_round[0] || shortPip_f2i_unsigned[0]));
+ end
+ FpuRoundMode_RTZ : begin
+ shortPip_f2i_increment = 1'b0;
+ end
+ FpuRoundMode_RDN : begin
+ shortPip_f2i_increment = ((shortPip_f2i_round != 2'b00) && shortPip_input_payload_rs1_sign);
+ end
+ FpuRoundMode_RUP : begin
+ shortPip_f2i_increment = ((shortPip_f2i_round != 2'b00) && (! shortPip_input_payload_rs1_sign));
+ end
+ default : begin
+ shortPip_f2i_increment = shortPip_f2i_round[1];
+ end
+ endcase
+ end
+
+ always @(*) begin
+ shortPip_f2i_result = ((shortPip_f2i_resign ? (~ shortPip_f2i_unsigned) : shortPip_f2i_unsigned) + _zz_shortPip_f2i_result);
+ if(shortPip_f2i_isZero) begin
+ shortPip_f2i_result = 32'h00000000;
+ end else begin
+ if(when_FpuCore_l767) begin
+ shortPip_f2i_result = (shortPip_f2i_overflow ? 32'hffffffff : 32'h00000000);
+ shortPip_f2i_result[31] = (shortPip_input_payload_arg[0] ^ shortPip_f2i_overflow);
+ end
+ end
+ end
+
+ assign shortPip_f2i_overflow = (((((shortPip_input_payload_arg[0] ? 9'h11d : 9'h11e) < shortPip_input_payload_rs1_exponent) || (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b01))) && (! shortPip_input_payload_rs1_sign)) || (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)));
+ assign shortPip_f2i_underflow = (((((9'h11e < shortPip_input_payload_rs1_exponent) || ((shortPip_input_payload_arg[0] && shortPip_f2i_unsigned[31]) && ((_zz_shortPip_f2i_underflow != _zz_shortPip_f2i_underflow_1) || shortPip_f2i_increment))) || ((! shortPip_input_payload_arg[0]) && ((shortPip_f2i_unsigned != 32'h00000000) || shortPip_f2i_increment))) || (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b01))) && shortPip_input_payload_rs1_sign);
+ assign shortPip_f2i_isZero = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b00));
+ assign when_FpuCore_l767 = (shortPip_f2i_underflow || shortPip_f2i_overflow);
+ assign shortPip_bothZero = ((shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b00)) && (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b00)));
+ always @(*) begin
+ shortPip_rs1Equal = ((((shortPip_input_payload_rs1_mantissa == shortPip_input_payload_rs2_mantissa) && (shortPip_input_payload_rs1_exponent == shortPip_input_payload_rs2_exponent)) && (shortPip_input_payload_rs1_sign == shortPip_input_payload_rs2_sign)) && (shortPip_input_payload_rs1_special == shortPip_input_payload_rs2_special));
+ if(when_FpuCore_l784) begin
+ shortPip_rs1Equal = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ shortPip_rs1AbsSmaller = ({shortPip_input_payload_rs1_exponent,shortPip_input_payload_rs1_mantissa} < {shortPip_input_payload_rs2_exponent,shortPip_input_payload_rs2_mantissa});
+ if(when_FpuCore_l780) begin
+ shortPip_rs1AbsSmaller = 1'b1;
+ end
+ if(when_FpuCore_l781) begin
+ shortPip_rs1AbsSmaller = 1'b1;
+ end
+ if(when_FpuCore_l782) begin
+ shortPip_rs1AbsSmaller = 1'b0;
+ end
+ if(when_FpuCore_l783) begin
+ shortPip_rs1AbsSmaller = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l780 = (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b01));
+ assign when_FpuCore_l781 = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b00));
+ assign when_FpuCore_l782 = (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b00));
+ assign when_FpuCore_l783 = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b01));
+ assign when_FpuCore_l784 = (((shortPip_input_payload_rs1_sign == shortPip_input_payload_rs2_sign) && (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b01))) && (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b01)));
+ assign switch_Misc_l241 = {shortPip_input_payload_rs1_sign,shortPip_input_payload_rs2_sign};
+ always @(*) begin
+ case(switch_Misc_l241)
+ 2'b00 : begin
+ shortPip_rs1Smaller = shortPip_rs1AbsSmaller;
+ end
+ 2'b01 : begin
+ shortPip_rs1Smaller = 1'b0;
+ end
+ 2'b10 : begin
+ shortPip_rs1Smaller = 1'b1;
+ end
+ default : begin
+ shortPip_rs1Smaller = ((! shortPip_rs1AbsSmaller) && (! shortPip_rs1Equal));
+ end
+ endcase
+ end
+
+ assign shortPip_minMaxSelectRs2 = (! (((shortPip_rs1Smaller ^ shortPip_input_payload_arg[0]) && (! (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)))) || (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b10))));
+ assign shortPip_minMaxSelectNanQuiet = ((shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)) && (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b10)));
+ always @(*) begin
+ shortPip_cmpResult = (((shortPip_rs1Smaller && (! shortPip_bothZero)) && (! shortPip_input_payload_arg[1])) || ((shortPip_rs1Equal || shortPip_bothZero) && (! shortPip_input_payload_arg[0])));
+ if(when_FpuCore_l796) begin
+ shortPip_cmpResult = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l796 = ((shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)) || (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b10)));
+ assign shortPip_sgnjRs1Sign = shortPip_input_payload_rs1_sign;
+ assign shortPip_sgnjRs2Sign = shortPip_input_payload_rs2_sign;
+ assign shortPip_sgnjResult = (((shortPip_sgnjRs1Sign && shortPip_input_payload_arg[1]) ^ shortPip_sgnjRs2Sign) ^ shortPip_input_payload_arg[0]);
+ always @(*) begin
+ shortPip_fclassResult = 32'h00000000;
+ shortPip_fclassResult[0] = (shortPip_input_payload_rs1_sign && shortPip_decoded_isInfinity);
+ shortPip_fclassResult[1] = (shortPip_input_payload_rs1_sign && shortPip_isNormal);
+ shortPip_fclassResult[2] = (shortPip_input_payload_rs1_sign && shortPip_isSubnormal);
+ shortPip_fclassResult[3] = (shortPip_input_payload_rs1_sign && shortPip_decoded_isZero);
+ shortPip_fclassResult[4] = ((! shortPip_input_payload_rs1_sign) && shortPip_decoded_isZero);
+ shortPip_fclassResult[5] = ((! shortPip_input_payload_rs1_sign) && shortPip_isSubnormal);
+ shortPip_fclassResult[6] = ((! shortPip_input_payload_rs1_sign) && shortPip_isNormal);
+ shortPip_fclassResult[7] = ((! shortPip_input_payload_rs1_sign) && shortPip_decoded_isInfinity);
+ shortPip_fclassResult[8] = (shortPip_decoded_isNan && (! shortPip_decoded_isQuiet));
+ shortPip_fclassResult[9] = (shortPip_decoded_isNan && shortPip_decoded_isQuiet);
+ end
+
+ assign shortPip_decoded_isZero = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b00));
+ assign shortPip_decoded_isNormal = (! shortPip_input_payload_rs1_special);
+ assign shortPip_decoded_isInfinity = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b01));
+ assign shortPip_decoded_isNan = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10));
+ assign shortPip_decoded_isQuiet = shortPip_input_payload_rs1_mantissa[22];
+ assign shortPip_rfOutput_valid = ((shortPip_input_valid && shortPip_toFpuRf) && (! shortPip_halt));
+ assign shortPip_rfOutput_payload_rd = shortPip_input_payload_rd;
+ assign shortPip_rfOutput_payload_roundMode = shortPip_input_payload_roundMode;
+ assign shortPip_rfOutput_payload_scrap = 1'b0;
+ always @(*) begin
+ shortPip_rfOutput_payload_value_sign = shortPip_input_payload_rs1_sign;
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_MIN_MAX : begin
+ if(shortPip_minMaxSelectRs2) begin
+ shortPip_rfOutput_payload_value_sign = shortPip_input_payload_rs2_sign;
+ end
+ end
+ FpuOpcode_SGNJ : begin
+ if(when_FpuCore_l850) begin
+ shortPip_rfOutput_payload_value_sign = shortPip_sgnjResult;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ shortPip_rfOutput_payload_value_exponent = shortPip_input_payload_rs1_exponent;
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_MIN_MAX : begin
+ if(shortPip_minMaxSelectRs2) begin
+ shortPip_rfOutput_payload_value_exponent = shortPip_input_payload_rs2_exponent;
+ end
+ if(shortPip_minMaxSelectNanQuiet) begin
+ shortPip_rfOutput_payload_value_exponent[1 : 0] = 2'b10;
+ shortPip_rfOutput_payload_value_exponent[2] = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ shortPip_rfOutput_payload_value_mantissa = {shortPip_input_payload_rs1_mantissa,1'b0};
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_MIN_MAX : begin
+ if(shortPip_minMaxSelectRs2) begin
+ shortPip_rfOutput_payload_value_mantissa = {shortPip_input_payload_rs2_mantissa,1'b0};
+ end
+ if(shortPip_minMaxSelectNanQuiet) begin
+ shortPip_rfOutput_payload_value_mantissa[23] = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ always @(*) begin
+ shortPip_rfOutput_payload_value_special = shortPip_input_payload_rs1_special;
+ case(shortPip_input_payload_opcode)
+ FpuOpcode_MIN_MAX : begin
+ if(shortPip_minMaxSelectRs2) begin
+ shortPip_rfOutput_payload_value_special = shortPip_input_payload_rs2_special;
+ end
+ if(shortPip_minMaxSelectNanQuiet) begin
+ shortPip_rfOutput_payload_value_special = 1'b1;
+ end
+ end
+ default : begin
+ end
+ endcase
+ end
+
+ assign when_FpuCore_l850 = (! (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)));
+ assign shortPip_signalQuiet = ((shortPip_input_payload_opcode == FpuOpcode_CMP) && (shortPip_input_payload_arg != 2'b10));
+ assign shortPip_rs1Nan = (shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10));
+ assign shortPip_rs2Nan = (shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b10));
+ assign shortPip_rs1NanNv = ((shortPip_input_payload_rs1_special && (shortPip_input_payload_rs1_exponent[1 : 0] == 2'b10)) && ((! shortPip_input_payload_rs1_mantissa[22]) || shortPip_signalQuiet));
+ assign shortPip_rs2NanNv = ((shortPip_input_payload_rs2_special && (shortPip_input_payload_rs2_exponent[1 : 0] == 2'b10)) && ((! shortPip_input_payload_rs2_mantissa[22]) || shortPip_signalQuiet));
+ assign shortPip_NV = (((|{(shortPip_input_payload_opcode == FpuOpcode_FCVT_X_X),{(shortPip_input_payload_opcode == FpuOpcode_MIN_MAX),(shortPip_input_payload_opcode == FpuOpcode_CMP)}}) && shortPip_rs1NanNv) || ((|{(shortPip_input_payload_opcode == FpuOpcode_MIN_MAX),(shortPip_input_payload_opcode == FpuOpcode_CMP)}) && shortPip_rs2NanNv));
+ assign shortPip_input_ready = ((! shortPip_halt) && (shortPip_toFpuRf ? shortPip_rfOutput_ready : shortPip_rspStreams_0_ready));
+ assign shortPip_rspStreams_0_valid = (((shortPip_input_valid && 1'b1) && (! shortPip_toFpuRf)) && (! shortPip_halt));
+ assign shortPip_rspStreams_0_payload_value = shortPip_result;
+ assign shortPip_rspStreams_0_payload_NV = shortPip_rspNv;
+ assign shortPip_rspStreams_0_payload_NX = shortPip_rspNx;
+ always @(*) begin
+ shortPip_rspStreams_0_ready = shortPip_rspStreams_0_m2sPipe_ready;
+ if(when_Stream_l369_5) begin
+ shortPip_rspStreams_0_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_5 = (! shortPip_rspStreams_0_m2sPipe_valid);
+ assign shortPip_rspStreams_0_m2sPipe_valid = shortPip_rspStreams_0_rValid;
+ assign shortPip_rspStreams_0_m2sPipe_payload_value = shortPip_rspStreams_0_rData_value;
+ assign shortPip_rspStreams_0_m2sPipe_payload_NV = shortPip_rspStreams_0_rData_NV;
+ assign shortPip_rspStreams_0_m2sPipe_payload_NX = shortPip_rspStreams_0_rData_NX;
+ assign io_port_0_rsp_valid = shortPip_rspStreams_0_m2sPipe_valid;
+ assign shortPip_rspStreams_0_m2sPipe_ready = io_port_0_rsp_ready;
+ assign io_port_0_rsp_payload_value = shortPip_rspStreams_0_m2sPipe_payload_value;
+ assign io_port_0_rsp_payload_NV = shortPip_rspStreams_0_m2sPipe_payload_NV;
+ assign io_port_0_rsp_payload_NX = shortPip_rspStreams_0_m2sPipe_payload_NX;
+ assign shortPip_rfOutput_payload_NV = shortPip_NV;
+ assign shortPip_rfOutput_payload_DZ = 1'b0;
+ always @(*) begin
+ decode_mul_ready = mul_preMul_input_ready;
+ if(when_Stream_l369_6) begin
+ decode_mul_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_6 = (! mul_preMul_input_valid);
+ assign mul_preMul_input_valid = decode_mul_rValid;
+ assign mul_preMul_input_payload_rs1_mantissa = decode_mul_rData_rs1_mantissa;
+ assign mul_preMul_input_payload_rs1_exponent = decode_mul_rData_rs1_exponent;
+ assign mul_preMul_input_payload_rs1_sign = decode_mul_rData_rs1_sign;
+ assign mul_preMul_input_payload_rs1_special = decode_mul_rData_rs1_special;
+ assign mul_preMul_input_payload_rs2_mantissa = decode_mul_rData_rs2_mantissa;
+ assign mul_preMul_input_payload_rs2_exponent = decode_mul_rData_rs2_exponent;
+ assign mul_preMul_input_payload_rs2_sign = decode_mul_rData_rs2_sign;
+ assign mul_preMul_input_payload_rs2_special = decode_mul_rData_rs2_special;
+ assign mul_preMul_input_payload_rs3_mantissa = decode_mul_rData_rs3_mantissa;
+ assign mul_preMul_input_payload_rs3_exponent = decode_mul_rData_rs3_exponent;
+ assign mul_preMul_input_payload_rs3_sign = decode_mul_rData_rs3_sign;
+ assign mul_preMul_input_payload_rs3_special = decode_mul_rData_rs3_special;
+ assign mul_preMul_input_payload_rd = decode_mul_rData_rd;
+ assign mul_preMul_input_payload_add = decode_mul_rData_add;
+ assign mul_preMul_input_payload_divSqrt = decode_mul_rData_divSqrt;
+ assign mul_preMul_input_payload_msb1 = decode_mul_rData_msb1;
+ assign mul_preMul_input_payload_msb2 = decode_mul_rData_msb2;
+ assign mul_preMul_input_payload_roundMode = decode_mul_rData_roundMode;
+ assign mul_preMul_output_valid = mul_preMul_input_valid;
+ assign mul_preMul_input_ready = mul_preMul_output_ready;
+ assign mul_preMul_output_payload_rs1_mantissa = mul_preMul_input_payload_rs1_mantissa;
+ assign mul_preMul_output_payload_rs1_exponent = mul_preMul_input_payload_rs1_exponent;
+ assign mul_preMul_output_payload_rs1_sign = mul_preMul_input_payload_rs1_sign;
+ assign mul_preMul_output_payload_rs1_special = mul_preMul_input_payload_rs1_special;
+ assign mul_preMul_output_payload_rs2_mantissa = mul_preMul_input_payload_rs2_mantissa;
+ assign mul_preMul_output_payload_rs2_exponent = mul_preMul_input_payload_rs2_exponent;
+ assign mul_preMul_output_payload_rs2_sign = mul_preMul_input_payload_rs2_sign;
+ assign mul_preMul_output_payload_rs2_special = mul_preMul_input_payload_rs2_special;
+ assign mul_preMul_output_payload_rs3_mantissa = mul_preMul_input_payload_rs3_mantissa;
+ assign mul_preMul_output_payload_rs3_exponent = mul_preMul_input_payload_rs3_exponent;
+ assign mul_preMul_output_payload_rs3_sign = mul_preMul_input_payload_rs3_sign;
+ assign mul_preMul_output_payload_rs3_special = mul_preMul_input_payload_rs3_special;
+ assign mul_preMul_output_payload_rd = mul_preMul_input_payload_rd;
+ assign mul_preMul_output_payload_add = mul_preMul_input_payload_add;
+ assign mul_preMul_output_payload_divSqrt = mul_preMul_input_payload_divSqrt;
+ assign mul_preMul_output_payload_msb1 = mul_preMul_input_payload_msb1;
+ assign mul_preMul_output_payload_msb2 = mul_preMul_input_payload_msb2;
+ assign mul_preMul_output_payload_roundMode = mul_preMul_input_payload_roundMode;
+ assign mul_preMul_output_payload_exp = ({1'b0,mul_preMul_input_payload_rs1_exponent} + {1'b0,mul_preMul_input_payload_rs2_exponent});
+ always @(*) begin
+ mul_preMul_output_ready = mul_mul_input_ready;
+ if(when_Stream_l369_7) begin
+ mul_preMul_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_7 = (! mul_mul_input_valid);
+ assign mul_mul_input_valid = mul_preMul_output_rValid;
+ assign mul_mul_input_payload_rs1_mantissa = mul_preMul_output_rData_rs1_mantissa;
+ assign mul_mul_input_payload_rs1_exponent = mul_preMul_output_rData_rs1_exponent;
+ assign mul_mul_input_payload_rs1_sign = mul_preMul_output_rData_rs1_sign;
+ assign mul_mul_input_payload_rs1_special = mul_preMul_output_rData_rs1_special;
+ assign mul_mul_input_payload_rs2_mantissa = mul_preMul_output_rData_rs2_mantissa;
+ assign mul_mul_input_payload_rs2_exponent = mul_preMul_output_rData_rs2_exponent;
+ assign mul_mul_input_payload_rs2_sign = mul_preMul_output_rData_rs2_sign;
+ assign mul_mul_input_payload_rs2_special = mul_preMul_output_rData_rs2_special;
+ assign mul_mul_input_payload_rs3_mantissa = mul_preMul_output_rData_rs3_mantissa;
+ assign mul_mul_input_payload_rs3_exponent = mul_preMul_output_rData_rs3_exponent;
+ assign mul_mul_input_payload_rs3_sign = mul_preMul_output_rData_rs3_sign;
+ assign mul_mul_input_payload_rs3_special = mul_preMul_output_rData_rs3_special;
+ assign mul_mul_input_payload_rd = mul_preMul_output_rData_rd;
+ assign mul_mul_input_payload_add = mul_preMul_output_rData_add;
+ assign mul_mul_input_payload_divSqrt = mul_preMul_output_rData_divSqrt;
+ assign mul_mul_input_payload_msb1 = mul_preMul_output_rData_msb1;
+ assign mul_mul_input_payload_msb2 = mul_preMul_output_rData_msb2;
+ assign mul_mul_input_payload_roundMode = mul_preMul_output_rData_roundMode;
+ assign mul_mul_input_payload_exp = mul_preMul_output_rData_exp;
+ assign mul_mul_output_valid = mul_mul_input_valid;
+ assign mul_mul_input_ready = mul_mul_output_ready;
+ assign mul_mul_mulA = {mul_mul_input_payload_msb1,mul_mul_input_payload_rs1_mantissa};
+ assign mul_mul_mulB = {mul_mul_input_payload_msb2,mul_mul_input_payload_rs2_mantissa};
+ assign mul_mul_output_payload_rs1_mantissa = mul_mul_input_payload_rs1_mantissa;
+ assign mul_mul_output_payload_rs1_exponent = mul_mul_input_payload_rs1_exponent;
+ assign mul_mul_output_payload_rs1_sign = mul_mul_input_payload_rs1_sign;
+ assign mul_mul_output_payload_rs1_special = mul_mul_input_payload_rs1_special;
+ assign mul_mul_output_payload_rs2_mantissa = mul_mul_input_payload_rs2_mantissa;
+ assign mul_mul_output_payload_rs2_exponent = mul_mul_input_payload_rs2_exponent;
+ assign mul_mul_output_payload_rs2_sign = mul_mul_input_payload_rs2_sign;
+ assign mul_mul_output_payload_rs2_special = mul_mul_input_payload_rs2_special;
+ assign mul_mul_output_payload_rs3_mantissa = mul_mul_input_payload_rs3_mantissa;
+ assign mul_mul_output_payload_rs3_exponent = mul_mul_input_payload_rs3_exponent;
+ assign mul_mul_output_payload_rs3_sign = mul_mul_input_payload_rs3_sign;
+ assign mul_mul_output_payload_rs3_special = mul_mul_input_payload_rs3_special;
+ assign mul_mul_output_payload_rd = mul_mul_input_payload_rd;
+ assign mul_mul_output_payload_add = mul_mul_input_payload_add;
+ assign mul_mul_output_payload_divSqrt = mul_mul_input_payload_divSqrt;
+ assign mul_mul_output_payload_msb1 = mul_mul_input_payload_msb1;
+ assign mul_mul_output_payload_msb2 = mul_mul_input_payload_msb2;
+ assign mul_mul_output_payload_roundMode = mul_mul_input_payload_roundMode;
+ assign mul_mul_output_payload_exp = mul_mul_input_payload_exp;
+ assign mul_mul_output_payload_muls_0 = (mul_mul_mulA[16 : 0] * mul_mul_mulB[16 : 0]);
+ assign mul_mul_output_payload_muls_1 = (mul_mul_mulA[16 : 0] * mul_mul_mulB[23 : 17]);
+ assign mul_mul_output_payload_muls_2 = (mul_mul_mulA[23 : 17] * mul_mul_mulB[16 : 0]);
+ assign mul_mul_output_payload_muls_3 = (mul_mul_mulA[23 : 17] * mul_mul_mulB[23 : 17]);
+ always @(*) begin
+ mul_mul_output_ready = mul_sum1_input_ready;
+ if(when_Stream_l369_8) begin
+ mul_mul_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_8 = (! mul_sum1_input_valid);
+ assign mul_sum1_input_valid = mul_mul_output_rValid;
+ assign mul_sum1_input_payload_rs1_mantissa = mul_mul_output_rData_rs1_mantissa;
+ assign mul_sum1_input_payload_rs1_exponent = mul_mul_output_rData_rs1_exponent;
+ assign mul_sum1_input_payload_rs1_sign = mul_mul_output_rData_rs1_sign;
+ assign mul_sum1_input_payload_rs1_special = mul_mul_output_rData_rs1_special;
+ assign mul_sum1_input_payload_rs2_mantissa = mul_mul_output_rData_rs2_mantissa;
+ assign mul_sum1_input_payload_rs2_exponent = mul_mul_output_rData_rs2_exponent;
+ assign mul_sum1_input_payload_rs2_sign = mul_mul_output_rData_rs2_sign;
+ assign mul_sum1_input_payload_rs2_special = mul_mul_output_rData_rs2_special;
+ assign mul_sum1_input_payload_rs3_mantissa = mul_mul_output_rData_rs3_mantissa;
+ assign mul_sum1_input_payload_rs3_exponent = mul_mul_output_rData_rs3_exponent;
+ assign mul_sum1_input_payload_rs3_sign = mul_mul_output_rData_rs3_sign;
+ assign mul_sum1_input_payload_rs3_special = mul_mul_output_rData_rs3_special;
+ assign mul_sum1_input_payload_rd = mul_mul_output_rData_rd;
+ assign mul_sum1_input_payload_add = mul_mul_output_rData_add;
+ assign mul_sum1_input_payload_divSqrt = mul_mul_output_rData_divSqrt;
+ assign mul_sum1_input_payload_msb1 = mul_mul_output_rData_msb1;
+ assign mul_sum1_input_payload_msb2 = mul_mul_output_rData_msb2;
+ assign mul_sum1_input_payload_roundMode = mul_mul_output_rData_roundMode;
+ assign mul_sum1_input_payload_exp = mul_mul_output_rData_exp;
+ assign mul_sum1_input_payload_muls_0 = mul_mul_output_rData_muls_0;
+ assign mul_sum1_input_payload_muls_1 = mul_mul_output_rData_muls_1;
+ assign mul_sum1_input_payload_muls_2 = mul_mul_output_rData_muls_2;
+ assign mul_sum1_input_payload_muls_3 = mul_mul_output_rData_muls_3;
+ assign mul_sum1_sum = (_zz_mul_sum1_sum + _zz_mul_sum1_sum_1);
+ assign mul_sum1_output_valid = mul_sum1_input_valid;
+ assign mul_sum1_input_ready = mul_sum1_output_ready;
+ assign mul_sum1_output_payload_rs1_mantissa = mul_sum1_input_payload_rs1_mantissa;
+ assign mul_sum1_output_payload_rs1_exponent = mul_sum1_input_payload_rs1_exponent;
+ assign mul_sum1_output_payload_rs1_sign = mul_sum1_input_payload_rs1_sign;
+ assign mul_sum1_output_payload_rs1_special = mul_sum1_input_payload_rs1_special;
+ assign mul_sum1_output_payload_rs2_mantissa = mul_sum1_input_payload_rs2_mantissa;
+ assign mul_sum1_output_payload_rs2_exponent = mul_sum1_input_payload_rs2_exponent;
+ assign mul_sum1_output_payload_rs2_sign = mul_sum1_input_payload_rs2_sign;
+ assign mul_sum1_output_payload_rs2_special = mul_sum1_input_payload_rs2_special;
+ assign mul_sum1_output_payload_rs3_mantissa = mul_sum1_input_payload_rs3_mantissa;
+ assign mul_sum1_output_payload_rs3_exponent = mul_sum1_input_payload_rs3_exponent;
+ assign mul_sum1_output_payload_rs3_sign = mul_sum1_input_payload_rs3_sign;
+ assign mul_sum1_output_payload_rs3_special = mul_sum1_input_payload_rs3_special;
+ assign mul_sum1_output_payload_rd = mul_sum1_input_payload_rd;
+ assign mul_sum1_output_payload_add = mul_sum1_input_payload_add;
+ assign mul_sum1_output_payload_divSqrt = mul_sum1_input_payload_divSqrt;
+ assign mul_sum1_output_payload_msb1 = mul_sum1_input_payload_msb1;
+ assign mul_sum1_output_payload_msb2 = mul_sum1_input_payload_msb2;
+ assign mul_sum1_output_payload_roundMode = mul_sum1_input_payload_roundMode;
+ assign mul_sum1_output_payload_exp = mul_sum1_input_payload_exp;
+ assign mul_sum1_output_payload_mulC2 = mul_sum1_sum;
+ assign mul_sum1_output_payload_muls2_0 = mul_sum1_input_payload_muls_2;
+ assign mul_sum1_output_payload_muls2_1 = mul_sum1_input_payload_muls_3;
+ always @(*) begin
+ mul_sum1_output_ready = mul_sum2_input_ready;
+ if(when_Stream_l369_9) begin
+ mul_sum1_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_9 = (! mul_sum2_input_valid);
+ assign mul_sum2_input_valid = mul_sum1_output_rValid;
+ assign mul_sum2_input_payload_rs1_mantissa = mul_sum1_output_rData_rs1_mantissa;
+ assign mul_sum2_input_payload_rs1_exponent = mul_sum1_output_rData_rs1_exponent;
+ assign mul_sum2_input_payload_rs1_sign = mul_sum1_output_rData_rs1_sign;
+ assign mul_sum2_input_payload_rs1_special = mul_sum1_output_rData_rs1_special;
+ assign mul_sum2_input_payload_rs2_mantissa = mul_sum1_output_rData_rs2_mantissa;
+ assign mul_sum2_input_payload_rs2_exponent = mul_sum1_output_rData_rs2_exponent;
+ assign mul_sum2_input_payload_rs2_sign = mul_sum1_output_rData_rs2_sign;
+ assign mul_sum2_input_payload_rs2_special = mul_sum1_output_rData_rs2_special;
+ assign mul_sum2_input_payload_rs3_mantissa = mul_sum1_output_rData_rs3_mantissa;
+ assign mul_sum2_input_payload_rs3_exponent = mul_sum1_output_rData_rs3_exponent;
+ assign mul_sum2_input_payload_rs3_sign = mul_sum1_output_rData_rs3_sign;
+ assign mul_sum2_input_payload_rs3_special = mul_sum1_output_rData_rs3_special;
+ assign mul_sum2_input_payload_rd = mul_sum1_output_rData_rd;
+ assign mul_sum2_input_payload_add = mul_sum1_output_rData_add;
+ assign mul_sum2_input_payload_divSqrt = mul_sum1_output_rData_divSqrt;
+ assign mul_sum2_input_payload_msb1 = mul_sum1_output_rData_msb1;
+ assign mul_sum2_input_payload_msb2 = mul_sum1_output_rData_msb2;
+ assign mul_sum2_input_payload_roundMode = mul_sum1_output_rData_roundMode;
+ assign mul_sum2_input_payload_exp = mul_sum1_output_rData_exp;
+ assign mul_sum2_input_payload_muls2_0 = mul_sum1_output_rData_muls2_0;
+ assign mul_sum2_input_payload_muls2_1 = mul_sum1_output_rData_muls2_1;
+ assign mul_sum2_input_payload_mulC2 = mul_sum1_output_rData_mulC2;
+ assign mul_sum2_sum = (mul_sum2_input_payload_mulC2 + _zz_mul_sum2_sum);
+ assign mul_sum2_input_fire = (mul_sum2_input_valid && mul_sum2_input_ready);
+ assign when_FpuCore_l221_1 = (mul_sum2_input_fire && 1'b1);
+ assign mul_sum2_isCommited = commitLogic_0_mul_notEmpty;
+ assign _zz_mul_sum2_input_ready = (! (! mul_sum2_isCommited));
+ assign mul_sum2_input_ready = (mul_sum2_output_ready && _zz_mul_sum2_input_ready);
+ assign mul_sum2_output_valid = (mul_sum2_input_valid && _zz_mul_sum2_input_ready);
+ assign mul_sum2_output_payload_rs1_mantissa = mul_sum2_input_payload_rs1_mantissa;
+ assign mul_sum2_output_payload_rs1_exponent = mul_sum2_input_payload_rs1_exponent;
+ assign mul_sum2_output_payload_rs1_sign = mul_sum2_input_payload_rs1_sign;
+ assign mul_sum2_output_payload_rs1_special = mul_sum2_input_payload_rs1_special;
+ assign mul_sum2_output_payload_rs2_mantissa = mul_sum2_input_payload_rs2_mantissa;
+ assign mul_sum2_output_payload_rs2_exponent = mul_sum2_input_payload_rs2_exponent;
+ assign mul_sum2_output_payload_rs2_sign = mul_sum2_input_payload_rs2_sign;
+ assign mul_sum2_output_payload_rs2_special = mul_sum2_input_payload_rs2_special;
+ assign mul_sum2_output_payload_rs3_mantissa = mul_sum2_input_payload_rs3_mantissa;
+ assign mul_sum2_output_payload_rs3_exponent = mul_sum2_input_payload_rs3_exponent;
+ assign mul_sum2_output_payload_rs3_sign = mul_sum2_input_payload_rs3_sign;
+ assign mul_sum2_output_payload_rs3_special = mul_sum2_input_payload_rs3_special;
+ assign mul_sum2_output_payload_rd = mul_sum2_input_payload_rd;
+ assign mul_sum2_output_payload_add = mul_sum2_input_payload_add;
+ assign mul_sum2_output_payload_divSqrt = mul_sum2_input_payload_divSqrt;
+ assign mul_sum2_output_payload_msb1 = mul_sum2_input_payload_msb1;
+ assign mul_sum2_output_payload_msb2 = mul_sum2_input_payload_msb2;
+ assign mul_sum2_output_payload_roundMode = mul_sum2_input_payload_roundMode;
+ assign mul_sum2_output_payload_exp = mul_sum2_input_payload_exp;
+ assign mul_sum2_output_payload_mulC = mul_sum2_sum;
+ always @(*) begin
+ mul_sum2_output_ready = mul_norm_input_ready;
+ if(when_Stream_l369_10) begin
+ mul_sum2_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_10 = (! mul_norm_input_valid);
+ assign mul_norm_input_valid = mul_sum2_output_rValid;
+ assign mul_norm_input_payload_rs1_mantissa = mul_sum2_output_rData_rs1_mantissa;
+ assign mul_norm_input_payload_rs1_exponent = mul_sum2_output_rData_rs1_exponent;
+ assign mul_norm_input_payload_rs1_sign = mul_sum2_output_rData_rs1_sign;
+ assign mul_norm_input_payload_rs1_special = mul_sum2_output_rData_rs1_special;
+ assign mul_norm_input_payload_rs2_mantissa = mul_sum2_output_rData_rs2_mantissa;
+ assign mul_norm_input_payload_rs2_exponent = mul_sum2_output_rData_rs2_exponent;
+ assign mul_norm_input_payload_rs2_sign = mul_sum2_output_rData_rs2_sign;
+ assign mul_norm_input_payload_rs2_special = mul_sum2_output_rData_rs2_special;
+ assign mul_norm_input_payload_rs3_mantissa = mul_sum2_output_rData_rs3_mantissa;
+ assign mul_norm_input_payload_rs3_exponent = mul_sum2_output_rData_rs3_exponent;
+ assign mul_norm_input_payload_rs3_sign = mul_sum2_output_rData_rs3_sign;
+ assign mul_norm_input_payload_rs3_special = mul_sum2_output_rData_rs3_special;
+ assign mul_norm_input_payload_rd = mul_sum2_output_rData_rd;
+ assign mul_norm_input_payload_add = mul_sum2_output_rData_add;
+ assign mul_norm_input_payload_divSqrt = mul_sum2_output_rData_divSqrt;
+ assign mul_norm_input_payload_msb1 = mul_sum2_output_rData_msb1;
+ assign mul_norm_input_payload_msb2 = mul_sum2_output_rData_msb2;
+ assign mul_norm_input_payload_roundMode = mul_sum2_output_rData_roundMode;
+ assign mul_norm_input_payload_exp = mul_sum2_output_rData_exp;
+ assign mul_norm_input_payload_mulC = mul_sum2_output_rData_mulC;
+ assign mul_norm_mulHigh = mul_norm_input_payload_mulC[47 : 22];
+ assign mul_norm_mulLow = mul_norm_input_payload_mulC[21 : 0];
+ always @(*) begin
+ mul_norm_scrap = (mul_norm_mulLow != 22'h000000);
+ if(when_FpuCore_l967) begin
+ mul_norm_scrap = 1'b1;
+ end
+ end
+
+ assign mul_norm_needShift = mul_norm_mulHigh[25];
+ assign mul_norm_exp = (mul_norm_input_payload_exp + _zz_mul_norm_exp);
+ assign mul_norm_man = (mul_norm_needShift ? mul_norm_mulHigh[24 : 1] : mul_norm_mulHigh[23 : 0]);
+ assign when_FpuCore_l967 = (mul_norm_needShift && mul_norm_mulHigh[0]);
+ assign mul_norm_forceZero = ((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b00)) || (mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b00)));
+ assign mul_norm_underflowThreshold = 9'h167;
+ assign mul_norm_underflowExp = 7'h67;
+ assign mul_norm_forceUnderflow = (mul_norm_exp < _zz_mul_norm_forceUnderflow);
+ assign mul_norm_forceOverflow = ((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b01)) || (mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b01)));
+ assign mul_norm_infinitynan = (((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b01)) || (mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b01))) && ((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b00)) || (mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b00))));
+ assign mul_norm_forceNan = (((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b10)) || (mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b10))) || mul_norm_infinitynan);
+ assign mul_norm_output_sign = (mul_norm_input_payload_rs1_sign ^ mul_norm_input_payload_rs2_sign);
+ always @(*) begin
+ mul_norm_output_exponent = _zz_mul_norm_output_exponent[8:0];
+ if(when_FpuCore_l983) begin
+ mul_norm_output_exponent[8 : 7] = 2'b11;
+ end
+ if(mul_norm_forceNan) begin
+ mul_norm_output_exponent[1 : 0] = 2'b10;
+ mul_norm_output_exponent[2] = 1'b1;
+ end else begin
+ if(mul_norm_forceOverflow) begin
+ mul_norm_output_exponent[1 : 0] = 2'b01;
+ end else begin
+ if(mul_norm_forceZero) begin
+ mul_norm_output_exponent[1 : 0] = 2'b00;
+ end else begin
+ if(mul_norm_forceUnderflow) begin
+ mul_norm_output_exponent = {2'd0, mul_norm_underflowExp};
+ end
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ mul_norm_output_mantissa = mul_norm_man;
+ if(mul_norm_forceNan) begin
+ mul_norm_output_mantissa[23] = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ mul_norm_output_special = 1'b0;
+ if(mul_norm_forceNan) begin
+ mul_norm_output_special = 1'b1;
+ end else begin
+ if(mul_norm_forceOverflow) begin
+ mul_norm_output_special = 1'b1;
+ end else begin
+ if(mul_norm_forceZero) begin
+ mul_norm_output_special = 1'b1;
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ mul_norm_NV = 1'b0;
+ if(mul_norm_forceNan) begin
+ if(when_FpuCore_l987) begin
+ mul_norm_NV = 1'b1;
+ end
+ end
+ end
+
+ assign when_FpuCore_l983 = (3'b101 <= mul_norm_exp[9 : 7]);
+ assign when_FpuCore_l987 = ((mul_norm_infinitynan || ((mul_norm_input_payload_rs1_special && (mul_norm_input_payload_rs1_exponent[1 : 0] == 2'b10)) && (! mul_norm_input_payload_rs1_mantissa[22]))) || ((mul_norm_input_payload_rs2_special && (mul_norm_input_payload_rs2_exponent[1 : 0] == 2'b10)) && (! mul_norm_input_payload_rs2_mantissa[22])));
+ assign mul_result_notMul_output_valid = (mul_norm_input_valid && mul_norm_input_payload_divSqrt);
+ assign mul_result_notMul_output_payload = mul_norm_input_payload_mulC[46 : 23];
+ assign mul_result_output_valid = ((mul_norm_input_valid && (! mul_norm_input_payload_add)) && (! mul_norm_input_payload_divSqrt));
+ assign mul_result_output_payload_rd = mul_norm_input_payload_rd;
+ assign mul_result_output_payload_roundMode = mul_norm_input_payload_roundMode;
+ assign mul_result_output_payload_scrap = mul_norm_scrap;
+ assign mul_result_output_payload_value_mantissa = mul_norm_output_mantissa;
+ assign mul_result_output_payload_value_exponent = mul_norm_output_exponent;
+ assign mul_result_output_payload_value_sign = mul_norm_output_sign;
+ assign mul_result_output_payload_value_special = mul_norm_output_special;
+ assign mul_result_output_payload_NV = mul_norm_NV;
+ assign mul_result_output_payload_DZ = 1'b0;
+ always @(*) begin
+ mul_result_mulToAdd_ready = mul_result_mulToAdd_m2sPipe_ready;
+ if(when_Stream_l369_11) begin
+ mul_result_mulToAdd_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_11 = (! mul_result_mulToAdd_m2sPipe_valid);
+ assign mul_result_mulToAdd_m2sPipe_valid = mul_result_mulToAdd_rValid;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs1_mantissa = mul_result_mulToAdd_rData_rs1_mantissa;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs1_exponent = mul_result_mulToAdd_rData_rs1_exponent;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs1_sign = mul_result_mulToAdd_rData_rs1_sign;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs1_special = mul_result_mulToAdd_rData_rs1_special;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs2_mantissa = mul_result_mulToAdd_rData_rs2_mantissa;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs2_exponent = mul_result_mulToAdd_rData_rs2_exponent;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs2_sign = mul_result_mulToAdd_rData_rs2_sign;
+ assign mul_result_mulToAdd_m2sPipe_payload_rs2_special = mul_result_mulToAdd_rData_rs2_special;
+ assign mul_result_mulToAdd_m2sPipe_payload_rd = mul_result_mulToAdd_rData_rd;
+ assign mul_result_mulToAdd_m2sPipe_payload_roundMode = mul_result_mulToAdd_rData_roundMode;
+ assign mul_result_mulToAdd_m2sPipe_payload_needCommit = mul_result_mulToAdd_rData_needCommit;
+ assign decode_mulToAdd_valid = mul_result_mulToAdd_m2sPipe_valid;
+ assign mul_result_mulToAdd_m2sPipe_ready = decode_mulToAdd_ready;
+ assign decode_mulToAdd_payload_rs1_mantissa = mul_result_mulToAdd_m2sPipe_payload_rs1_mantissa;
+ assign decode_mulToAdd_payload_rs1_exponent = mul_result_mulToAdd_m2sPipe_payload_rs1_exponent;
+ assign decode_mulToAdd_payload_rs1_sign = mul_result_mulToAdd_m2sPipe_payload_rs1_sign;
+ assign decode_mulToAdd_payload_rs1_special = mul_result_mulToAdd_m2sPipe_payload_rs1_special;
+ assign decode_mulToAdd_payload_rs2_mantissa = mul_result_mulToAdd_m2sPipe_payload_rs2_mantissa;
+ assign decode_mulToAdd_payload_rs2_exponent = mul_result_mulToAdd_m2sPipe_payload_rs2_exponent;
+ assign decode_mulToAdd_payload_rs2_sign = mul_result_mulToAdd_m2sPipe_payload_rs2_sign;
+ assign decode_mulToAdd_payload_rs2_special = mul_result_mulToAdd_m2sPipe_payload_rs2_special;
+ assign decode_mulToAdd_payload_rd = mul_result_mulToAdd_m2sPipe_payload_rd;
+ assign decode_mulToAdd_payload_roundMode = mul_result_mulToAdd_m2sPipe_payload_roundMode;
+ assign decode_mulToAdd_payload_needCommit = mul_result_mulToAdd_m2sPipe_payload_needCommit;
+ assign mul_result_mulToAdd_valid = (mul_norm_input_valid && mul_norm_input_payload_add);
+ always @(*) begin
+ mul_result_mulToAdd_payload_rs1_mantissa = {mul_norm_output_mantissa,mul_norm_scrap};
+ if(mul_norm_NV) begin
+ mul_result_mulToAdd_payload_rs1_mantissa[24] = 1'b0;
+ end
+ end
+
+ assign mul_result_mulToAdd_payload_rs1_exponent = mul_norm_output_exponent;
+ assign mul_result_mulToAdd_payload_rs1_sign = mul_norm_output_sign;
+ assign mul_result_mulToAdd_payload_rs1_special = mul_norm_output_special;
+ assign mul_result_mulToAdd_payload_rs2_exponent = mul_norm_input_payload_rs3_exponent;
+ assign mul_result_mulToAdd_payload_rs2_sign = mul_norm_input_payload_rs3_sign;
+ assign mul_result_mulToAdd_payload_rs2_special = mul_norm_input_payload_rs3_special;
+ assign mul_result_mulToAdd_payload_rs2_mantissa = ({2'd0,mul_norm_input_payload_rs3_mantissa} <<< 2'd2);
+ assign mul_result_mulToAdd_payload_rd = mul_norm_input_payload_rd;
+ assign mul_result_mulToAdd_payload_roundMode = mul_norm_input_payload_roundMode;
+ assign mul_result_mulToAdd_payload_needCommit = 1'b0;
+ assign mul_norm_input_ready = ((mul_norm_input_payload_add ? mul_result_mulToAdd_ready : mul_result_output_ready) || mul_norm_input_payload_divSqrt);
+ assign div_input_fire = (div_input_valid && div_input_ready);
+ assign decode_div_ready = (! decode_div_rValid);
+ assign div_input_valid = decode_div_rValid;
+ assign div_input_payload_rs1_mantissa = decode_div_rData_rs1_mantissa;
+ assign div_input_payload_rs1_exponent = decode_div_rData_rs1_exponent;
+ assign div_input_payload_rs1_sign = decode_div_rData_rs1_sign;
+ assign div_input_payload_rs1_special = decode_div_rData_rs1_special;
+ assign div_input_payload_rs2_mantissa = decode_div_rData_rs2_mantissa;
+ assign div_input_payload_rs2_exponent = decode_div_rData_rs2_exponent;
+ assign div_input_payload_rs2_sign = decode_div_rData_rs2_sign;
+ assign div_input_payload_rs2_special = decode_div_rData_rs2_special;
+ assign div_input_payload_rd = decode_div_rData_rd;
+ assign div_input_payload_roundMode = decode_div_rData_roundMode;
+ always @(*) begin
+ div_haltIt = 1'b1;
+ if(div_divider_io_output_valid) begin
+ div_haltIt = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l221_2 = (div_input_fire && 1'b1);
+ assign _zz_div_input_ready = (! (div_haltIt || (! div_isCommited)));
+ assign div_input_ready = (div_output_ready && _zz_div_input_ready);
+ assign div_output_valid = (div_input_valid && _zz_div_input_ready);
+ assign div_divider_io_input_payload_a = ({1'd0,div_input_payload_rs1_mantissa} <<< 1'd1);
+ assign div_divider_io_input_payload_b = ({1'd0,div_input_payload_rs2_mantissa} <<< 1'd1);
+ assign div_dividerResult = (div_divider_io_output_payload_result >>> 1'd1);
+ assign div_dividerScrap = ((div_divider_io_output_payload_remain != 25'h0000000) || (div_divider_io_output_payload_result[0 : 0] != 1'b0));
+ assign FpuPlugin_fpu_div_divider_io_input_fire = (div_divider_io_input_valid && div_divider_io_input_ready);
+ assign when_FpuCore_l1056 = (! div_haltIt);
+ assign div_divider_io_input_valid = (div_input_valid && (! div_cmdSent));
+ assign div_output_payload_rd = div_input_payload_rd;
+ assign div_output_payload_roundMode = div_input_payload_roundMode;
+ assign div_needShift = (! div_dividerResult[25]);
+ assign div_mantissa = (div_needShift ? div_dividerResult[23 : 0] : div_dividerResult[24 : 1]);
+ assign div_scrap = (div_dividerScrap || ((! div_needShift) && div_dividerResult[0]));
+ assign div_exponent = (_zz_div_exponent - _zz_div_exponent_4);
+ always @(*) begin
+ div_output_payload_value_special = 1'b0;
+ if(div_forceNan) begin
+ div_output_payload_value_special = 1'b1;
+ end else begin
+ if(div_forceOverflow) begin
+ div_output_payload_value_special = 1'b1;
+ end else begin
+ if(div_forceZero) begin
+ div_output_payload_value_special = 1'b1;
+ end
+ end
+ end
+ end
+
+ assign div_output_payload_value_sign = (div_input_payload_rs1_sign ^ div_input_payload_rs2_sign);
+ always @(*) begin
+ div_output_payload_value_exponent = div_exponent[8:0];
+ if(when_FpuCore_l1072) begin
+ div_output_payload_value_exponent[8 : 6] = 3'b111;
+ end
+ if(when_FpuCore_l1089) begin
+ div_output_payload_value_exponent[8 : 7] = 2'b11;
+ end
+ if(div_forceNan) begin
+ div_output_payload_value_exponent[1 : 0] = 2'b10;
+ div_output_payload_value_exponent[2] = 1'b1;
+ end else begin
+ if(div_forceOverflow) begin
+ div_output_payload_value_exponent[1 : 0] = 2'b01;
+ end else begin
+ if(div_forceZero) begin
+ div_output_payload_value_exponent[1 : 0] = 2'b00;
+ end else begin
+ if(div_forceUnderflow) begin
+ div_output_payload_value_exponent = div_underflowExp[8:0];
+ end
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ div_output_payload_value_mantissa = div_mantissa;
+ if(div_forceNan) begin
+ div_output_payload_value_mantissa[23] = 1'b1;
+ end
+ end
+
+ assign div_output_payload_scrap = div_scrap;
+ assign when_FpuCore_l1072 = (div_exponent[10 : 9] == 2'b11);
+ assign div_underflowThreshold = 11'h468;
+ assign div_underflowExp = 11'h467;
+ assign div_forceUnderflow = (div_exponent < div_underflowThreshold);
+ assign div_forceOverflow = ((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b01)) || (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b00)));
+ assign div_infinitynan = (((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b00)) && (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b00))) || ((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b01)) && (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b01))));
+ assign div_forceNan = (((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b10)) || (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b10))) || div_infinitynan);
+ assign div_forceZero = ((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b00)) || (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b01)));
+ always @(*) begin
+ div_output_payload_NV = 1'b0;
+ if(div_forceNan) begin
+ if(when_FpuCore_l1093) begin
+ div_output_payload_NV = 1'b1;
+ end
+ end
+ end
+
+ assign div_output_payload_DZ = (((! div_forceNan) && (! (div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b01)))) && (div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b00)));
+ assign when_FpuCore_l1089 = (div_exponent[10 : 8] == 3'b111);
+ assign when_FpuCore_l1093 = ((div_infinitynan || ((div_input_payload_rs1_special && (div_input_payload_rs1_exponent[1 : 0] == 2'b10)) && (! div_input_payload_rs1_mantissa[22]))) || ((div_input_payload_rs2_special && (div_input_payload_rs2_exponent[1 : 0] == 2'b10)) && (! div_input_payload_rs2_mantissa[22])));
+ assign sqrt_input_fire = (sqrt_input_valid && sqrt_input_ready);
+ assign decode_sqrt_ready = (! decode_sqrt_rValid);
+ assign sqrt_input_valid = decode_sqrt_rValid;
+ assign sqrt_input_payload_rs1_mantissa = decode_sqrt_rData_rs1_mantissa;
+ assign sqrt_input_payload_rs1_exponent = decode_sqrt_rData_rs1_exponent;
+ assign sqrt_input_payload_rs1_sign = decode_sqrt_rData_rs1_sign;
+ assign sqrt_input_payload_rs1_special = decode_sqrt_rData_rs1_special;
+ assign sqrt_input_payload_rd = decode_sqrt_rData_rd;
+ assign sqrt_input_payload_roundMode = decode_sqrt_rData_roundMode;
+ always @(*) begin
+ sqrt_haltIt = 1'b1;
+ if(sqrt_sqrt_io_output_valid) begin
+ sqrt_haltIt = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l221_3 = (sqrt_input_fire && 1'b1);
+ assign _zz_sqrt_input_ready = (! (sqrt_haltIt || (! sqrt_isCommited)));
+ assign sqrt_input_ready = (sqrt_output_ready && _zz_sqrt_input_ready);
+ assign sqrt_output_valid = (sqrt_input_valid && _zz_sqrt_input_ready);
+ assign sqrt_needShift = (! sqrt_input_payload_rs1_exponent[0]);
+ assign sqrt_sqrt_io_input_payload_a = (sqrt_needShift ? {{1'b1,sqrt_input_payload_rs1_mantissa},1'b0} : {2'b01,sqrt_input_payload_rs1_mantissa});
+ assign FpuPlugin_fpu_sqrt_sqrt_io_input_fire = (sqrt_sqrt_io_input_valid && sqrt_sqrt_io_input_ready);
+ assign when_FpuCore_l1118 = (! sqrt_haltIt);
+ assign sqrt_sqrt_io_input_valid = (sqrt_input_valid && (! sqrt_cmdSent));
+ assign sqrt_output_payload_rd = sqrt_input_payload_rd;
+ assign sqrt_output_payload_roundMode = sqrt_input_payload_roundMode;
+ assign sqrt_scrap = (sqrt_sqrt_io_output_payload_remain != 28'h0000000);
+ always @(*) begin
+ sqrt_output_payload_value_special = 1'b0;
+ if(when_FpuCore_l1137) begin
+ sqrt_output_payload_value_special = 1'b1;
+ end
+ if(sqrt_negative) begin
+ sqrt_output_payload_value_special = 1'b1;
+ end
+ if(when_FpuCore_l1144) begin
+ sqrt_output_payload_value_special = 1'b1;
+ end
+ if(when_FpuCore_l1148) begin
+ sqrt_output_payload_value_special = 1'b1;
+ end
+ end
+
+ assign sqrt_output_payload_value_sign = sqrt_input_payload_rs1_sign;
+ always @(*) begin
+ sqrt_output_payload_value_exponent = sqrt_exponent;
+ if(when_FpuCore_l1137) begin
+ sqrt_output_payload_value_exponent[1 : 0] = 2'b01;
+ end
+ if(sqrt_negative) begin
+ sqrt_output_payload_value_exponent[1 : 0] = 2'b10;
+ sqrt_output_payload_value_exponent[2] = 1'b1;
+ end
+ if(when_FpuCore_l1144) begin
+ sqrt_output_payload_value_exponent[1 : 0] = 2'b10;
+ sqrt_output_payload_value_exponent[2] = 1'b1;
+ end
+ if(when_FpuCore_l1148) begin
+ sqrt_output_payload_value_exponent[1 : 0] = 2'b00;
+ end
+ end
+
+ always @(*) begin
+ sqrt_output_payload_value_mantissa = sqrt_sqrt_io_output_payload_result;
+ if(sqrt_negative) begin
+ sqrt_output_payload_value_mantissa[23] = 1'b1;
+ end
+ if(when_FpuCore_l1144) begin
+ sqrt_output_payload_value_mantissa[23] = 1'b1;
+ end
+ end
+
+ assign sqrt_output_payload_scrap = sqrt_scrap;
+ always @(*) begin
+ sqrt_output_payload_NV = 1'b0;
+ if(sqrt_negative) begin
+ sqrt_output_payload_NV = 1'b1;
+ end
+ if(when_FpuCore_l1144) begin
+ sqrt_output_payload_NV = (! sqrt_input_payload_rs1_mantissa[22]);
+ end
+ end
+
+ assign sqrt_output_payload_DZ = 1'b0;
+ assign sqrt_negative = (((! (sqrt_input_payload_rs1_special && (sqrt_input_payload_rs1_exponent[1 : 0] == 2'b10))) && (! (sqrt_input_payload_rs1_special && (sqrt_input_payload_rs1_exponent[1 : 0] == 2'b00)))) && sqrt_input_payload_rs1_sign);
+ assign when_FpuCore_l1137 = (sqrt_input_payload_rs1_special && (sqrt_input_payload_rs1_exponent[1 : 0] == 2'b01));
+ assign when_FpuCore_l1144 = (sqrt_input_payload_rs1_special && (sqrt_input_payload_rs1_exponent[1 : 0] == 2'b10));
+ assign when_FpuCore_l1148 = (sqrt_input_payload_rs1_special && (sqrt_input_payload_rs1_exponent[1 : 0] == 2'b00));
+ assign add_preShifter_input_valid = decode_add_valid;
+ assign decode_add_ready = add_preShifter_input_ready;
+ assign add_preShifter_input_payload_rs1_mantissa = decode_add_payload_rs1_mantissa;
+ assign add_preShifter_input_payload_rs1_exponent = decode_add_payload_rs1_exponent;
+ assign add_preShifter_input_payload_rs1_sign = decode_add_payload_rs1_sign;
+ assign add_preShifter_input_payload_rs1_special = decode_add_payload_rs1_special;
+ assign add_preShifter_input_payload_rs2_mantissa = decode_add_payload_rs2_mantissa;
+ assign add_preShifter_input_payload_rs2_exponent = decode_add_payload_rs2_exponent;
+ assign add_preShifter_input_payload_rs2_sign = decode_add_payload_rs2_sign;
+ assign add_preShifter_input_payload_rs2_special = decode_add_payload_rs2_special;
+ assign add_preShifter_input_payload_rd = decode_add_payload_rd;
+ assign add_preShifter_input_payload_roundMode = decode_add_payload_roundMode;
+ assign add_preShifter_input_payload_needCommit = decode_add_payload_needCommit;
+ assign add_preShifter_output_valid = add_preShifter_input_valid;
+ assign add_preShifter_input_ready = add_preShifter_output_ready;
+ assign add_preShifter_exp21 = ({1'b0,add_preShifter_input_payload_rs2_exponent} - {1'b0,add_preShifter_input_payload_rs1_exponent});
+ assign add_preShifter_rs1ExponentBigger = ((add_preShifter_exp21[9] || (add_preShifter_input_payload_rs2_special && (add_preShifter_input_payload_rs2_exponent[1 : 0] == 2'b00))) && (! (add_preShifter_input_payload_rs1_special && (add_preShifter_input_payload_rs1_exponent[1 : 0] == 2'b00))));
+ assign add_preShifter_rs1ExponentEqual = (add_preShifter_input_payload_rs1_exponent == add_preShifter_input_payload_rs2_exponent);
+ assign add_preShifter_rs1MantissaBigger = (add_preShifter_input_payload_rs2_mantissa < add_preShifter_input_payload_rs1_mantissa);
+ assign add_preShifter_absRs1Bigger = ((((add_preShifter_rs1ExponentBigger || (add_preShifter_rs1ExponentEqual && add_preShifter_rs1MantissaBigger)) && (! (add_preShifter_input_payload_rs1_special && (add_preShifter_input_payload_rs1_exponent[1 : 0] == 2'b00)))) || (add_preShifter_input_payload_rs1_special && (add_preShifter_input_payload_rs1_exponent[1 : 0] == 2'b01))) && (! (add_preShifter_input_payload_rs2_special && (add_preShifter_input_payload_rs2_exponent[1 : 0] == 2'b01))));
+ assign add_preShifter_output_payload_rs1_mantissa = add_preShifter_input_payload_rs1_mantissa;
+ assign add_preShifter_output_payload_rs1_exponent = add_preShifter_input_payload_rs1_exponent;
+ assign add_preShifter_output_payload_rs1_sign = add_preShifter_input_payload_rs1_sign;
+ assign add_preShifter_output_payload_rs1_special = add_preShifter_input_payload_rs1_special;
+ assign add_preShifter_output_payload_rs2_mantissa = add_preShifter_input_payload_rs2_mantissa;
+ assign add_preShifter_output_payload_rs2_exponent = add_preShifter_input_payload_rs2_exponent;
+ assign add_preShifter_output_payload_rs2_sign = add_preShifter_input_payload_rs2_sign;
+ assign add_preShifter_output_payload_rs2_special = add_preShifter_input_payload_rs2_special;
+ assign add_preShifter_output_payload_rd = add_preShifter_input_payload_rd;
+ assign add_preShifter_output_payload_roundMode = add_preShifter_input_payload_roundMode;
+ assign add_preShifter_output_payload_needCommit = add_preShifter_input_payload_needCommit;
+ assign add_preShifter_output_payload_absRs1Bigger = add_preShifter_absRs1Bigger;
+ assign add_preShifter_output_payload_rs1ExponentBigger = add_preShifter_rs1ExponentBigger;
+ always @(*) begin
+ add_preShifter_output_ready = add_shifter_input_ready;
+ if(when_Stream_l369_12) begin
+ add_preShifter_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_12 = (! add_shifter_input_valid);
+ assign add_shifter_input_valid = add_preShifter_output_rValid;
+ assign add_shifter_input_payload_rs1_mantissa = add_preShifter_output_rData_rs1_mantissa;
+ assign add_shifter_input_payload_rs1_exponent = add_preShifter_output_rData_rs1_exponent;
+ assign add_shifter_input_payload_rs1_sign = add_preShifter_output_rData_rs1_sign;
+ assign add_shifter_input_payload_rs1_special = add_preShifter_output_rData_rs1_special;
+ assign add_shifter_input_payload_rs2_mantissa = add_preShifter_output_rData_rs2_mantissa;
+ assign add_shifter_input_payload_rs2_exponent = add_preShifter_output_rData_rs2_exponent;
+ assign add_shifter_input_payload_rs2_sign = add_preShifter_output_rData_rs2_sign;
+ assign add_shifter_input_payload_rs2_special = add_preShifter_output_rData_rs2_special;
+ assign add_shifter_input_payload_rd = add_preShifter_output_rData_rd;
+ assign add_shifter_input_payload_roundMode = add_preShifter_output_rData_roundMode;
+ assign add_shifter_input_payload_needCommit = add_preShifter_output_rData_needCommit;
+ assign add_shifter_input_payload_absRs1Bigger = add_preShifter_output_rData_absRs1Bigger;
+ assign add_shifter_input_payload_rs1ExponentBigger = add_preShifter_output_rData_rs1ExponentBigger;
+ assign add_shifter_output_valid = add_shifter_input_valid;
+ assign add_shifter_input_ready = add_shifter_output_ready;
+ assign add_shifter_output_payload_rs1_mantissa = add_shifter_input_payload_rs1_mantissa;
+ assign add_shifter_output_payload_rs1_exponent = add_shifter_input_payload_rs1_exponent;
+ assign add_shifter_output_payload_rs1_sign = add_shifter_input_payload_rs1_sign;
+ assign add_shifter_output_payload_rs1_special = add_shifter_input_payload_rs1_special;
+ assign add_shifter_output_payload_rs2_mantissa = add_shifter_input_payload_rs2_mantissa;
+ assign add_shifter_output_payload_rs2_exponent = add_shifter_input_payload_rs2_exponent;
+ assign add_shifter_output_payload_rs2_sign = add_shifter_input_payload_rs2_sign;
+ assign add_shifter_output_payload_rs2_special = add_shifter_input_payload_rs2_special;
+ assign add_shifter_output_payload_rd = add_shifter_input_payload_rd;
+ assign add_shifter_output_payload_roundMode = add_shifter_input_payload_roundMode;
+ assign add_shifter_output_payload_needCommit = add_shifter_input_payload_needCommit;
+ assign add_shifter_exp21 = ({1'b0,add_shifter_input_payload_rs2_exponent} - {1'b0,add_shifter_input_payload_rs1_exponent});
+ assign _zz_add_shifter_shiftBy = add_shifter_exp21;
+ assign add_shifter_shiftBy = (_zz_add_shifter_shiftBy_1 + _zz_add_shifter_shiftBy_3);
+ assign add_shifter_shiftOverflow = (10'h01a <= add_shifter_shiftBy);
+ assign add_shifter_passThrough = ((add_shifter_shiftOverflow || (add_shifter_input_payload_rs1_special && (add_shifter_input_payload_rs1_exponent[1 : 0] == 2'b00))) || (add_shifter_input_payload_rs2_special && (add_shifter_input_payload_rs2_exponent[1 : 0] == 2'b00)));
+ assign add_shifter_xySign = (add_shifter_input_payload_absRs1Bigger ? add_shifter_input_payload_rs1_sign : add_shifter_input_payload_rs2_sign);
+ assign add_shifter_output_payload_xSign = (add_shifter_xySign ^ (add_shifter_input_payload_rs1ExponentBigger ? add_shifter_input_payload_rs1_sign : add_shifter_input_payload_rs2_sign));
+ assign add_shifter_output_payload_ySign = (add_shifter_xySign ^ (add_shifter_input_payload_rs1ExponentBigger ? add_shifter_input_payload_rs2_sign : add_shifter_input_payload_rs1_sign));
+ assign add_shifter_xMantissa = {1'b1,(add_shifter_input_payload_rs1ExponentBigger ? add_shifter_input_payload_rs1_mantissa : add_shifter_input_payload_rs2_mantissa)};
+ assign add_shifter_yMantissaUnshifted = {1'b1,(add_shifter_input_payload_rs1ExponentBigger ? add_shifter_input_payload_rs2_mantissa : add_shifter_input_payload_rs1_mantissa)};
+ assign add_shifter_yMantissa = add_shifter_yMantissaUnshifted;
+ always @(*) begin
+ add_shifter_roundingScrap = 1'b0;
+ if(when_FpuCore_l1419) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(when_FpuCore_l1419_1) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(when_FpuCore_l1419_2) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(when_FpuCore_l1419_3) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(when_FpuCore_l1419_4) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(add_shifter_shiftOverflow) begin
+ add_shifter_roundingScrap = 1'b1;
+ end
+ if(when_FpuCore_l1424) begin
+ add_shifter_roundingScrap = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l1419 = (add_shifter_shiftBy[4] && (add_shifter_yMantissa[15 : 0] != 16'h0000));
+ assign when_FpuCore_l1419_1 = (add_shifter_shiftBy[3] && (add_shifter_yMantissa_1[7 : 0] != 8'h00));
+ assign when_FpuCore_l1419_2 = (add_shifter_shiftBy[2] && (add_shifter_yMantissa_2[3 : 0] != 4'b0000));
+ assign when_FpuCore_l1419_3 = (add_shifter_shiftBy[1] && (add_shifter_yMantissa_3[1 : 0] != 2'b00));
+ assign when_FpuCore_l1419_4 = (add_shifter_shiftBy[0] && (add_shifter_yMantissa_4[0 : 0] != 1'b0));
+ assign when_FpuCore_l1424 = (add_shifter_input_payload_rs1_special || add_shifter_input_payload_rs2_special);
+ assign add_shifter_output_payload_xyExponent = (add_shifter_input_payload_rs1ExponentBigger ? add_shifter_input_payload_rs1_exponent : add_shifter_input_payload_rs2_exponent);
+ assign add_shifter_output_payload_xMantissa = add_shifter_xMantissa;
+ assign add_shifter_output_payload_yMantissa = add_shifter_yMantissa_5;
+ assign add_shifter_output_payload_xySign = add_shifter_xySign;
+ assign add_shifter_output_payload_roundingScrap = add_shifter_roundingScrap;
+ always @(*) begin
+ add_shifter_output_ready = add_math_input_ready;
+ if(when_Stream_l369_13) begin
+ add_shifter_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_13 = (! add_math_input_valid);
+ assign add_math_input_valid = add_shifter_output_rValid;
+ assign add_math_input_payload_rs1_mantissa = add_shifter_output_rData_rs1_mantissa;
+ assign add_math_input_payload_rs1_exponent = add_shifter_output_rData_rs1_exponent;
+ assign add_math_input_payload_rs1_sign = add_shifter_output_rData_rs1_sign;
+ assign add_math_input_payload_rs1_special = add_shifter_output_rData_rs1_special;
+ assign add_math_input_payload_rs2_mantissa = add_shifter_output_rData_rs2_mantissa;
+ assign add_math_input_payload_rs2_exponent = add_shifter_output_rData_rs2_exponent;
+ assign add_math_input_payload_rs2_sign = add_shifter_output_rData_rs2_sign;
+ assign add_math_input_payload_rs2_special = add_shifter_output_rData_rs2_special;
+ assign add_math_input_payload_rd = add_shifter_output_rData_rd;
+ assign add_math_input_payload_roundMode = add_shifter_output_rData_roundMode;
+ assign add_math_input_payload_needCommit = add_shifter_output_rData_needCommit;
+ assign add_math_input_payload_xSign = add_shifter_output_rData_xSign;
+ assign add_math_input_payload_ySign = add_shifter_output_rData_ySign;
+ assign add_math_input_payload_xMantissa = add_shifter_output_rData_xMantissa;
+ assign add_math_input_payload_yMantissa = add_shifter_output_rData_yMantissa;
+ assign add_math_input_payload_xyExponent = add_shifter_output_rData_xyExponent;
+ assign add_math_input_payload_xySign = add_shifter_output_rData_xySign;
+ assign add_math_input_payload_roundingScrap = add_shifter_output_rData_roundingScrap;
+ assign add_math_output_valid = add_math_input_valid;
+ assign add_math_input_ready = add_math_output_ready;
+ assign add_math_output_payload_rs1_mantissa = add_math_input_payload_rs1_mantissa;
+ assign add_math_output_payload_rs1_exponent = add_math_input_payload_rs1_exponent;
+ assign add_math_output_payload_rs1_sign = add_math_input_payload_rs1_sign;
+ assign add_math_output_payload_rs1_special = add_math_input_payload_rs1_special;
+ assign add_math_output_payload_rs2_mantissa = add_math_input_payload_rs2_mantissa;
+ assign add_math_output_payload_rs2_exponent = add_math_input_payload_rs2_exponent;
+ assign add_math_output_payload_rs2_sign = add_math_input_payload_rs2_sign;
+ assign add_math_output_payload_rs2_special = add_math_input_payload_rs2_special;
+ assign add_math_output_payload_rd = add_math_input_payload_rd;
+ assign add_math_output_payload_roundMode = add_math_input_payload_roundMode;
+ assign add_math_output_payload_needCommit = add_math_input_payload_needCommit;
+ assign add_math_output_payload_xSign = add_math_input_payload_xSign;
+ assign add_math_output_payload_ySign = add_math_input_payload_ySign;
+ assign add_math_output_payload_xMantissa = add_math_input_payload_xMantissa;
+ assign add_math_output_payload_yMantissa = add_math_input_payload_yMantissa;
+ assign add_math_output_payload_xyExponent = add_math_input_payload_xyExponent;
+ assign add_math_output_payload_xySign = add_math_input_payload_xySign;
+ assign add_math_output_payload_roundingScrap = add_math_input_payload_roundingScrap;
+ assign add_math_xSigned = _zz_add_math_xSigned;
+ assign add_math_ySigned = _zz_add_math_ySigned;
+ assign add_math_output_payload_xyMantissa = _zz_add_math_output_payload_xyMantissa[26 : 0];
+ always @(*) begin
+ add_math_output_ready = add_oh_input_ready;
+ if(when_Stream_l369_14) begin
+ add_math_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_14 = (! add_oh_input_valid);
+ assign add_oh_input_valid = add_math_output_rValid;
+ assign add_oh_input_payload_rs1_mantissa = add_math_output_rData_rs1_mantissa;
+ assign add_oh_input_payload_rs1_exponent = add_math_output_rData_rs1_exponent;
+ assign add_oh_input_payload_rs1_sign = add_math_output_rData_rs1_sign;
+ assign add_oh_input_payload_rs1_special = add_math_output_rData_rs1_special;
+ assign add_oh_input_payload_rs2_mantissa = add_math_output_rData_rs2_mantissa;
+ assign add_oh_input_payload_rs2_exponent = add_math_output_rData_rs2_exponent;
+ assign add_oh_input_payload_rs2_sign = add_math_output_rData_rs2_sign;
+ assign add_oh_input_payload_rs2_special = add_math_output_rData_rs2_special;
+ assign add_oh_input_payload_rd = add_math_output_rData_rd;
+ assign add_oh_input_payload_roundMode = add_math_output_rData_roundMode;
+ assign add_oh_input_payload_needCommit = add_math_output_rData_needCommit;
+ assign add_oh_input_payload_xSign = add_math_output_rData_xSign;
+ assign add_oh_input_payload_ySign = add_math_output_rData_ySign;
+ assign add_oh_input_payload_xMantissa = add_math_output_rData_xMantissa;
+ assign add_oh_input_payload_yMantissa = add_math_output_rData_yMantissa;
+ assign add_oh_input_payload_xyExponent = add_math_output_rData_xyExponent;
+ assign add_oh_input_payload_xySign = add_math_output_rData_xySign;
+ assign add_oh_input_payload_roundingScrap = add_math_output_rData_roundingScrap;
+ assign add_oh_input_payload_xyMantissa = add_math_output_rData_xyMantissa;
+ assign add_oh_input_fire = (add_oh_input_valid && add_oh_input_ready);
+ assign when_FpuCore_l221_4 = ((add_oh_input_fire && add_oh_input_payload_needCommit) && 1'b1);
+ assign add_oh_isCommited = commitLogic_0_add_notEmpty;
+ assign _zz_add_oh_input_ready = (! (add_oh_input_payload_needCommit && (! add_oh_isCommited)));
+ assign add_oh_input_ready = (add_oh_output_ready && _zz_add_oh_input_ready);
+ assign add_oh_output_valid = (add_oh_input_valid && _zz_add_oh_input_ready);
+ assign add_oh_output_payload_rs1_mantissa = add_oh_input_payload_rs1_mantissa;
+ assign add_oh_output_payload_rs1_exponent = add_oh_input_payload_rs1_exponent;
+ assign add_oh_output_payload_rs1_sign = add_oh_input_payload_rs1_sign;
+ assign add_oh_output_payload_rs1_special = add_oh_input_payload_rs1_special;
+ assign add_oh_output_payload_rs2_mantissa = add_oh_input_payload_rs2_mantissa;
+ assign add_oh_output_payload_rs2_exponent = add_oh_input_payload_rs2_exponent;
+ assign add_oh_output_payload_rs2_sign = add_oh_input_payload_rs2_sign;
+ assign add_oh_output_payload_rs2_special = add_oh_input_payload_rs2_special;
+ assign add_oh_output_payload_rd = add_oh_input_payload_rd;
+ assign add_oh_output_payload_roundMode = add_oh_input_payload_roundMode;
+ assign add_oh_output_payload_needCommit = add_oh_input_payload_needCommit;
+ assign add_oh_output_payload_xSign = add_oh_input_payload_xSign;
+ assign add_oh_output_payload_ySign = add_oh_input_payload_ySign;
+ assign add_oh_output_payload_xMantissa = add_oh_input_payload_xMantissa;
+ assign add_oh_output_payload_yMantissa = add_oh_input_payload_yMantissa;
+ assign add_oh_output_payload_xyExponent = add_oh_input_payload_xyExponent;
+ assign add_oh_output_payload_xySign = add_oh_input_payload_xySign;
+ assign add_oh_output_payload_roundingScrap = add_oh_input_payload_roundingScrap;
+ assign add_oh_output_payload_xyMantissa = add_oh_input_payload_xyMantissa;
+ assign _zz_add_oh_shift = {add_oh_output_payload_xyMantissa[0],{add_oh_output_payload_xyMantissa[1],{add_oh_output_payload_xyMantissa[2],{add_oh_output_payload_xyMantissa[3],{add_oh_output_payload_xyMantissa[4],{add_oh_output_payload_xyMantissa[5],{add_oh_output_payload_xyMantissa[6],{_zz__zz_add_oh_shift,{_zz__zz_add_oh_shift_1,_zz__zz_add_oh_shift_2}}}}}}}}};
+ assign _zz_add_oh_shift_1 = (_zz_add_oh_shift & (~ _zz__zz_add_oh_shift_1_1));
+ assign _zz_add_oh_shift_2 = _zz_add_oh_shift_1[3];
+ assign _zz_add_oh_shift_3 = _zz_add_oh_shift_1[5];
+ assign _zz_add_oh_shift_4 = _zz_add_oh_shift_1[6];
+ assign _zz_add_oh_shift_5 = _zz_add_oh_shift_1[7];
+ assign _zz_add_oh_shift_6 = _zz_add_oh_shift_1[9];
+ assign _zz_add_oh_shift_7 = _zz_add_oh_shift_1[10];
+ assign _zz_add_oh_shift_8 = _zz_add_oh_shift_1[11];
+ assign _zz_add_oh_shift_9 = _zz_add_oh_shift_1[12];
+ assign _zz_add_oh_shift_10 = _zz_add_oh_shift_1[13];
+ assign _zz_add_oh_shift_11 = _zz_add_oh_shift_1[14];
+ assign _zz_add_oh_shift_12 = _zz_add_oh_shift_1[15];
+ assign _zz_add_oh_shift_13 = _zz_add_oh_shift_1[17];
+ assign _zz_add_oh_shift_14 = _zz_add_oh_shift_1[18];
+ assign _zz_add_oh_shift_15 = _zz_add_oh_shift_1[19];
+ assign _zz_add_oh_shift_16 = _zz_add_oh_shift_1[20];
+ assign _zz_add_oh_shift_17 = _zz_add_oh_shift_1[21];
+ assign _zz_add_oh_shift_18 = _zz_add_oh_shift_1[22];
+ assign _zz_add_oh_shift_19 = _zz_add_oh_shift_1[23];
+ assign _zz_add_oh_shift_20 = _zz_add_oh_shift_1[24];
+ assign _zz_add_oh_shift_21 = _zz_add_oh_shift_1[25];
+ assign _zz_add_oh_shift_22 = _zz_add_oh_shift_1[26];
+ assign _zz_add_oh_shift_23 = ((((((((((((_zz_add_oh_shift_1[1] || _zz_add_oh_shift_2) || _zz_add_oh_shift_3) || _zz_add_oh_shift_5) || _zz_add_oh_shift_6) || _zz_add_oh_shift_8) || _zz_add_oh_shift_10) || _zz_add_oh_shift_12) || _zz_add_oh_shift_13) || _zz_add_oh_shift_15) || _zz_add_oh_shift_17) || _zz_add_oh_shift_19) || _zz_add_oh_shift_21);
+ assign _zz_add_oh_shift_24 = ((((((((((((_zz_add_oh_shift_1[2] || _zz_add_oh_shift_2) || _zz_add_oh_shift_4) || _zz_add_oh_shift_5) || _zz_add_oh_shift_7) || _zz_add_oh_shift_8) || _zz_add_oh_shift_11) || _zz_add_oh_shift_12) || _zz_add_oh_shift_14) || _zz_add_oh_shift_15) || _zz_add_oh_shift_18) || _zz_add_oh_shift_19) || _zz_add_oh_shift_22);
+ assign _zz_add_oh_shift_25 = (((((((((((_zz_add_oh_shift_1[4] || _zz_add_oh_shift_3) || _zz_add_oh_shift_4) || _zz_add_oh_shift_5) || _zz_add_oh_shift_9) || _zz_add_oh_shift_10) || _zz_add_oh_shift_11) || _zz_add_oh_shift_12) || _zz_add_oh_shift_16) || _zz_add_oh_shift_17) || _zz_add_oh_shift_18) || _zz_add_oh_shift_19);
+ assign _zz_add_oh_shift_26 = ((((((((((_zz_add_oh_shift_1[8] || _zz_add_oh_shift_6) || _zz_add_oh_shift_7) || _zz_add_oh_shift_8) || _zz_add_oh_shift_9) || _zz_add_oh_shift_10) || _zz_add_oh_shift_11) || _zz_add_oh_shift_12) || _zz_add_oh_shift_20) || _zz_add_oh_shift_21) || _zz_add_oh_shift_22);
+ assign _zz_add_oh_shift_27 = ((((((((((_zz_add_oh_shift_1[16] || _zz_add_oh_shift_13) || _zz_add_oh_shift_14) || _zz_add_oh_shift_15) || _zz_add_oh_shift_16) || _zz_add_oh_shift_17) || _zz_add_oh_shift_18) || _zz_add_oh_shift_19) || _zz_add_oh_shift_20) || _zz_add_oh_shift_21) || _zz_add_oh_shift_22);
+ assign add_oh_shift = {_zz_add_oh_shift_27,{_zz_add_oh_shift_26,{_zz_add_oh_shift_25,{_zz_add_oh_shift_24,_zz_add_oh_shift_23}}}};
+ assign add_oh_output_payload_shift = add_oh_shift;
+ always @(*) begin
+ add_oh_output_ready = add_norm_input_ready;
+ if(when_Stream_l369_15) begin
+ add_oh_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_15 = (! add_norm_input_valid);
+ assign add_norm_input_valid = add_oh_output_rValid;
+ assign add_norm_input_payload_rs1_mantissa = add_oh_output_rData_rs1_mantissa;
+ assign add_norm_input_payload_rs1_exponent = add_oh_output_rData_rs1_exponent;
+ assign add_norm_input_payload_rs1_sign = add_oh_output_rData_rs1_sign;
+ assign add_norm_input_payload_rs1_special = add_oh_output_rData_rs1_special;
+ assign add_norm_input_payload_rs2_mantissa = add_oh_output_rData_rs2_mantissa;
+ assign add_norm_input_payload_rs2_exponent = add_oh_output_rData_rs2_exponent;
+ assign add_norm_input_payload_rs2_sign = add_oh_output_rData_rs2_sign;
+ assign add_norm_input_payload_rs2_special = add_oh_output_rData_rs2_special;
+ assign add_norm_input_payload_rd = add_oh_output_rData_rd;
+ assign add_norm_input_payload_roundMode = add_oh_output_rData_roundMode;
+ assign add_norm_input_payload_needCommit = add_oh_output_rData_needCommit;
+ assign add_norm_input_payload_xSign = add_oh_output_rData_xSign;
+ assign add_norm_input_payload_ySign = add_oh_output_rData_ySign;
+ assign add_norm_input_payload_xMantissa = add_oh_output_rData_xMantissa;
+ assign add_norm_input_payload_yMantissa = add_oh_output_rData_yMantissa;
+ assign add_norm_input_payload_xyExponent = add_oh_output_rData_xyExponent;
+ assign add_norm_input_payload_xySign = add_oh_output_rData_xySign;
+ assign add_norm_input_payload_roundingScrap = add_oh_output_rData_roundingScrap;
+ assign add_norm_input_payload_xyMantissa = add_oh_output_rData_xyMantissa;
+ assign add_norm_input_payload_shift = add_oh_output_rData_shift;
+ assign add_norm_output_valid = add_norm_input_valid;
+ assign add_norm_input_ready = add_norm_output_ready;
+ assign add_norm_output_payload_rs1_mantissa = add_norm_input_payload_rs1_mantissa;
+ assign add_norm_output_payload_rs1_exponent = add_norm_input_payload_rs1_exponent;
+ assign add_norm_output_payload_rs1_sign = add_norm_input_payload_rs1_sign;
+ assign add_norm_output_payload_rs1_special = add_norm_input_payload_rs1_special;
+ assign add_norm_output_payload_rs2_mantissa = add_norm_input_payload_rs2_mantissa;
+ assign add_norm_output_payload_rs2_exponent = add_norm_input_payload_rs2_exponent;
+ assign add_norm_output_payload_rs2_sign = add_norm_input_payload_rs2_sign;
+ assign add_norm_output_payload_rs2_special = add_norm_input_payload_rs2_special;
+ assign add_norm_output_payload_rd = add_norm_input_payload_rd;
+ assign add_norm_output_payload_roundMode = add_norm_input_payload_roundMode;
+ assign add_norm_output_payload_needCommit = add_norm_input_payload_needCommit;
+ assign add_norm_output_payload_xySign = add_norm_input_payload_xySign;
+ assign add_norm_output_payload_roundingScrap = add_norm_input_payload_roundingScrap;
+ assign add_norm_output_payload_mantissa = (add_norm_input_payload_xyMantissa <<< add_norm_input_payload_shift);
+ assign add_norm_output_payload_exponent = (_zz_add_norm_output_payload_exponent + 10'h001);
+ assign add_norm_output_payload_forceInfinity = ((add_norm_input_payload_rs1_special && (add_norm_input_payload_rs1_exponent[1 : 0] == 2'b01)) || (add_norm_input_payload_rs2_special && (add_norm_input_payload_rs2_exponent[1 : 0] == 2'b01)));
+ assign add_norm_output_payload_forceZero = ((add_norm_input_payload_xyMantissa == 27'h0000000) || ((add_norm_input_payload_rs1_special && (add_norm_input_payload_rs1_exponent[1 : 0] == 2'b00)) && (add_norm_input_payload_rs2_special && (add_norm_input_payload_rs2_exponent[1 : 0] == 2'b00))));
+ assign add_norm_output_payload_infinityNan = (((add_norm_input_payload_rs1_special && (add_norm_input_payload_rs1_exponent[1 : 0] == 2'b01)) && (add_norm_input_payload_rs2_special && (add_norm_input_payload_rs2_exponent[1 : 0] == 2'b01))) && (add_norm_input_payload_rs1_sign ^ add_norm_input_payload_rs2_sign));
+ assign add_norm_output_payload_forceNan = (((add_norm_input_payload_rs1_special && (add_norm_input_payload_rs1_exponent[1 : 0] == 2'b10)) || (add_norm_input_payload_rs2_special && (add_norm_input_payload_rs2_exponent[1 : 0] == 2'b10))) || add_norm_output_payload_infinityNan);
+ assign add_norm_output_payload_xyMantissaZero = (add_norm_input_payload_xyMantissa == 27'h0000000);
+ assign add_result_input_valid = add_norm_output_valid;
+ assign add_norm_output_ready = add_result_input_ready;
+ assign add_result_input_payload_rs1_mantissa = add_norm_output_payload_rs1_mantissa;
+ assign add_result_input_payload_rs1_exponent = add_norm_output_payload_rs1_exponent;
+ assign add_result_input_payload_rs1_sign = add_norm_output_payload_rs1_sign;
+ assign add_result_input_payload_rs1_special = add_norm_output_payload_rs1_special;
+ assign add_result_input_payload_rs2_mantissa = add_norm_output_payload_rs2_mantissa;
+ assign add_result_input_payload_rs2_exponent = add_norm_output_payload_rs2_exponent;
+ assign add_result_input_payload_rs2_sign = add_norm_output_payload_rs2_sign;
+ assign add_result_input_payload_rs2_special = add_norm_output_payload_rs2_special;
+ assign add_result_input_payload_rd = add_norm_output_payload_rd;
+ assign add_result_input_payload_roundMode = add_norm_output_payload_roundMode;
+ assign add_result_input_payload_needCommit = add_norm_output_payload_needCommit;
+ assign add_result_input_payload_mantissa = add_norm_output_payload_mantissa;
+ assign add_result_input_payload_exponent = add_norm_output_payload_exponent;
+ assign add_result_input_payload_infinityNan = add_norm_output_payload_infinityNan;
+ assign add_result_input_payload_forceNan = add_norm_output_payload_forceNan;
+ assign add_result_input_payload_forceZero = add_norm_output_payload_forceZero;
+ assign add_result_input_payload_forceInfinity = add_norm_output_payload_forceInfinity;
+ assign add_result_input_payload_xySign = add_norm_output_payload_xySign;
+ assign add_result_input_payload_roundingScrap = add_norm_output_payload_roundingScrap;
+ assign add_result_input_payload_xyMantissaZero = add_norm_output_payload_xyMantissaZero;
+ assign add_result_output_valid = add_result_input_valid;
+ assign add_result_input_ready = add_result_output_ready;
+ assign add_result_output_payload_rd = add_result_input_payload_rd;
+ always @(*) begin
+ add_result_output_payload_value_sign = add_result_input_payload_xySign;
+ if(!add_result_input_payload_forceNan) begin
+ if(!add_result_input_payload_forceInfinity) begin
+ if(add_result_input_payload_forceZero) begin
+ if(when_FpuCore_l1513) begin
+ add_result_output_payload_value_sign = (add_result_input_payload_rs1_sign && add_result_input_payload_rs2_sign);
+ end
+ if(when_FpuCore_l1516) begin
+ add_result_output_payload_value_sign = 1'b1;
+ end
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ add_result_output_payload_value_mantissa = _zz_add_result_output_payload_value_mantissa[23:0];
+ if(add_result_input_payload_forceNan) begin
+ add_result_output_payload_value_mantissa[23] = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ add_result_output_payload_value_exponent = add_result_input_payload_exponent[8:0];
+ if(add_result_input_payload_forceNan) begin
+ add_result_output_payload_value_exponent[1 : 0] = 2'b10;
+ add_result_output_payload_value_exponent[2] = 1'b1;
+ end else begin
+ if(add_result_input_payload_forceInfinity) begin
+ add_result_output_payload_value_exponent[1 : 0] = 2'b01;
+ end else begin
+ if(add_result_input_payload_forceZero) begin
+ add_result_output_payload_value_exponent[1 : 0] = 2'b00;
+ end
+ end
+ end
+ end
+
+ always @(*) begin
+ add_result_output_payload_value_special = 1'b0;
+ if(add_result_input_payload_forceNan) begin
+ add_result_output_payload_value_special = 1'b1;
+ end else begin
+ if(add_result_input_payload_forceInfinity) begin
+ add_result_output_payload_value_special = 1'b1;
+ end else begin
+ if(add_result_input_payload_forceZero) begin
+ add_result_output_payload_value_special = 1'b1;
+ end
+ end
+ end
+ end
+
+ assign add_result_output_payload_roundMode = add_result_input_payload_roundMode;
+ assign add_result_output_payload_scrap = ((add_result_input_payload_mantissa[1] || add_result_input_payload_mantissa[0]) || add_result_input_payload_roundingScrap);
+ assign add_result_output_payload_NV = ((add_result_input_payload_infinityNan || ((add_result_input_payload_rs1_special && (add_result_input_payload_rs1_exponent[1 : 0] == 2'b10)) && (! add_result_input_payload_rs1_mantissa[24]))) || ((add_result_input_payload_rs2_special && (add_result_input_payload_rs2_exponent[1 : 0] == 2'b10)) && (! add_result_input_payload_rs2_mantissa[24])));
+ assign add_result_output_payload_DZ = 1'b0;
+ assign when_FpuCore_l1513 = (add_result_input_payload_xyMantissaZero || ((add_result_input_payload_rs1_special && (add_result_input_payload_rs1_exponent[1 : 0] == 2'b00)) && (add_result_input_payload_rs2_special && (add_result_input_payload_rs2_exponent[1 : 0] == 2'b00))));
+ assign when_FpuCore_l1516 = ((add_result_input_payload_rs1_sign || add_result_input_payload_rs2_sign) && (add_result_input_payload_roundMode == FpuRoundMode_RDN));
+ always @(*) begin
+ load_s1_output_ready = load_s1_output_m2sPipe_ready;
+ if(when_Stream_l369_16) begin
+ load_s1_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_16 = (! load_s1_output_m2sPipe_valid);
+ assign load_s1_output_m2sPipe_valid = load_s1_output_rValid;
+ assign load_s1_output_m2sPipe_payload_rd = load_s1_output_rData_rd;
+ assign load_s1_output_m2sPipe_payload_value_mantissa = load_s1_output_rData_value_mantissa;
+ assign load_s1_output_m2sPipe_payload_value_exponent = load_s1_output_rData_value_exponent;
+ assign load_s1_output_m2sPipe_payload_value_sign = load_s1_output_rData_value_sign;
+ assign load_s1_output_m2sPipe_payload_value_special = load_s1_output_rData_value_special;
+ assign load_s1_output_m2sPipe_payload_scrap = load_s1_output_rData_scrap;
+ assign load_s1_output_m2sPipe_payload_roundMode = load_s1_output_rData_roundMode;
+ assign load_s1_output_m2sPipe_payload_NV = load_s1_output_rData_NV;
+ assign load_s1_output_m2sPipe_payload_DZ = load_s1_output_rData_DZ;
+ always @(*) begin
+ shortPip_output_ready = shortPip_output_m2sPipe_ready;
+ if(when_Stream_l369_17) begin
+ shortPip_output_ready = 1'b1;
+ end
+ end
+
+ assign when_Stream_l369_17 = (! shortPip_output_m2sPipe_valid);
+ assign shortPip_output_m2sPipe_valid = shortPip_output_rValid;
+ assign shortPip_output_m2sPipe_payload_rd = shortPip_output_rData_rd;
+ assign shortPip_output_m2sPipe_payload_value_mantissa = shortPip_output_rData_value_mantissa;
+ assign shortPip_output_m2sPipe_payload_value_exponent = shortPip_output_rData_value_exponent;
+ assign shortPip_output_m2sPipe_payload_value_sign = shortPip_output_rData_value_sign;
+ assign shortPip_output_m2sPipe_payload_value_special = shortPip_output_rData_value_special;
+ assign shortPip_output_m2sPipe_payload_scrap = shortPip_output_rData_scrap;
+ assign shortPip_output_m2sPipe_payload_roundMode = shortPip_output_rData_roundMode;
+ assign shortPip_output_m2sPipe_payload_NV = shortPip_output_rData_NV;
+ assign shortPip_output_m2sPipe_payload_DZ = shortPip_output_rData_DZ;
+ assign load_s1_output_m2sPipe_ready = streamArbiter_2_io_inputs_0_ready;
+ assign sqrt_output_ready = streamArbiter_2_io_inputs_1_ready;
+ assign div_output_ready = streamArbiter_2_io_inputs_2_ready;
+ assign add_result_output_ready = streamArbiter_2_io_inputs_3_ready;
+ assign mul_result_output_ready = streamArbiter_2_io_inputs_4_ready;
+ assign shortPip_output_m2sPipe_ready = streamArbiter_2_io_inputs_5_ready;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_valid = streamArbiter_2_io_output_valid;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_rd = streamArbiter_2_io_output_payload_rd;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_mantissa = streamArbiter_2_io_output_payload_value_mantissa;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_exponent = streamArbiter_2_io_output_payload_value_exponent;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_sign = streamArbiter_2_io_output_payload_value_sign;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_special = streamArbiter_2_io_output_payload_value_special;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_scrap = streamArbiter_2_io_output_payload_scrap;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode = streamArbiter_2_io_output_payload_roundMode;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_NV = streamArbiter_2_io_output_payload_NV;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_DZ = streamArbiter_2_io_output_payload_DZ;
+ assign FpuPlugin_fpu_streamArbiter_2_io_output_combStage_ready = 1'b1;
+ assign merge_arbitrated_valid = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_valid;
+ assign merge_arbitrated_payload_rd = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_rd;
+ assign merge_arbitrated_payload_value_mantissa = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_mantissa;
+ assign merge_arbitrated_payload_value_exponent = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_exponent;
+ assign merge_arbitrated_payload_value_sign = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_sign;
+ assign merge_arbitrated_payload_value_special = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_value_special;
+ assign merge_arbitrated_payload_scrap = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_scrap;
+ assign merge_arbitrated_payload_roundMode = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_roundMode;
+ assign merge_arbitrated_payload_NV = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_NV;
+ assign merge_arbitrated_payload_DZ = FpuPlugin_fpu_streamArbiter_2_io_output_combStage_payload_DZ;
+ assign roundFront_output_valid = roundFront_input_valid;
+ assign roundFront_output_payload_rd = roundFront_input_payload_rd;
+ assign roundFront_output_payload_value_mantissa = roundFront_input_payload_value_mantissa;
+ assign roundFront_output_payload_value_exponent = roundFront_input_payload_value_exponent;
+ assign roundFront_output_payload_value_sign = roundFront_input_payload_value_sign;
+ assign roundFront_output_payload_value_special = roundFront_input_payload_value_special;
+ assign roundFront_output_payload_scrap = roundFront_input_payload_scrap;
+ assign roundFront_output_payload_roundMode = roundFront_input_payload_roundMode;
+ assign roundFront_output_payload_NV = roundFront_input_payload_NV;
+ assign roundFront_output_payload_DZ = roundFront_input_payload_DZ;
+ assign roundFront_manAggregate = {roundFront_input_payload_value_mantissa,roundFront_input_payload_scrap};
+ assign roundFront_expBase = 8'h81;
+ assign roundFront_expDif = (_zz_roundFront_expDif - {1'b0,roundFront_input_payload_value_exponent});
+ assign roundFront_expSubnormal = ((! roundFront_input_payload_value_special) && (! roundFront_expDif[9]));
+ assign roundFront_discardCount = (roundFront_expSubnormal ? roundFront_expDif : 10'h000);
+ assign roundFront_discardCountTrunk = roundFront_discardCount[4:0];
+ always @(*) begin
+ roundFront_exactMask = {(5'h17 < roundFront_discardCountTrunk),{(5'h16 < roundFront_discardCountTrunk),{(5'h15 < roundFront_discardCountTrunk),{(5'h14 < roundFront_discardCountTrunk),{(_zz_roundFront_exactMask < roundFront_discardCountTrunk),{_zz_roundFront_exactMask_1,{_zz_roundFront_exactMask_2,_zz_roundFront_exactMask_3}}}}}}};
+ if(when_FpuCore_l1559) begin
+ roundFront_exactMask = 25'h1ffffff;
+ end
+ end
+
+ always @(*) begin
+ roundFront_roundAdjusted = {_zz_roundFront_roundAdjusted[roundFront_discardCountTrunk],((roundFront_manAggregate & roundFront_exactMask) != 25'h0000000)};
+ if(when_FpuCore_l1559) begin
+ roundFront_roundAdjusted[1] = 1'b0;
+ end
+ end
+
+ always @(*) begin
+ roundFront_rneBit = _zz_roundFront_rneBit[roundFront_discardCountTrunk];
+ if(when_FpuCore_l1559) begin
+ roundFront_rneBit = 1'b0;
+ end
+ end
+
+ assign when_FpuCore_l1559 = (10'h019 <= roundFront_discardCount);
+ always @(*) begin
+ case(roundFront_input_payload_roundMode)
+ FpuRoundMode_RNE : begin
+ _zz_roundFront_mantissaIncrement = (roundFront_roundAdjusted[1] && (roundFront_roundAdjusted[0] || roundFront_rneBit));
+ end
+ FpuRoundMode_RTZ : begin
+ _zz_roundFront_mantissaIncrement = 1'b0;
+ end
+ FpuRoundMode_RDN : begin
+ _zz_roundFront_mantissaIncrement = ((roundFront_roundAdjusted != 2'b00) && roundFront_input_payload_value_sign);
+ end
+ FpuRoundMode_RUP : begin
+ _zz_roundFront_mantissaIncrement = ((roundFront_roundAdjusted != 2'b00) && (! roundFront_input_payload_value_sign));
+ end
+ default : begin
+ _zz_roundFront_mantissaIncrement = roundFront_roundAdjusted[1];
+ end
+ endcase
+ end
+
+ assign roundFront_mantissaIncrement = ((! roundFront_input_payload_value_special) && _zz_roundFront_mantissaIncrement);
+ assign roundFront_output_payload_mantissaIncrement = roundFront_mantissaIncrement;
+ assign roundFront_output_payload_roundAdjusted = roundFront_roundAdjusted;
+ assign roundFront_output_payload_exactMask = roundFront_exactMask;
+ assign roundBack_output_valid = roundBack_input_valid;
+ assign roundBack_adderMantissa = (roundBack_input_payload_value_mantissa[23 : 1] & (roundBack_input_payload_mantissaIncrement ? (~ _zz_roundBack_adderMantissa) : 23'h7fffff));
+ assign roundBack_adderRightOp = _zz_roundBack_adderRightOp[22:0];
+ assign _zz_roundBack_adder = {roundBack_input_payload_value_exponent,roundBack_adderMantissa};
+ assign _zz_roundBack_adder_1 = roundBack_input_payload_mantissaIncrement;
+ assign roundBack_adder = (_zz_roundBack_adder_2 + _zz_roundBack_adder_4);
+ assign roundBack_masked = (roundBack_adder & (~ _zz_roundBack_masked));
+ assign roundBack_math_special = roundBack_input_payload_value_special;
+ assign roundBack_math_sign = roundBack_input_payload_value_sign;
+ assign roundBack_math_exponent = roundBack_masked[31 : 23];
+ assign roundBack_math_mantissa = roundBack_masked[22 : 0];
+ always @(*) begin
+ roundBack_patched_mantissa = roundBack_math_mantissa;
+ if(when_FpuCore_l1619) begin
+ if(when_FpuCore_l1629) begin
+ roundBack_patched_mantissa = 23'h7fffff;
+ end
+ end
+ if(when_FpuCore_l1638) begin
+ if(when_FpuCore_l1648) begin
+ roundBack_patched_mantissa = 23'h000000;
+ end
+ end
+ end
+
+ always @(*) begin
+ roundBack_patched_exponent = roundBack_math_exponent;
+ if(when_FpuCore_l1619) begin
+ if(when_FpuCore_l1629) begin
+ roundBack_patched_exponent = roundBack_ofThreshold;
+ end else begin
+ roundBack_patched_exponent[1 : 0] = 2'b01;
+ end
+ end
+ if(when_FpuCore_l1638) begin
+ if(when_FpuCore_l1648) begin
+ roundBack_patched_exponent = {2'd0, roundBack_ufThreshold};
+ end else begin
+ roundBack_patched_exponent[1 : 0] = 2'b00;
+ end
+ end
+ end
+
+ assign roundBack_patched_sign = roundBack_math_sign;
+ always @(*) begin
+ roundBack_patched_special = roundBack_math_special;
+ if(when_FpuCore_l1619) begin
+ if(!when_FpuCore_l1629) begin
+ roundBack_patched_special = 1'b1;
+ end
+ end
+ if(when_FpuCore_l1638) begin
+ if(!when_FpuCore_l1648) begin
+ roundBack_patched_special = 1'b1;
+ end
+ end
+ end
+
+ always @(*) begin
+ roundBack_nx = 1'b0;
+ if(when_FpuCore_l1619) begin
+ roundBack_nx = 1'b1;
+ end
+ if(when_FpuCore_l1638) begin
+ roundBack_nx = 1'b1;
+ end
+ if(when_FpuCore_l1657) begin
+ roundBack_nx = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ roundBack_of = 1'b0;
+ if(when_FpuCore_l1619) begin
+ roundBack_of = 1'b1;
+ end
+ end
+
+ always @(*) begin
+ roundBack_uf = 1'b0;
+ if(when_FpuCore_l1616) begin
+ roundBack_uf = 1'b1;
+ end
+ if(when_FpuCore_l1638) begin
+ roundBack_uf = 1'b1;
+ end
+ end
+
+ assign roundBack_ufSubnormalThreshold = 8'h80;
+ assign roundBack_ufThreshold = 7'h6a;
+ assign roundBack_ofThreshold = 9'h17e;
+ always @(*) begin
+ case(roundBack_input_payload_roundMode)
+ FpuRoundMode_RNE : begin
+ roundBack_threshold = 3'b110;
+ end
+ FpuRoundMode_RTZ : begin
+ roundBack_threshold = 3'b110;
+ end
+ FpuRoundMode_RDN : begin
+ roundBack_threshold = (roundBack_input_payload_value_sign ? 3'b101 : 3'b111);
+ end
+ FpuRoundMode_RUP : begin
+ roundBack_threshold = (roundBack_input_payload_value_sign ? 3'b111 : 3'b101);
+ end
+ default : begin
+ roundBack_threshold = 3'b110;
+ end
+ endcase
+ end
+
+ assign roundBack_borringRound = {roundBack_input_payload_value_mantissa[1 : 0],roundBack_input_payload_scrap};
+ assign roundBack_borringCase = ((roundBack_input_payload_value_exponent == _zz_roundBack_borringCase) && (roundBack_borringRound < roundBack_threshold));
+ assign when_FpuCore_l1616 = (((! roundBack_math_special) && ((roundBack_math_exponent <= _zz_when_FpuCore_l1616) || roundBack_borringCase)) && (roundBack_input_payload_roundAdjusted != 2'b00));
+ assign when_FpuCore_l1619 = ((! roundBack_math_special) && (roundBack_ofThreshold < roundBack_math_exponent));
+ always @(*) begin
+ case(roundBack_input_payload_roundMode)
+ FpuRoundMode_RNE : begin
+ when_FpuCore_l1629 = 1'b0;
+ end
+ FpuRoundMode_RTZ : begin
+ when_FpuCore_l1629 = 1'b1;
+ end
+ FpuRoundMode_RDN : begin
+ when_FpuCore_l1629 = (! roundBack_math_sign);
+ end
+ FpuRoundMode_RUP : begin
+ when_FpuCore_l1629 = roundBack_math_sign;
+ end
+ default : begin
+ when_FpuCore_l1629 = 1'b0;
+ end
+ endcase
+ end
+
+ assign when_FpuCore_l1638 = ((! roundBack_math_special) && (roundBack_math_exponent < _zz_when_FpuCore_l1638));
+ always @(*) begin
+ case(roundBack_input_payload_roundMode)
+ FpuRoundMode_RNE : begin
+ when_FpuCore_l1648 = 1'b0;
+ end
+ FpuRoundMode_RTZ : begin
+ when_FpuCore_l1648 = 1'b0;
+ end
+ FpuRoundMode_RDN : begin
+ when_FpuCore_l1648 = roundBack_math_sign;
+ end
+ FpuRoundMode_RUP : begin
+ when_FpuCore_l1648 = (! roundBack_math_sign);
+ end
+ default : begin
+ when_FpuCore_l1648 = 1'b0;
+ end
+ endcase
+ end
+
+ assign when_FpuCore_l1657 = ((! roundBack_input_payload_value_special) && (roundBack_input_payload_roundAdjusted != 2'b00));
+ assign roundBack_writes_0 = _zz_rf_scoreboards_0_writes_port1[0];
+ assign roundBack_write = roundBack_writes_0;
+ assign roundBack_output_payload_NX = (roundBack_nx && roundBack_write);
+ assign roundBack_output_payload_OF = (roundBack_of && roundBack_write);
+ assign roundBack_output_payload_UF = (roundBack_uf && roundBack_write);
+ assign roundBack_output_payload_NV = (roundBack_input_payload_NV && roundBack_write);
+ assign roundBack_output_payload_DZ = (roundBack_input_payload_DZ && roundBack_write);
+ assign roundBack_output_payload_rd = roundBack_input_payload_rd;
+ assign roundBack_output_payload_write = roundBack_write;
+ assign roundBack_output_payload_value_mantissa = roundBack_patched_mantissa;
+ assign roundBack_output_payload_value_exponent = roundBack_patched_exponent;
+ assign roundBack_output_payload_value_sign = roundBack_patched_sign;
+ assign roundBack_output_payload_value_special = roundBack_patched_special;
+ assign io_port_0_completion_valid = (writeback_input_valid && 1'b1);
+ assign io_port_0_completion_payload_flags_NX = writeback_input_payload_NX;
+ assign io_port_0_completion_payload_flags_OF = writeback_input_payload_OF;
+ assign io_port_0_completion_payload_flags_UF = writeback_input_payload_UF;
+ assign io_port_0_completion_payload_flags_NV = writeback_input_payload_NV;
+ assign io_port_0_completion_payload_flags_DZ = writeback_input_payload_DZ;
+ assign io_port_0_completion_payload_written = writeback_input_payload_write;
+ assign when_FpuCore_l1689 = 1'b1;
+ assign writeback_port_valid = (writeback_input_valid && writeback_input_payload_write);
+ assign writeback_port_payload_address = writeback_input_payload_rd;
+ assign writeback_port_payload_data_value_mantissa = writeback_input_payload_value_mantissa;
+ assign writeback_port_payload_data_value_exponent = writeback_input_payload_value_exponent;
+ assign writeback_port_payload_data_value_sign = writeback_input_payload_value_sign;
+ assign writeback_port_payload_data_value_special = writeback_input_payload_value_special;
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ rf_init_counter <= 6'h00;
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN <= 1'b1;
+ commitLogic_0_pending_counter <= 4'b0000;
+ commitLogic_0_add_counter <= 4'b0000;
+ commitLogic_0_mul_counter <= 4'b0000;
+ commitLogic_0_div_counter <= 4'b0000;
+ commitLogic_0_sqrt_counter <= 4'b0000;
+ commitLogic_0_short_counter <= 4'b0000;
+ io_port_0_cmd_rValidN <= 1'b1;
+ read_s0_rValid <= 1'b0;
+ decode_load_rValidN <= 1'b1;
+ decode_load_s2mPipe_rValid <= 1'b0;
+ decode_load_s2mPipe_m2sPipe_rValid <= 1'b0;
+ load_s0_output_rValid <= 1'b0;
+ decode_shortPip_rValid <= 1'b0;
+ shortPip_rspStreams_0_rValid <= 1'b0;
+ decode_mul_rValid <= 1'b0;
+ mul_preMul_output_rValid <= 1'b0;
+ mul_mul_output_rValid <= 1'b0;
+ mul_sum1_output_rValid <= 1'b0;
+ mul_sum2_output_rValid <= 1'b0;
+ mul_result_mulToAdd_rValid <= 1'b0;
+ decode_div_rValid <= 1'b0;
+ div_cmdSent <= 1'b0;
+ decode_sqrt_rValid <= 1'b0;
+ sqrt_cmdSent <= 1'b0;
+ add_preShifter_output_rValid <= 1'b0;
+ add_shifter_output_rValid <= 1'b0;
+ add_math_output_rValid <= 1'b0;
+ add_oh_output_rValid <= 1'b0;
+ load_s1_output_rValid <= 1'b0;
+ shortPip_output_rValid <= 1'b0;
+ roundFront_input_valid <= 1'b0;
+ roundBack_input_valid <= 1'b0;
+ writeback_input_valid <= 1'b0;
+ end else begin
+ if(when_FpuCore_l163) begin
+ rf_init_counter <= (rf_init_counter + 6'h01);
+ end
+ if(streamFork_1_io_outputs_1_valid) begin
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN <= 1'b0;
+ end
+ if(FpuPlugin_fpu_streamFork_1_io_outputs_1_s2mPipe_ready) begin
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN <= 1'b1;
+ end
+ commitLogic_0_pending_counter <= (_zz_commitLogic_0_pending_counter - _zz_commitLogic_0_pending_counter_3);
+ commitLogic_0_add_counter <= (_zz_commitLogic_0_add_counter - _zz_commitLogic_0_add_counter_3);
+ commitLogic_0_mul_counter <= (_zz_commitLogic_0_mul_counter - _zz_commitLogic_0_mul_counter_3);
+ commitLogic_0_div_counter <= (_zz_commitLogic_0_div_counter - _zz_commitLogic_0_div_counter_3);
+ commitLogic_0_sqrt_counter <= (_zz_commitLogic_0_sqrt_counter - _zz_commitLogic_0_sqrt_counter_3);
+ commitLogic_0_short_counter <= (_zz_commitLogic_0_short_counter - _zz_commitLogic_0_short_counter_3);
+ if(io_port_0_cmd_valid) begin
+ io_port_0_cmd_rValidN <= 1'b0;
+ end
+ if(scheduler_0_input_ready) begin
+ io_port_0_cmd_rValidN <= 1'b1;
+ end
+ if(read_s0_ready) begin
+ read_s0_rValid <= read_s0_valid;
+ end
+ if(decode_load_valid) begin
+ decode_load_rValidN <= 1'b0;
+ end
+ if(decode_load_s2mPipe_ready) begin
+ decode_load_rValidN <= 1'b1;
+ end
+ if(decode_load_s2mPipe_ready) begin
+ decode_load_s2mPipe_rValid <= decode_load_s2mPipe_valid;
+ end
+ if(decode_load_s2mPipe_m2sPipe_ready) begin
+ decode_load_s2mPipe_m2sPipe_rValid <= decode_load_s2mPipe_m2sPipe_valid;
+ end
+ if(load_s0_output_ready) begin
+ load_s0_output_rValid <= load_s0_output_valid;
+ end
+ if(decode_shortPip_ready) begin
+ decode_shortPip_rValid <= decode_shortPip_valid;
+ end
+ if(shortPip_rspStreams_0_ready) begin
+ shortPip_rspStreams_0_rValid <= shortPip_rspStreams_0_valid;
+ end
+ if(decode_mul_ready) begin
+ decode_mul_rValid <= decode_mul_valid;
+ end
+ if(mul_preMul_output_ready) begin
+ mul_preMul_output_rValid <= mul_preMul_output_valid;
+ end
+ if(mul_mul_output_ready) begin
+ mul_mul_output_rValid <= mul_mul_output_valid;
+ end
+ if(mul_sum1_output_ready) begin
+ mul_sum1_output_rValid <= mul_sum1_output_valid;
+ end
+ if(mul_sum2_output_ready) begin
+ mul_sum2_output_rValid <= mul_sum2_output_valid;
+ end
+ if(mul_result_mulToAdd_ready) begin
+ mul_result_mulToAdd_rValid <= mul_result_mulToAdd_valid;
+ end
+ if(decode_div_valid) begin
+ decode_div_rValid <= 1'b1;
+ end
+ if(div_input_fire) begin
+ decode_div_rValid <= 1'b0;
+ end
+ if(FpuPlugin_fpu_div_divider_io_input_fire) begin
+ div_cmdSent <= 1'b1;
+ end
+ if(when_FpuCore_l1056) begin
+ div_cmdSent <= 1'b0;
+ end
+ if(decode_sqrt_valid) begin
+ decode_sqrt_rValid <= 1'b1;
+ end
+ if(sqrt_input_fire) begin
+ decode_sqrt_rValid <= 1'b0;
+ end
+ if(FpuPlugin_fpu_sqrt_sqrt_io_input_fire) begin
+ sqrt_cmdSent <= 1'b1;
+ end
+ if(when_FpuCore_l1118) begin
+ sqrt_cmdSent <= 1'b0;
+ end
+ if(add_preShifter_output_ready) begin
+ add_preShifter_output_rValid <= add_preShifter_output_valid;
+ end
+ if(add_shifter_output_ready) begin
+ add_shifter_output_rValid <= add_shifter_output_valid;
+ end
+ if(add_math_output_ready) begin
+ add_math_output_rValid <= add_math_output_valid;
+ end
+ if(add_oh_output_ready) begin
+ add_oh_output_rValid <= add_oh_output_valid;
+ end
+ if(load_s1_output_ready) begin
+ load_s1_output_rValid <= load_s1_output_valid;
+ end
+ if(shortPip_output_ready) begin
+ shortPip_output_rValid <= shortPip_output_valid;
+ end
+ roundFront_input_valid <= merge_arbitrated_valid;
+ roundBack_input_valid <= roundFront_output_valid;
+ writeback_input_valid <= roundBack_output_valid;
+ if(writeback_port_valid) begin
+ `ifndef SYNTHESIS
+ `ifdef FORMAL
+ assert((! ((writeback_port_payload_data_value_exponent == 9'h000) && (! writeback_port_payload_data_value_special)))); // FpuCore.scala:L1718
+ `else
+ if(!(! ((writeback_port_payload_data_value_exponent == 9'h000) && (! writeback_port_payload_data_value_special)))) begin
+ $display("FAILURE Special violation"); // FpuCore.scala:L1718
+ $finish;
+ end
+ `endif
+ `endif
+ `ifndef SYNTHESIS
+ `ifdef FORMAL
+ assert((! ((writeback_port_payload_data_value_exponent == 9'h1ff) && (! writeback_port_payload_data_value_special)))); // FpuCore.scala:L1719
+ `else
+ if(!(! ((writeback_port_payload_data_value_exponent == 9'h1ff) && (! writeback_port_payload_data_value_special)))) begin
+ $display("FAILURE Special violation"); // FpuCore.scala:L1719
+ $finish;
+ end
+ `endif
+ `endif
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ if(FpuPlugin_fpu_streamFork_1_io_outputs_1_rValidN) begin
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_opcode <= streamFork_1_io_outputs_1_payload_opcode;
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_rd <= streamFork_1_io_outputs_1_payload_rd;
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_write <= streamFork_1_io_outputs_1_payload_write;
+ FpuPlugin_fpu_streamFork_1_io_outputs_1_rData_value <= streamFork_1_io_outputs_1_payload_value;
+ end
+ if(io_port_0_cmd_ready) begin
+ io_port_0_cmd_rData_opcode <= io_port_0_cmd_payload_opcode;
+ io_port_0_cmd_rData_arg <= io_port_0_cmd_payload_arg;
+ io_port_0_cmd_rData_rs1 <= io_port_0_cmd_payload_rs1;
+ io_port_0_cmd_rData_rs2 <= io_port_0_cmd_payload_rs2;
+ io_port_0_cmd_rData_rs3 <= io_port_0_cmd_payload_rs3;
+ io_port_0_cmd_rData_rd <= io_port_0_cmd_payload_rd;
+ io_port_0_cmd_rData_format <= io_port_0_cmd_payload_format;
+ io_port_0_cmd_rData_roundMode <= io_port_0_cmd_payload_roundMode;
+ end
+ if(read_s0_ready) begin
+ read_s0_rData_opcode <= read_s0_payload_opcode;
+ read_s0_rData_rs1 <= read_s0_payload_rs1;
+ read_s0_rData_rs2 <= read_s0_payload_rs2;
+ read_s0_rData_rs3 <= read_s0_payload_rs3;
+ read_s0_rData_rd <= read_s0_payload_rd;
+ read_s0_rData_arg <= read_s0_payload_arg;
+ read_s0_rData_roundMode <= read_s0_payload_roundMode;
+ end
+ if(decode_load_ready) begin
+ decode_load_rData_rd <= decode_load_payload_rd;
+ decode_load_rData_i2f <= decode_load_payload_i2f;
+ decode_load_rData_arg <= decode_load_payload_arg;
+ decode_load_rData_roundMode <= decode_load_payload_roundMode;
+ end
+ if(decode_load_s2mPipe_ready) begin
+ decode_load_s2mPipe_rData_rd <= decode_load_s2mPipe_payload_rd;
+ decode_load_s2mPipe_rData_i2f <= decode_load_s2mPipe_payload_i2f;
+ decode_load_s2mPipe_rData_arg <= decode_load_s2mPipe_payload_arg;
+ decode_load_s2mPipe_rData_roundMode <= decode_load_s2mPipe_payload_roundMode;
+ end
+ if(decode_load_s2mPipe_m2sPipe_ready) begin
+ decode_load_s2mPipe_m2sPipe_rData_rd <= decode_load_s2mPipe_m2sPipe_payload_rd;
+ decode_load_s2mPipe_m2sPipe_rData_i2f <= decode_load_s2mPipe_m2sPipe_payload_i2f;
+ decode_load_s2mPipe_m2sPipe_rData_arg <= decode_load_s2mPipe_m2sPipe_payload_arg;
+ decode_load_s2mPipe_m2sPipe_rData_roundMode <= decode_load_s2mPipe_m2sPipe_payload_roundMode;
+ end
+ if(load_s0_output_ready) begin
+ load_s0_output_rData_rd <= load_s0_output_payload_rd;
+ load_s0_output_rData_value <= load_s0_output_payload_value;
+ load_s0_output_rData_i2f <= load_s0_output_payload_i2f;
+ load_s0_output_rData_arg <= load_s0_output_payload_arg;
+ load_s0_output_rData_roundMode <= load_s0_output_payload_roundMode;
+ end
+ if(when_FpuCore_l525) begin
+ load_s1_fsm_shift_output <= load_s1_fsm_shift_input_5;
+ end
+ if(when_FpuCore_l529) begin
+ if(load_s1_fsm_boot) begin
+ if(when_FpuCore_l532) begin
+ load_s0_output_rData_value[31 : 0] <= _zz_load_s0_output_rData_value_2;
+ load_s1_fsm_patched <= 1'b1;
+ end else begin
+ load_s1_fsm_shift_by <= {_zz_load_s1_fsm_shift_by_32,{_zz_load_s1_fsm_shift_by_31,{_zz_load_s1_fsm_shift_by_30,{_zz_load_s1_fsm_shift_by_29,_zz_load_s1_fsm_shift_by_28}}}};
+ load_s1_fsm_boot <= 1'b0;
+ load_s1_fsm_i2fZero <= (load_s1_input_payload_value[31 : 0] == 32'h00000000);
+ end
+ end else begin
+ load_s1_fsm_done <= 1'b1;
+ end
+ end
+ if(when_FpuCore_l551) begin
+ load_s1_fsm_done <= 1'b0;
+ load_s1_fsm_boot <= 1'b1;
+ load_s1_fsm_patched <= 1'b0;
+ end
+ if(decode_shortPip_ready) begin
+ decode_shortPip_rData_opcode <= decode_shortPip_payload_opcode;
+ decode_shortPip_rData_rs1_mantissa <= decode_shortPip_payload_rs1_mantissa;
+ decode_shortPip_rData_rs1_exponent <= decode_shortPip_payload_rs1_exponent;
+ decode_shortPip_rData_rs1_sign <= decode_shortPip_payload_rs1_sign;
+ decode_shortPip_rData_rs1_special <= decode_shortPip_payload_rs1_special;
+ decode_shortPip_rData_rs2_mantissa <= decode_shortPip_payload_rs2_mantissa;
+ decode_shortPip_rData_rs2_exponent <= decode_shortPip_payload_rs2_exponent;
+ decode_shortPip_rData_rs2_sign <= decode_shortPip_payload_rs2_sign;
+ decode_shortPip_rData_rs2_special <= decode_shortPip_payload_rs2_special;
+ decode_shortPip_rData_rd <= decode_shortPip_payload_rd;
+ decode_shortPip_rData_value <= decode_shortPip_payload_value;
+ decode_shortPip_rData_arg <= decode_shortPip_payload_arg;
+ decode_shortPip_rData_roundMode <= decode_shortPip_payload_roundMode;
+ end
+ if(when_FpuCore_l646) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(when_FpuCore_l646_1) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(when_FpuCore_l646_2) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(when_FpuCore_l646_3) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(when_FpuCore_l646_4) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(when_FpuCore_l646_5) begin
+ shortPip_fsm_shift_scrap <= 1'b1;
+ end
+ if(shortPip_fsm_boot) begin
+ shortPip_fsm_shift_scrap <= 1'b0;
+ end
+ if(when_FpuCore_l652) begin
+ shortPip_fsm_shift_output <= shortPip_fsm_shift_input_6;
+ end
+ if(when_FpuCore_l658) begin
+ if(shortPip_fsm_boot) begin
+ if(shortPip_fsm_isF2i) begin
+ shortPip_fsm_shift_by <= _zz_shortPip_fsm_shift_by_2[5:0];
+ end else begin
+ shortPip_fsm_shift_by <= _zz_shortPip_fsm_shift_by_5[5:0];
+ end
+ shortPip_fsm_boot <= 1'b0;
+ end else begin
+ shortPip_fsm_done <= 1'b1;
+ end
+ end
+ if(when_FpuCore_l672) begin
+ shortPip_fsm_done <= 1'b0;
+ shortPip_fsm_boot <= 1'b1;
+ end
+ if(shortPip_rspStreams_0_ready) begin
+ shortPip_rspStreams_0_rData_value <= shortPip_rspStreams_0_payload_value;
+ shortPip_rspStreams_0_rData_NV <= shortPip_rspStreams_0_payload_NV;
+ shortPip_rspStreams_0_rData_NX <= shortPip_rspStreams_0_payload_NX;
+ end
+ if(decode_mul_ready) begin
+ decode_mul_rData_rs1_mantissa <= decode_mul_payload_rs1_mantissa;
+ decode_mul_rData_rs1_exponent <= decode_mul_payload_rs1_exponent;
+ decode_mul_rData_rs1_sign <= decode_mul_payload_rs1_sign;
+ decode_mul_rData_rs1_special <= decode_mul_payload_rs1_special;
+ decode_mul_rData_rs2_mantissa <= decode_mul_payload_rs2_mantissa;
+ decode_mul_rData_rs2_exponent <= decode_mul_payload_rs2_exponent;
+ decode_mul_rData_rs2_sign <= decode_mul_payload_rs2_sign;
+ decode_mul_rData_rs2_special <= decode_mul_payload_rs2_special;
+ decode_mul_rData_rs3_mantissa <= decode_mul_payload_rs3_mantissa;
+ decode_mul_rData_rs3_exponent <= decode_mul_payload_rs3_exponent;
+ decode_mul_rData_rs3_sign <= decode_mul_payload_rs3_sign;
+ decode_mul_rData_rs3_special <= decode_mul_payload_rs3_special;
+ decode_mul_rData_rd <= decode_mul_payload_rd;
+ decode_mul_rData_add <= decode_mul_payload_add;
+ decode_mul_rData_divSqrt <= decode_mul_payload_divSqrt;
+ decode_mul_rData_msb1 <= decode_mul_payload_msb1;
+ decode_mul_rData_msb2 <= decode_mul_payload_msb2;
+ decode_mul_rData_roundMode <= decode_mul_payload_roundMode;
+ end
+ if(mul_preMul_output_ready) begin
+ mul_preMul_output_rData_rs1_mantissa <= mul_preMul_output_payload_rs1_mantissa;
+ mul_preMul_output_rData_rs1_exponent <= mul_preMul_output_payload_rs1_exponent;
+ mul_preMul_output_rData_rs1_sign <= mul_preMul_output_payload_rs1_sign;
+ mul_preMul_output_rData_rs1_special <= mul_preMul_output_payload_rs1_special;
+ mul_preMul_output_rData_rs2_mantissa <= mul_preMul_output_payload_rs2_mantissa;
+ mul_preMul_output_rData_rs2_exponent <= mul_preMul_output_payload_rs2_exponent;
+ mul_preMul_output_rData_rs2_sign <= mul_preMul_output_payload_rs2_sign;
+ mul_preMul_output_rData_rs2_special <= mul_preMul_output_payload_rs2_special;
+ mul_preMul_output_rData_rs3_mantissa <= mul_preMul_output_payload_rs3_mantissa;
+ mul_preMul_output_rData_rs3_exponent <= mul_preMul_output_payload_rs3_exponent;
+ mul_preMul_output_rData_rs3_sign <= mul_preMul_output_payload_rs3_sign;
+ mul_preMul_output_rData_rs3_special <= mul_preMul_output_payload_rs3_special;
+ mul_preMul_output_rData_rd <= mul_preMul_output_payload_rd;
+ mul_preMul_output_rData_add <= mul_preMul_output_payload_add;
+ mul_preMul_output_rData_divSqrt <= mul_preMul_output_payload_divSqrt;
+ mul_preMul_output_rData_msb1 <= mul_preMul_output_payload_msb1;
+ mul_preMul_output_rData_msb2 <= mul_preMul_output_payload_msb2;
+ mul_preMul_output_rData_roundMode <= mul_preMul_output_payload_roundMode;
+ mul_preMul_output_rData_exp <= mul_preMul_output_payload_exp;
+ end
+ if(mul_mul_output_ready) begin
+ mul_mul_output_rData_rs1_mantissa <= mul_mul_output_payload_rs1_mantissa;
+ mul_mul_output_rData_rs1_exponent <= mul_mul_output_payload_rs1_exponent;
+ mul_mul_output_rData_rs1_sign <= mul_mul_output_payload_rs1_sign;
+ mul_mul_output_rData_rs1_special <= mul_mul_output_payload_rs1_special;
+ mul_mul_output_rData_rs2_mantissa <= mul_mul_output_payload_rs2_mantissa;
+ mul_mul_output_rData_rs2_exponent <= mul_mul_output_payload_rs2_exponent;
+ mul_mul_output_rData_rs2_sign <= mul_mul_output_payload_rs2_sign;
+ mul_mul_output_rData_rs2_special <= mul_mul_output_payload_rs2_special;
+ mul_mul_output_rData_rs3_mantissa <= mul_mul_output_payload_rs3_mantissa;
+ mul_mul_output_rData_rs3_exponent <= mul_mul_output_payload_rs3_exponent;
+ mul_mul_output_rData_rs3_sign <= mul_mul_output_payload_rs3_sign;
+ mul_mul_output_rData_rs3_special <= mul_mul_output_payload_rs3_special;
+ mul_mul_output_rData_rd <= mul_mul_output_payload_rd;
+ mul_mul_output_rData_add <= mul_mul_output_payload_add;
+ mul_mul_output_rData_divSqrt <= mul_mul_output_payload_divSqrt;
+ mul_mul_output_rData_msb1 <= mul_mul_output_payload_msb1;
+ mul_mul_output_rData_msb2 <= mul_mul_output_payload_msb2;
+ mul_mul_output_rData_roundMode <= mul_mul_output_payload_roundMode;
+ mul_mul_output_rData_exp <= mul_mul_output_payload_exp;
+ mul_mul_output_rData_muls_0 <= mul_mul_output_payload_muls_0;
+ mul_mul_output_rData_muls_1 <= mul_mul_output_payload_muls_1;
+ mul_mul_output_rData_muls_2 <= mul_mul_output_payload_muls_2;
+ mul_mul_output_rData_muls_3 <= mul_mul_output_payload_muls_3;
+ end
+ if(mul_sum1_output_ready) begin
+ mul_sum1_output_rData_rs1_mantissa <= mul_sum1_output_payload_rs1_mantissa;
+ mul_sum1_output_rData_rs1_exponent <= mul_sum1_output_payload_rs1_exponent;
+ mul_sum1_output_rData_rs1_sign <= mul_sum1_output_payload_rs1_sign;
+ mul_sum1_output_rData_rs1_special <= mul_sum1_output_payload_rs1_special;
+ mul_sum1_output_rData_rs2_mantissa <= mul_sum1_output_payload_rs2_mantissa;
+ mul_sum1_output_rData_rs2_exponent <= mul_sum1_output_payload_rs2_exponent;
+ mul_sum1_output_rData_rs2_sign <= mul_sum1_output_payload_rs2_sign;
+ mul_sum1_output_rData_rs2_special <= mul_sum1_output_payload_rs2_special;
+ mul_sum1_output_rData_rs3_mantissa <= mul_sum1_output_payload_rs3_mantissa;
+ mul_sum1_output_rData_rs3_exponent <= mul_sum1_output_payload_rs3_exponent;
+ mul_sum1_output_rData_rs3_sign <= mul_sum1_output_payload_rs3_sign;
+ mul_sum1_output_rData_rs3_special <= mul_sum1_output_payload_rs3_special;
+ mul_sum1_output_rData_rd <= mul_sum1_output_payload_rd;
+ mul_sum1_output_rData_add <= mul_sum1_output_payload_add;
+ mul_sum1_output_rData_divSqrt <= mul_sum1_output_payload_divSqrt;
+ mul_sum1_output_rData_msb1 <= mul_sum1_output_payload_msb1;
+ mul_sum1_output_rData_msb2 <= mul_sum1_output_payload_msb2;
+ mul_sum1_output_rData_roundMode <= mul_sum1_output_payload_roundMode;
+ mul_sum1_output_rData_exp <= mul_sum1_output_payload_exp;
+ mul_sum1_output_rData_muls2_0 <= mul_sum1_output_payload_muls2_0;
+ mul_sum1_output_rData_muls2_1 <= mul_sum1_output_payload_muls2_1;
+ mul_sum1_output_rData_mulC2 <= mul_sum1_output_payload_mulC2;
+ end
+ if(mul_sum2_output_ready) begin
+ mul_sum2_output_rData_rs1_mantissa <= mul_sum2_output_payload_rs1_mantissa;
+ mul_sum2_output_rData_rs1_exponent <= mul_sum2_output_payload_rs1_exponent;
+ mul_sum2_output_rData_rs1_sign <= mul_sum2_output_payload_rs1_sign;
+ mul_sum2_output_rData_rs1_special <= mul_sum2_output_payload_rs1_special;
+ mul_sum2_output_rData_rs2_mantissa <= mul_sum2_output_payload_rs2_mantissa;
+ mul_sum2_output_rData_rs2_exponent <= mul_sum2_output_payload_rs2_exponent;
+ mul_sum2_output_rData_rs2_sign <= mul_sum2_output_payload_rs2_sign;
+ mul_sum2_output_rData_rs2_special <= mul_sum2_output_payload_rs2_special;
+ mul_sum2_output_rData_rs3_mantissa <= mul_sum2_output_payload_rs3_mantissa;
+ mul_sum2_output_rData_rs3_exponent <= mul_sum2_output_payload_rs3_exponent;
+ mul_sum2_output_rData_rs3_sign <= mul_sum2_output_payload_rs3_sign;
+ mul_sum2_output_rData_rs3_special <= mul_sum2_output_payload_rs3_special;
+ mul_sum2_output_rData_rd <= mul_sum2_output_payload_rd;
+ mul_sum2_output_rData_add <= mul_sum2_output_payload_add;
+ mul_sum2_output_rData_divSqrt <= mul_sum2_output_payload_divSqrt;
+ mul_sum2_output_rData_msb1 <= mul_sum2_output_payload_msb1;
+ mul_sum2_output_rData_msb2 <= mul_sum2_output_payload_msb2;
+ mul_sum2_output_rData_roundMode <= mul_sum2_output_payload_roundMode;
+ mul_sum2_output_rData_exp <= mul_sum2_output_payload_exp;
+ mul_sum2_output_rData_mulC <= mul_sum2_output_payload_mulC;
+ end
+ if(mul_result_mulToAdd_ready) begin
+ mul_result_mulToAdd_rData_rs1_mantissa <= mul_result_mulToAdd_payload_rs1_mantissa;
+ mul_result_mulToAdd_rData_rs1_exponent <= mul_result_mulToAdd_payload_rs1_exponent;
+ mul_result_mulToAdd_rData_rs1_sign <= mul_result_mulToAdd_payload_rs1_sign;
+ mul_result_mulToAdd_rData_rs1_special <= mul_result_mulToAdd_payload_rs1_special;
+ mul_result_mulToAdd_rData_rs2_mantissa <= mul_result_mulToAdd_payload_rs2_mantissa;
+ mul_result_mulToAdd_rData_rs2_exponent <= mul_result_mulToAdd_payload_rs2_exponent;
+ mul_result_mulToAdd_rData_rs2_sign <= mul_result_mulToAdd_payload_rs2_sign;
+ mul_result_mulToAdd_rData_rs2_special <= mul_result_mulToAdd_payload_rs2_special;
+ mul_result_mulToAdd_rData_rd <= mul_result_mulToAdd_payload_rd;
+ mul_result_mulToAdd_rData_roundMode <= mul_result_mulToAdd_payload_roundMode;
+ mul_result_mulToAdd_rData_needCommit <= mul_result_mulToAdd_payload_needCommit;
+ end
+ if(decode_div_ready) begin
+ decode_div_rData_rs1_mantissa <= decode_div_payload_rs1_mantissa;
+ decode_div_rData_rs1_exponent <= decode_div_payload_rs1_exponent;
+ decode_div_rData_rs1_sign <= decode_div_payload_rs1_sign;
+ decode_div_rData_rs1_special <= decode_div_payload_rs1_special;
+ decode_div_rData_rs2_mantissa <= decode_div_payload_rs2_mantissa;
+ decode_div_rData_rs2_exponent <= decode_div_payload_rs2_exponent;
+ decode_div_rData_rs2_sign <= decode_div_payload_rs2_sign;
+ decode_div_rData_rs2_special <= decode_div_payload_rs2_special;
+ decode_div_rData_rd <= decode_div_payload_rd;
+ decode_div_rData_roundMode <= decode_div_payload_roundMode;
+ end
+ div_isCommited <= commitLogic_0_div_notEmpty;
+ if(decode_sqrt_ready) begin
+ decode_sqrt_rData_rs1_mantissa <= decode_sqrt_payload_rs1_mantissa;
+ decode_sqrt_rData_rs1_exponent <= decode_sqrt_payload_rs1_exponent;
+ decode_sqrt_rData_rs1_sign <= decode_sqrt_payload_rs1_sign;
+ decode_sqrt_rData_rs1_special <= decode_sqrt_payload_rs1_special;
+ decode_sqrt_rData_rd <= decode_sqrt_payload_rd;
+ decode_sqrt_rData_roundMode <= decode_sqrt_payload_roundMode;
+ end
+ sqrt_isCommited <= commitLogic_0_sqrt_notEmpty;
+ sqrt_exponent <= (_zz_sqrt_exponent + _zz_sqrt_exponent_4);
+ if(add_preShifter_output_ready) begin
+ add_preShifter_output_rData_rs1_mantissa <= add_preShifter_output_payload_rs1_mantissa;
+ add_preShifter_output_rData_rs1_exponent <= add_preShifter_output_payload_rs1_exponent;
+ add_preShifter_output_rData_rs1_sign <= add_preShifter_output_payload_rs1_sign;
+ add_preShifter_output_rData_rs1_special <= add_preShifter_output_payload_rs1_special;
+ add_preShifter_output_rData_rs2_mantissa <= add_preShifter_output_payload_rs2_mantissa;
+ add_preShifter_output_rData_rs2_exponent <= add_preShifter_output_payload_rs2_exponent;
+ add_preShifter_output_rData_rs2_sign <= add_preShifter_output_payload_rs2_sign;
+ add_preShifter_output_rData_rs2_special <= add_preShifter_output_payload_rs2_special;
+ add_preShifter_output_rData_rd <= add_preShifter_output_payload_rd;
+ add_preShifter_output_rData_roundMode <= add_preShifter_output_payload_roundMode;
+ add_preShifter_output_rData_needCommit <= add_preShifter_output_payload_needCommit;
+ add_preShifter_output_rData_absRs1Bigger <= add_preShifter_output_payload_absRs1Bigger;
+ add_preShifter_output_rData_rs1ExponentBigger <= add_preShifter_output_payload_rs1ExponentBigger;
+ end
+ if(add_shifter_output_ready) begin
+ add_shifter_output_rData_rs1_mantissa <= add_shifter_output_payload_rs1_mantissa;
+ add_shifter_output_rData_rs1_exponent <= add_shifter_output_payload_rs1_exponent;
+ add_shifter_output_rData_rs1_sign <= add_shifter_output_payload_rs1_sign;
+ add_shifter_output_rData_rs1_special <= add_shifter_output_payload_rs1_special;
+ add_shifter_output_rData_rs2_mantissa <= add_shifter_output_payload_rs2_mantissa;
+ add_shifter_output_rData_rs2_exponent <= add_shifter_output_payload_rs2_exponent;
+ add_shifter_output_rData_rs2_sign <= add_shifter_output_payload_rs2_sign;
+ add_shifter_output_rData_rs2_special <= add_shifter_output_payload_rs2_special;
+ add_shifter_output_rData_rd <= add_shifter_output_payload_rd;
+ add_shifter_output_rData_roundMode <= add_shifter_output_payload_roundMode;
+ add_shifter_output_rData_needCommit <= add_shifter_output_payload_needCommit;
+ add_shifter_output_rData_xSign <= add_shifter_output_payload_xSign;
+ add_shifter_output_rData_ySign <= add_shifter_output_payload_ySign;
+ add_shifter_output_rData_xMantissa <= add_shifter_output_payload_xMantissa;
+ add_shifter_output_rData_yMantissa <= add_shifter_output_payload_yMantissa;
+ add_shifter_output_rData_xyExponent <= add_shifter_output_payload_xyExponent;
+ add_shifter_output_rData_xySign <= add_shifter_output_payload_xySign;
+ add_shifter_output_rData_roundingScrap <= add_shifter_output_payload_roundingScrap;
+ end
+ if(add_math_output_ready) begin
+ add_math_output_rData_rs1_mantissa <= add_math_output_payload_rs1_mantissa;
+ add_math_output_rData_rs1_exponent <= add_math_output_payload_rs1_exponent;
+ add_math_output_rData_rs1_sign <= add_math_output_payload_rs1_sign;
+ add_math_output_rData_rs1_special <= add_math_output_payload_rs1_special;
+ add_math_output_rData_rs2_mantissa <= add_math_output_payload_rs2_mantissa;
+ add_math_output_rData_rs2_exponent <= add_math_output_payload_rs2_exponent;
+ add_math_output_rData_rs2_sign <= add_math_output_payload_rs2_sign;
+ add_math_output_rData_rs2_special <= add_math_output_payload_rs2_special;
+ add_math_output_rData_rd <= add_math_output_payload_rd;
+ add_math_output_rData_roundMode <= add_math_output_payload_roundMode;
+ add_math_output_rData_needCommit <= add_math_output_payload_needCommit;
+ add_math_output_rData_xSign <= add_math_output_payload_xSign;
+ add_math_output_rData_ySign <= add_math_output_payload_ySign;
+ add_math_output_rData_xMantissa <= add_math_output_payload_xMantissa;
+ add_math_output_rData_yMantissa <= add_math_output_payload_yMantissa;
+ add_math_output_rData_xyExponent <= add_math_output_payload_xyExponent;
+ add_math_output_rData_xySign <= add_math_output_payload_xySign;
+ add_math_output_rData_roundingScrap <= add_math_output_payload_roundingScrap;
+ add_math_output_rData_xyMantissa <= add_math_output_payload_xyMantissa;
+ end
+ if(add_oh_output_ready) begin
+ add_oh_output_rData_rs1_mantissa <= add_oh_output_payload_rs1_mantissa;
+ add_oh_output_rData_rs1_exponent <= add_oh_output_payload_rs1_exponent;
+ add_oh_output_rData_rs1_sign <= add_oh_output_payload_rs1_sign;
+ add_oh_output_rData_rs1_special <= add_oh_output_payload_rs1_special;
+ add_oh_output_rData_rs2_mantissa <= add_oh_output_payload_rs2_mantissa;
+ add_oh_output_rData_rs2_exponent <= add_oh_output_payload_rs2_exponent;
+ add_oh_output_rData_rs2_sign <= add_oh_output_payload_rs2_sign;
+ add_oh_output_rData_rs2_special <= add_oh_output_payload_rs2_special;
+ add_oh_output_rData_rd <= add_oh_output_payload_rd;
+ add_oh_output_rData_roundMode <= add_oh_output_payload_roundMode;
+ add_oh_output_rData_needCommit <= add_oh_output_payload_needCommit;
+ add_oh_output_rData_xSign <= add_oh_output_payload_xSign;
+ add_oh_output_rData_ySign <= add_oh_output_payload_ySign;
+ add_oh_output_rData_xMantissa <= add_oh_output_payload_xMantissa;
+ add_oh_output_rData_yMantissa <= add_oh_output_payload_yMantissa;
+ add_oh_output_rData_xyExponent <= add_oh_output_payload_xyExponent;
+ add_oh_output_rData_xySign <= add_oh_output_payload_xySign;
+ add_oh_output_rData_roundingScrap <= add_oh_output_payload_roundingScrap;
+ add_oh_output_rData_xyMantissa <= add_oh_output_payload_xyMantissa;
+ add_oh_output_rData_shift <= add_oh_output_payload_shift;
+ end
+ if(load_s1_output_ready) begin
+ load_s1_output_rData_rd <= load_s1_output_payload_rd;
+ load_s1_output_rData_value_mantissa <= load_s1_output_payload_value_mantissa;
+ load_s1_output_rData_value_exponent <= load_s1_output_payload_value_exponent;
+ load_s1_output_rData_value_sign <= load_s1_output_payload_value_sign;
+ load_s1_output_rData_value_special <= load_s1_output_payload_value_special;
+ load_s1_output_rData_scrap <= load_s1_output_payload_scrap;
+ load_s1_output_rData_roundMode <= load_s1_output_payload_roundMode;
+ load_s1_output_rData_NV <= load_s1_output_payload_NV;
+ load_s1_output_rData_DZ <= load_s1_output_payload_DZ;
+ end
+ if(shortPip_output_ready) begin
+ shortPip_output_rData_rd <= shortPip_output_payload_rd;
+ shortPip_output_rData_value_mantissa <= shortPip_output_payload_value_mantissa;
+ shortPip_output_rData_value_exponent <= shortPip_output_payload_value_exponent;
+ shortPip_output_rData_value_sign <= shortPip_output_payload_value_sign;
+ shortPip_output_rData_value_special <= shortPip_output_payload_value_special;
+ shortPip_output_rData_scrap <= shortPip_output_payload_scrap;
+ shortPip_output_rData_roundMode <= shortPip_output_payload_roundMode;
+ shortPip_output_rData_NV <= shortPip_output_payload_NV;
+ shortPip_output_rData_DZ <= shortPip_output_payload_DZ;
+ end
+ roundFront_input_payload_rd <= merge_arbitrated_payload_rd;
+ roundFront_input_payload_value_mantissa <= merge_arbitrated_payload_value_mantissa;
+ roundFront_input_payload_value_exponent <= merge_arbitrated_payload_value_exponent;
+ roundFront_input_payload_value_sign <= merge_arbitrated_payload_value_sign;
+ roundFront_input_payload_value_special <= merge_arbitrated_payload_value_special;
+ roundFront_input_payload_scrap <= merge_arbitrated_payload_scrap;
+ roundFront_input_payload_roundMode <= merge_arbitrated_payload_roundMode;
+ roundFront_input_payload_NV <= merge_arbitrated_payload_NV;
+ roundFront_input_payload_DZ <= merge_arbitrated_payload_DZ;
+ roundBack_input_payload_rd <= roundFront_output_payload_rd;
+ roundBack_input_payload_value_mantissa <= roundFront_output_payload_value_mantissa;
+ roundBack_input_payload_value_exponent <= roundFront_output_payload_value_exponent;
+ roundBack_input_payload_value_sign <= roundFront_output_payload_value_sign;
+ roundBack_input_payload_value_special <= roundFront_output_payload_value_special;
+ roundBack_input_payload_scrap <= roundFront_output_payload_scrap;
+ roundBack_input_payload_roundMode <= roundFront_output_payload_roundMode;
+ roundBack_input_payload_NV <= roundFront_output_payload_NV;
+ roundBack_input_payload_DZ <= roundFront_output_payload_DZ;
+ roundBack_input_payload_mantissaIncrement <= roundFront_output_payload_mantissaIncrement;
+ roundBack_input_payload_roundAdjusted <= roundFront_output_payload_roundAdjusted;
+ roundBack_input_payload_exactMask <= roundFront_output_payload_exactMask;
+ writeback_input_payload_rd <= roundBack_output_payload_rd;
+ writeback_input_payload_value_mantissa <= roundBack_output_payload_value_mantissa;
+ writeback_input_payload_value_exponent <= roundBack_output_payload_value_exponent;
+ writeback_input_payload_value_sign <= roundBack_output_payload_value_sign;
+ writeback_input_payload_value_special <= roundBack_output_payload_value_special;
+ writeback_input_payload_NV <= roundBack_output_payload_NV;
+ writeback_input_payload_NX <= roundBack_output_payload_NX;
+ writeback_input_payload_OF <= roundBack_output_payload_OF;
+ writeback_input_payload_UF <= roundBack_output_payload_UF;
+ writeback_input_payload_DZ <= roundBack_output_payload_DZ;
+ writeback_input_payload_write <= roundBack_output_payload_write;
+ end
+
+
+endmodule
+
module DataCache (
input wire io_cpu_execute_isValid,
input wire [31:0] io_cpu_execute_address,
@@ -6153,3 +18910,1145 @@ module InstructionCache (
endmodule
+
+module FlowCCByToggle_1 (
+ input wire io_input_valid,
+ input wire io_input_payload_error,
+ input wire [31:0] io_input_payload_data,
+ output wire io_output_valid,
+ output wire io_output_payload_error,
+ output wire [31:0] io_output_payload_data,
+ input wire clk,
+ input wire resetn,
+ input wire io_jtag_tck
+);
+
+ wire bufferCC_4_io_dataIn;
+ wire bufferCC_4_io_dataOut;
+ wire inputArea_target_buffercc_io_dataOut;
+ wire resetn_syncronized;
+ reg inputArea_target;
+ reg inputArea_data_error;
+ reg [31:0] inputArea_data_data;
+ wire outputArea_target;
+ reg outputArea_hit;
+ wire outputArea_flow_valid;
+ wire outputArea_flow_payload_error;
+ wire [31:0] outputArea_flow_payload_data;
+ reg outputArea_flow_m2sPipe_valid;
+ (* async_reg = "true" *) reg outputArea_flow_m2sPipe_payload_error;
+ (* async_reg = "true" *) reg [31:0] outputArea_flow_m2sPipe_payload_data;
+
+ BufferCC_1 bufferCC_4 (
+ .io_dataIn (bufferCC_4_io_dataIn ), //i
+ .io_dataOut (bufferCC_4_io_dataOut), //o
+ .io_jtag_tck (io_jtag_tck ), //i
+ .resetn (resetn ) //i
+ );
+ BufferCC_2 inputArea_target_buffercc (
+ .io_dataIn (inputArea_target ), //i
+ .io_dataOut (inputArea_target_buffercc_io_dataOut), //o
+ .io_jtag_tck (io_jtag_tck ), //i
+ .resetn_syncronized (resetn_syncronized ) //i
+ );
+ assign bufferCC_4_io_dataIn = (1'b1 ^ 1'b0);
+ assign resetn_syncronized = bufferCC_4_io_dataOut;
+ assign outputArea_target = inputArea_target_buffercc_io_dataOut;
+ assign outputArea_flow_valid = (outputArea_target != outputArea_hit);
+ assign outputArea_flow_payload_error = inputArea_data_error;
+ assign outputArea_flow_payload_data = inputArea_data_data;
+ assign io_output_valid = outputArea_flow_m2sPipe_valid;
+ assign io_output_payload_error = outputArea_flow_m2sPipe_payload_error;
+ assign io_output_payload_data = outputArea_flow_m2sPipe_payload_data;
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ inputArea_target <= 1'b0;
+ end else begin
+ if(io_input_valid) begin
+ inputArea_target <= (! inputArea_target);
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ if(io_input_valid) begin
+ inputArea_data_error <= io_input_payload_error;
+ inputArea_data_data <= io_input_payload_data;
+ end
+ end
+
+ always @(posedge io_jtag_tck or negedge resetn_syncronized) begin
+ if(!resetn_syncronized) begin
+ outputArea_flow_m2sPipe_valid <= 1'b0;
+ outputArea_hit <= 1'b0;
+ end else begin
+ outputArea_hit <= outputArea_target;
+ outputArea_flow_m2sPipe_valid <= outputArea_flow_valid;
+ end
+ end
+
+ always @(posedge io_jtag_tck) begin
+ if(outputArea_flow_valid) begin
+ outputArea_flow_m2sPipe_payload_error <= outputArea_flow_payload_error;
+ outputArea_flow_m2sPipe_payload_data <= outputArea_flow_payload_data;
+ end
+ end
+
+
+endmodule
+
+module FlowCCByToggle (
+ input wire io_input_valid,
+ input wire io_input_payload_write,
+ input wire [31:0] io_input_payload_data,
+ input wire [6:0] io_input_payload_address,
+ output wire io_output_valid,
+ output wire io_output_payload_write,
+ output wire [31:0] io_output_payload_data,
+ output wire [6:0] io_output_payload_address,
+ input wire io_jtag_tck,
+ input wire clk,
+ input wire resetn
+);
+
+ wire inputArea_target_buffercc_io_dataOut;
+ reg inputArea_target;
+ reg inputArea_data_write;
+ reg [31:0] inputArea_data_data;
+ reg [6:0] inputArea_data_address;
+ wire outputArea_target;
+ reg outputArea_hit;
+ wire outputArea_flow_valid;
+ wire outputArea_flow_payload_write;
+ wire [31:0] outputArea_flow_payload_data;
+ wire [6:0] outputArea_flow_payload_address;
+
+ BufferCC_3 inputArea_target_buffercc (
+ .io_dataIn (inputArea_target ), //i
+ .io_dataOut (inputArea_target_buffercc_io_dataOut), //o
+ .clk (clk ), //i
+ .resetn (resetn ) //i
+ );
+ initial begin
+ `ifndef SYNTHESIS
+ inputArea_target = $urandom;
+ outputArea_hit = $urandom;
+ `endif
+ end
+
+ assign outputArea_target = inputArea_target_buffercc_io_dataOut;
+ assign outputArea_flow_valid = (outputArea_target != outputArea_hit);
+ assign outputArea_flow_payload_write = inputArea_data_write;
+ assign outputArea_flow_payload_data = inputArea_data_data;
+ assign outputArea_flow_payload_address = inputArea_data_address;
+ assign io_output_valid = outputArea_flow_valid;
+ assign io_output_payload_write = outputArea_flow_payload_write;
+ assign io_output_payload_data = outputArea_flow_payload_data;
+ assign io_output_payload_address = outputArea_flow_payload_address;
+ always @(posedge io_jtag_tck) begin
+ if(io_input_valid) begin
+ inputArea_target <= (! inputArea_target);
+ inputArea_data_write <= io_input_payload_write;
+ inputArea_data_data <= io_input_payload_data;
+ inputArea_data_address <= io_input_payload_address;
+ end
+ end
+
+ always @(posedge clk) begin
+ outputArea_hit <= outputArea_target;
+ end
+
+
+endmodule
+
+module StreamArbiter_1 (
+ input wire io_inputs_0_valid,
+ output wire io_inputs_0_ready,
+ input wire [4:0] io_inputs_0_payload_rd,
+ input wire [23:0] io_inputs_0_payload_value_mantissa,
+ input wire [8:0] io_inputs_0_payload_value_exponent,
+ input wire io_inputs_0_payload_value_sign,
+ input wire io_inputs_0_payload_value_special,
+ input wire io_inputs_0_payload_scrap,
+ input wire [2:0] io_inputs_0_payload_roundMode,
+ input wire io_inputs_0_payload_NV,
+ input wire io_inputs_0_payload_DZ,
+ input wire io_inputs_1_valid,
+ output wire io_inputs_1_ready,
+ input wire [4:0] io_inputs_1_payload_rd,
+ input wire [23:0] io_inputs_1_payload_value_mantissa,
+ input wire [8:0] io_inputs_1_payload_value_exponent,
+ input wire io_inputs_1_payload_value_sign,
+ input wire io_inputs_1_payload_value_special,
+ input wire io_inputs_1_payload_scrap,
+ input wire [2:0] io_inputs_1_payload_roundMode,
+ input wire io_inputs_1_payload_NV,
+ input wire io_inputs_1_payload_DZ,
+ input wire io_inputs_2_valid,
+ output wire io_inputs_2_ready,
+ input wire [4:0] io_inputs_2_payload_rd,
+ input wire [23:0] io_inputs_2_payload_value_mantissa,
+ input wire [8:0] io_inputs_2_payload_value_exponent,
+ input wire io_inputs_2_payload_value_sign,
+ input wire io_inputs_2_payload_value_special,
+ input wire io_inputs_2_payload_scrap,
+ input wire [2:0] io_inputs_2_payload_roundMode,
+ input wire io_inputs_2_payload_NV,
+ input wire io_inputs_2_payload_DZ,
+ input wire io_inputs_3_valid,
+ output wire io_inputs_3_ready,
+ input wire [4:0] io_inputs_3_payload_rd,
+ input wire [23:0] io_inputs_3_payload_value_mantissa,
+ input wire [8:0] io_inputs_3_payload_value_exponent,
+ input wire io_inputs_3_payload_value_sign,
+ input wire io_inputs_3_payload_value_special,
+ input wire io_inputs_3_payload_scrap,
+ input wire [2:0] io_inputs_3_payload_roundMode,
+ input wire io_inputs_3_payload_NV,
+ input wire io_inputs_3_payload_DZ,
+ input wire io_inputs_4_valid,
+ output wire io_inputs_4_ready,
+ input wire [4:0] io_inputs_4_payload_rd,
+ input wire [23:0] io_inputs_4_payload_value_mantissa,
+ input wire [8:0] io_inputs_4_payload_value_exponent,
+ input wire io_inputs_4_payload_value_sign,
+ input wire io_inputs_4_payload_value_special,
+ input wire io_inputs_4_payload_scrap,
+ input wire [2:0] io_inputs_4_payload_roundMode,
+ input wire io_inputs_4_payload_NV,
+ input wire io_inputs_4_payload_DZ,
+ input wire io_inputs_5_valid,
+ output wire io_inputs_5_ready,
+ input wire [4:0] io_inputs_5_payload_rd,
+ input wire [23:0] io_inputs_5_payload_value_mantissa,
+ input wire [8:0] io_inputs_5_payload_value_exponent,
+ input wire io_inputs_5_payload_value_sign,
+ input wire io_inputs_5_payload_value_special,
+ input wire io_inputs_5_payload_scrap,
+ input wire [2:0] io_inputs_5_payload_roundMode,
+ input wire io_inputs_5_payload_NV,
+ input wire io_inputs_5_payload_DZ,
+ output wire io_output_valid,
+ input wire io_output_ready,
+ output wire [4:0] io_output_payload_rd,
+ output wire [23:0] io_output_payload_value_mantissa,
+ output wire [8:0] io_output_payload_value_exponent,
+ output wire io_output_payload_value_sign,
+ output wire io_output_payload_value_special,
+ output wire io_output_payload_scrap,
+ output wire [2:0] io_output_payload_roundMode,
+ output wire io_output_payload_NV,
+ output wire io_output_payload_DZ,
+ output wire [2:0] io_chosen,
+ output wire [5:0] io_chosenOH,
+ input wire clk,
+ input wire resetn
+);
+ localparam FpuRoundMode_RNE = 3'd0;
+ localparam FpuRoundMode_RTZ = 3'd1;
+ localparam FpuRoundMode_RDN = 3'd2;
+ localparam FpuRoundMode_RUP = 3'd3;
+ localparam FpuRoundMode_RMM = 3'd4;
+
+ wire [5:0] _zz__zz_maskProposal_1_1;
+ reg [2:0] _zz__zz_io_output_payload_roundMode;
+ reg [4:0] _zz_io_output_payload_rd_4;
+ reg [23:0] _zz_io_output_payload_value_mantissa;
+ reg [8:0] _zz_io_output_payload_value_exponent;
+ reg _zz_io_output_payload_value_sign;
+ reg _zz_io_output_payload_value_special;
+ reg _zz_io_output_payload_scrap;
+ reg _zz_io_output_payload_NV;
+ reg _zz_io_output_payload_DZ;
+ wire locked;
+ wire maskProposal_0;
+ wire maskProposal_1;
+ wire maskProposal_2;
+ wire maskProposal_3;
+ wire maskProposal_4;
+ wire maskProposal_5;
+ reg maskLocked_0;
+ reg maskLocked_1;
+ reg maskLocked_2;
+ reg maskLocked_3;
+ reg maskLocked_4;
+ reg maskLocked_5;
+ wire maskRouted_0;
+ wire maskRouted_1;
+ wire maskRouted_2;
+ wire maskRouted_3;
+ wire maskRouted_4;
+ wire maskRouted_5;
+ wire [5:0] _zz_maskProposal_1;
+ wire [5:0] _zz_maskProposal_1_1;
+ wire _zz_io_output_payload_rd;
+ wire _zz_io_output_payload_rd_1;
+ wire _zz_io_output_payload_rd_2;
+ wire [2:0] _zz_io_output_payload_rd_3;
+ wire [2:0] _zz_io_output_payload_roundMode;
+ wire _zz_io_chosen;
+ wire _zz_io_chosen_1;
+ wire _zz_io_chosen_2;
+ wire _zz_io_chosen_3;
+ wire _zz_io_chosen_4;
+ `ifndef SYNTHESIS
+ reg [23:0] io_inputs_0_payload_roundMode_string;
+ reg [23:0] io_inputs_1_payload_roundMode_string;
+ reg [23:0] io_inputs_2_payload_roundMode_string;
+ reg [23:0] io_inputs_3_payload_roundMode_string;
+ reg [23:0] io_inputs_4_payload_roundMode_string;
+ reg [23:0] io_inputs_5_payload_roundMode_string;
+ reg [23:0] io_output_payload_roundMode_string;
+ reg [23:0] _zz_io_output_payload_roundMode_string;
+ `endif
+
+
+ assign _zz__zz_maskProposal_1_1 = (_zz_maskProposal_1 - 6'h01);
+ always @(*) begin
+ case(_zz_io_output_payload_rd_3)
+ 3'b000 : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_0_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_0_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_0_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_0_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_0_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_0_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_0_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_0_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_0_payload_DZ;
+ end
+ 3'b001 : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_1_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_1_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_1_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_1_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_1_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_1_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_1_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_1_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_1_payload_DZ;
+ end
+ 3'b010 : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_2_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_2_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_2_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_2_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_2_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_2_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_2_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_2_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_2_payload_DZ;
+ end
+ 3'b011 : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_3_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_3_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_3_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_3_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_3_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_3_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_3_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_3_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_3_payload_DZ;
+ end
+ 3'b100 : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_4_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_4_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_4_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_4_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_4_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_4_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_4_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_4_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_4_payload_DZ;
+ end
+ default : begin
+ _zz__zz_io_output_payload_roundMode = io_inputs_5_payload_roundMode;
+ _zz_io_output_payload_rd_4 = io_inputs_5_payload_rd;
+ _zz_io_output_payload_value_mantissa = io_inputs_5_payload_value_mantissa;
+ _zz_io_output_payload_value_exponent = io_inputs_5_payload_value_exponent;
+ _zz_io_output_payload_value_sign = io_inputs_5_payload_value_sign;
+ _zz_io_output_payload_value_special = io_inputs_5_payload_value_special;
+ _zz_io_output_payload_scrap = io_inputs_5_payload_scrap;
+ _zz_io_output_payload_NV = io_inputs_5_payload_NV;
+ _zz_io_output_payload_DZ = io_inputs_5_payload_DZ;
+ end
+ endcase
+ end
+
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(io_inputs_0_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_0_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_0_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_0_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_0_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_0_payload_roundMode_string = "RMM";
+ default : io_inputs_0_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_1_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_1_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_1_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_1_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_1_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_1_payload_roundMode_string = "RMM";
+ default : io_inputs_1_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_2_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_2_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_2_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_2_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_2_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_2_payload_roundMode_string = "RMM";
+ default : io_inputs_2_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_3_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_3_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_3_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_3_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_3_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_3_payload_roundMode_string = "RMM";
+ default : io_inputs_3_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_4_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_4_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_4_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_4_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_4_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_4_payload_roundMode_string = "RMM";
+ default : io_inputs_4_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_5_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_5_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_5_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_5_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_5_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_5_payload_roundMode_string = "RMM";
+ default : io_inputs_5_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_output_payload_roundMode)
+ FpuRoundMode_RNE : io_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_output_payload_roundMode_string = "RMM";
+ default : io_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_output_payload_roundMode)
+ FpuRoundMode_RNE : _zz_io_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_io_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_io_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_io_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_io_output_payload_roundMode_string = "RMM";
+ default : _zz_io_output_payload_roundMode_string = "???";
+ endcase
+ end
+ `endif
+
+ assign locked = 1'b0;
+ assign maskRouted_0 = (locked ? maskLocked_0 : maskProposal_0);
+ assign maskRouted_1 = (locked ? maskLocked_1 : maskProposal_1);
+ assign maskRouted_2 = (locked ? maskLocked_2 : maskProposal_2);
+ assign maskRouted_3 = (locked ? maskLocked_3 : maskProposal_3);
+ assign maskRouted_4 = (locked ? maskLocked_4 : maskProposal_4);
+ assign maskRouted_5 = (locked ? maskLocked_5 : maskProposal_5);
+ assign _zz_maskProposal_1 = {io_inputs_5_valid,{io_inputs_4_valid,{io_inputs_3_valid,{io_inputs_2_valid,{io_inputs_1_valid,io_inputs_0_valid}}}}};
+ assign _zz_maskProposal_1_1 = (_zz_maskProposal_1 & (~ _zz__zz_maskProposal_1_1));
+ assign maskProposal_0 = io_inputs_0_valid;
+ assign maskProposal_1 = _zz_maskProposal_1_1[1];
+ assign maskProposal_2 = _zz_maskProposal_1_1[2];
+ assign maskProposal_3 = _zz_maskProposal_1_1[3];
+ assign maskProposal_4 = _zz_maskProposal_1_1[4];
+ assign maskProposal_5 = _zz_maskProposal_1_1[5];
+ assign io_output_valid = ((((((io_inputs_0_valid && maskRouted_0) || (io_inputs_1_valid && maskRouted_1)) || (io_inputs_2_valid && maskRouted_2)) || (io_inputs_3_valid && maskRouted_3)) || (io_inputs_4_valid && maskRouted_4)) || (io_inputs_5_valid && maskRouted_5));
+ assign _zz_io_output_payload_rd = ((maskRouted_1 || maskRouted_3) || maskRouted_5);
+ assign _zz_io_output_payload_rd_1 = (maskRouted_2 || maskRouted_3);
+ assign _zz_io_output_payload_rd_2 = (maskRouted_4 || maskRouted_5);
+ assign _zz_io_output_payload_rd_3 = {_zz_io_output_payload_rd_2,{_zz_io_output_payload_rd_1,_zz_io_output_payload_rd}};
+ assign _zz_io_output_payload_roundMode = _zz__zz_io_output_payload_roundMode;
+ assign io_output_payload_rd = _zz_io_output_payload_rd_4;
+ assign io_output_payload_value_mantissa = _zz_io_output_payload_value_mantissa;
+ assign io_output_payload_value_exponent = _zz_io_output_payload_value_exponent;
+ assign io_output_payload_value_sign = _zz_io_output_payload_value_sign;
+ assign io_output_payload_value_special = _zz_io_output_payload_value_special;
+ assign io_output_payload_scrap = _zz_io_output_payload_scrap;
+ assign io_output_payload_roundMode = _zz_io_output_payload_roundMode;
+ assign io_output_payload_NV = _zz_io_output_payload_NV;
+ assign io_output_payload_DZ = _zz_io_output_payload_DZ;
+ assign io_inputs_0_ready = (maskRouted_0 && io_output_ready);
+ assign io_inputs_1_ready = (maskRouted_1 && io_output_ready);
+ assign io_inputs_2_ready = (maskRouted_2 && io_output_ready);
+ assign io_inputs_3_ready = (maskRouted_3 && io_output_ready);
+ assign io_inputs_4_ready = (maskRouted_4 && io_output_ready);
+ assign io_inputs_5_ready = (maskRouted_5 && io_output_ready);
+ assign io_chosenOH = {maskRouted_5,{maskRouted_4,{maskRouted_3,{maskRouted_2,{maskRouted_1,maskRouted_0}}}}};
+ assign _zz_io_chosen = io_chosenOH[3];
+ assign _zz_io_chosen_1 = io_chosenOH[5];
+ assign _zz_io_chosen_2 = ((io_chosenOH[1] || _zz_io_chosen) || _zz_io_chosen_1);
+ assign _zz_io_chosen_3 = (io_chosenOH[2] || _zz_io_chosen);
+ assign _zz_io_chosen_4 = (io_chosenOH[4] || _zz_io_chosen_1);
+ assign io_chosen = {_zz_io_chosen_4,{_zz_io_chosen_3,_zz_io_chosen_2}};
+ always @(posedge clk) begin
+ if(io_output_valid) begin
+ maskLocked_0 <= maskRouted_0;
+ maskLocked_1 <= maskRouted_1;
+ maskLocked_2 <= maskRouted_2;
+ maskLocked_3 <= maskRouted_3;
+ maskLocked_4 <= maskRouted_4;
+ maskLocked_5 <= maskRouted_5;
+ end
+ end
+
+
+endmodule
+
+module FpuSqrt (
+ input wire io_input_valid,
+ output wire io_input_ready,
+ input wire [24:0] io_input_payload_a,
+ output wire io_output_valid,
+ input wire io_output_ready,
+ output wire [23:0] io_output_payload_result,
+ output wire [27:0] io_output_payload_remain,
+ input wire clk,
+ input wire resetn
+);
+
+ wire [27:0] _zz_t;
+ wire [25:0] _zz_t_1;
+ wire [24:0] _zz_q;
+ wire [29:0] _zz_a_1;
+ wire [1:0] _zz_a_2;
+ reg [4:0] counter;
+ reg busy;
+ wire io_output_fire;
+ reg done;
+ wire when_FpuSqrt_l28;
+ reg [27:0] a;
+ reg [22:0] x;
+ reg [23:0] q;
+ wire [27:0] t;
+ wire when_FpuSqrt_l41;
+ reg [27:0] _zz_a;
+ wire when_FpuSqrt_l44;
+ wire when_FpuSqrt_l52;
+
+ assign _zz_t_1 = {q,2'b01};
+ assign _zz_t = {2'd0, _zz_t_1};
+ assign _zz_q = {q,(! t[27])};
+ assign _zz_a_1 = {_zz_a,x[22 : 21]};
+ assign _zz_a_2 = io_input_payload_a[24 : 23];
+ assign io_output_fire = (io_output_valid && io_output_ready);
+ assign when_FpuSqrt_l28 = (busy && (counter == 5'h18));
+ assign t = (a - _zz_t);
+ assign io_output_valid = done;
+ assign io_output_payload_result = q;
+ assign io_output_payload_remain = a;
+ assign io_input_ready = (! busy);
+ assign when_FpuSqrt_l41 = (! done);
+ always @(*) begin
+ _zz_a = a;
+ if(when_FpuSqrt_l44) begin
+ _zz_a = t;
+ end
+ end
+
+ assign when_FpuSqrt_l44 = (! t[27]);
+ assign when_FpuSqrt_l52 = (! busy);
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ busy <= 1'b0;
+ done <= 1'b0;
+ end else begin
+ if(io_output_fire) begin
+ busy <= 1'b0;
+ end
+ if(when_FpuSqrt_l28) begin
+ done <= 1'b1;
+ end
+ if(io_output_fire) begin
+ done <= 1'b0;
+ end
+ if(when_FpuSqrt_l52) begin
+ if(io_input_valid) begin
+ busy <= 1'b1;
+ end
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ if(when_FpuSqrt_l41) begin
+ counter <= (counter + 5'h01);
+ q <= _zz_q[23:0];
+ a <= _zz_a_1[27:0];
+ x <= (x <<< 2);
+ end
+ if(when_FpuSqrt_l52) begin
+ q <= 24'h000000;
+ a <= {26'd0, _zz_a_2};
+ x <= io_input_payload_a[22:0];
+ counter <= 5'h00;
+ end
+ end
+
+
+endmodule
+
+module FpuDiv (
+ input wire io_input_valid,
+ output wire io_input_ready,
+ input wire [23:0] io_input_payload_a,
+ input wire [23:0] io_input_payload_b,
+ output wire io_output_valid,
+ input wire io_output_ready,
+ output wire [26:0] io_output_payload_result,
+ output wire [24:0] io_output_payload_remain,
+ input wire clk,
+ input wire resetn
+);
+
+ wire [24:0] _zz_shifter_1;
+ wire [24:0] _zz_div1;
+ wire [26:0] _zz_div3;
+ wire [25:0] _zz_div3_1;
+ wire [25:0] _zz_div3_2;
+ reg [3:0] counter;
+ reg busy;
+ wire io_output_fire;
+ reg done;
+ wire when_FpuDiv_l31;
+ reg [26:0] shifter;
+ reg [26:0] result;
+ reg [26:0] div1;
+ reg [26:0] div3;
+ wire [26:0] div2;
+ wire [27:0] sub1;
+ wire [27:0] sub2;
+ wire [27:0] sub3;
+ wire when_FpuDiv_l48;
+ reg [26:0] _zz_shifter;
+ wire when_FpuDiv_l52;
+ wire when_FpuDiv_l56;
+ wire when_FpuDiv_l60;
+ wire when_FpuDiv_l67;
+
+ assign _zz_shifter_1 = {1'b1,io_input_payload_a};
+ assign _zz_div1 = {1'b1,io_input_payload_b};
+ assign _zz_div3_1 = {1'b0,{1'b1,io_input_payload_b}};
+ assign _zz_div3 = {1'd0, _zz_div3_1};
+ assign _zz_div3_2 = ({1'd0,{1'b1,io_input_payload_b}} <<< 1'd1);
+ assign io_output_fire = (io_output_valid && io_output_ready);
+ assign when_FpuDiv_l31 = (busy && (counter == 4'b1101));
+ assign div2 = (div1 <<< 1);
+ assign sub1 = ({1'b0,shifter} - {1'b0,div1});
+ assign sub2 = ({1'b0,shifter} - {1'b0,div2});
+ assign sub3 = ({1'b0,shifter} - {1'b0,div3});
+ assign io_output_valid = done;
+ assign io_output_payload_result = result;
+ assign io_output_payload_remain = (shifter >>> 2'd2);
+ assign io_input_ready = (! busy);
+ assign when_FpuDiv_l48 = (! done);
+ always @(*) begin
+ _zz_shifter = shifter;
+ if(when_FpuDiv_l52) begin
+ _zz_shifter = sub1[26:0];
+ end
+ if(when_FpuDiv_l56) begin
+ _zz_shifter = sub2[26:0];
+ end
+ if(when_FpuDiv_l60) begin
+ _zz_shifter = sub3[26:0];
+ end
+ end
+
+ assign when_FpuDiv_l52 = (! sub1[27]);
+ assign when_FpuDiv_l56 = (! sub2[27]);
+ assign when_FpuDiv_l60 = (! sub3[27]);
+ assign when_FpuDiv_l67 = (! busy);
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ busy <= 1'b0;
+ done <= 1'b0;
+ end else begin
+ if(io_output_fire) begin
+ busy <= 1'b0;
+ end
+ if(when_FpuDiv_l31) begin
+ done <= 1'b1;
+ end
+ if(io_output_fire) begin
+ done <= 1'b0;
+ end
+ if(when_FpuDiv_l67) begin
+ busy <= io_input_valid;
+ end
+ end
+ end
+
+ always @(posedge clk) begin
+ if(when_FpuDiv_l48) begin
+ counter <= (counter + 4'b0001);
+ result <= (result <<< 2);
+ if(when_FpuDiv_l52) begin
+ result[1 : 0] <= 2'b01;
+ end
+ if(when_FpuDiv_l56) begin
+ result[1 : 0] <= 2'b10;
+ end
+ if(when_FpuDiv_l60) begin
+ result[1 : 0] <= 2'b11;
+ end
+ shifter <= (_zz_shifter <<< 2);
+ end
+ if(when_FpuDiv_l67) begin
+ counter <= 4'b0000;
+ shifter <= {2'd0, _zz_shifter_1};
+ div1 <= {2'd0, _zz_div1};
+ div3 <= (_zz_div3 + {1'b0,_zz_div3_2});
+ end
+ end
+
+
+endmodule
+
+module StreamArbiter (
+ input wire io_inputs_0_valid,
+ output wire io_inputs_0_ready,
+ input wire [3:0] io_inputs_0_payload_opcode,
+ input wire [1:0] io_inputs_0_payload_arg,
+ input wire [4:0] io_inputs_0_payload_rs1,
+ input wire [4:0] io_inputs_0_payload_rs2,
+ input wire [4:0] io_inputs_0_payload_rs3,
+ input wire [4:0] io_inputs_0_payload_rd,
+ input wire [0:0] io_inputs_0_payload_format,
+ input wire [2:0] io_inputs_0_payload_roundMode,
+ output wire io_output_valid,
+ input wire io_output_ready,
+ output wire [3:0] io_output_payload_opcode,
+ output wire [1:0] io_output_payload_arg,
+ output wire [4:0] io_output_payload_rs1,
+ output wire [4:0] io_output_payload_rs2,
+ output wire [4:0] io_output_payload_rs3,
+ output wire [4:0] io_output_payload_rd,
+ output wire [0:0] io_output_payload_format,
+ output wire [2:0] io_output_payload_roundMode,
+ output wire [0:0] io_chosenOH,
+ input wire clk,
+ input wire resetn
+);
+ localparam FpuOpcode_LOAD = 4'd0;
+ localparam FpuOpcode_STORE = 4'd1;
+ localparam FpuOpcode_MUL = 4'd2;
+ localparam FpuOpcode_ADD = 4'd3;
+ localparam FpuOpcode_FMA = 4'd4;
+ localparam FpuOpcode_I2F = 4'd5;
+ localparam FpuOpcode_F2I = 4'd6;
+ localparam FpuOpcode_CMP = 4'd7;
+ localparam FpuOpcode_DIV = 4'd8;
+ localparam FpuOpcode_SQRT = 4'd9;
+ localparam FpuOpcode_MIN_MAX = 4'd10;
+ localparam FpuOpcode_SGNJ = 4'd11;
+ localparam FpuOpcode_FMV_X_W = 4'd12;
+ localparam FpuOpcode_FMV_W_X = 4'd13;
+ localparam FpuOpcode_FCLASS = 4'd14;
+ localparam FpuOpcode_FCVT_X_X = 4'd15;
+ localparam FpuFormat_FLOAT = 1'd0;
+ localparam FpuFormat_DOUBLE = 1'd1;
+ localparam FpuRoundMode_RNE = 3'd0;
+ localparam FpuRoundMode_RTZ = 3'd1;
+ localparam FpuRoundMode_RDN = 3'd2;
+ localparam FpuRoundMode_RUP = 3'd3;
+ localparam FpuRoundMode_RMM = 3'd4;
+
+ wire [1:0] _zz__zz_maskProposal_0_2;
+ wire [1:0] _zz__zz_maskProposal_0_2_1;
+ wire [0:0] _zz__zz_maskProposal_0_2_2;
+ wire [0:0] _zz_maskProposal_0_3;
+ wire locked;
+ wire maskProposal_0;
+ reg maskLocked_0;
+ wire maskRouted_0;
+ wire [0:0] _zz_maskProposal_0;
+ wire [1:0] _zz_maskProposal_0_1;
+ wire [1:0] _zz_maskProposal_0_2;
+ wire [3:0] _zz_io_output_payload_opcode;
+ wire [0:0] _zz_io_output_payload_format;
+ wire [2:0] _zz_io_output_payload_roundMode;
+ `ifndef SYNTHESIS
+ reg [63:0] io_inputs_0_payload_opcode_string;
+ reg [47:0] io_inputs_0_payload_format_string;
+ reg [23:0] io_inputs_0_payload_roundMode_string;
+ reg [63:0] io_output_payload_opcode_string;
+ reg [47:0] io_output_payload_format_string;
+ reg [23:0] io_output_payload_roundMode_string;
+ reg [63:0] _zz_io_output_payload_opcode_string;
+ reg [47:0] _zz_io_output_payload_format_string;
+ reg [23:0] _zz_io_output_payload_roundMode_string;
+ `endif
+
+
+ assign _zz__zz_maskProposal_0_2 = (_zz_maskProposal_0_1 - _zz__zz_maskProposal_0_2_1);
+ assign _zz__zz_maskProposal_0_2_2 = maskLocked_0;
+ assign _zz__zz_maskProposal_0_2_1 = {1'd0, _zz__zz_maskProposal_0_2_2};
+ assign _zz_maskProposal_0_3 = (_zz_maskProposal_0_2[1 : 1] | _zz_maskProposal_0_2[0 : 0]);
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(io_inputs_0_payload_opcode)
+ FpuOpcode_LOAD : io_inputs_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_inputs_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_inputs_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_inputs_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_inputs_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_inputs_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_inputs_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_inputs_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_inputs_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_inputs_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_inputs_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_inputs_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_inputs_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_inputs_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_inputs_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_inputs_0_payload_opcode_string = "FCVT_X_X";
+ default : io_inputs_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_0_payload_format)
+ FpuFormat_FLOAT : io_inputs_0_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : io_inputs_0_payload_format_string = "DOUBLE";
+ default : io_inputs_0_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(io_inputs_0_payload_roundMode)
+ FpuRoundMode_RNE : io_inputs_0_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_inputs_0_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_inputs_0_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_inputs_0_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_inputs_0_payload_roundMode_string = "RMM";
+ default : io_inputs_0_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(io_output_payload_opcode)
+ FpuOpcode_LOAD : io_output_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_output_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_output_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_output_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_output_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_output_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_output_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_output_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_output_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_output_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_output_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_output_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_output_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_output_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_output_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_output_payload_opcode_string = "FCVT_X_X";
+ default : io_output_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_output_payload_format)
+ FpuFormat_FLOAT : io_output_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : io_output_payload_format_string = "DOUBLE";
+ default : io_output_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(io_output_payload_roundMode)
+ FpuRoundMode_RNE : io_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : io_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : io_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : io_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : io_output_payload_roundMode_string = "RMM";
+ default : io_output_payload_roundMode_string = "???";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_output_payload_opcode)
+ FpuOpcode_LOAD : _zz_io_output_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : _zz_io_output_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : _zz_io_output_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : _zz_io_output_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : _zz_io_output_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : _zz_io_output_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : _zz_io_output_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : _zz_io_output_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : _zz_io_output_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : _zz_io_output_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : _zz_io_output_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : _zz_io_output_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : _zz_io_output_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : _zz_io_output_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : _zz_io_output_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : _zz_io_output_payload_opcode_string = "FCVT_X_X";
+ default : _zz_io_output_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_output_payload_format)
+ FpuFormat_FLOAT : _zz_io_output_payload_format_string = "FLOAT ";
+ FpuFormat_DOUBLE : _zz_io_output_payload_format_string = "DOUBLE";
+ default : _zz_io_output_payload_format_string = "??????";
+ endcase
+ end
+ always @(*) begin
+ case(_zz_io_output_payload_roundMode)
+ FpuRoundMode_RNE : _zz_io_output_payload_roundMode_string = "RNE";
+ FpuRoundMode_RTZ : _zz_io_output_payload_roundMode_string = "RTZ";
+ FpuRoundMode_RDN : _zz_io_output_payload_roundMode_string = "RDN";
+ FpuRoundMode_RUP : _zz_io_output_payload_roundMode_string = "RUP";
+ FpuRoundMode_RMM : _zz_io_output_payload_roundMode_string = "RMM";
+ default : _zz_io_output_payload_roundMode_string = "???";
+ endcase
+ end
+ `endif
+
+ assign locked = 1'b0;
+ assign maskRouted_0 = (locked ? maskLocked_0 : maskProposal_0);
+ assign _zz_maskProposal_0 = io_inputs_0_valid;
+ assign _zz_maskProposal_0_1 = {_zz_maskProposal_0,_zz_maskProposal_0};
+ assign _zz_maskProposal_0_2 = (_zz_maskProposal_0_1 & (~ _zz__zz_maskProposal_0_2));
+ assign maskProposal_0 = _zz_maskProposal_0_3[0];
+ assign io_output_valid = (io_inputs_0_valid && maskRouted_0);
+ assign _zz_io_output_payload_opcode = io_inputs_0_payload_opcode;
+ assign _zz_io_output_payload_format = io_inputs_0_payload_format;
+ assign _zz_io_output_payload_roundMode = io_inputs_0_payload_roundMode;
+ assign io_output_payload_opcode = _zz_io_output_payload_opcode;
+ assign io_output_payload_arg = io_inputs_0_payload_arg;
+ assign io_output_payload_rs1 = io_inputs_0_payload_rs1;
+ assign io_output_payload_rs2 = io_inputs_0_payload_rs2;
+ assign io_output_payload_rs3 = io_inputs_0_payload_rs3;
+ assign io_output_payload_rd = io_inputs_0_payload_rd;
+ assign io_output_payload_format = _zz_io_output_payload_format;
+ assign io_output_payload_roundMode = _zz_io_output_payload_roundMode;
+ assign io_inputs_0_ready = (maskRouted_0 && io_output_ready);
+ assign io_chosenOH = maskRouted_0;
+ always @(posedge clk or negedge resetn) begin
+ if(!resetn) begin
+ maskLocked_0 <= 1'b1;
+ end else begin
+ if(io_output_valid) begin
+ maskLocked_0 <= maskRouted_0;
+ end
+ end
+ end
+
+
+endmodule
+
+module StreamFork (
+ input wire io_input_valid,
+ output wire io_input_ready,
+ input wire [3:0] io_input_payload_opcode,
+ input wire [4:0] io_input_payload_rd,
+ input wire io_input_payload_write,
+ input wire [31:0] io_input_payload_value,
+ output wire io_outputs_0_valid,
+ input wire io_outputs_0_ready,
+ output wire [3:0] io_outputs_0_payload_opcode,
+ output wire [4:0] io_outputs_0_payload_rd,
+ output wire io_outputs_0_payload_write,
+ output wire [31:0] io_outputs_0_payload_value,
+ output wire io_outputs_1_valid,
+ input wire io_outputs_1_ready,
+ output wire [3:0] io_outputs_1_payload_opcode,
+ output wire [4:0] io_outputs_1_payload_rd,
+ output wire io_outputs_1_payload_write,
+ output wire [31:0] io_outputs_1_payload_value
+);
+ localparam FpuOpcode_LOAD = 4'd0;
+ localparam FpuOpcode_STORE = 4'd1;
+ localparam FpuOpcode_MUL = 4'd2;
+ localparam FpuOpcode_ADD = 4'd3;
+ localparam FpuOpcode_FMA = 4'd4;
+ localparam FpuOpcode_I2F = 4'd5;
+ localparam FpuOpcode_F2I = 4'd6;
+ localparam FpuOpcode_CMP = 4'd7;
+ localparam FpuOpcode_DIV = 4'd8;
+ localparam FpuOpcode_SQRT = 4'd9;
+ localparam FpuOpcode_MIN_MAX = 4'd10;
+ localparam FpuOpcode_SGNJ = 4'd11;
+ localparam FpuOpcode_FMV_X_W = 4'd12;
+ localparam FpuOpcode_FMV_W_X = 4'd13;
+ localparam FpuOpcode_FCLASS = 4'd14;
+ localparam FpuOpcode_FCVT_X_X = 4'd15;
+
+ `ifndef SYNTHESIS
+ reg [63:0] io_input_payload_opcode_string;
+ reg [63:0] io_outputs_0_payload_opcode_string;
+ reg [63:0] io_outputs_1_payload_opcode_string;
+ `endif
+
+
+ `ifndef SYNTHESIS
+ always @(*) begin
+ case(io_input_payload_opcode)
+ FpuOpcode_LOAD : io_input_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_input_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_input_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_input_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_input_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_input_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_input_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_input_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_input_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_input_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_input_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_input_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_input_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_input_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_input_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_input_payload_opcode_string = "FCVT_X_X";
+ default : io_input_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_outputs_0_payload_opcode)
+ FpuOpcode_LOAD : io_outputs_0_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_outputs_0_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_outputs_0_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_outputs_0_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_outputs_0_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_outputs_0_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_outputs_0_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_outputs_0_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_outputs_0_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_outputs_0_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_outputs_0_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_outputs_0_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_outputs_0_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_outputs_0_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_outputs_0_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_outputs_0_payload_opcode_string = "FCVT_X_X";
+ default : io_outputs_0_payload_opcode_string = "????????";
+ endcase
+ end
+ always @(*) begin
+ case(io_outputs_1_payload_opcode)
+ FpuOpcode_LOAD : io_outputs_1_payload_opcode_string = "LOAD ";
+ FpuOpcode_STORE : io_outputs_1_payload_opcode_string = "STORE ";
+ FpuOpcode_MUL : io_outputs_1_payload_opcode_string = "MUL ";
+ FpuOpcode_ADD : io_outputs_1_payload_opcode_string = "ADD ";
+ FpuOpcode_FMA : io_outputs_1_payload_opcode_string = "FMA ";
+ FpuOpcode_I2F : io_outputs_1_payload_opcode_string = "I2F ";
+ FpuOpcode_F2I : io_outputs_1_payload_opcode_string = "F2I ";
+ FpuOpcode_CMP : io_outputs_1_payload_opcode_string = "CMP ";
+ FpuOpcode_DIV : io_outputs_1_payload_opcode_string = "DIV ";
+ FpuOpcode_SQRT : io_outputs_1_payload_opcode_string = "SQRT ";
+ FpuOpcode_MIN_MAX : io_outputs_1_payload_opcode_string = "MIN_MAX ";
+ FpuOpcode_SGNJ : io_outputs_1_payload_opcode_string = "SGNJ ";
+ FpuOpcode_FMV_X_W : io_outputs_1_payload_opcode_string = "FMV_X_W ";
+ FpuOpcode_FMV_W_X : io_outputs_1_payload_opcode_string = "FMV_W_X ";
+ FpuOpcode_FCLASS : io_outputs_1_payload_opcode_string = "FCLASS ";
+ FpuOpcode_FCVT_X_X : io_outputs_1_payload_opcode_string = "FCVT_X_X";
+ default : io_outputs_1_payload_opcode_string = "????????";
+ endcase
+ end
+ `endif
+
+ assign io_input_ready = (io_outputs_0_ready && io_outputs_1_ready);
+ assign io_outputs_0_valid = (io_input_valid && io_input_ready);
+ assign io_outputs_1_valid = (io_input_valid && io_input_ready);
+ assign io_outputs_0_payload_opcode = io_input_payload_opcode;
+ assign io_outputs_0_payload_rd = io_input_payload_rd;
+ assign io_outputs_0_payload_write = io_input_payload_write;
+ assign io_outputs_0_payload_value = io_input_payload_value;
+ assign io_outputs_1_payload_opcode = io_input_payload_opcode;
+ assign io_outputs_1_payload_rd = io_input_payload_rd;
+ assign io_outputs_1_payload_write = io_input_payload_write;
+ assign io_outputs_1_payload_value = io_input_payload_value;
+
+endmodule
+
+module BufferCC_2 (
+ input wire io_dataIn,
+ output wire io_dataOut,
+ input wire io_jtag_tck,
+ input wire resetn_syncronized
+);
+
+ (* async_reg = "true" *) reg buffers_0;
+ (* async_reg = "true" *) reg buffers_1;
+
+ assign io_dataOut = buffers_1;
+ always @(posedge io_jtag_tck or negedge resetn_syncronized) begin
+ if(!resetn_syncronized) begin
+ buffers_0 <= 1'b0;
+ buffers_1 <= 1'b0;
+ end else begin
+ buffers_0 <= io_dataIn;
+ buffers_1 <= buffers_0;
+ end
+ end
+
+
+endmodule
+
+module BufferCC_1 (
+ input wire io_dataIn,
+ output wire io_dataOut,
+ input wire io_jtag_tck,
+ input wire resetn
+);
+
+ (* async_reg = "true" *) reg buffers_0;
+ (* async_reg = "true" *) reg buffers_1;
+
+ assign io_dataOut = buffers_1;
+ always @(posedge io_jtag_tck or negedge resetn) begin
+ if(!resetn) begin
+ buffers_0 <= 1'b0;
+ buffers_1 <= 1'b0;
+ end else begin
+ buffers_0 <= io_dataIn;
+ buffers_1 <= buffers_0;
+ end
+ end
+
+
+endmodule
+
+module BufferCC_3 (
+ input wire io_dataIn,
+ output wire io_dataOut,
+ input wire clk,
+ input wire resetn
+);
+
+ (* async_reg = "true" *) reg buffers_0;
+ (* async_reg = "true" *) reg buffers_1;
+
+ initial begin
+ `ifndef SYNTHESIS
+ buffers_0 = $urandom;
+ buffers_1 = $urandom;
+ `endif
+ end
+
+ assign io_dataOut = buffers_1;
+ always @(posedge clk) begin
+ buffers_0 <= io_dataIn;
+ buffers_1 <= buffers_0;
+ end
+
+
+endmodule
diff --git a/platform/wavelet3d/w3d_top.sv b/platform/wavelet3d/w3d_top.sv
index 818491f..0875ba2 100644
--- a/platform/wavelet3d/w3d_top.sv
+++ b/platform/wavelet3d/w3d_top.sv
@@ -42,6 +42,7 @@ import gfx::*;
);
gfx_wb fpint_wb();
+ if_tap host_jtag();
if_axib dram(), host_dbus(), host_ibus();
if_axil external_io(), gfx_ctrl();
if_pkts coverage(), geometry();
@@ -127,7 +128,8 @@ import gfx::*;
.clk,
.rst_n,
.dbus(host_dbus.m),
- .ibus(host_ibus.m)
+ .ibus(host_ibus.m),
+ .jtag(host_jtag.s)
);
w3d_interconnect inter