Merge "Add 2 alert tests in edacloud_nightly regression suite"
diff --git a/hw/BUILD b/hw/BUILD
index ef96f16..ff9c76c 100644
--- a/hw/BUILD
+++ b/hw/BUILD
@@ -8,7 +8,6 @@
package(default_visibility = ["//visibility:public"])
-
# This configuration exposes fusesoc's "make_options" to enable parallel
# compilation of the verilated model.
string_list_flag(
@@ -41,6 +40,12 @@
target = "sim",
)
+filegroup(
+ name = "verilator_bin",
+ srcs = [":verilator_real"],
+ output_group = "binary",
+)
+
# This is used in CI steps that do not want to run Verilator tests, and thus
# do not want to accidentally build the Verilator model. This causes the
# //hw:verilator target to not emit any files, which will break any tests that
@@ -67,7 +72,7 @@
name = "verilator",
actual = select({
":disable_verilator_build": ":verilator_stub",
- "//conditions:default": ":verilator_real",
+ "//conditions:default": ":verilator_bin",
}),
tags = ["verilator"],
visibility = ["//visibility:public"],
diff --git a/hw/top_matcha/data/chip_testplan.hjson b/hw/top_matcha/data/chip_testplan.hjson
index eaed0b7..69d9de3 100644
--- a/hw/top_matcha/data/chip_testplan.hjson
+++ b/hw/top_matcha/data/chip_testplan.hjson
@@ -726,6 +726,16 @@
tests: ["chip_sw_rv_timer_irq"]
}
{
+ name: chip_sw_smc_env_test
+ desc: '''Verify the timeout interrupt assertion.
+
+ - Bring up both secure core and SMC core.
+ - Verify SMC could be terminated by writing the status register.
+ '''
+ stage: V2
+ tests: ["chip_sw_smc_env_test"]
+ }
+ {
name: chip_sw_smc_timer
desc: '''Verify the timeout interrupt assertion.
@@ -3826,7 +3836,7 @@
- SW check back data and compare with the golden pattern.
'''
stage: V2
- tests: ["chip_sw_smc_isp_simple_test_data"]
+ tests: ["chip_sw_smc_isp_wrapper_tpg_64_64_test"]
}
{
name: chip_sw_smc_isp_dma_smoketest
diff --git a/hw/top_matcha/dv/chip_sim_cfg.hjson b/hw/top_matcha/dv/chip_sim_cfg.hjson
index d1ba784..f32f306 100644
--- a/hw/top_matcha/dv/chip_sim_cfg.hjson
+++ b/hw/top_matcha/dv/chip_sim_cfg.hjson
@@ -355,6 +355,33 @@
run_opts: ["+xbar_mode=1"]
reseed: 100
}
+ {
+ name: sw_test_mode_common_with_smc
+ run_opts: ["+sw_build_device={sw_build_device}",
+ // Format SW image names (which are Bazel labels concatenated with an index
+ // and/or flags, see below) into output file names separated by commas to feed into
+ // +sw_images plusarg. For example, if the input list of SW images is
+ // ["//sw/device/tests/sim_dv:uart_tx_rx_test:1",
+ // "//sw/device/lib/testing/test_rom:test_rom:0"], then the output of this eval_cmd
+ // will be: "uart_tx_rx_test:1,test_rom:0".
+ '''+sw_images={eval_cmd} \
+ reformatted_sw_images=; \
+ for image in {sw_images}; do \
+ reformatted_sw_images="$reformatted_sw_images `echo $image | cut -d: -f2-`"; \
+ done; \
+ echo $reformatted_sw_images | sed -E 's/\s+/,/g' ''']
+ en_run_modes: ["gen_otp_images_mode"]
+ }
+ {
+ name: sw_test_mode_test_rom_with_smc
+ sw_images: ["//sw/device/lib/testing/test_rom:test_rom:0"]
+ en_run_modes: ["sw_test_mode_common_with_smc"]
+ }
+ {
+ name: sw_test_mode_test_simple_sec
+ sw_images: ["//sw/device/tests:simple_sec:1:ot_flash_binary:matcha"]
+ en_run_modes: ["sw_test_mode_test_rom_with_smc"]
+ }
]
// List of test specifications.
@@ -381,6 +408,20 @@
// 4 milliseconds of timeout.
tests: [
{
+ name: chip_sw_smc_isp_wrapper_tpg_64_64_test
+ uvm_test_seq: chip_sw_base_vseq
+ sw_images: ["//sw/device/tests/smc:smc_isp_wrapper_tpg_64_64_test:6:matcha"]
+ en_run_modes: ["sw_test_mode_test_simple_sec"]
+ run_opts:["+sw_test_timeout_ns=40_000_000"]
+ }
+ {
+ name: chip_sw_smc_env_test
+ uvm_test_seq: chip_sw_base_vseq
+ sw_images: ["//sw/device/tests/smc:smc_env_test:6:matcha"]
+ en_run_modes: ["sw_test_mode_test_simple_sec"]
+ run_opts:["+sw_test_timeout_ns=40_000_000"]
+ }
+ {
// Reused from hw/dv/tools/dvsim/tests/csr_tests.hjson.
name: "chip_csr_bit_bash"
// Don't test over 200 randomly picked CSRs at a time.
@@ -1820,6 +1861,8 @@
"chip_sw_rstmgr_sw_rst",
"chip_sw_rv_plic_smoketest",
"chip_sw_rv_timer_irq",
+ "chip_sw_smc_env_test",
+ "chip_sw_smc_isp_wrapper_tpg_64_64_test",
"chip_sw_spi_device_tx_rx",
"chip_sw_sram_ctrl_smoketest",
"chip_sw_uart_smoketest",
@@ -1857,6 +1900,8 @@
"chip_sw_rstmgr_sw_rst",
"chip_sw_rv_plic_smoketest",
"chip_sw_rv_timer_irq",
+ "chip_sw_smc_env_test",
+ "chip_sw_smc_isp_wrapper_tpg_64_64_test",
"chip_sw_spi_device_tx_rx",
"chip_sw_sram_ctrl_smoketest",
"chip_sw_uart_smoketest",
@@ -1894,6 +1939,8 @@
"chip_sw_rstmgr_sw_rst",
"chip_sw_rv_plic_smoketest",
"chip_sw_rv_timer_irq",
+ "chip_sw_smc_env_test",
+ "chip_sw_smc_isp_wrapper_tpg_64_64_test",
"chip_sw_spi_device_tx_rx",
"chip_sw_sram_ctrl_smoketest",
"chip_sw_uart_smoketest",
diff --git a/hw/top_matcha/dv/env/chip_common_pkg.sv b/hw/top_matcha/dv/env/chip_common_pkg.sv
index 4a7198b..a444fae 100644
--- a/hw/top_matcha/dv/env/chip_common_pkg.sv
+++ b/hw/top_matcha/dv/env/chip_common_pkg.sv
@@ -21,9 +21,13 @@
// SW constants - use unmapped address space with at least 32 bytes.
parameter bit [top_pkg::TL_AW-1:0] SW_DV_START_ADDR = tl_main_pkg::ADDR_SPACE_RV_CORE_IBEX_SEC__CFG +
rv_core_ibex_reg_pkg::RV_CORE_IBEX_DV_SIM_WINDOW_OFFSET;
+ parameter bit [top_pkg::TL_AW-1:0] SW_DV_SMC_START_ADDR = tl_smc_pkg::ADDR_SPACE_RV_CORE_IBEX_SMC__CFG +
+ rv_core_ibex_reg_pkg::RV_CORE_IBEX_DV_SIM_WINDOW_OFFSET;
parameter bit [top_pkg::TL_AW-1:0] SW_DV_TEST_STATUS_ADDR = SW_DV_START_ADDR + 0;
parameter bit [top_pkg::TL_AW-1:0] SW_DV_LOG_ADDR = SW_DV_START_ADDR + 4;
+ parameter bit [top_pkg::TL_AW-1:0] SW_DV_SMC_TEST_STATUS_ADDR = SW_DV_SMC_START_ADDR + 0;
+ parameter bit [top_pkg::TL_AW-1:0] SW_DV_SMC_LOG_ADDR = SW_DV_SMC_START_ADDR + 4;
parameter uint ROM_CONSOLE_UART = 0;
diff --git a/hw/top_matcha/dv/env/chip_env.sv b/hw/top_matcha/dv/env/chip_env.sv
index df2b3f9..b3e787b 100644
--- a/hw/top_matcha/dv/env/chip_env.sv
+++ b/hw/top_matcha/dv/env/chip_env.sv
@@ -56,12 +56,20 @@
if (!uvm_config_db#(sw_logger_vif)::get(this, "", "sw_logger_vif", cfg.sw_logger_vif)) begin
`uvm_fatal(`gfn, "failed to get sw_logger_vif from uvm_config_db")
end
+ if (!uvm_config_db#(sw_logger_vif)::get(this, "", "sw_smc_logger_vif", cfg.sw_smc_logger_vif)) begin
+ `uvm_fatal(`gfn, "failed to get sw_smc_logger_vif from uvm_config_db")
+ end
if (!uvm_config_db#(virtual sw_test_status_if)::get(
this, "", "sw_test_status_vif", cfg.sw_test_status_vif
)) begin
`uvm_fatal(`gfn, "failed to get sw_test_status_vif from uvm_config_db")
end
+ if (!uvm_config_db#(virtual sw_test_status_if)::get(
+ this, "", "sw_smc_test_status_vif", cfg.sw_smc_test_status_vif
+ )) begin
+ `uvm_fatal(`gfn, "failed to get sw_smc_test_status_vif from uvm_config_db")
+ end
// get the handle to the ast supply interface.
if (!uvm_config_db#(virtual ast_supply_if)::get(
diff --git a/hw/top_matcha/dv/env/chip_env_cfg.sv b/hw/top_matcha/dv/env/chip_env_cfg.sv
index 12c947d..6f630a7 100644
--- a/hw/top_matcha/dv/env/chip_env_cfg.sv
+++ b/hw/top_matcha/dv/env/chip_env_cfg.sv
@@ -71,11 +71,13 @@
otp_type_e use_otp_image = OtpTypeLcStRma;
string otp_images[otp_type_e];
- uint sw_test_timeout_ns = 12_000_000; // 12ms
- sw_logger_vif sw_logger_vif;
- sw_test_status_vif sw_test_status_vif;
- ast_supply_vif ast_supply_vif;
- ast_ext_clk_vif ast_ext_clk_vif;
+ uint sw_test_timeout_ns = 12_000_000; // 12ms
+ sw_logger_vif sw_logger_vif;
+ sw_test_status_vif sw_test_status_vif;
+ sw_smc_logger_vif sw_smc_logger_vif;
+ sw_smc_test_status_vif sw_smc_test_status_vif;
+ ast_supply_vif ast_supply_vif;
+ ast_ext_clk_vif ast_ext_clk_vif;
// Number of RAM tiles for each RAM instance.
uint num_ram_main_tiles;
@@ -425,7 +427,7 @@
end
end else if (i == SwTypeOtp) begin
otp_images[OtpTypeCustom] = $sformatf("%0s.24.vmem", sw_images[i]);
- end else if (i == SwTypeDebug) begin
+ end else if (i == SwTypeDebug || i == SwTypeSmc) begin
sw_images[i] = $sformatf("%0s_%0s", sw_images[i], sw_build_device);
end
end
diff --git a/hw/top_matcha/dv/env/chip_env_pkg.sv b/hw/top_matcha/dv/env/chip_env_pkg.sv
index 6b361fd..874577e 100644
--- a/hw/top_matcha/dv/env/chip_env_pkg.sv
+++ b/hw/top_matcha/dv/env/chip_env_pkg.sv
@@ -47,6 +47,7 @@
import pwm_monitor_pkg::*;
import pwm_reg_pkg::NOutputs;
import tl_main_pkg::ADDR_SPACE_RV_CORE_IBEX_SEC__CFG;
+ import tl_smc_pkg::ADDR_SPACE_RV_CORE_IBEX_SMC__CFG;
import rv_core_ibex_reg_pkg::RV_CORE_IBEX_DV_SIM_WINDOW_OFFSET;
import i2c_agent_pkg::*;
import pattgen_agent_pkg::*;
@@ -67,6 +68,8 @@
typedef virtual sw_logger_if sw_logger_vif;
typedef virtual sw_test_status_if sw_test_status_vif;
+ typedef virtual sw_logger_if sw_smc_logger_vif;
+ typedef virtual sw_test_status_if sw_smc_test_status_vif;
typedef virtual ast_supply_if ast_supply_vif;
typedef virtual ast_ext_clk_if ast_ext_clk_vif;
@@ -88,7 +91,8 @@
Otp,
RamMain[16],
RamRet[16],
- Rom
+ Rom,
+ Smc_ram
} chip_mem_e;
// On OpenTitan, we deal with 4 types of SW - ROM, the main test, the OTBN test and the OTP image.
@@ -99,7 +103,8 @@
SwTypeTestSlotB = 2, // Ibex SW - test SW in (flash) slot B.
SwTypeOtbn = 3, // Otbn SW
SwTypeOtp = 4, // Customized OTP image
- SwTypeDebug = 5 // Debug SW - injected into SRAM.
+ SwTypeDebug = 5, // Debug SW - injected into SRAM.
+ SwTypeSmc = 6 // SMC SW
} sw_type_e;
// Our dvsim.py configuration always generates five base OTP images (in various lifecycle states)
diff --git a/hw/top_matcha/dv/env/seq_lib/chip_sw_base_vseq.sv b/hw/top_matcha/dv/env/seq_lib/chip_sw_base_vseq.sv
index ea12936..f2cc535 100644
--- a/hw/top_matcha/dv/env/seq_lib/chip_sw_base_vseq.sv
+++ b/hw/top_matcha/dv/env/seq_lib/chip_sw_base_vseq.sv
@@ -53,6 +53,7 @@
`uvm_info(`gfn, "Starting cpu_init", UVM_MEDIUM)
// Initialize the sw logger interface.
+ // SEC
foreach (cfg.sw_images[i]) begin
if (i inside {SwTypeRom, SwTypeDebug, SwTypeTestSlotA, SwTypeTestSlotB}) begin
cfg.sw_logger_vif.add_sw_log_db(cfg.sw_images[i]);
@@ -61,9 +62,19 @@
cfg.sw_logger_vif.sw_log_addr = SW_DV_LOG_ADDR;
cfg.sw_logger_vif.write_sw_logs_to_file = cfg.write_sw_logs_to_file;
cfg.sw_logger_vif.ready();
+ // SMC
+ foreach (cfg.sw_images[i]) begin
+ if (i inside {SwTypeSmc}) begin
+ cfg.sw_smc_logger_vif.add_sw_log_db(cfg.sw_images[i]);
+ end
+ end
+ cfg.sw_smc_logger_vif.sw_log_addr = SW_DV_SMC_LOG_ADDR;
+ cfg.sw_smc_logger_vif.write_sw_logs_to_file = cfg.write_sw_logs_to_file;
+ cfg.sw_smc_logger_vif.ready();
// Initialize the sw test status.
- cfg.sw_test_status_vif.sw_test_status_addr = SW_DV_TEST_STATUS_ADDR;
+ cfg.sw_test_status_vif.sw_test_status_addr = SW_DV_TEST_STATUS_ADDR;
+ cfg.sw_smc_test_status_vif.sw_test_status_addr = SW_DV_SMC_TEST_STATUS_ADDR;
`uvm_info(`gfn, "Initializing SRAMs", UVM_MEDIUM)
@@ -113,6 +124,11 @@
cfg.mem_bkdr_util_h[FlashBank1Data].load_mem_from_file(
{cfg.sw_images[SwTypeTestSlotB], ".64.scr.vmem"});
end
+ // SMC RAM sw imsage load
+ if (cfg.sw_images.exists(SwTypeSmc)) begin
+ cfg.mem_bkdr_util_h[Smc_ram].load_mem_from_file(
+ {cfg.sw_images[SwTypeSmc], ".32.vmem"});
+ end
config_jitter();
@@ -226,7 +242,7 @@
fork
begin: isolation_thread
fork
- wait (cfg.sw_test_status_vif.sw_test_done);
+ wait (cfg.sw_test_status_vif.sw_test_done || cfg.sw_smc_test_status_vif.sw_test_done);
#(cfg.sw_test_timeout_ns * 1ns);
join_any
disable fork;
@@ -237,15 +253,28 @@
// Print pass / fail message to the log.
virtual function void log_sw_test_status();
- case (cfg.sw_test_status_vif.sw_test_status)
- SwTestStatusPassed: `uvm_info(`gfn, "SW TEST PASSED!", UVM_LOW)
- SwTestStatusFailed: `uvm_error(`gfn, "SW TEST FAILED!")
- default: begin
- // If the SW test has not reached the passed / failed state, then it timed out.
- `uvm_error(`gfn, $sformatf("SW TEST TIMED OUT. STATE: %0s, TIMEOUT = %0d ns\n",
- cfg.sw_test_status_vif.sw_test_status.name(), cfg.sw_test_timeout_ns))
- end
- endcase
+ if(cfg.sw_test_status_vif.sw_test_done) begin
+ case (cfg.sw_test_status_vif.sw_test_status)
+ SwTestStatusPassed: `uvm_info(`gfn, "SW TEST PASSED!", UVM_LOW)
+ SwTestStatusFailed: `uvm_error(`gfn, "SW TEST FAILED!")
+ default: begin
+ // If the SW test has not reached the passed / failed state, then it timed out.
+ `uvm_error(`gfn, $sformatf("SW TEST TIMED OUT. STATE: %0s, TIMEOUT = %0d ns\n",
+ cfg.sw_test_status_vif.sw_test_status.name(), cfg.sw_test_timeout_ns))
+ end
+ endcase
+ end
+ if(cfg.sw_smc_test_status_vif.sw_test_done) begin
+ case (cfg.sw_smc_test_status_vif.sw_test_status)
+ SwTestStatusPassed: `uvm_info(`gfn, "SW TEST PASSED!", UVM_LOW)
+ SwTestStatusFailed: `uvm_error(`gfn, "SW TEST FAILED!")
+ default: begin
+ // If the SW test has not reached the passed / failed state, then it timed out.
+ `uvm_error(`gfn, $sformatf("SW TEST TIMED OUT. STATE: %0s, TIMEOUT = %0d ns\n",
+ cfg.sw_smc_test_status_vif.sw_test_status.name(), cfg.sw_test_timeout_ns))
+ end
+ endcase
+ end
endfunction
// Configure the provided spi_agent_cfg to use flash mode, and add the
diff --git a/hw/top_matcha/dv/tb/chip_hier_macros.svh b/hw/top_matcha/dv/tb/chip_hier_macros.svh
index 6265b5d..233bf05 100644
--- a/hw/top_matcha/dv/tb/chip_hier_macros.svh
+++ b/hw/top_matcha/dv/tb/chip_hier_macros.svh
@@ -64,3 +64,4 @@
`define OTP_MEM_HIER `OTP_GENERIC_HIER.u_prim_ram_1p_adv.u_mem.`MEM_ARRAY_SUB
`define OTBN_IMEM_HIER `OTBN_HIER.u_imem.u_prim_ram_1p_adv.u_mem.`MEM_ARRAY_SUB
`define OTBN_DMEM_HIER `OTBN_HIER.u_dmem.u_prim_ram_1p_adv.u_mem.`MEM_ARRAY_SUB
+`define SMC_RAM_HIER `CHIP_HIER.u_ram1p_ram_smc.u_mem.`MEM_ARRAY_SUB
diff --git a/hw/top_matcha/dv/tb/tb.sv b/hw/top_matcha/dv/tb/tb.sv
index 539c2f7..77cb5c5 100644
--- a/hw/top_matcha/dv/tb/tb.sv
+++ b/hw/top_matcha/dv/tb/tb.sv
@@ -186,6 +186,50 @@
.*
);
+ // Connect the SMC SRAM directly inside rv_core_smc.
+ `define SIM_SMC_SRAM_IF u_sim_smc_sram.u_sim_sram_if
+ // Instantiate & connect the simulation SRAM inside the SMC CPU (rv_core_ibex) using forces.
+ bit stub_smc;
+ initial begin
+ void'($value$plusargs("stub_smc_core=%0b", stub_smc));
+ end
+
+ bit en_sim_smc_sram = 1'b1;
+ wire sel_sim_smc_sram = !stub_smc & en_sim_smc_sram;
+
+ sim_sram u_sim_smc_sram (
+ .clk_i (sel_sim_smc_sram ? `SMC_CPU_HIER.clk_i : 1'b0),
+ .rst_ni (`SMC_CPU_HIER.rst_ni),
+ .tl_in_i (tlul_pkg::tl_h2d_t'(`SMC_CPU_HIER.u_tlul_req_buf.out_o)),
+ .tl_in_o (),
+ .tl_out_o (),
+ .tl_out_i ()
+ );
+
+ initial begin
+ void'($value$plusargs("en_sim_smc_sram=%0b", en_sim_smc_sram));
+ if (!stub_smc && en_sim_smc_sram) begin
+ `SIM_SMC_SRAM_IF.start_addr = SW_DV_SMC_START_ADDR;
+ force `SMC_CPU_HIER.u_tlul_rsp_buf.in_i = u_sim_smc_sram.tl_in_o;
+ end
+ end
+
+ // Bind the SW test status interface directly to the sim SRAM interface.
+ bind `SIM_SMC_SRAM_IF sw_test_status_if u_sw_smc_test_status_if (
+ .addr (tl_h2d.a_address),
+ .data (tl_h2d.a_data[15:0]),
+ .fetch_en (dut.chip_if.pwrmgr_cpu_fetch_en),
+ .*
+ );
+
+ // Bind the SW logger interface directly to the sim SRAM interface.
+ bind `SIM_SMC_SRAM_IF sw_logger_if u_sw_smc_logger_if (
+ .addr (tl_h2d.a_address),
+ .data (tl_h2d.a_data),
+ .*
+ );
+
+
initial begin
// IO Interfaces
uvm_config_db#(virtual chip_if)::set(null, "*.env", "chip_vif", dut.chip_if);
@@ -193,8 +237,12 @@
// SW logger and test status interfaces.
uvm_config_db#(virtual sw_test_status_if)::set(
null, "*.env", "sw_test_status_vif", `SIM_SRAM_IF.u_sw_test_status_if);
+ uvm_config_db#(virtual sw_test_status_if)::set(
+ null, "*.env", "sw_smc_test_status_vif", `SIM_SMC_SRAM_IF.u_sw_smc_test_status_if);
uvm_config_db#(virtual sw_logger_if)::set(
null, "*.env", "sw_logger_vif", `SIM_SRAM_IF.u_sw_logger_if);
+ uvm_config_db#(virtual sw_logger_if)::set(
+ null, "*.env", "sw_smc_logger_vif", `SIM_SMC_SRAM_IF.u_sw_smc_logger_if);
// AST supply interface.
uvm_config_db#(virtual ast_supply_if)::set(
@@ -334,6 +382,16 @@
.system_base_addr (top_matcha_pkg::TOP_MATCHA_RAM_RET_AON_BASE_ADDR));
`MEM_BKDR_UTIL_FILE_OP(m_mem_bkdr_util[RamRet0], `RAM_RET_MEM_HIER)
+ `uvm_info("tb.sv", "Creating mem_bkdr_util instance for SMC_RAM", UVM_MEDIUM)
+ m_mem_bkdr_util[Smc_ram] = new(
+ .name ("mem_bkdr_util[Smc_ram]"),
+ .path (`DV_STRINGIFY(`SMC_RAM_HIER)),
+ .depth ($size(`SMC_RAM_HIER)),
+ .n_bits($bits(`SMC_RAM_HIER)),
+ .err_detection_scheme(mem_bkdr_util_pkg::ErrDetectionNone),
+ .system_base_addr (top_matcha_pkg::TOP_MATCHA_RAM_SMC_BASE_ADDR));
+ `MEM_BKDR_UTIL_FILE_OP(m_mem_bkdr_util[Smc_ram], `SMC_RAM_HIER)
+
`uvm_info("tb.sv", "Creating mem_bkdr_util instance for ROM", UVM_MEDIUM)
m_mem_bkdr_util[Rom] = new(
.name ("mem_bkdr_util[Rom]"),
diff --git a/hw/top_matcha/ip/ml_top/rtl/kelvin.v b/hw/top_matcha/ip/ml_top/rtl/kelvin.v
index feb6d69..e9ef1b2 100644
--- a/hw/top_matcha/ip/ml_top/rtl/kelvin.v
+++ b/hw/top_matcha/ip/ml_top/rtl/kelvin.v
@@ -1,4 +1,4 @@
-// SHA: 79b26d29361bb7daee24abcee6493d05441b17ff
+// SHA: fb78d8ccc36939bd88c4d4f55185d283831d14a6
module Regfile(
input clock,
input reset,
@@ -4298,23 +4298,23 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 51:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full; // @[Slice.scala 51:22]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits = mem_0; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits = mem_0; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0 <= io_in_bits; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0 <= mem_1; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0 <= io_in_bits; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0 <= mem_1; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1 <= io_in_bits; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1 <= io_in_bits; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -15045,68 +15045,68 @@
wire empty = ipos == opos; // @[Slice.scala 29:20]
wire ivalid = io_in_valid & io_in_ready; // @[Slice.scala 31:28]
wire ovalid = io_out_valid & io_out_ready; // @[Slice.scala 32:29]
- assign io_in_ready = empty | io_out_ready; // @[Slice.scala 93:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 108:18]
- assign io_out_bits_adrx = mem_0_adrx; // @[Slice.scala 108:18]
- assign io_out_bits_data = mem_0_data; // @[Slice.scala 108:18]
- assign io_out_bits_index = mem_0_index; // @[Slice.scala 108:18]
- assign io_out_bits_size = mem_0_size; // @[Slice.scala 108:18]
- assign io_out_bits_write = mem_0_write; // @[Slice.scala 108:18]
- assign io_out_bits_sext = mem_0_sext; // @[Slice.scala 108:18]
- assign io_out_bits_fload = mem_0_fload; // @[Slice.scala 108:18]
- assign io_out_bits_iload = mem_0_iload; // @[Slice.scala 108:18]
- assign io_out_bits_fencei = mem_0_fencei; // @[Slice.scala 108:18]
- assign io_out_bits_flushat = mem_0_flushat; // @[Slice.scala 108:18]
- assign io_out_bits_flushall = mem_0_flushall; // @[Slice.scala 108:18]
- assign io_out_bits_sldst = mem_0_sldst; // @[Slice.scala 108:18]
- assign io_out_bits_vldst = mem_0_vldst; // @[Slice.scala 108:18]
- assign io_out_bits_suncd = mem_0_suncd; // @[Slice.scala 108:18]
+ assign io_in_ready = empty | io_out_ready; // @[Slice.scala 74:28]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_adrx = mem_0_adrx; // @[Slice.scala 89:18]
+ assign io_out_bits_data = mem_0_data; // @[Slice.scala 89:18]
+ assign io_out_bits_index = mem_0_index; // @[Slice.scala 89:18]
+ assign io_out_bits_size = mem_0_size; // @[Slice.scala 89:18]
+ assign io_out_bits_write = mem_0_write; // @[Slice.scala 89:18]
+ assign io_out_bits_sext = mem_0_sext; // @[Slice.scala 89:18]
+ assign io_out_bits_fload = mem_0_fload; // @[Slice.scala 89:18]
+ assign io_out_bits_iload = mem_0_iload; // @[Slice.scala 89:18]
+ assign io_out_bits_fencei = mem_0_fencei; // @[Slice.scala 89:18]
+ assign io_out_bits_flushat = mem_0_flushat; // @[Slice.scala 89:18]
+ assign io_out_bits_flushall = mem_0_flushall; // @[Slice.scala 89:18]
+ assign io_out_bits_sldst = mem_0_sldst; // @[Slice.scala 89:18]
+ assign io_out_bits_vldst = mem_0_vldst; // @[Slice.scala 89:18]
+ assign io_out_bits_suncd = mem_0_suncd; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_addr <= io_in_bits_addr; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_addr <= io_in_bits_addr; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_adrx <= io_in_bits_adrx; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_adrx <= io_in_bits_adrx; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_data <= io_in_bits_data; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_data <= io_in_bits_data; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_index <= io_in_bits_index; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_index <= io_in_bits_index; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_size <= io_in_bits_size; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_size <= io_in_bits_size; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_write <= io_in_bits_write; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_write <= io_in_bits_write; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_sext <= io_in_bits_sext; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_sext <= io_in_bits_sext; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_fload <= io_in_bits_fload; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_fload <= io_in_bits_fload; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_iload <= io_in_bits_iload; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_iload <= io_in_bits_iload; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_fencei <= io_in_bits_fencei; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_fencei <= io_in_bits_fencei; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_flushat <= io_in_bits_flushat; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_flushat <= io_in_bits_flushat; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_flushall <= io_in_bits_flushall; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_flushall <= io_in_bits_flushall; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_sldst <= io_in_bits_sldst; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_sldst <= io_in_bits_sldst; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_vldst <= io_in_bits_vldst; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_vldst <= io_in_bits_vldst; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_suncd <= io_in_bits_suncd; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_suncd <= io_in_bits_suncd; // @[Slice.scala 80:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -20821,86 +20821,86 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 49:22]
- wire _T_3 = ivalid & ~io_out_valid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & io_out_valid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & io_out_valid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~io_out_valid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~io_out_valid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & io_out_valid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & io_out_valid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~io_out_valid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = 1'h1; // @[Slice.scala 49:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 108:18]
- assign io_out_bits_index = mem_0_index; // @[Slice.scala 108:18]
- assign io_out_bits_size = mem_0_size; // @[Slice.scala 108:18]
- assign io_out_bits_sext = mem_0_sext; // @[Slice.scala 108:18]
- assign io_out_bits_fload = mem_0_fload; // @[Slice.scala 108:18]
- assign io_out_bits_iload = mem_0_iload; // @[Slice.scala 108:18]
- assign io_out_bits_sldst = mem_0_sldst; // @[Slice.scala 108:18]
- assign io_out_bits_suncd = mem_0_suncd; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_index = mem_0_index; // @[Slice.scala 89:18]
+ assign io_out_bits_size = mem_0_size; // @[Slice.scala 89:18]
+ assign io_out_bits_sext = mem_0_sext; // @[Slice.scala 89:18]
+ assign io_out_bits_fload = mem_0_fload; // @[Slice.scala 89:18]
+ assign io_out_bits_iload = mem_0_iload; // @[Slice.scala 89:18]
+ assign io_out_bits_sldst = mem_0_sldst; // @[Slice.scala 89:18]
+ assign io_out_bits_suncd = mem_0_suncd; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_addr <= io_in_bits_addr; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_addr <= mem_1_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_addr <= io_in_bits_addr; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_addr <= mem_1_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_index <= io_in_bits_index; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_index <= mem_1_index; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_index <= io_in_bits_index; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_index <= mem_1_index; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_size <= io_in_bits_size; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_size <= mem_1_size; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_size <= io_in_bits_size; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_size <= mem_1_size; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_sext <= io_in_bits_sext; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_sext <= mem_1_sext; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_sext <= io_in_bits_sext; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_sext <= mem_1_sext; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_fload <= io_in_bits_fload; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_fload <= mem_1_fload; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_fload <= io_in_bits_fload; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_fload <= mem_1_fload; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_iload <= io_in_bits_iload; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_iload <= mem_1_iload; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_iload <= io_in_bits_iload; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_iload <= mem_1_iload; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_sldst <= io_in_bits_sldst; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_sldst <= mem_1_sldst; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_sldst <= io_in_bits_sldst; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_sldst <= mem_1_sldst; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_suncd <= io_in_bits_suncd; // @[Slice.scala 79:14]
- end else if (io_out_valid & full) begin // @[Slice.scala 73:27]
- mem_0_suncd <= mem_1_suncd; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_suncd <= io_in_bits_suncd; // @[Slice.scala 60:14]
+ end else if (io_out_valid & full) begin // @[Slice.scala 54:27]
+ mem_0_suncd <= mem_1_suncd; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_addr <= io_in_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_addr <= io_in_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_index <= io_in_bits_index; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_index <= io_in_bits_index; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_size <= io_in_bits_size; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_size <= io_in_bits_size; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_sext <= io_in_bits_sext; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_sext <= io_in_bits_sext; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_fload <= io_in_bits_fload; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_fload <= io_in_bits_fload; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_iload <= io_in_bits_iload; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_iload <= io_in_bits_iload; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_sldst <= io_in_bits_sldst; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_sldst <= io_in_bits_sldst; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_suncd <= io_in_bits_suncd; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_suncd <= io_in_bits_suncd; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -26629,7 +26629,7 @@
input clock,
input reset,
input io_op_valid,
- input [4:0] io_op_bits,
+ input [3:0] io_op_bits,
output io_ina_ready,
input io_ina_valid,
input [31:0] io_ina_bits_0,
@@ -26665,42 +26665,38 @@
reg [31:0] _RAND_19;
reg [31:0] _RAND_20;
`endif // RANDOMIZE_REG_INIT
- reg active1; // @[FMAdd.scala 33:24]
- reg active2; // @[FMAdd.scala 34:24]
- reg active3; // @[FMAdd.scala 35:24]
- reg [4:0] op1; // @[FMAdd.scala 36:16]
- reg state1__0_sign; // @[FMAdd.scala 38:19]
- reg [9:0] state1__0_exp; // @[FMAdd.scala 38:19]
- reg [47:0] state1__0_mul; // @[FMAdd.scala 38:19]
- reg state1__0_zero; // @[FMAdd.scala 38:19]
- reg state1__0_inf_a; // @[FMAdd.scala 38:19]
- reg state1__0_inf_b; // @[FMAdd.scala 38:19]
- reg state1__0_nan; // @[FMAdd.scala 38:19]
- reg state2_0_sign; // @[FMAdd.scala 39:19]
- reg [9:0] state2_0_exp; // @[FMAdd.scala 39:19]
- reg [48:0] state2_0_ain; // @[FMAdd.scala 39:19]
- reg [48:0] state2_0_bin; // @[FMAdd.scala 39:19]
- reg state2_0_sel; // @[FMAdd.scala 39:19]
- reg state2_0_add; // @[FMAdd.scala 39:19]
- reg state2_0_sub; // @[FMAdd.scala 39:19]
- reg state3_0_sign; // @[FMAdd.scala 40:19]
- reg [7:0] state3_0_exp; // @[FMAdd.scala 40:19]
- reg [22:0] state3_0_man; // @[FMAdd.scala 40:19]
- wire _update1_T_3 = ~active1; // @[FMAdd.scala 42:98]
- wire update1 = io_ina_valid & io_inb_valid & io_ina_ready & io_inb_ready & (io_inc_ready | ~active1); // @[FMAdd.scala 42:78]
- wire update2 = active1 & io_inc_valid & io_inc_ready; // @[FMAdd.scala 43:41]
- wire isMul = io_op_valid & ~io_op_bits[4]; // @[FMAdd.scala 66:27]
- wire isDot = io_op_valid & io_op_bits[4]; // @[FMAdd.scala 67:27]
- wire isSub = io_op_bits[2] | io_op_bits[3]; // @[FMAdd.scala 68:42]
- wire [31:0] mul_ina = isMul ? io_ina_bits_0 : 32'h0; // @[FMAdd.scala 76:22]
- wire [31:0] mul_inb = isMul ? io_inb_bits_0 : 32'h0; // @[FMAdd.scala 77:22]
- wire [31:0] dot_ina = isDot ? io_ina_bits_0 : 32'h0; // @[FMAdd.scala 78:22]
- wire [31:0] dot_inb = isDot ? io_inb_bits_0 : 32'h0; // @[FMAdd.scala 79:22]
- wire _mul_sina_T_3 = isSub ? ~mul_ina[31] : mul_ina[31]; // @[FMAdd.scala 84:29]
+ reg active1; // @[FMAdd.scala 32:24]
+ reg active2; // @[FMAdd.scala 33:24]
+ reg active3; // @[FMAdd.scala 34:24]
+ reg [3:0] op1; // @[FMAdd.scala 35:16]
+ reg state1__0_sign; // @[FMAdd.scala 37:19]
+ reg [9:0] state1__0_exp; // @[FMAdd.scala 37:19]
+ reg [47:0] state1__0_mul; // @[FMAdd.scala 37:19]
+ reg state1__0_zero; // @[FMAdd.scala 37:19]
+ reg state1__0_inf_a; // @[FMAdd.scala 37:19]
+ reg state1__0_inf_b; // @[FMAdd.scala 37:19]
+ reg state1__0_nan; // @[FMAdd.scala 37:19]
+ reg state2_0_sign; // @[FMAdd.scala 38:19]
+ reg [9:0] state2_0_exp; // @[FMAdd.scala 38:19]
+ reg [48:0] state2_0_ain; // @[FMAdd.scala 38:19]
+ reg [48:0] state2_0_bin; // @[FMAdd.scala 38:19]
+ reg state2_0_sel; // @[FMAdd.scala 38:19]
+ reg state2_0_add; // @[FMAdd.scala 38:19]
+ reg state2_0_sub; // @[FMAdd.scala 38:19]
+ reg state3_0_sign; // @[FMAdd.scala 39:19]
+ reg [7:0] state3_0_exp; // @[FMAdd.scala 39:19]
+ reg [22:0] state3_0_man; // @[FMAdd.scala 39:19]
+ wire _update1_T_3 = ~active1; // @[FMAdd.scala 41:98]
+ wire update1 = io_ina_valid & io_inb_valid & io_ina_ready & io_inb_ready & (io_inc_ready | ~active1); // @[FMAdd.scala 41:78]
+ wire update2 = active1 & io_inc_valid & io_inc_ready; // @[FMAdd.scala 42:41]
+ wire isSub = io_op_bits[2] | io_op_bits[3]; // @[FMAdd.scala 66:42]
+ wire [31:0] mul_ina = io_op_valid ? io_ina_bits_0 : 32'h0; // @[FMAdd.scala 74:22]
+ wire [31:0] mul_inb = io_op_valid ? io_inb_bits_0 : 32'h0; // @[FMAdd.scala 75:22]
+ wire _mul_sina_T_3 = isSub ? ~mul_ina[31] : mul_ina[31]; // @[FMAdd.scala 80:29]
wire [31:0] mul_sina = {_mul_sina_T_3,mul_ina[30:0]}; // @[Cat.scala 31:58]
wire _state1_0_zero_T_1 = mul_sina[30:0] == 31'h0; // @[FBase.scala 76:18]
wire _state1_0_zero_T_3 = mul_inb[30:0] == 31'h0; // @[FBase.scala 76:18]
- wire state1_0_zero = _state1_0_zero_T_1 | _state1_0_zero_T_3; // @[FMAdd.scala 173:33]
+ wire state1_0_zero = _state1_0_zero_T_1 | _state1_0_zero_T_3; // @[FMAdd.scala 157:33]
wire _state1_0_inf_a_T_1 = mul_sina[30:23] == 8'hff; // @[FBase.scala 64:19]
wire state1_0_inf_a = mul_sina[30:23] == 8'hff & mul_sina[22:0] == 23'h0; // @[FBase.scala 64:37]
wire _state1_0_inf_b_T_1 = mul_inb[30:23] == 8'hff; // @[FBase.scala 64:19]
@@ -26713,195 +26709,65 @@
wire state1_0_subn_b = mul_inb[30:23] == 8'h0 & _state1_0_nan_b_T_3; // @[FBase.scala 72:27]
wire state1_0_sign_a = mul_sina[31]; // @[FBase.scala 28:14]
wire state1_0_sign_b = mul_inb[31]; // @[FBase.scala 28:14]
- wire [7:0] state1_0_iexp_a = state1_0_subn_a ? 8'h1 : mul_sina[30:23]; // @[FMAdd.scala 188:21]
- wire [7:0] state1_0_iexp_b = state1_0_subn_b ? 8'h1 : mul_inb[30:23]; // @[FMAdd.scala 189:21]
- wire _state1_0_iman_a_T = state1_0_subn_a ? 1'h0 : 1'h1; // @[FMAdd.scala 190:25]
+ wire [7:0] state1_0_iexp_a = state1_0_subn_a ? 8'h1 : mul_sina[30:23]; // @[FMAdd.scala 172:21]
+ wire [7:0] state1_0_iexp_b = state1_0_subn_b ? 8'h1 : mul_inb[30:23]; // @[FMAdd.scala 173:21]
+ wire _state1_0_iman_a_T = state1_0_subn_a ? 1'h0 : 1'h1; // @[FMAdd.scala 174:25]
wire [23:0] state1_0_iman_a = {_state1_0_iman_a_T,mul_sina[22:0]}; // @[Cat.scala 31:58]
- wire _state1_0_iman_b_T = state1_0_subn_b ? 1'h0 : 1'h1; // @[FMAdd.scala 191:25]
+ wire _state1_0_iman_b_T = state1_0_subn_b ? 1'h0 : 1'h1; // @[FMAdd.scala 175:25]
wire [23:0] state1_0_iman_b = {_state1_0_iman_b_T,mul_inb[22:0]}; // @[Cat.scala 31:58]
- wire [9:0] state1_0_nbias = 10'h0 - 10'h7f; // @[FMAdd.scala 221:17]
- wire state1_0_sign = state1_0_sign_a ^ state1_0_sign_b; // @[FMAdd.scala 223:23]
- wire [8:0] _state1_0_exp_T = state1_0_iexp_a + state1_0_iexp_b; // @[FMAdd.scala 224:22]
- wire [9:0] _GEN_54 = {{1'd0}, _state1_0_exp_T}; // @[FMAdd.scala 224:31]
- wire [9:0] state1_0_exp = _GEN_54 + state1_0_nbias; // @[FMAdd.scala 224:31]
- wire [47:0] state1_0_mul = state1_0_iman_a * state1_0_iman_b; // @[FMAdd.scala 225:22]
- wire _state1_0_exp_z_T = ~state1_0_zero; // @[FMAdd.scala 197:21]
- wire [9:0] state1_0_exp_z = ~state1_0_zero ? state1_0_exp : 10'h0; // @[FMAdd.scala 197:20]
- wire [47:0] state1_0_mul_z = _state1_0_exp_z_T ? state1_0_mul : 48'h0; // @[FMAdd.scala 198:20]
- wire state1_0_state1_nan = state1_0_nan_a | state1_0_nan_b; // @[FMAdd.scala 209:27]
- wire bfst_sign_a = dot_ina[15]; // @[FBase.scala 212:14]
- wire bfst_sign_b = dot_inb[15]; // @[FBase.scala 212:14]
- wire [7:0] bfst_exp_a = dot_ina[14:7]; // @[FBase.scala 198:14]
- wire [7:0] bfst_exp_b = dot_inb[14:7]; // @[FBase.scala 198:14]
- wire [6:0] bfst_man_a_m = dot_ina[6:0]; // @[FBase.scala 205:14]
- wire [7:0] bfst_man_a = {1'h1,bfst_man_a_m}; // @[Cat.scala 31:58]
- wire [6:0] bfst_man_b_m = dot_inb[6:0]; // @[FBase.scala 205:14]
- wire [7:0] bfst_man_b = {1'h1,bfst_man_b_m}; // @[Cat.scala 31:58]
- wire bfst_sign0 = bfst_sign_a ^ bfst_sign_b; // @[BFDot.scala 155:23]
- wire [8:0] _bfst_exp_T = bfst_exp_a + bfst_exp_b; // @[BFDot.scala 156:22]
- wire [9:0] _GEN_55 = {{1'd0}, _bfst_exp_T}; // @[BFDot.scala 156:31]
- wire [9:0] bfst_exp = _GEN_55 + state1_0_nbias; // @[BFDot.scala 156:31]
- wire [15:0] bfst_mul = bfst_man_a * bfst_man_b; // @[BFDot.scala 157:22]
- wire bfst_infM = bfst_mul[15] & bfst_exp == 10'hfe; // @[BFDot.scala 163:26]
- wire _bfst_zeroM_T_1 = ~bfst_mul[15]; // @[BFDot.scala 164:17]
- wire bfst_zeroM = ~bfst_mul[15] & bfst_exp[7:0] == 8'h0; // @[BFDot.scala 164:26]
- wire _bfst_inf_T = bfst_exp_a == 8'hff; // @[BFDot.scala 166:21]
- wire _bfst_inf_T_1 = bfst_exp_b == 8'hff; // @[BFDot.scala 166:40]
- wire bfst_inf0 = bfst_exp_a == 8'hff | bfst_exp_b == 8'hff | bfst_exp == 10'hff | bfst_exp[9:8] == 2'h1 | bfst_infM; // @[BFDot.scala 166:92]
- wire bfst_zero0 = bfst_exp_a == 8'h0 | bfst_exp_b == 8'h0 | bfst_exp[9] | bfst_zeroM | bfst_inf0; // @[BFDot.scala 167:66]
- wire [9:0] _bfst_shfexp_T_3 = bfst_exp + 10'h1; // @[BFDot.scala 170:41]
- wire [9:0] bfst_exp0 = _bfst_zeroM_T_1 ? bfst_exp : _bfst_shfexp_T_3; // @[BFDot.scala 170:21]
- wire [16:0] _bfst_shfmul_T_2 = {bfst_mul,1'h0}; // @[Cat.scala 31:58]
- wire [16:0] _bfst_shfmul_T_3 = {1'h0,bfst_mul}; // @[Cat.scala 31:58]
- wire [16:0] bfst_mul0 = _bfst_zeroM_T_1 ? _bfst_shfmul_T_2 : _bfst_shfmul_T_3; // @[BFDot.scala 171:21]
- wire bfst_sign_a_1 = dot_ina[31]; // @[FBase.scala 212:14]
- wire bfst_sign_b_1 = dot_inb[31]; // @[FBase.scala 212:14]
- wire [7:0] bfst_exp_a_1 = dot_ina[30:23]; // @[FBase.scala 198:14]
- wire [7:0] bfst_exp_b_1 = dot_inb[30:23]; // @[FBase.scala 198:14]
- wire [6:0] bfst_man_a_m_1 = dot_ina[22:16]; // @[FBase.scala 205:14]
- wire [7:0] bfst_man_a_1 = {1'h1,bfst_man_a_m_1}; // @[Cat.scala 31:58]
- wire [6:0] bfst_man_b_m_1 = dot_inb[22:16]; // @[FBase.scala 205:14]
- wire [7:0] bfst_man_b_1 = {1'h1,bfst_man_b_m_1}; // @[Cat.scala 31:58]
- wire bfst_sign1 = bfst_sign_a_1 ^ bfst_sign_b_1; // @[BFDot.scala 155:23]
- wire [8:0] _bfst_exp_T_2 = bfst_exp_a_1 + bfst_exp_b_1; // @[BFDot.scala 156:22]
- wire [9:0] _GEN_56 = {{1'd0}, _bfst_exp_T_2}; // @[BFDot.scala 156:31]
- wire [9:0] bfst_exp_1 = _GEN_56 + state1_0_nbias; // @[BFDot.scala 156:31]
- wire [15:0] bfst_mul_1 = bfst_man_a_1 * bfst_man_b_1; // @[BFDot.scala 157:22]
- wire bfst_infM_1 = bfst_mul_1[15] & bfst_exp_1 == 10'hfe; // @[BFDot.scala 163:26]
- wire _bfst_zeroM_T_5 = ~bfst_mul_1[15]; // @[BFDot.scala 164:17]
- wire bfst_zeroM_1 = ~bfst_mul_1[15] & bfst_exp_1[7:0] == 8'h0; // @[BFDot.scala 164:26]
- wire _bfst_inf_T_9 = bfst_exp_a_1 == 8'hff; // @[BFDot.scala 166:21]
- wire _bfst_inf_T_10 = bfst_exp_b_1 == 8'hff; // @[BFDot.scala 166:40]
- wire bfst_inf1 = bfst_exp_a_1 == 8'hff | bfst_exp_b_1 == 8'hff | bfst_exp_1 == 10'hff | bfst_exp_1[9:8] == 2'h1 |
- bfst_infM_1; // @[BFDot.scala 166:92]
- wire bfst_zero1 = bfst_exp_a_1 == 8'h0 | bfst_exp_b_1 == 8'h0 | bfst_exp_1[9] | bfst_zeroM_1 | bfst_inf1; // @[BFDot.scala 167:66]
- wire [9:0] _bfst_shfexp_T_7 = bfst_exp_1 + 10'h1; // @[BFDot.scala 170:41]
- wire [9:0] bfst_exp1 = _bfst_zeroM_T_5 ? bfst_exp_1 : _bfst_shfexp_T_7; // @[BFDot.scala 170:21]
- wire [16:0] _bfst_shfmul_T_6 = {bfst_mul_1,1'h0}; // @[Cat.scala 31:58]
- wire [16:0] _bfst_shfmul_T_7 = {1'h0,bfst_mul_1}; // @[Cat.scala 31:58]
- wire [16:0] bfst_mul1 = _bfst_zeroM_T_5 ? _bfst_shfmul_T_6 : _bfst_shfmul_T_7; // @[BFDot.scala 171:21]
- wire _bfst_select_0_T_4 = _bfst_inf_T & bfst_man_a_m == 7'h0; // @[FBase.scala 223:37]
- wire _bfst_select_0_T_9 = _bfst_inf_T_1 & bfst_man_b_m == 7'h0; // @[FBase.scala 223:37]
- wire _bfst_select_0_T_16 = _bfst_inf_T_9 & bfst_man_a_m_1 == 7'h0; // @[FBase.scala 223:37]
- wire _bfst_select_0_T_17 = _bfst_select_0_T_4 | _bfst_select_0_T_9 | bfst_inf0 | _bfst_select_0_T_16; // @[BFDot.scala 90:59]
- wire _bfst_select_0_T_22 = _bfst_inf_T_10 & bfst_man_b_m_1 == 7'h0; // @[FBase.scala 223:37]
- wire bfst_select_0 = _bfst_select_0_T_17 | _bfst_select_0_T_22 | bfst_inf1; // @[BFDot.scala 91:51]
- wire _bfst_select_1_T = ~bfst_select_0; // @[BFDot.scala 94:18]
- wire _bfst_select_1_T_4 = bfst_sign0 != bfst_sign1; // @[BFDot.scala 95:38]
- wire _bfst_select_1_T_9 = _bfst_select_1_T & bfst_sign0 != bfst_sign1 & bfst_exp0 == bfst_exp1 & bfst_mul0 ==
- bfst_mul1; // @[BFDot.scala 95:65]
- wire bfst_select_1 = ~bfst_select_0 & bfst_zero0 & bfst_zero1 | _bfst_select_1_T_9; // @[BFDot.scala 94:47]
- wire _bfst_select_3_T_2 = _bfst_select_1_T & ~bfst_select_1; // @[BFDot.scala 101:29]
- wire _bfst_select_3_T_6 = _bfst_select_1_T & ~bfst_select_1 & ~bfst_zero0 & ~bfst_zero1; // @[BFDot.scala 101:53]
- wire _bfst_abgecd_T_7 = bfst_exp0[7:0] == bfst_exp1[7:0] & bfst_mul0 >= bfst_mul1; // @[BFDot.scala 74:42]
- wire bfst_abgecd = bfst_exp0[7:0] > bfst_exp1[7:0] | _bfst_abgecd_T_7; // @[BFDot.scala 73:40]
- wire _bfst_select_3_T_7 = _bfst_select_1_T & ~bfst_select_1 & ~bfst_zero0 & ~bfst_zero1 & bfst_abgecd; // @[BFDot.scala 101:63]
- wire _bfst_select_3_T_8 = bfst_sign0 == bfst_sign1; // @[BFDot.scala 101:82]
- wire bfst_select_3 = _bfst_select_1_T & ~bfst_select_1 & ~bfst_zero0 & ~bfst_zero1 & bfst_abgecd & bfst_sign0 ==
- bfst_sign1; // @[BFDot.scala 101:73]
- wire bfst_select_2 = _bfst_select_3_T_2 & bfst_zero1; // @[BFDot.scala 98:43]
- wire bfst_select_5 = _bfst_select_3_T_2 & bfst_zero0; // @[BFDot.scala 107:43]
- wire bfst_select_4 = _bfst_select_3_T_7 & _bfst_select_1_T_4; // @[BFDot.scala 104:73]
- wire _bfst_select_7_T_8 = _bfst_select_3_T_6 & ~bfst_abgecd; // @[BFDot.scala 113:63]
- wire bfst_select_7 = _bfst_select_3_T_6 & ~bfst_abgecd & _bfst_select_1_T_4; // @[BFDot.scala 113:74]
- wire bfst_select_6 = _bfst_select_7_T_8 & _bfst_select_3_T_8; // @[BFDot.scala 110:74]
- wire [7:0] _bfst_T_4 = {bfst_select_7,bfst_select_6,bfst_select_5,bfst_select_4,bfst_select_3,bfst_select_2,
- bfst_select_1,bfst_select_0}; // @[BFDot.scala 61:27]
- wire [1:0] _bfst_T_13 = _bfst_T_4[0] + _bfst_T_4[1]; // @[Bitwise.scala 48:55]
- wire [1:0] _bfst_T_15 = _bfst_T_4[2] + _bfst_T_4[3]; // @[Bitwise.scala 48:55]
- wire [2:0] _bfst_T_17 = _bfst_T_13 + _bfst_T_15; // @[Bitwise.scala 48:55]
- wire [1:0] _bfst_T_19 = _bfst_T_4[4] + _bfst_T_4[5]; // @[Bitwise.scala 48:55]
- wire [1:0] _bfst_T_21 = _bfst_T_4[6] + _bfst_T_4[7]; // @[Bitwise.scala 48:55]
- wire [2:0] _bfst_T_23 = _bfst_T_19 + _bfst_T_21; // @[Bitwise.scala 48:55]
- wire [3:0] _bfst_T_25 = _bfst_T_17 + _bfst_T_23; // @[Bitwise.scala 48:55]
- wire _bfst_T_27 = _bfst_T_25 != 4'h1; // @[BFDot.scala 61:35]
- wire _bfst_T_30 = ~reset; // @[BFDot.scala 62:13]
- wire [47:0] bfst_pmul0 = {bfst_mul0,31'h0}; // @[Cat.scala 31:58]
- wire [47:0] bfst_pmul1 = {bfst_mul1,31'h0}; // @[Cat.scala 31:58]
- wire [7:0] bfst_shamt0 = bfst_exp1[7:0] - bfst_exp0[7:0]; // @[BFDot.scala 76:28]
- wire [7:0] bfst_shamt1 = bfst_exp0[7:0] - bfst_exp1[7:0]; // @[BFDot.scala 77:28]
- wire [47:0] bfst_shf0 = bfst_pmul0 >> bfst_shamt0; // @[BFDot.scala 78:22]
- wire [47:0] bfst_shf1 = bfst_pmul1 >> bfst_shamt1; // @[BFDot.scala 79:22]
- wire [47:0] bfst_abcd = bfst_pmul0 + bfst_shf1; // @[BFDot.scala 81:23]
- wire [47:0] bfst_cdab = bfst_pmul1 + bfst_shf0; // @[BFDot.scala 82:23]
- wire [47:0] bfst_abncd = bfst_pmul0 - bfst_shf1; // @[BFDot.scala 83:23]
- wire [47:0] bfst_cdnab = bfst_pmul1 - bfst_shf0; // @[BFDot.scala 84:23]
- wire _bfst_state_sign_T_1 = bfst_select_2 | bfst_select_3 | bfst_select_4; // @[BFDot.scala 119:48]
- wire _bfst_state_sign_T_2 = _bfst_state_sign_T_1 & bfst_sign0; // @[BFDot.scala 116:10]
- wire _bfst_state_sign_T_4 = bfst_select_5 | bfst_select_6 | bfst_select_7; // @[BFDot.scala 120:48]
- wire _bfst_state_sign_T_5 = _bfst_state_sign_T_4 & bfst_sign1; // @[BFDot.scala 116:10]
- wire bfst__sign = _bfst_state_sign_T_2 | _bfst_state_sign_T_5; // @[BFDot.scala 119:69]
- wire [7:0] _bfst_state_exp_T = bfst_select_0 ? 8'hff : 8'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_1 = bfst_select_2 ? bfst_exp0 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _GEN_57 = {{2'd0}, _bfst_state_exp_T}; // @[BFDot.scala 122:42]
- wire [9:0] _bfst_state_exp_T_2 = _GEN_57 | _bfst_state_exp_T_1; // @[BFDot.scala 122:42]
- wire [9:0] _bfst_state_exp_T_3 = bfst_select_3 ? bfst_exp0 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_4 = _bfst_state_exp_T_2 | _bfst_state_exp_T_3; // @[BFDot.scala 123:41]
- wire [9:0] _bfst_state_exp_T_5 = bfst_select_4 ? bfst_exp0 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_6 = _bfst_state_exp_T_4 | _bfst_state_exp_T_5; // @[BFDot.scala 124:41]
- wire [9:0] _bfst_state_exp_T_7 = bfst_select_5 ? bfst_exp1 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_8 = _bfst_state_exp_T_6 | _bfst_state_exp_T_7; // @[BFDot.scala 125:41]
- wire [9:0] _bfst_state_exp_T_9 = bfst_select_6 ? bfst_exp1 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_10 = _bfst_state_exp_T_8 | _bfst_state_exp_T_9; // @[BFDot.scala 126:41]
- wire [9:0] _bfst_state_exp_T_11 = bfst_select_7 ? bfst_exp1 : 10'h0; // @[BFDot.scala 116:10]
- wire [9:0] _bfst_state_exp_T_12 = _bfst_state_exp_T_10 | _bfst_state_exp_T_11; // @[BFDot.scala 127:41]
- wire [47:0] _bfst_state_mul_T = bfst_select_2 ? bfst_pmul0 : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] _bfst_state_mul_T_1 = bfst_select_3 ? bfst_abcd : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] _bfst_state_mul_T_2 = _bfst_state_mul_T | _bfst_state_mul_T_1; // @[BFDot.scala 130:42]
- wire [47:0] _bfst_state_mul_T_3 = bfst_select_4 ? bfst_abncd : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] _bfst_state_mul_T_4 = _bfst_state_mul_T_2 | _bfst_state_mul_T_3; // @[BFDot.scala 131:41]
- wire [47:0] _bfst_state_mul_T_5 = bfst_select_5 ? bfst_pmul1 : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] _bfst_state_mul_T_6 = _bfst_state_mul_T_4 | _bfst_state_mul_T_5; // @[BFDot.scala 132:42]
- wire [47:0] _bfst_state_mul_T_7 = bfst_select_6 ? bfst_cdab : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] _bfst_state_mul_T_8 = _bfst_state_mul_T_6 | _bfst_state_mul_T_7; // @[BFDot.scala 133:42]
- wire [47:0] _bfst_state_mul_T_9 = bfst_select_7 ? bfst_cdnab : 48'h0; // @[BFDot.scala 116:10]
- wire [47:0] bfst__mul = _bfst_state_mul_T_8 | _bfst_state_mul_T_9; // @[BFDot.scala 134:41]
- wire [7:0] bfst__exp = _bfst_state_exp_T_12[7:0]; // @[BFDot.scala 122:15 58:21]
- wire csub = op1[1] | op1[3]; // @[FMAdd.scala 101:37]
- wire _cm_T_3 = csub ? ~io_inc_bits_0[31] : io_inc_bits_0[31]; // @[FMAdd.scala 102:23]
+ wire [9:0] state1_0_nbias = 10'h0 - 10'h7f; // @[FMAdd.scala 205:17]
+ wire state1_0_sign = state1_0_sign_a ^ state1_0_sign_b; // @[FMAdd.scala 207:23]
+ wire [8:0] _state1_0_exp_T = state1_0_iexp_a + state1_0_iexp_b; // @[FMAdd.scala 208:22]
+ wire [9:0] _GEN_46 = {{1'd0}, _state1_0_exp_T}; // @[FMAdd.scala 208:31]
+ wire [9:0] state1_0_exp = _GEN_46 + state1_0_nbias; // @[FMAdd.scala 208:31]
+ wire [47:0] state1_0_mul = state1_0_iman_a * state1_0_iman_b; // @[FMAdd.scala 209:22]
+ wire _state1_0_exp_z_T = ~state1_0_zero; // @[FMAdd.scala 181:21]
+ wire state1_0_state1_nan = state1_0_nan_a | state1_0_nan_b; // @[FMAdd.scala 193:27]
+ wire csub = op1[1] | op1[3]; // @[FMAdd.scala 85:37]
+ wire _cm_T_3 = csub ? ~io_inc_bits_0[31] : io_inc_bits_0[31]; // @[FMAdd.scala 86:23]
wire [31:0] cm = {_cm_T_3,io_inc_bits_0[30:0]}; // @[Cat.scala 31:58]
- wire [31:0] _GEN_58 = {{16'd0}, state1__0_mul[31:16]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state2_0_a_clz_T_4 = _GEN_58 & 32'hffff; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_47 = {{16'd0}, state1__0_mul[31:16]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state2_0_a_clz_T_4 = _GEN_47 & 32'hffff; // @[Bitwise.scala 105:31]
wire [31:0] _state2_0_a_clz_T_6 = {state1__0_mul[15:0], 16'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state2_0_a_clz_T_8 = _state2_0_a_clz_T_6 & 32'hffff0000; // @[Bitwise.scala 105:80]
wire [31:0] _state2_0_a_clz_T_9 = _state2_0_a_clz_T_4 | _state2_0_a_clz_T_8; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_59 = {{8'd0}, _state2_0_a_clz_T_9[31:8]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state2_0_a_clz_T_14 = _GEN_59 & 32'hff00ff; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_48 = {{8'd0}, _state2_0_a_clz_T_9[31:8]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state2_0_a_clz_T_14 = _GEN_48 & 32'hff00ff; // @[Bitwise.scala 105:31]
wire [31:0] _state2_0_a_clz_T_16 = {_state2_0_a_clz_T_9[23:0], 8'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state2_0_a_clz_T_18 = _state2_0_a_clz_T_16 & 32'hff00ff00; // @[Bitwise.scala 105:80]
wire [31:0] _state2_0_a_clz_T_19 = _state2_0_a_clz_T_14 | _state2_0_a_clz_T_18; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_60 = {{4'd0}, _state2_0_a_clz_T_19[31:4]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state2_0_a_clz_T_24 = _GEN_60 & 32'hf0f0f0f; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_49 = {{4'd0}, _state2_0_a_clz_T_19[31:4]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state2_0_a_clz_T_24 = _GEN_49 & 32'hf0f0f0f; // @[Bitwise.scala 105:31]
wire [31:0] _state2_0_a_clz_T_26 = {_state2_0_a_clz_T_19[27:0], 4'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state2_0_a_clz_T_28 = _state2_0_a_clz_T_26 & 32'hf0f0f0f0; // @[Bitwise.scala 105:80]
wire [31:0] _state2_0_a_clz_T_29 = _state2_0_a_clz_T_24 | _state2_0_a_clz_T_28; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_61 = {{2'd0}, _state2_0_a_clz_T_29[31:2]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state2_0_a_clz_T_34 = _GEN_61 & 32'h33333333; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_50 = {{2'd0}, _state2_0_a_clz_T_29[31:2]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state2_0_a_clz_T_34 = _GEN_50 & 32'h33333333; // @[Bitwise.scala 105:31]
wire [31:0] _state2_0_a_clz_T_36 = {_state2_0_a_clz_T_29[29:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state2_0_a_clz_T_38 = _state2_0_a_clz_T_36 & 32'hcccccccc; // @[Bitwise.scala 105:80]
wire [31:0] _state2_0_a_clz_T_39 = _state2_0_a_clz_T_34 | _state2_0_a_clz_T_38; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_62 = {{1'd0}, _state2_0_a_clz_T_39[31:1]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state2_0_a_clz_T_44 = _GEN_62 & 32'h55555555; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_51 = {{1'd0}, _state2_0_a_clz_T_39[31:1]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state2_0_a_clz_T_44 = _GEN_51 & 32'h55555555; // @[Bitwise.scala 105:31]
wire [31:0] _state2_0_a_clz_T_46 = {_state2_0_a_clz_T_39[30:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state2_0_a_clz_T_48 = _state2_0_a_clz_T_46 & 32'haaaaaaaa; // @[Bitwise.scala 105:80]
wire [31:0] _state2_0_a_clz_T_49 = _state2_0_a_clz_T_44 | _state2_0_a_clz_T_48; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_63 = {{8'd0}, state1__0_mul[47:40]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_a_clz_T_54 = _GEN_63 & 16'hff; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_52 = {{8'd0}, state1__0_mul[47:40]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_a_clz_T_54 = _GEN_52 & 16'hff; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_a_clz_T_56 = {state1__0_mul[39:32], 8'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_a_clz_T_58 = _state2_0_a_clz_T_56 & 16'hff00; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_a_clz_T_59 = _state2_0_a_clz_T_54 | _state2_0_a_clz_T_58; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_64 = {{4'd0}, _state2_0_a_clz_T_59[15:4]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_a_clz_T_64 = _GEN_64 & 16'hf0f; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_53 = {{4'd0}, _state2_0_a_clz_T_59[15:4]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_a_clz_T_64 = _GEN_53 & 16'hf0f; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_a_clz_T_66 = {_state2_0_a_clz_T_59[11:0], 4'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_a_clz_T_68 = _state2_0_a_clz_T_66 & 16'hf0f0; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_a_clz_T_69 = _state2_0_a_clz_T_64 | _state2_0_a_clz_T_68; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_65 = {{2'd0}, _state2_0_a_clz_T_69[15:2]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_a_clz_T_74 = _GEN_65 & 16'h3333; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_54 = {{2'd0}, _state2_0_a_clz_T_69[15:2]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_a_clz_T_74 = _GEN_54 & 16'h3333; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_a_clz_T_76 = {_state2_0_a_clz_T_69[13:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_a_clz_T_78 = _state2_0_a_clz_T_76 & 16'hcccc; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_a_clz_T_79 = _state2_0_a_clz_T_74 | _state2_0_a_clz_T_78; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_66 = {{1'd0}, _state2_0_a_clz_T_79[15:1]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_a_clz_T_84 = _GEN_66 & 16'h5555; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_55 = {{1'd0}, _state2_0_a_clz_T_79[15:1]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_a_clz_T_84 = _GEN_55 & 16'h5555; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_a_clz_T_86 = {_state2_0_a_clz_T_79[14:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_a_clz_T_88 = _state2_0_a_clz_T_86 & 16'haaaa; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_a_clz_T_89 = _state2_0_a_clz_T_84 | _state2_0_a_clz_T_88; // @[Bitwise.scala 105:39]
@@ -26953,40 +26819,40 @@
wire [5:0] _state2_0_a_clz_T_183 = _state2_0_a_clz_T_90[2] ? 6'h2 : _state2_0_a_clz_T_182; // @[Mux.scala 47:70]
wire [5:0] _state2_0_a_clz_T_184 = _state2_0_a_clz_T_90[1] ? 6'h1 : _state2_0_a_clz_T_183; // @[Mux.scala 47:70]
wire [5:0] state2_0_a_clz = _state2_0_a_clz_T_90[0] ? 6'h0 : _state2_0_a_clz_T_184; // @[Mux.scala 47:70]
- wire _state2_0_b_clz_T_1 = cm[30:23] != 8'h0; // @[FMAdd.scala 244:32]
+ wire _state2_0_b_clz_T_1 = cm[30:23] != 8'h0; // @[FMAdd.scala 228:32]
wire [23:0] _state2_0_b_clz_T_3 = {1'h0,cm[22:0]}; // @[Cat.scala 31:58]
- wire [15:0] _GEN_67 = {{8'd0}, _state2_0_b_clz_T_3[15:8]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_b_clz_T_8 = _GEN_67 & 16'hff; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_56 = {{8'd0}, _state2_0_b_clz_T_3[15:8]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_b_clz_T_8 = _GEN_56 & 16'hff; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_b_clz_T_10 = {_state2_0_b_clz_T_3[7:0], 8'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_b_clz_T_12 = _state2_0_b_clz_T_10 & 16'hff00; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_b_clz_T_13 = _state2_0_b_clz_T_8 | _state2_0_b_clz_T_12; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_68 = {{4'd0}, _state2_0_b_clz_T_13[15:4]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_b_clz_T_18 = _GEN_68 & 16'hf0f; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_57 = {{4'd0}, _state2_0_b_clz_T_13[15:4]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_b_clz_T_18 = _GEN_57 & 16'hf0f; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_b_clz_T_20 = {_state2_0_b_clz_T_13[11:0], 4'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_b_clz_T_22 = _state2_0_b_clz_T_20 & 16'hf0f0; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_b_clz_T_23 = _state2_0_b_clz_T_18 | _state2_0_b_clz_T_22; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_69 = {{2'd0}, _state2_0_b_clz_T_23[15:2]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_b_clz_T_28 = _GEN_69 & 16'h3333; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_58 = {{2'd0}, _state2_0_b_clz_T_23[15:2]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_b_clz_T_28 = _GEN_58 & 16'h3333; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_b_clz_T_30 = {_state2_0_b_clz_T_23[13:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_b_clz_T_32 = _state2_0_b_clz_T_30 & 16'hcccc; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_b_clz_T_33 = _state2_0_b_clz_T_28 | _state2_0_b_clz_T_32; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_70 = {{1'd0}, _state2_0_b_clz_T_33[15:1]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state2_0_b_clz_T_38 = _GEN_70 & 16'h5555; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_59 = {{1'd0}, _state2_0_b_clz_T_33[15:1]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state2_0_b_clz_T_38 = _GEN_59 & 16'h5555; // @[Bitwise.scala 105:31]
wire [15:0] _state2_0_b_clz_T_40 = {_state2_0_b_clz_T_33[14:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state2_0_b_clz_T_42 = _state2_0_b_clz_T_40 & 16'haaaa; // @[Bitwise.scala 105:80]
wire [15:0] _state2_0_b_clz_T_43 = _state2_0_b_clz_T_38 | _state2_0_b_clz_T_42; // @[Bitwise.scala 105:39]
- wire [7:0] _GEN_71 = {{4'd0}, _state2_0_b_clz_T_3[23:20]}; // @[Bitwise.scala 105:31]
- wire [7:0] _state2_0_b_clz_T_48 = _GEN_71 & 8'hf; // @[Bitwise.scala 105:31]
+ wire [7:0] _GEN_60 = {{4'd0}, _state2_0_b_clz_T_3[23:20]}; // @[Bitwise.scala 105:31]
+ wire [7:0] _state2_0_b_clz_T_48 = _GEN_60 & 8'hf; // @[Bitwise.scala 105:31]
wire [7:0] _state2_0_b_clz_T_50 = {_state2_0_b_clz_T_3[19:16], 4'h0}; // @[Bitwise.scala 105:70]
wire [7:0] _state2_0_b_clz_T_52 = _state2_0_b_clz_T_50 & 8'hf0; // @[Bitwise.scala 105:80]
wire [7:0] _state2_0_b_clz_T_53 = _state2_0_b_clz_T_48 | _state2_0_b_clz_T_52; // @[Bitwise.scala 105:39]
- wire [7:0] _GEN_72 = {{2'd0}, _state2_0_b_clz_T_53[7:2]}; // @[Bitwise.scala 105:31]
- wire [7:0] _state2_0_b_clz_T_58 = _GEN_72 & 8'h33; // @[Bitwise.scala 105:31]
+ wire [7:0] _GEN_61 = {{2'd0}, _state2_0_b_clz_T_53[7:2]}; // @[Bitwise.scala 105:31]
+ wire [7:0] _state2_0_b_clz_T_58 = _GEN_61 & 8'h33; // @[Bitwise.scala 105:31]
wire [7:0] _state2_0_b_clz_T_60 = {_state2_0_b_clz_T_53[5:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [7:0] _state2_0_b_clz_T_62 = _state2_0_b_clz_T_60 & 8'hcc; // @[Bitwise.scala 105:80]
wire [7:0] _state2_0_b_clz_T_63 = _state2_0_b_clz_T_58 | _state2_0_b_clz_T_62; // @[Bitwise.scala 105:39]
- wire [7:0] _GEN_73 = {{1'd0}, _state2_0_b_clz_T_63[7:1]}; // @[Bitwise.scala 105:31]
- wire [7:0] _state2_0_b_clz_T_68 = _GEN_73 & 8'h55; // @[Bitwise.scala 105:31]
+ wire [7:0] _GEN_62 = {{1'd0}, _state2_0_b_clz_T_63[7:1]}; // @[Bitwise.scala 105:31]
+ wire [7:0] _state2_0_b_clz_T_68 = _GEN_62 & 8'h55; // @[Bitwise.scala 105:31]
wire [7:0] _state2_0_b_clz_T_70 = {_state2_0_b_clz_T_63[6:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [7:0] _state2_0_b_clz_T_72 = _state2_0_b_clz_T_70 & 8'haa; // @[Bitwise.scala 105:80]
wire [7:0] _state2_0_b_clz_T_73 = _state2_0_b_clz_T_68 | _state2_0_b_clz_T_72; // @[Bitwise.scala 105:39]
@@ -27014,135 +26880,135 @@
wire [4:0] _state2_0_b_clz_T_119 = _state2_0_b_clz_T_74[2] ? 5'h2 : _state2_0_b_clz_T_118; // @[Mux.scala 47:70]
wire [4:0] _state2_0_b_clz_T_120 = _state2_0_b_clz_T_74[1] ? 5'h1 : _state2_0_b_clz_T_119; // @[Mux.scala 47:70]
wire [4:0] _state2_0_b_clz_T_121 = _state2_0_b_clz_T_74[0] ? 5'h0 : _state2_0_b_clz_T_120; // @[Mux.scala 47:70]
- wire [4:0] state2_0_b_clz = cm[30:23] != 8'h0 ? 5'h0 : _state2_0_b_clz_T_121; // @[FMAdd.scala 244:20]
- wire state2_0_acm_sign = cm[31]; // @[FMAdd.scala 246:23]
- wire _state2_0_acm_exp_T_4 = cm[22:0] != 23'h0; // @[FMAdd.scala 247:69]
- wire [7:0] state2_0_acm_exp = _state2_0_b_clz_T_1 ? cm[30:23] : {{7'd0}, cm[22:0] != 23'h0}; // @[FMAdd.scala 247:22]
- wire _state2_0_b_zero_T_1 = cm[22:0] == 23'h0; // @[FMAdd.scala 251:46]
- wire state2_0_b_zero = state2_0_acm_exp == 8'h0 & cm[22:0] == 23'h0; // @[FMAdd.scala 251:34]
- wire [9:0] _GEN_74 = {{4'd0}, state2_0_a_clz}; // @[FMAdd.scala 256:28]
- wire [9:0] state2_0_a_exp = state1__0_exp - _GEN_74; // @[FMAdd.scala 256:28]
+ wire [4:0] state2_0_b_clz = cm[30:23] != 8'h0 ? 5'h0 : _state2_0_b_clz_T_121; // @[FMAdd.scala 228:20]
+ wire state2_0_acm_sign = cm[31]; // @[FMAdd.scala 230:23]
+ wire _state2_0_acm_exp_T_4 = cm[22:0] != 23'h0; // @[FMAdd.scala 231:69]
+ wire [7:0] state2_0_acm_exp = _state2_0_b_clz_T_1 ? cm[30:23] : {{7'd0}, cm[22:0] != 23'h0}; // @[FMAdd.scala 231:22]
+ wire _state2_0_b_zero_T_1 = cm[22:0] == 23'h0; // @[FMAdd.scala 235:46]
+ wire state2_0_b_zero = state2_0_acm_exp == 8'h0 & cm[22:0] == 23'h0; // @[FMAdd.scala 235:34]
+ wire [9:0] _GEN_63 = {{4'd0}, state2_0_a_clz}; // @[FMAdd.scala 240:28]
+ wire [9:0] state2_0_a_exp = state1__0_exp - _GEN_63; // @[FMAdd.scala 240:28]
wire [9:0] _state2_0_b_exp_T = {2'h0,state2_0_acm_exp}; // @[Cat.scala 31:58]
- wire [9:0] _GEN_75 = {{5'd0}, state2_0_b_clz}; // @[FMAdd.scala 257:40]
- wire [9:0] _state2_0_b_exp_T_2 = _state2_0_b_exp_T - _GEN_75; // @[FMAdd.scala 257:40]
- wire [9:0] state2_0_b_exp = _state2_0_b_exp_T_2 - 10'h1; // @[FMAdd.scala 257:48]
+ wire [9:0] _GEN_64 = {{5'd0}, state2_0_b_clz}; // @[FMAdd.scala 241:40]
+ wire [9:0] _state2_0_b_exp_T_2 = _state2_0_b_exp_T - _GEN_64; // @[FMAdd.scala 241:40]
+ wire [9:0] state2_0_b_exp = _state2_0_b_exp_T_2 - 10'h1; // @[FMAdd.scala 241:48]
wire [47:0] state2_0_b_man = {_state2_0_b_clz_T_1,cm[22:0],24'h0}; // @[Cat.scala 31:58]
- wire [110:0] _GEN_0 = {{63'd0}, state1__0_mul}; // @[FMAdd.scala 264:24]
- wire [110:0] _state2_0_a_shl_T = _GEN_0 << state2_0_a_clz; // @[FMAdd.scala 264:24]
- wire [47:0] state2_0_a_shl = _state2_0_a_shl_T[47:0]; // @[FMAdd.scala 264:33]
- wire [78:0] _GEN_1 = {{31'd0}, state2_0_b_man}; // @[FMAdd.scala 265:24]
- wire [78:0] _state2_0_b_shl_T = _GEN_1 << state2_0_b_clz; // @[FMAdd.scala 265:24]
- wire [47:0] state2_0_b_shl = _state2_0_b_shl_T[47:0]; // @[FMAdd.scala 265:33]
+ wire [110:0] _GEN_0 = {{63'd0}, state1__0_mul}; // @[FMAdd.scala 248:24]
+ wire [110:0] _state2_0_a_shl_T = _GEN_0 << state2_0_a_clz; // @[FMAdd.scala 248:24]
+ wire [47:0] state2_0_a_shl = _state2_0_a_shl_T[47:0]; // @[FMAdd.scala 248:33]
+ wire [78:0] _GEN_1 = {{31'd0}, state2_0_b_man}; // @[FMAdd.scala 249:24]
+ wire [78:0] _state2_0_b_shl_T = _GEN_1 << state2_0_b_clz; // @[FMAdd.scala 249:24]
+ wire [47:0] state2_0_b_shl = _state2_0_b_shl_T[47:0]; // @[FMAdd.scala 249:33]
wire _state2_0_sp_state_c_inf_T_1 = cm[30:23] == 8'hff; // @[FBase.scala 64:19]
wire state2_0_sp_state_c_inf = cm[30:23] == 8'hff & _state2_0_b_zero_T_1; // @[FBase.scala 64:37]
wire state2_0_sp_state_c_nan = _state2_0_sp_state_c_inf_T_1 & _state2_0_acm_exp_T_4; // @[FBase.scala 68:37]
- wire _state2_0_sp_state_T_1 = state1__0_inf_a | state1__0_inf_b; // @[FMAdd.scala 311:32]
- wire _state2_0_sp_state_T_3 = state1__0_sign != state2_0_acm_sign; // @[FMAdd.scala 311:73]
- wire _GEN_21 = _state2_0_sp_state_T_3 ? 1'h0 : state2_0_acm_sign; // @[FMAdd.scala 296:17 319:37 320:21]
- wire [22:0] _GEN_22 = _state2_0_sp_state_T_3 ? 23'h400000 : 23'h0; // @[FMAdd.scala 319:37 321:20 323:20]
- wire _GEN_23 = state1__0_zero ? 1'h0 : state1__0_sign; // @[FMAdd.scala 328:26 329:21 332:21]
- wire [22:0] _GEN_24 = state1__0_zero ? 23'h400000 : 23'h0; // @[FMAdd.scala 328:26 330:20 333:20]
- wire _GEN_26 = state2_0_sp_state_c_inf | state1__0_zero; // @[FMAdd.scala 335:25 336:18]
- wire _GEN_27 = _state2_0_sp_state_T_1 | _GEN_26; // @[FMAdd.scala 325:48 326:18]
- wire [7:0] _GEN_28 = _state2_0_sp_state_T_1 ? 8'hff : cm[30:23]; // @[FMAdd.scala 297:16 325:48 327:18]
- wire _GEN_29 = _state2_0_sp_state_T_1 ? _GEN_23 : state2_0_acm_sign; // @[FMAdd.scala 296:17 325:48]
- wire [22:0] _GEN_30 = _state2_0_sp_state_T_1 ? _GEN_24 : cm[22:0]; // @[FMAdd.scala 298:16 325:48]
- wire _GEN_31 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf | _GEN_27; // @[FMAdd.scala 316:57 317:18]
- wire [7:0] _GEN_32 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? 8'hff : _GEN_28; // @[FMAdd.scala 316:57 318:18]
- wire _GEN_33 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? _GEN_21 : _GEN_29; // @[FMAdd.scala 316:57]
- wire [22:0] _GEN_34 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? _GEN_22 : _GEN_30; // @[FMAdd.scala 316:57]
- wire _GEN_36 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign != state2_0_acm_sign |
- _GEN_31; // @[FMAdd.scala 311:85 313:18]
- wire [7:0] _GEN_37 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign !=
- state2_0_acm_sign ? 8'hff : _GEN_32; // @[FMAdd.scala 311:85 314:18]
- wire [22:0] _GEN_38 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign !=
- state2_0_acm_sign ? 23'h400000 : _GEN_34; // @[FMAdd.scala 311:85 315:18]
- wire state2_0_sp_state_sel = state1__0_nan | state2_0_sp_state_c_nan | _GEN_36; // @[FMAdd.scala 306:32 308:18]
- wire [7:0] _GEN_41 = state1__0_nan | state2_0_sp_state_c_nan ? 8'hff : _GEN_37; // @[FMAdd.scala 306:32 309:18]
- wire [22:0] _GEN_42 = state1__0_nan | state2_0_sp_state_c_nan ? 23'h400000 : _GEN_38; // @[FMAdd.scala 306:32 310:18]
+ wire _state2_0_sp_state_T_1 = state1__0_inf_a | state1__0_inf_b; // @[FMAdd.scala 295:32]
+ wire _state2_0_sp_state_T_3 = state1__0_sign != state2_0_acm_sign; // @[FMAdd.scala 295:73]
+ wire _GEN_13 = _state2_0_sp_state_T_3 ? 1'h0 : state2_0_acm_sign; // @[FMAdd.scala 280:17 303:37 304:21]
+ wire [22:0] _GEN_14 = _state2_0_sp_state_T_3 ? 23'h400000 : 23'h0; // @[FMAdd.scala 303:37 305:20 307:20]
+ wire _GEN_15 = state1__0_zero ? 1'h0 : state1__0_sign; // @[FMAdd.scala 312:26 313:21 316:21]
+ wire [22:0] _GEN_16 = state1__0_zero ? 23'h400000 : 23'h0; // @[FMAdd.scala 312:26 314:20 317:20]
+ wire _GEN_18 = state2_0_sp_state_c_inf | state1__0_zero; // @[FMAdd.scala 319:25 320:18]
+ wire _GEN_19 = _state2_0_sp_state_T_1 | _GEN_18; // @[FMAdd.scala 309:48 310:18]
+ wire [7:0] _GEN_20 = _state2_0_sp_state_T_1 ? 8'hff : cm[30:23]; // @[FMAdd.scala 281:16 309:48 311:18]
+ wire _GEN_21 = _state2_0_sp_state_T_1 ? _GEN_15 : state2_0_acm_sign; // @[FMAdd.scala 280:17 309:48]
+ wire [22:0] _GEN_22 = _state2_0_sp_state_T_1 ? _GEN_16 : cm[22:0]; // @[FMAdd.scala 282:16 309:48]
+ wire _GEN_23 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf | _GEN_19; // @[FMAdd.scala 300:57 301:18]
+ wire [7:0] _GEN_24 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? 8'hff : _GEN_20; // @[FMAdd.scala 300:57 302:18]
+ wire _GEN_25 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? _GEN_13 : _GEN_21; // @[FMAdd.scala 300:57]
+ wire [22:0] _GEN_26 = state1__0_inf_a & state1__0_inf_b & state2_0_sp_state_c_inf ? _GEN_14 : _GEN_22; // @[FMAdd.scala 300:57]
+ wire _GEN_28 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign != state2_0_acm_sign |
+ _GEN_23; // @[FMAdd.scala 295:85 297:18]
+ wire [7:0] _GEN_29 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign !=
+ state2_0_acm_sign ? 8'hff : _GEN_24; // @[FMAdd.scala 295:85 298:18]
+ wire [22:0] _GEN_30 = (state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign !=
+ state2_0_acm_sign ? 23'h400000 : _GEN_26; // @[FMAdd.scala 295:85 299:18]
+ wire state2_0_sp_state_sel = state1__0_nan | state2_0_sp_state_c_nan | _GEN_28; // @[FMAdd.scala 290:32 292:18]
+ wire [7:0] _GEN_33 = state1__0_nan | state2_0_sp_state_c_nan ? 8'hff : _GEN_29; // @[FMAdd.scala 290:32 293:18]
+ wire [22:0] _GEN_34 = state1__0_nan | state2_0_sp_state_c_nan ? 23'h400000 : _GEN_30; // @[FMAdd.scala 290:32 294:18]
wire [48:0] state2_0_ab_state_a_shbits = {state2_0_a_shl,1'h0}; // @[Cat.scala 31:58]
- wire [9:0] state2_0_ab_state_b_shdiff = state2_0_a_exp - state2_0_b_exp; // @[FMAdd.scala 356:26]
- wire [5:0] state2_0_ab_state_b_shamt = state2_0_ab_state_b_shdiff < 10'h40 ? state2_0_ab_state_b_shdiff[5:0] : 6'h3f; // @[FMAdd.scala 357:22]
- wire [111:0] _state2_0_ab_state_b_shmask_T_1 = 112'h1ffffffffffff << state2_0_ab_state_b_shamt; // @[FMAdd.scala 360:35]
- wire [48:0] state2_0_ab_state_b_shmask = ~_state2_0_ab_state_b_shmask_T_1[48:0]; // @[FMAdd.scala 360:20]
+ wire [9:0] state2_0_ab_state_b_shdiff = state2_0_a_exp - state2_0_b_exp; // @[FMAdd.scala 340:26]
+ wire [5:0] state2_0_ab_state_b_shamt = state2_0_ab_state_b_shdiff < 10'h40 ? state2_0_ab_state_b_shdiff[5:0] : 6'h3f; // @[FMAdd.scala 341:22]
+ wire [111:0] _state2_0_ab_state_b_shmask_T_1 = 112'h1ffffffffffff << state2_0_ab_state_b_shamt; // @[FMAdd.scala 344:35]
+ wire [48:0] state2_0_ab_state_b_shmask = ~_state2_0_ab_state_b_shmask_T_1[48:0]; // @[FMAdd.scala 344:20]
wire [48:0] _state2_0_ab_state_b_shbits_T = {state2_0_b_shl,1'h0}; // @[Cat.scala 31:58]
- wire [48:0] _state2_0_ab_state_b_shbits_T_1 = _state2_0_ab_state_b_shbits_T >> state2_0_ab_state_b_shamt; // @[FMAdd.scala 361:42]
- wire [48:0] _GEN_76 = {{1'd0}, state2_0_b_shl}; // @[FMAdd.scala 361:64]
- wire [48:0] _state2_0_ab_state_b_shbits_T_2 = _GEN_76 & state2_0_ab_state_b_shmask; // @[FMAdd.scala 361:64]
- wire [48:0] _GEN_77 = {{48'd0}, _state2_0_ab_state_b_shbits_T_2 != 49'h0}; // @[FMAdd.scala 361:54]
- wire [48:0] state2_0_ab_state_b_shbits = _state2_0_ab_state_b_shbits_T_1 | _GEN_77; // @[FMAdd.scala 361:54]
- wire state2_0_ab_state_add = state1__0_sign == state2_0_acm_sign; // @[FMAdd.scala 371:26]
- wire [9:0] state2_0_ba_state_b_shdiff = state2_0_b_exp - state2_0_a_exp; // @[FMAdd.scala 356:26]
- wire [5:0] state2_0_ba_state_b_shamt = state2_0_ba_state_b_shdiff < 10'h40 ? state2_0_ba_state_b_shdiff[5:0] : 6'h3f; // @[FMAdd.scala 357:22]
- wire [111:0] _state2_0_ba_state_b_shmask_T_1 = 112'h1ffffffffffff << state2_0_ba_state_b_shamt; // @[FMAdd.scala 360:35]
- wire [48:0] state2_0_ba_state_b_shmask = ~_state2_0_ba_state_b_shmask_T_1[48:0]; // @[FMAdd.scala 360:20]
- wire [48:0] _state2_0_ba_state_b_shbits_T_1 = state2_0_ab_state_a_shbits >> state2_0_ba_state_b_shamt; // @[FMAdd.scala 361:42]
- wire [48:0] _GEN_78 = {{1'd0}, state2_0_a_shl}; // @[FMAdd.scala 361:64]
- wire [48:0] _state2_0_ba_state_b_shbits_T_2 = _GEN_78 & state2_0_ba_state_b_shmask; // @[FMAdd.scala 361:64]
- wire [48:0] _GEN_79 = {{48'd0}, _state2_0_ba_state_b_shbits_T_2 != 49'h0}; // @[FMAdd.scala 361:54]
- wire [48:0] state2_0_ba_state_b_shbits = _state2_0_ba_state_b_shbits_T_1 | _GEN_79; // @[FMAdd.scala 361:54]
- wire state2_0_ba_state_add = state2_0_acm_sign == state1__0_sign; // @[FMAdd.scala 371:26]
- wire state2_0_ba_state_sub = state2_0_acm_sign != state1__0_sign; // @[FMAdd.scala 372:26]
- wire [9:0] _state2_0_sel_ab_T_1 = state1__0_exp - _GEN_74; // @[FMAdd.scala 274:36]
- wire [9:0] _state2_0_sel_ab_T_2 = _state2_0_b_exp_T_2 - 10'h1; // @[FMAdd.scala 274:51]
+ wire [48:0] _state2_0_ab_state_b_shbits_T_1 = _state2_0_ab_state_b_shbits_T >> state2_0_ab_state_b_shamt; // @[FMAdd.scala 345:42]
+ wire [48:0] _GEN_65 = {{1'd0}, state2_0_b_shl}; // @[FMAdd.scala 345:64]
+ wire [48:0] _state2_0_ab_state_b_shbits_T_2 = _GEN_65 & state2_0_ab_state_b_shmask; // @[FMAdd.scala 345:64]
+ wire [48:0] _GEN_66 = {{48'd0}, _state2_0_ab_state_b_shbits_T_2 != 49'h0}; // @[FMAdd.scala 345:54]
+ wire [48:0] state2_0_ab_state_b_shbits = _state2_0_ab_state_b_shbits_T_1 | _GEN_66; // @[FMAdd.scala 345:54]
+ wire state2_0_ab_state_add = state1__0_sign == state2_0_acm_sign; // @[FMAdd.scala 355:26]
+ wire [9:0] state2_0_ba_state_b_shdiff = state2_0_b_exp - state2_0_a_exp; // @[FMAdd.scala 340:26]
+ wire [5:0] state2_0_ba_state_b_shamt = state2_0_ba_state_b_shdiff < 10'h40 ? state2_0_ba_state_b_shdiff[5:0] : 6'h3f; // @[FMAdd.scala 341:22]
+ wire [111:0] _state2_0_ba_state_b_shmask_T_1 = 112'h1ffffffffffff << state2_0_ba_state_b_shamt; // @[FMAdd.scala 344:35]
+ wire [48:0] state2_0_ba_state_b_shmask = ~_state2_0_ba_state_b_shmask_T_1[48:0]; // @[FMAdd.scala 344:20]
+ wire [48:0] _state2_0_ba_state_b_shbits_T_1 = state2_0_ab_state_a_shbits >> state2_0_ba_state_b_shamt; // @[FMAdd.scala 345:42]
+ wire [48:0] _GEN_67 = {{1'd0}, state2_0_a_shl}; // @[FMAdd.scala 345:64]
+ wire [48:0] _state2_0_ba_state_b_shbits_T_2 = _GEN_67 & state2_0_ba_state_b_shmask; // @[FMAdd.scala 345:64]
+ wire [48:0] _GEN_68 = {{48'd0}, _state2_0_ba_state_b_shbits_T_2 != 49'h0}; // @[FMAdd.scala 345:54]
+ wire [48:0] state2_0_ba_state_b_shbits = _state2_0_ba_state_b_shbits_T_1 | _GEN_68; // @[FMAdd.scala 345:54]
+ wire state2_0_ba_state_add = state2_0_acm_sign == state1__0_sign; // @[FMAdd.scala 355:26]
+ wire state2_0_ba_state_sub = state2_0_acm_sign != state1__0_sign; // @[FMAdd.scala 356:26]
+ wire [9:0] _state2_0_sel_ab_T_1 = state1__0_exp - _GEN_63; // @[FMAdd.scala 258:36]
+ wire [9:0] _state2_0_sel_ab_T_2 = _state2_0_b_exp_T_2 - 10'h1; // @[FMAdd.scala 258:51]
wire state2_0_sel_ab = ~state2_0_sp_state_sel & ($signed(_state2_0_sel_ab_T_1) > $signed(_state2_0_sel_ab_T_2) |
- state2_0_a_exp == state2_0_b_exp & state2_0_a_shl >= state2_0_b_shl | state2_0_b_zero); // @[FMAdd.scala 274:26]
- wire [9:0] state2_0_sp_state_exp = {{2'd0}, _GEN_41}; // @[FMAdd.scala 286:22]
- wire [48:0] state2_0_sp_state_ain = {{26'd0}, _GEN_42}; // @[FMAdd.scala 286:22]
- wire [49:0] state3_0_add = state2_0_ain + state2_0_bin; // @[FMAdd.scala 389:26]
- wire [49:0] state3_0_sub = state2_0_ain - state2_0_bin; // @[FMAdd.scala 390:26]
- wire [48:0] _state3_0_result_man_T = state2_0_sel ? state2_0_ain : 49'h0; // @[FMAdd.scala 394:25]
- wire [49:0] _state3_0_result_man_T_1 = state2_0_add ? state3_0_add : 50'h0; // @[FMAdd.scala 395:25]
- wire [49:0] _GEN_80 = {{1'd0}, _state3_0_result_man_T}; // @[FMAdd.scala 394:55]
- wire [49:0] _state3_0_result_man_T_2 = _GEN_80 | _state3_0_result_man_T_1; // @[FMAdd.scala 394:55]
- wire [49:0] _state3_0_result_man_T_3 = state2_0_sub ? state3_0_sub : 50'h0; // @[FMAdd.scala 396:25]
- wire [49:0] state3_0_result_man = _state3_0_result_man_T_2 | _state3_0_result_man_T_3; // @[FMAdd.scala 395:48]
+ state2_0_a_exp == state2_0_b_exp & state2_0_a_shl >= state2_0_b_shl | state2_0_b_zero); // @[FMAdd.scala 258:26]
+ wire [9:0] state2_0_sp_state_exp = {{2'd0}, _GEN_33}; // @[FMAdd.scala 270:22]
+ wire [48:0] state2_0_sp_state_ain = {{26'd0}, _GEN_34}; // @[FMAdd.scala 270:22]
+ wire [49:0] state3_0_add = state2_0_ain + state2_0_bin; // @[FMAdd.scala 373:26]
+ wire [49:0] state3_0_sub = state2_0_ain - state2_0_bin; // @[FMAdd.scala 374:26]
+ wire [48:0] _state3_0_result_man_T = state2_0_sel ? state2_0_ain : 49'h0; // @[FMAdd.scala 378:25]
+ wire [49:0] _state3_0_result_man_T_1 = state2_0_add ? state3_0_add : 50'h0; // @[FMAdd.scala 379:25]
+ wire [49:0] _GEN_69 = {{1'd0}, _state3_0_result_man_T}; // @[FMAdd.scala 378:55]
+ wire [49:0] _state3_0_result_man_T_2 = _GEN_69 | _state3_0_result_man_T_1; // @[FMAdd.scala 378:55]
+ wire [49:0] _state3_0_result_man_T_3 = state2_0_sub ? state3_0_sub : 50'h0; // @[FMAdd.scala 380:25]
+ wire [49:0] state3_0_result_man = _state3_0_result_man_T_2 | _state3_0_result_man_T_3; // @[FMAdd.scala 379:48]
wire [2:0] _state3_0_T = {state2_0_sel,state2_0_add,state2_0_sub}; // @[Cat.scala 31:58]
wire [1:0] _state3_0_T_4 = _state3_0_T[1] + _state3_0_T[2]; // @[Bitwise.scala 48:55]
- wire [1:0] _GEN_81 = {{1'd0}, _state3_0_T[0]}; // @[Bitwise.scala 48:55]
- wire [2:0] _state3_0_T_6 = _GEN_81 + _state3_0_T_4; // @[Bitwise.scala 48:55]
- wire [31:0] _GEN_82 = {{16'd0}, state3_0_result_man[31:16]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state3_0_norm_clz_T_7 = _GEN_82 & 32'hffff; // @[Bitwise.scala 105:31]
+ wire [1:0] _GEN_70 = {{1'd0}, _state3_0_T[0]}; // @[Bitwise.scala 48:55]
+ wire [2:0] _state3_0_T_6 = _GEN_70 + _state3_0_T_4; // @[Bitwise.scala 48:55]
+ wire [31:0] _GEN_71 = {{16'd0}, state3_0_result_man[31:16]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state3_0_norm_clz_T_7 = _GEN_71 & 32'hffff; // @[Bitwise.scala 105:31]
wire [31:0] _state3_0_norm_clz_T_9 = {state3_0_result_man[15:0], 16'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state3_0_norm_clz_T_11 = _state3_0_norm_clz_T_9 & 32'hffff0000; // @[Bitwise.scala 105:80]
wire [31:0] _state3_0_norm_clz_T_12 = _state3_0_norm_clz_T_7 | _state3_0_norm_clz_T_11; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_83 = {{8'd0}, _state3_0_norm_clz_T_12[31:8]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state3_0_norm_clz_T_17 = _GEN_83 & 32'hff00ff; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_72 = {{8'd0}, _state3_0_norm_clz_T_12[31:8]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state3_0_norm_clz_T_17 = _GEN_72 & 32'hff00ff; // @[Bitwise.scala 105:31]
wire [31:0] _state3_0_norm_clz_T_19 = {_state3_0_norm_clz_T_12[23:0], 8'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state3_0_norm_clz_T_21 = _state3_0_norm_clz_T_19 & 32'hff00ff00; // @[Bitwise.scala 105:80]
wire [31:0] _state3_0_norm_clz_T_22 = _state3_0_norm_clz_T_17 | _state3_0_norm_clz_T_21; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_84 = {{4'd0}, _state3_0_norm_clz_T_22[31:4]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state3_0_norm_clz_T_27 = _GEN_84 & 32'hf0f0f0f; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_73 = {{4'd0}, _state3_0_norm_clz_T_22[31:4]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state3_0_norm_clz_T_27 = _GEN_73 & 32'hf0f0f0f; // @[Bitwise.scala 105:31]
wire [31:0] _state3_0_norm_clz_T_29 = {_state3_0_norm_clz_T_22[27:0], 4'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state3_0_norm_clz_T_31 = _state3_0_norm_clz_T_29 & 32'hf0f0f0f0; // @[Bitwise.scala 105:80]
wire [31:0] _state3_0_norm_clz_T_32 = _state3_0_norm_clz_T_27 | _state3_0_norm_clz_T_31; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_85 = {{2'd0}, _state3_0_norm_clz_T_32[31:2]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state3_0_norm_clz_T_37 = _GEN_85 & 32'h33333333; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_74 = {{2'd0}, _state3_0_norm_clz_T_32[31:2]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state3_0_norm_clz_T_37 = _GEN_74 & 32'h33333333; // @[Bitwise.scala 105:31]
wire [31:0] _state3_0_norm_clz_T_39 = {_state3_0_norm_clz_T_32[29:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state3_0_norm_clz_T_41 = _state3_0_norm_clz_T_39 & 32'hcccccccc; // @[Bitwise.scala 105:80]
wire [31:0] _state3_0_norm_clz_T_42 = _state3_0_norm_clz_T_37 | _state3_0_norm_clz_T_41; // @[Bitwise.scala 105:39]
- wire [31:0] _GEN_86 = {{1'd0}, _state3_0_norm_clz_T_42[31:1]}; // @[Bitwise.scala 105:31]
- wire [31:0] _state3_0_norm_clz_T_47 = _GEN_86 & 32'h55555555; // @[Bitwise.scala 105:31]
+ wire [31:0] _GEN_75 = {{1'd0}, _state3_0_norm_clz_T_42[31:1]}; // @[Bitwise.scala 105:31]
+ wire [31:0] _state3_0_norm_clz_T_47 = _GEN_75 & 32'h55555555; // @[Bitwise.scala 105:31]
wire [31:0] _state3_0_norm_clz_T_49 = {_state3_0_norm_clz_T_42[30:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [31:0] _state3_0_norm_clz_T_51 = _state3_0_norm_clz_T_49 & 32'haaaaaaaa; // @[Bitwise.scala 105:80]
wire [31:0] _state3_0_norm_clz_T_52 = _state3_0_norm_clz_T_47 | _state3_0_norm_clz_T_51; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_87 = {{8'd0}, state3_0_result_man[47:40]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state3_0_norm_clz_T_58 = _GEN_87 & 16'hff; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_76 = {{8'd0}, state3_0_result_man[47:40]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state3_0_norm_clz_T_58 = _GEN_76 & 16'hff; // @[Bitwise.scala 105:31]
wire [15:0] _state3_0_norm_clz_T_60 = {state3_0_result_man[39:32], 8'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state3_0_norm_clz_T_62 = _state3_0_norm_clz_T_60 & 16'hff00; // @[Bitwise.scala 105:80]
wire [15:0] _state3_0_norm_clz_T_63 = _state3_0_norm_clz_T_58 | _state3_0_norm_clz_T_62; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_88 = {{4'd0}, _state3_0_norm_clz_T_63[15:4]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state3_0_norm_clz_T_68 = _GEN_88 & 16'hf0f; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_77 = {{4'd0}, _state3_0_norm_clz_T_63[15:4]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state3_0_norm_clz_T_68 = _GEN_77 & 16'hf0f; // @[Bitwise.scala 105:31]
wire [15:0] _state3_0_norm_clz_T_70 = {_state3_0_norm_clz_T_63[11:0], 4'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state3_0_norm_clz_T_72 = _state3_0_norm_clz_T_70 & 16'hf0f0; // @[Bitwise.scala 105:80]
wire [15:0] _state3_0_norm_clz_T_73 = _state3_0_norm_clz_T_68 | _state3_0_norm_clz_T_72; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_89 = {{2'd0}, _state3_0_norm_clz_T_73[15:2]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state3_0_norm_clz_T_78 = _GEN_89 & 16'h3333; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_78 = {{2'd0}, _state3_0_norm_clz_T_73[15:2]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state3_0_norm_clz_T_78 = _GEN_78 & 16'h3333; // @[Bitwise.scala 105:31]
wire [15:0] _state3_0_norm_clz_T_80 = {_state3_0_norm_clz_T_73[13:0], 2'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state3_0_norm_clz_T_82 = _state3_0_norm_clz_T_80 & 16'hcccc; // @[Bitwise.scala 105:80]
wire [15:0] _state3_0_norm_clz_T_83 = _state3_0_norm_clz_T_78 | _state3_0_norm_clz_T_82; // @[Bitwise.scala 105:39]
- wire [15:0] _GEN_90 = {{1'd0}, _state3_0_norm_clz_T_83[15:1]}; // @[Bitwise.scala 105:31]
- wire [15:0] _state3_0_norm_clz_T_88 = _GEN_90 & 16'h5555; // @[Bitwise.scala 105:31]
+ wire [15:0] _GEN_79 = {{1'd0}, _state3_0_norm_clz_T_83[15:1]}; // @[Bitwise.scala 105:31]
+ wire [15:0] _state3_0_norm_clz_T_88 = _GEN_79 & 16'h5555; // @[Bitwise.scala 105:31]
wire [15:0] _state3_0_norm_clz_T_90 = {_state3_0_norm_clz_T_83[14:0], 1'h0}; // @[Bitwise.scala 105:70]
wire [15:0] _state3_0_norm_clz_T_92 = _state3_0_norm_clz_T_90 & 16'haaaa; // @[Bitwise.scala 105:80]
wire [15:0] _state3_0_norm_clz_T_93 = _state3_0_norm_clz_T_88 | _state3_0_norm_clz_T_92; // @[Bitwise.scala 105:39]
@@ -27195,20 +27061,20 @@
wire [5:0] _state3_0_norm_clz_T_191 = _state3_0_norm_clz_T_96[2] ? 6'h2 : _state3_0_norm_clz_T_190; // @[Mux.scala 47:70]
wire [5:0] _state3_0_norm_clz_T_192 = _state3_0_norm_clz_T_96[1] ? 6'h1 : _state3_0_norm_clz_T_191; // @[Mux.scala 47:70]
wire [5:0] _state3_0_norm_clz_T_193 = _state3_0_norm_clz_T_96[0] ? 6'h0 : _state3_0_norm_clz_T_192; // @[Mux.scala 47:70]
- wire [9:0] state3_0_norm_clz = state3_0_result_man[49] ? 10'h3ff : {{4'd0}, _state3_0_norm_clz_T_193}; // @[FMAdd.scala 402:23]
- wire [9:0] _state3_0_result_exp_s_T_1 = state2_0_exp - state3_0_norm_clz; // @[FMAdd.scala 407:35]
- wire [9:0] state3_0_result_exp_s = _state3_0_result_exp_s_T_1 + 10'h1; // @[FMAdd.scala 407:46]
- wire [8:0] state3_0_result_exp = state3_0_result_exp_s[9] ? 9'h0 : state3_0_result_exp_s[8:0]; // @[FMAdd.scala 410:25]
- wire state3_0_result_inf = state3_0_result_exp >= 9'hff; // @[FMAdd.scala 411:33]
- wire [7:0] state3_0_result_inf_exp = state3_0_result_inf ? 8'hff : 8'h0; // @[FMAdd.scala 412:29]
- wire [9:0] state3_0_result_shl_amt = state2_0_exp < state3_0_norm_clz ? state2_0_exp : state3_0_norm_clz; // @[FMAdd.scala 467:8]
- wire [21:0] state3_0_shl_mask = 22'h3fffff >> state3_0_result_shl_amt; // @[FMAdd.scala 417:33]
- wire [1072:0] _GEN_2 = {{1023'd0}, state3_0_result_man}; // @[FMAdd.scala 420:42]
- wire [1072:0] _state3_0_result_shl_man_grs_T = _GEN_2 << state3_0_result_shl_amt; // @[FMAdd.scala 420:42]
- wire [21:0] _state3_0_result_shl_man_grs_T_3 = state3_0_result_man[21:0] & state3_0_shl_mask; // @[FMAdd.scala 421:49]
- wire _state3_0_result_shl_man_grs_T_4 = _state3_0_result_shl_man_grs_T_3 != 22'h0; // @[FMAdd.scala 421:61]
- wire [26:0] _GEN_91 = {{26'd0}, _state3_0_result_shl_man_grs_T_4}; // @[FMAdd.scala 420:68]
- wire [26:0] state3_0_result_shl_man_grs = _state3_0_result_shl_man_grs_T[48:22] | _GEN_91; // @[FMAdd.scala 420:68]
+ wire [9:0] state3_0_norm_clz = state3_0_result_man[49] ? 10'h3ff : {{4'd0}, _state3_0_norm_clz_T_193}; // @[FMAdd.scala 386:23]
+ wire [9:0] _state3_0_result_exp_s_T_1 = state2_0_exp - state3_0_norm_clz; // @[FMAdd.scala 391:35]
+ wire [9:0] state3_0_result_exp_s = _state3_0_result_exp_s_T_1 + 10'h1; // @[FMAdd.scala 391:46]
+ wire [8:0] state3_0_result_exp = state3_0_result_exp_s[9] ? 9'h0 : state3_0_result_exp_s[8:0]; // @[FMAdd.scala 394:25]
+ wire state3_0_result_inf = state3_0_result_exp >= 9'hff; // @[FMAdd.scala 395:33]
+ wire [7:0] state3_0_result_inf_exp = state3_0_result_inf ? 8'hff : 8'h0; // @[FMAdd.scala 396:29]
+ wire [9:0] state3_0_result_shl_amt = state2_0_exp < state3_0_norm_clz ? state2_0_exp : state3_0_norm_clz; // @[FMAdd.scala 451:8]
+ wire [21:0] state3_0_shl_mask = 22'h3fffff >> state3_0_result_shl_amt; // @[FMAdd.scala 401:33]
+ wire [1072:0] _GEN_2 = {{1023'd0}, state3_0_result_man}; // @[FMAdd.scala 404:42]
+ wire [1072:0] _state3_0_result_shl_man_grs_T = _GEN_2 << state3_0_result_shl_amt; // @[FMAdd.scala 404:42]
+ wire [21:0] _state3_0_result_shl_man_grs_T_3 = state3_0_result_man[21:0] & state3_0_shl_mask; // @[FMAdd.scala 405:49]
+ wire _state3_0_result_shl_man_grs_T_4 = _state3_0_result_shl_man_grs_T_3 != 22'h0; // @[FMAdd.scala 405:61]
+ wire [26:0] _GEN_80 = {{26'd0}, _state3_0_result_shl_man_grs_T_4}; // @[FMAdd.scala 404:68]
+ wire [26:0] state3_0_result_shl_man_grs = _state3_0_result_shl_man_grs_T[48:22] | _GEN_80; // @[FMAdd.scala 404:68]
wire _state3_0_shl_round_round_T_1 = state3_0_result_shl_man_grs[2:0] != 3'h0; // @[FBase.scala 82:30]
wire _state3_0_shl_round_round_T_2 = state3_0_result_shl_man_grs[2:0] != 3'h0 & state2_0_sign; // @[FBase.scala 82:38]
wire _state3_0_shl_round_round_T_6 = _state3_0_shl_round_round_T_1 & ~state2_0_sign; // @[FBase.scala 83:38]
@@ -27217,26 +27083,26 @@
wire [3:0] state3_0_shl_round_round = {_state3_0_shl_round_round_T_2,_state3_0_shl_round_round_T_6,1'h0,
_state3_0_shl_round_round_T_11}; // @[Cat.scala 31:58]
wire state3_0_shl_round = state3_0_shl_round_round[0]; // @[FBase.scala 86:10]
- wire [23:0] _state3_0_result_shl_man_T_2 = state3_0_result_shl_man_grs[26:3] + 24'h1; // @[FMAdd.scala 425:66]
+ wire [23:0] _state3_0_result_shl_man_T_2 = state3_0_result_shl_man_grs[26:3] + 24'h1; // @[FMAdd.scala 409:66]
wire [23:0] state3_0_result_shl_man = state3_0_shl_round ? _state3_0_result_shl_man_T_2 : state3_0_result_shl_man_grs[
- 26:3]; // @[FMAdd.scala 425:29]
- wire [8:0] _state3_0_result_shl_exp_T_5 = state3_0_result_exp + 9'h1; // @[FMAdd.scala 427:41]
+ 26:3]; // @[FMAdd.scala 409:29]
+ wire [8:0] _state3_0_result_shl_exp_T_5 = state3_0_result_exp + 9'h1; // @[FMAdd.scala 411:41]
wire [8:0] state3_0_result_shl_exp = state3_0_shl_round & state3_0_result_shl_man_grs[26:3] == 24'hffffff ?
- _state3_0_result_shl_exp_T_5 : state3_0_result_exp; // @[FMAdd.scala 426:29]
- wire [9:0] _state3_0_result_shr_amt_T_1 = 10'h0 - state2_0_exp; // @[FMAdd.scala 430:42]
- wire [9:0] _state3_0_result_shr_amt_T_3 = 10'h0 - state3_0_norm_clz; // @[FMAdd.scala 430:53]
- wire [9:0] _state3_0_result_shr_amt_T_4 = 10'h0 - state2_0_exp; // @[FMAdd.scala 471:11]
- wire [9:0] _state3_0_result_shr_amt_T_5 = 10'h0 - state3_0_norm_clz; // @[FMAdd.scala 471:22]
+ _state3_0_result_shl_exp_T_5 : state3_0_result_exp; // @[FMAdd.scala 410:29]
+ wire [9:0] _state3_0_result_shr_amt_T_1 = 10'h0 - state2_0_exp; // @[FMAdd.scala 414:42]
+ wire [9:0] _state3_0_result_shr_amt_T_3 = 10'h0 - state3_0_norm_clz; // @[FMAdd.scala 414:53]
+ wire [9:0] _state3_0_result_shr_amt_T_4 = 10'h0 - state2_0_exp; // @[FMAdd.scala 455:11]
+ wire [9:0] _state3_0_result_shr_amt_T_5 = 10'h0 - state3_0_norm_clz; // @[FMAdd.scala 455:22]
wire [9:0] _state3_0_result_shr_amt_T_7 = $signed(_state3_0_result_shr_amt_T_4) > $signed(_state3_0_result_shr_amt_T_5
- ) ? _state3_0_result_shr_amt_T_1 : _state3_0_result_shr_amt_T_3; // @[FMAdd.scala 471:8]
- wire [9:0] state3_0_result_shr_amt = 10'h1b < _state3_0_result_shr_amt_T_7 ? 10'h1b : _state3_0_result_shr_amt_T_7; // @[FMAdd.scala 467:8]
- wire [1072:0] _state3_0_shr_mask_T_2 = 1073'h3ffffffc00000 << state3_0_result_shr_amt; // @[FMAdd.scala 431:50]
- wire [49:0] state3_0_shr_mask = ~_state3_0_shr_mask_T_2[49:0]; // @[FMAdd.scala 431:20]
- wire [27:0] _state3_0_result_shr_man_grs_T_1 = state3_0_result_man[49:22] >> state3_0_result_shr_amt; // @[FMAdd.scala 434:49]
- wire [49:0] _state3_0_result_shr_man_grs_T_4 = state3_0_result_man & state3_0_shr_mask; // @[FMAdd.scala 435:49]
- wire _state3_0_result_shr_man_grs_T_5 = _state3_0_result_shr_man_grs_T_4 != 50'h0; // @[FMAdd.scala 435:61]
- wire [26:0] _GEN_92 = {{26'd0}, _state3_0_result_shr_man_grs_T_5}; // @[FMAdd.scala 434:74]
- wire [26:0] state3_0_result_shr_man_grs = _state3_0_result_shr_man_grs_T_1[26:0] | _GEN_92; // @[FMAdd.scala 434:74]
+ ) ? _state3_0_result_shr_amt_T_1 : _state3_0_result_shr_amt_T_3; // @[FMAdd.scala 455:8]
+ wire [9:0] state3_0_result_shr_amt = 10'h1b < _state3_0_result_shr_amt_T_7 ? 10'h1b : _state3_0_result_shr_amt_T_7; // @[FMAdd.scala 451:8]
+ wire [1072:0] _state3_0_shr_mask_T_2 = 1073'h3ffffffc00000 << state3_0_result_shr_amt; // @[FMAdd.scala 415:50]
+ wire [49:0] state3_0_shr_mask = ~_state3_0_shr_mask_T_2[49:0]; // @[FMAdd.scala 415:20]
+ wire [27:0] _state3_0_result_shr_man_grs_T_1 = state3_0_result_man[49:22] >> state3_0_result_shr_amt; // @[FMAdd.scala 418:49]
+ wire [49:0] _state3_0_result_shr_man_grs_T_4 = state3_0_result_man & state3_0_shr_mask; // @[FMAdd.scala 419:49]
+ wire _state3_0_result_shr_man_grs_T_5 = _state3_0_result_shr_man_grs_T_4 != 50'h0; // @[FMAdd.scala 419:61]
+ wire [26:0] _GEN_81 = {{26'd0}, _state3_0_result_shr_man_grs_T_5}; // @[FMAdd.scala 418:74]
+ wire [26:0] state3_0_result_shr_man_grs = _state3_0_result_shr_man_grs_T_1[26:0] | _GEN_81; // @[FMAdd.scala 418:74]
wire _state3_0_shr_round_round_T_1 = state3_0_result_shr_man_grs[2:0] != 3'h0; // @[FBase.scala 82:30]
wire _state3_0_shr_round_round_T_2 = state3_0_result_shr_man_grs[2:0] != 3'h0 & state2_0_sign; // @[FBase.scala 82:38]
wire _state3_0_shr_round_round_T_6 = _state3_0_shr_round_round_T_1 & ~state2_0_sign; // @[FBase.scala 83:38]
@@ -27245,208 +27111,177 @@
wire [3:0] state3_0_shr_round_round = {_state3_0_shr_round_round_T_2,_state3_0_shr_round_round_T_6,1'h0,
_state3_0_shr_round_round_T_11}; // @[Cat.scala 31:58]
wire state3_0_shr_round = state3_0_shr_round_round[0]; // @[FBase.scala 86:10]
- wire [24:0] _state3_0_result_shr_man_T_1 = state3_0_result_shr_man_grs[26:3] + 24'h1; // @[FMAdd.scala 439:66]
+ wire [24:0] _state3_0_result_shr_man_T_1 = state3_0_result_shr_man_grs[26:3] + 24'h1; // @[FMAdd.scala 423:66]
wire [24:0] state3_0_result_shr_man = state3_0_shr_round ? _state3_0_result_shr_man_T_1 : {{1'd0},
- state3_0_result_shr_man_grs[26:3]}; // @[FMAdd.scala 439:29]
- wire _state3_0_result_shr_exp_T_2 = state3_0_result_shr_man_grs[25:3] == 23'h7fffff; // @[FMAdd.scala 441:55]
- wire _state3_0_result_shr_exp_T_3 = state3_0_shr_round & _state3_0_result_shr_exp_T_2; // @[FMAdd.scala 440:40]
- wire _state3_0_result_shr_exp_T_6 = state3_0_result_shr_man_grs[26] | state3_0_result_exp == 9'h0; // @[FMAdd.scala 442:54]
- wire _state3_0_result_shr_exp_T_7 = _state3_0_result_shr_exp_T_3 & _state3_0_result_shr_exp_T_6; // @[FMAdd.scala 441:70]
+ state3_0_result_shr_man_grs[26:3]}; // @[FMAdd.scala 423:29]
+ wire _state3_0_result_shr_exp_T_2 = state3_0_result_shr_man_grs[25:3] == 23'h7fffff; // @[FMAdd.scala 425:55]
+ wire _state3_0_result_shr_exp_T_3 = state3_0_shr_round & _state3_0_result_shr_exp_T_2; // @[FMAdd.scala 424:40]
+ wire _state3_0_result_shr_exp_T_6 = state3_0_result_shr_man_grs[26] | state3_0_result_exp == 9'h0; // @[FMAdd.scala 426:54]
+ wire _state3_0_result_shr_exp_T_7 = _state3_0_result_shr_exp_T_3 & _state3_0_result_shr_exp_T_6; // @[FMAdd.scala 425:70]
wire [8:0] state3_0_result_shr_exp = _state3_0_result_shr_exp_T_7 ? _state3_0_result_shl_exp_T_5 : state3_0_result_exp
- ; // @[FMAdd.scala 440:29]
- wire state3_0_sel_gez = ~state2_0_exp[9] & ~state3_0_norm_clz[9]; // @[FMAdd.scala 446:32]
- wire _state3_0_sel_shl_T = ~state2_0_sel; // @[FMAdd.scala 447:19]
- wire _state3_0_sel_shl_T_2 = state3_0_result_man != 50'h0; // @[FMAdd.scala 447:54]
- wire state3_0_sel_shl = ~state2_0_sel & state3_0_sel_gez & state3_0_result_man != 50'h0; // @[FMAdd.scala 447:40]
- wire state3_0_sel_shr = _state3_0_sel_shl_T & ~state3_0_sel_gez & _state3_0_sel_shl_T_2; // @[FMAdd.scala 448:40]
+ ; // @[FMAdd.scala 424:29]
+ wire state3_0_sel_gez = ~state2_0_exp[9] & ~state3_0_norm_clz[9]; // @[FMAdd.scala 430:32]
+ wire _state3_0_sel_shl_T = ~state2_0_sel; // @[FMAdd.scala 431:19]
+ wire _state3_0_sel_shl_T_2 = state3_0_result_man != 50'h0; // @[FMAdd.scala 431:54]
+ wire state3_0_sel_shl = ~state2_0_sel & state3_0_sel_gez & state3_0_result_man != 50'h0; // @[FMAdd.scala 431:40]
+ wire state3_0_sel_shr = _state3_0_sel_shl_T & ~state3_0_sel_gez & _state3_0_sel_shl_T_2; // @[FMAdd.scala 432:40]
wire [2:0] _state3_0_T_12 = {state2_0_sel,state3_0_sel_shl,state3_0_sel_shr}; // @[Cat.scala 31:58]
wire [1:0] _state3_0_T_16 = _state3_0_T_12[1] + _state3_0_T_12[2]; // @[Bitwise.scala 48:55]
- wire [1:0] _GEN_93 = {{1'd0}, _state3_0_T_12[0]}; // @[Bitwise.scala 48:55]
- wire [2:0] _state3_0_T_18 = _GEN_93 + _state3_0_T_16; // @[Bitwise.scala 48:55]
- wire [9:0] _state3_0_state3_exp_T = state2_0_sel ? state2_0_exp : 10'h0; // @[FMAdd.scala 452:22]
- wire [8:0] _GEN_94 = {{1'd0}, state3_0_result_inf_exp}; // @[FMAdd.scala 453:47]
- wire [8:0] _state3_0_state3_exp_T_1 = state3_0_result_shl_exp | _GEN_94; // @[FMAdd.scala 453:47]
- wire [8:0] _state3_0_state3_exp_T_2 = state3_0_sel_shl ? _state3_0_state3_exp_T_1 : 9'h0; // @[FMAdd.scala 453:22]
- wire [9:0] _GEN_95 = {{1'd0}, _state3_0_state3_exp_T_2}; // @[FMAdd.scala 452:49]
- wire [9:0] _state3_0_state3_exp_T_3 = _state3_0_state3_exp_T | _GEN_95; // @[FMAdd.scala 452:49]
- wire [8:0] _state3_0_state3_exp_T_4 = state3_0_result_shr_exp | _GEN_94; // @[FMAdd.scala 454:47]
- wire [8:0] _state3_0_state3_exp_T_5 = state3_0_sel_shr ? _state3_0_state3_exp_T_4 : 9'h0; // @[FMAdd.scala 454:22]
- wire [9:0] _GEN_97 = {{1'd0}, _state3_0_state3_exp_T_5}; // @[FMAdd.scala 453:70]
- wire [9:0] _state3_0_state3_exp_T_6 = _state3_0_state3_exp_T_3 | _GEN_97; // @[FMAdd.scala 453:70]
- wire _state3_0_state3_man_T_1 = ~state3_0_result_inf; // @[FMAdd.scala 456:34]
- wire [23:0] _state3_0_state3_man_T_3 = state3_0_sel_shl & ~state3_0_result_inf ? state3_0_result_shl_man : 24'h0; // @[FMAdd.scala 456:22]
- wire [48:0] _GEN_98 = {{25'd0}, _state3_0_state3_man_T_3}; // @[FMAdd.scala 455:49]
- wire [48:0] _state3_0_state3_man_T_4 = _state3_0_result_man_T | _GEN_98; // @[FMAdd.scala 455:49]
- wire [24:0] _state3_0_state3_man_T_7 = state3_0_sel_shr & _state3_0_state3_man_T_1 ? state3_0_result_shr_man : 25'h0; // @[FMAdd.scala 457:22]
- wire [48:0] _GEN_99 = {{24'd0}, _state3_0_state3_man_T_7}; // @[FMAdd.scala 456:68]
- wire [48:0] _state3_0_state3_man_T_8 = _state3_0_state3_man_T_4 | _GEN_99; // @[FMAdd.scala 456:68]
- wire [22:0] state3_0_state3_man = _state3_0_state3_man_T_8[22:0]; // @[FMAdd.scala 383:22 455:16]
- wire [7:0] state3_0_state3_exp = _state3_0_state3_exp_T_6[7:0]; // @[FMAdd.scala 383:22 452:16]
- wire _io_ina_ready_T_2 = _update1_T_3 | io_inc_valid & io_inc_ready; // @[FMAdd.scala 112:45]
+ wire [1:0] _GEN_82 = {{1'd0}, _state3_0_T_12[0]}; // @[Bitwise.scala 48:55]
+ wire [2:0] _state3_0_T_18 = _GEN_82 + _state3_0_T_16; // @[Bitwise.scala 48:55]
+ wire [9:0] _state3_0_state3_exp_T = state2_0_sel ? state2_0_exp : 10'h0; // @[FMAdd.scala 436:22]
+ wire [8:0] _GEN_83 = {{1'd0}, state3_0_result_inf_exp}; // @[FMAdd.scala 437:47]
+ wire [8:0] _state3_0_state3_exp_T_1 = state3_0_result_shl_exp | _GEN_83; // @[FMAdd.scala 437:47]
+ wire [8:0] _state3_0_state3_exp_T_2 = state3_0_sel_shl ? _state3_0_state3_exp_T_1 : 9'h0; // @[FMAdd.scala 437:22]
+ wire [9:0] _GEN_84 = {{1'd0}, _state3_0_state3_exp_T_2}; // @[FMAdd.scala 436:49]
+ wire [9:0] _state3_0_state3_exp_T_3 = _state3_0_state3_exp_T | _GEN_84; // @[FMAdd.scala 436:49]
+ wire [8:0] _state3_0_state3_exp_T_4 = state3_0_result_shr_exp | _GEN_83; // @[FMAdd.scala 438:47]
+ wire [8:0] _state3_0_state3_exp_T_5 = state3_0_sel_shr ? _state3_0_state3_exp_T_4 : 9'h0; // @[FMAdd.scala 438:22]
+ wire [9:0] _GEN_86 = {{1'd0}, _state3_0_state3_exp_T_5}; // @[FMAdd.scala 437:70]
+ wire [9:0] _state3_0_state3_exp_T_6 = _state3_0_state3_exp_T_3 | _GEN_86; // @[FMAdd.scala 437:70]
+ wire _state3_0_state3_man_T_1 = ~state3_0_result_inf; // @[FMAdd.scala 440:34]
+ wire [23:0] _state3_0_state3_man_T_3 = state3_0_sel_shl & ~state3_0_result_inf ? state3_0_result_shl_man : 24'h0; // @[FMAdd.scala 440:22]
+ wire [48:0] _GEN_87 = {{25'd0}, _state3_0_state3_man_T_3}; // @[FMAdd.scala 439:49]
+ wire [48:0] _state3_0_state3_man_T_4 = _state3_0_result_man_T | _GEN_87; // @[FMAdd.scala 439:49]
+ wire [24:0] _state3_0_state3_man_T_7 = state3_0_sel_shr & _state3_0_state3_man_T_1 ? state3_0_result_shr_man : 25'h0; // @[FMAdd.scala 441:22]
+ wire [48:0] _GEN_88 = {{24'd0}, _state3_0_state3_man_T_7}; // @[FMAdd.scala 440:68]
+ wire [48:0] _state3_0_state3_man_T_8 = _state3_0_state3_man_T_4 | _GEN_88; // @[FMAdd.scala 440:68]
+ wire [22:0] state3_0_state3_man = _state3_0_state3_man_T_8[22:0]; // @[FMAdd.scala 367:22 439:16]
+ wire [7:0] state3_0_state3_exp = _state3_0_state3_exp_T_6[7:0]; // @[FMAdd.scala 367:22 436:16]
+ wire _io_ina_ready_T_2 = _update1_T_3 | io_inc_valid & io_inc_ready; // @[FMAdd.scala 96:45]
wire [8:0] io_out_bits_0_hi = {state3_0_sign,state3_0_exp}; // @[Cat.scala 31:58]
- wire _GEN_100 = update1 & io_op_bits[4]; // @[BFDot.scala 62:13]
- wire _GEN_107 = active2 & _bfst_T_30; // @[FMAdd.scala 398:11]
- assign io_ina_ready = io_inb_valid & (_update1_T_3 | io_inc_valid & io_inc_ready); // @[FMAdd.scala 112:32]
- assign io_inb_ready = io_ina_valid & _io_ina_ready_T_2; // @[FMAdd.scala 113:32]
- assign io_inc_ready = active1; // @[FMAdd.scala 114:27]
- assign io_out_valid = active3; // @[FMAdd.scala 116:16]
+ wire _GEN_89 = active2 & ~reset; // @[FMAdd.scala 382:11]
+ assign io_ina_ready = io_inb_valid & (_update1_T_3 | io_inc_valid & io_inc_ready); // @[FMAdd.scala 96:32]
+ assign io_inb_ready = io_ina_valid & _io_ina_ready_T_2; // @[FMAdd.scala 97:32]
+ assign io_inc_ready = active1; // @[FMAdd.scala 98:27]
+ assign io_out_valid = active3; // @[FMAdd.scala 100:16]
assign io_out_bits_0 = {io_out_bits_0_hi,state3_0_man}; // @[Cat.scala 31:58]
always @(posedge clock) begin
- if (update1) begin // @[FMAdd.scala 58:18]
- op1 <= io_op_bits; // @[FMAdd.scala 59:9]
+ if (update1) begin // @[FMAdd.scala 57:18]
+ op1 <= io_op_bits; // @[FMAdd.scala 58:9]
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_sign <= bfst__sign; // @[FMAdd.scala 90:19]
- end else if (state1_0_nan_a) begin // @[FMAdd.scala 203:24]
+ if (update1) begin // @[FMAdd.scala 79:20]
+ if (state1_0_nan_a) begin // @[FMAdd.scala 187:24]
state1__0_sign <= state1_0_sign_a;
- end else if (state1_0_nan_b) begin // @[FMAdd.scala 203:43]
+ end else if (state1_0_nan_b) begin // @[FMAdd.scala 187:43]
state1__0_sign <= state1_0_sign_b;
end else begin
state1__0_sign <= state1_0_sign;
end
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_exp <= {{2'd0}, bfst__exp}; // @[FMAdd.scala 91:19]
- end else if (state1_0_nan_a) begin // @[FMAdd.scala 204:24]
+ if (update1) begin // @[FMAdd.scala 79:20]
+ if (state1_0_nan_a) begin // @[FMAdd.scala 188:24]
state1__0_exp <= {{2'd0}, mul_sina[30:23]};
- end else if (state1_0_nan_b) begin // @[FMAdd.scala 204:42]
+ end else if (state1_0_nan_b) begin // @[FMAdd.scala 188:42]
state1__0_exp <= {{2'd0}, mul_sina[30:23]};
+ end else if (~state1_0_zero) begin // @[FMAdd.scala 181:20]
+ state1__0_exp <= state1_0_exp;
end else begin
- state1__0_exp <= state1_0_exp_z;
+ state1__0_exp <= 10'h0;
end
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_mul <= bfst__mul; // @[FMAdd.scala 92:19]
- end else if (state1_0_nan_a) begin // @[FMAdd.scala 205:24]
+ if (update1) begin // @[FMAdd.scala 79:20]
+ if (state1_0_nan_a) begin // @[FMAdd.scala 189:24]
state1__0_mul <= {{25'd0}, mul_sina[22:0]};
- end else if (state1_0_nan_b) begin // @[FMAdd.scala 205:42]
+ end else if (state1_0_nan_b) begin // @[FMAdd.scala 189:42]
state1__0_mul <= {{25'd0}, mul_inb[22:0]};
+ end else if (_state1_0_exp_z_T) begin // @[FMAdd.scala 182:20]
+ state1__0_mul <= state1_0_mul;
end else begin
- state1__0_mul <= state1_0_mul_z;
+ state1__0_mul <= 48'h0;
end
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_zero <= bfst__exp == 8'h0 & bfst__mul == 48'h0; // @[FMAdd.scala 93:19]
- end else begin
- state1__0_zero <= state1_0_zero; // @[FMAdd.scala 85:11]
- end
+ if (update1) begin // @[FMAdd.scala 79:20]
+ state1__0_zero <= state1_0_zero; // @[FMAdd.scala 81:11]
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_inf_a <= bfst__exp == 8'hff; // @[FMAdd.scala 94:19]
- end else begin
- state1__0_inf_a <= state1_0_inf_a; // @[FMAdd.scala 85:11]
- end
+ if (update1) begin // @[FMAdd.scala 79:20]
+ state1__0_inf_a <= state1_0_inf_a; // @[FMAdd.scala 81:11]
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_inf_b <= 1'h0; // @[FMAdd.scala 95:19]
- end else begin
- state1__0_inf_b <= state1_0_inf_b; // @[FMAdd.scala 85:11]
- end
+ if (update1) begin // @[FMAdd.scala 79:20]
+ state1__0_inf_b <= state1_0_inf_b; // @[FMAdd.scala 81:11]
end
- if (update1) begin // @[FMAdd.scala 83:20]
- if (io_op_bits[4]) begin // @[FMAdd.scala 87:40]
- state1__0_nan <= 1'h0; // @[FMAdd.scala 96:19]
- end else begin
- state1__0_nan <= state1_0_state1_nan; // @[FMAdd.scala 85:11]
- end
+ if (update1) begin // @[FMAdd.scala 79:20]
+ state1__0_nan <= state1_0_state1_nan; // @[FMAdd.scala 81:11]
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
- if (state1__0_nan | state2_0_sp_state_c_nan) begin // @[FMAdd.scala 306:32]
- state2_0_sign <= 1'h0; // @[FMAdd.scala 307:19]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
+ if (state1__0_nan | state2_0_sp_state_c_nan) begin // @[FMAdd.scala 290:32]
+ state2_0_sign <= 1'h0; // @[FMAdd.scala 291:19]
end else if ((state1__0_inf_a | state1__0_inf_b) & state2_0_sp_state_c_inf & state1__0_sign != state2_0_acm_sign
- ) begin // @[FMAdd.scala 311:85]
- state2_0_sign <= 1'h0; // @[FMAdd.scala 312:19]
+ ) begin // @[FMAdd.scala 295:85]
+ state2_0_sign <= 1'h0; // @[FMAdd.scala 296:19]
end else begin
- state2_0_sign <= _GEN_33;
+ state2_0_sign <= _GEN_25;
end
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_sign <= state1__0_sign;
end else begin
state2_0_sign <= state2_0_acm_sign;
end
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
state2_0_exp <= state2_0_sp_state_exp;
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_exp <= state2_0_a_exp;
end else begin
state2_0_exp <= state2_0_b_exp;
end
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
state2_0_ain <= state2_0_sp_state_ain;
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_ain <= state2_0_ab_state_a_shbits;
end else begin
state2_0_ain <= _state2_0_ab_state_b_shbits_T;
end
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
state2_0_bin <= 49'h0;
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_bin <= state2_0_ab_state_b_shbits;
end else begin
state2_0_bin <= state2_0_ba_state_b_shbits;
end
end
- if (update2) begin // @[FMAdd.scala 100:20]
- state2_0_sel <= state2_0_sp_state_sel; // @[FMAdd.scala 103:11]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ state2_0_sel <= state2_0_sp_state_sel; // @[FMAdd.scala 87:11]
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
state2_0_add <= 1'h0;
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_add <= state2_0_ab_state_add;
end else begin
state2_0_add <= state2_0_ba_state_add;
end
end
- if (update2) begin // @[FMAdd.scala 100:20]
- if (state2_0_sp_state_sel) begin // @[FMAdd.scala 275:21]
+ if (update2) begin // @[FMAdd.scala 84:20]
+ if (state2_0_sp_state_sel) begin // @[FMAdd.scala 259:21]
state2_0_sub <= 1'h0;
- end else if (state2_0_sel_ab) begin // @[FMAdd.scala 275:43]
+ end else if (state2_0_sel_ab) begin // @[FMAdd.scala 259:43]
state2_0_sub <= _state2_0_sp_state_T_3;
end else begin
state2_0_sub <= state2_0_ba_state_sub;
end
end
- if (active2) begin // @[FMAdd.scala 106:20]
- state3_0_sign <= state2_0_sign; // @[FMAdd.scala 107:11]
+ if (active2) begin // @[FMAdd.scala 90:20]
+ state3_0_sign <= state2_0_sign; // @[FMAdd.scala 91:11]
end
- if (active2) begin // @[FMAdd.scala 106:20]
- state3_0_exp <= state3_0_state3_exp; // @[FMAdd.scala 107:11]
+ if (active2) begin // @[FMAdd.scala 90:20]
+ state3_0_exp <= state3_0_state3_exp; // @[FMAdd.scala 91:11]
end
- if (active2) begin // @[FMAdd.scala 106:20]
- state3_0_man <= state3_0_state3_man; // @[FMAdd.scala 107:11]
+ if (active2) begin // @[FMAdd.scala 90:20]
+ state3_0_man <= state3_0_state3_man; // @[FMAdd.scala 91:11]
end
`ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (update1 & io_op_bits[4] & _bfst_T_27 & ~reset) begin
- $fwrite(32'h80000002,"Select = %b : %x %x %x %x\n",_bfst_T_4,dot_ina[15:0],dot_inb[15:0],dot_ina[31:16],
- dot_inb[31:16]); // @[BFDot.scala 62:13]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_GEN_100 & _bfst_T_30 & ~(_bfst_T_25 == 4'h1)) begin
- $fatal; // @[BFDot.scala 64:11]
+ if (active2 & ~reset & ~(_state3_0_T_6[1:0] <= 2'h1)) begin
+ $fatal; // @[FMAdd.scala 382:11]
end
`ifdef STOP_COND
end
@@ -27456,32 +27291,10 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_GEN_100 & _bfst_T_30 & ~(_bfst_T_25 == 4'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at BFDot.scala:64 assert(PopCount(select.asUInt) === 1.U)\n"); // @[BFDot.scala 64:11]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (active2 & _bfst_T_30 & ~(_state3_0_T_6[1:0] <= 2'h1)) begin
- $fatal; // @[FMAdd.scala 398:11]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (active2 & _bfst_T_30 & ~(_state3_0_T_6[1:0] <= 2'h1)) begin
+ if (active2 & ~reset & ~(_state3_0_T_6[1:0] <= 2'h1)) begin
$fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:398 assert(PopCount(Cat(state2.sel, state2.add, state2.sub)) <= 1.U)\n"
- ); // @[FMAdd.scala 398:11]
+ "Assertion failed\n at FMAdd.scala:382 assert(PopCount(Cat(state2.sel, state2.add, state2.sub)) <= 1.U)\n"
+ ); // @[FMAdd.scala 382:11]
end
`ifdef PRINTF_COND
end
@@ -27491,8 +27304,8 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_GEN_107 & ~(_state3_0_T_18[1:0] <= 2'h1)) begin
- $fatal; // @[FMAdd.scala 449:11]
+ if (_GEN_89 & ~(_state3_0_T_18[1:0] <= 2'h1)) begin
+ $fatal; // @[FMAdd.scala 433:11]
end
`ifdef STOP_COND
end
@@ -27502,9 +27315,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_GEN_107 & ~(_state3_0_T_18[1:0] <= 2'h1)) begin
+ if (_GEN_89 & ~(_state3_0_T_18[1:0] <= 2'h1)) begin
$fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:449 assert(PopCount(Cat(sel_ain, sel_shl, sel_shr)) <= 1.U)\n"); // @[FMAdd.scala 449:11]
+ "Assertion failed\n at FMAdd.scala:433 assert(PopCount(Cat(sel_ain, sel_shl, sel_shr)) <= 1.U)\n"); // @[FMAdd.scala 433:11]
end
`ifdef PRINTF_COND
end
@@ -27512,24 +27325,24 @@
`endif // SYNTHESIS
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[FMAdd.scala 46:29]
- active1 <= 1'h0; // @[FMAdd.scala 47:13]
- end else if (update1 | update2) begin // @[FMAdd.scala 33:24]
+ if (reset) begin // @[FMAdd.scala 45:29]
+ active1 <= 1'h0; // @[FMAdd.scala 46:13]
+ end else if (update1 | update2) begin // @[FMAdd.scala 32:24]
active1 <= update1;
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[FMAdd.scala 50:29]
- active2 <= 1'h0; // @[FMAdd.scala 51:13]
- end else if (update2 | active2) begin // @[FMAdd.scala 34:24]
+ if (reset) begin // @[FMAdd.scala 49:29]
+ active2 <= 1'h0; // @[FMAdd.scala 50:13]
+ end else if (update2 | active2) begin // @[FMAdd.scala 33:24]
active2 <= update2;
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[FMAdd.scala 54:34]
- active3 <= 1'h0; // @[FMAdd.scala 55:13]
+ if (reset) begin // @[FMAdd.scala 53:34]
+ active3 <= 1'h0; // @[FMAdd.scala 54:13]
end else begin
- active3 <= active2; // @[FMAdd.scala 35:24]
+ active3 <= active2; // @[FMAdd.scala 34:24]
end
end
// Register and memory initialization
@@ -27575,7 +27388,7 @@
_RAND_2 = {1{`RANDOM}};
active3 = _RAND_2[0:0];
_RAND_3 = {1{`RANDOM}};
- op1 = _RAND_3[4:0];
+ op1 = _RAND_3[3:0];
_RAND_4 = {1{`RANDOM}};
state1__0_sign = _RAND_4[0:0];
_RAND_5 = {1{`RANDOM}};
@@ -27646,12 +27459,12 @@
reg [31:0] mem_0; // @[Slice.scala 27:16]
wire empty = ipos == opos; // @[Slice.scala 29:20]
wire ivalid = io_in_valid & io_in_ready; // @[Slice.scala 31:28]
- assign io_in_ready = 1'h1; // @[Slice.scala 93:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits = mem_0; // @[Slice.scala 108:18]
+ assign io_in_ready = 1'h1; // @[Slice.scala 74:28]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits = mem_0; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0 <= io_in_bits; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0 <= io_in_bits; // @[Slice.scala 80:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -27740,7 +27553,7 @@
wire fmadd_clock; // @[FMAdd.scala 8:18]
wire fmadd_reset; // @[FMAdd.scala 8:18]
wire fmadd_io_op_valid; // @[FMAdd.scala 8:18]
- wire [4:0] fmadd_io_op_bits; // @[FMAdd.scala 8:18]
+ wire [3:0] fmadd_io_op_bits; // @[FMAdd.scala 8:18]
wire fmadd_io_ina_ready; // @[FMAdd.scala 8:18]
wire fmadd_io_ina_valid; // @[FMAdd.scala 8:18]
wire [31:0] fmadd_io_ina_bits_0; // @[FMAdd.scala 8:18]
@@ -27771,9 +27584,9 @@
wire op_1 = io_in_op[3]; // @[FMAdd.scala 39:33]
wire op_2 = io_in_op[4]; // @[FMAdd.scala 40:33]
wire op_3 = io_in_op[5]; // @[FMAdd.scala 41:33]
- wire [1:0] fmadd_io_op_bits_lo = {op_1,op_0}; // @[FMAdd.scala 45:26]
- wire [2:0] fmadd_io_op_bits_hi = {1'h0,op_3,op_2}; // @[FMAdd.scala 45:26]
- wire _T_4 = ~reset; // @[FMAdd.scala 70:9]
+ wire [1:0] fmadd_io_op_bits_lo = {op_1,op_0}; // @[FMAdd.scala 44:26]
+ wire [1:0] fmadd_io_op_bits_hi = {op_3,op_2}; // @[FMAdd.scala 44:26]
+ wire _T_4 = ~reset; // @[FMAdd.scala 69:9]
FMAdd fmadd ( // @[FMAdd.scala 8:18]
.clock(fmadd_clock),
.reset(fmadd_reset),
@@ -27810,34 +27623,57 @@
.io_out_valid(data_io_out_valid),
.io_out_bits(data_io_out_bits)
);
- assign io_out_valid = fmadd_io_out_valid; // @[FMAdd.scala 62:16]
- assign io_out_addr = addr_io_out_bits; // @[FMAdd.scala 63:15]
- assign io_out_fd = fmadd_io_out_bits_0; // @[FMAdd.scala 64:13]
+ assign io_out_valid = fmadd_io_out_valid; // @[FMAdd.scala 61:16]
+ assign io_out_addr = addr_io_out_bits; // @[FMAdd.scala 62:15]
+ assign io_out_fd = fmadd_io_out_bits_0; // @[FMAdd.scala 63:13]
assign fmadd_clock = clock;
assign fmadd_reset = reset;
- assign fmadd_io_op_valid = io_in_valid; // @[FMAdd.scala 44:21]
- assign fmadd_io_op_bits = {fmadd_io_op_bits_hi,fmadd_io_op_bits_lo}; // @[FMAdd.scala 45:26]
- assign fmadd_io_ina_valid = io_in_valid; // @[FMAdd.scala 48:22]
- assign fmadd_io_ina_bits_0 = io_in_fs1; // @[FMAdd.scala 52:24]
- assign fmadd_io_inb_valid = io_in_valid; // @[FMAdd.scala 49:22]
- assign fmadd_io_inb_bits_0 = io_in_fs2; // @[FMAdd.scala 53:24]
- assign fmadd_io_inc_valid = data_io_out_valid; // @[FMAdd.scala 50:22]
- assign fmadd_io_inc_bits_0 = data_io_out_bits; // @[FMAdd.scala 54:24]
+ assign fmadd_io_op_valid = io_in_valid; // @[FMAdd.scala 43:21]
+ assign fmadd_io_op_bits = {fmadd_io_op_bits_hi,fmadd_io_op_bits_lo}; // @[FMAdd.scala 44:26]
+ assign fmadd_io_ina_valid = io_in_valid; // @[FMAdd.scala 47:22]
+ assign fmadd_io_ina_bits_0 = io_in_fs1; // @[FMAdd.scala 51:24]
+ assign fmadd_io_inb_valid = io_in_valid; // @[FMAdd.scala 48:22]
+ assign fmadd_io_inb_bits_0 = io_in_fs2; // @[FMAdd.scala 52:24]
+ assign fmadd_io_inc_valid = data_io_out_valid; // @[FMAdd.scala 49:22]
+ assign fmadd_io_inc_bits_0 = data_io_out_bits; // @[FMAdd.scala 53:24]
assign addr_clock = clock;
assign addr_reset = reset;
- assign addr_io_in_valid = io_in_valid; // @[FMAdd.scala 56:20]
- assign addr_io_in_bits = io_in_addr; // @[FMAdd.scala 57:19]
- assign addr_io_out_ready = io_out_valid; // @[FMAdd.scala 66:21]
+ assign addr_io_in_valid = io_in_valid; // @[FMAdd.scala 55:20]
+ assign addr_io_in_bits = io_in_addr; // @[FMAdd.scala 56:19]
+ assign addr_io_out_ready = io_out_valid; // @[FMAdd.scala 65:21]
assign data_clock = clock;
assign data_reset = reset;
- assign data_io_in_valid = io_in_valid; // @[FMAdd.scala 59:20]
- assign data_io_in_bits = io_in_op[8] ? 32'h0 : io_in_fs3; // @[FMAdd.scala 60:25]
+ assign data_io_in_valid = io_in_valid; // @[FMAdd.scala 58:20]
+ assign data_io_in_bits = io_in_op[8] ? 32'h0 : io_in_fs3; // @[FMAdd.scala 59:25]
always @(posedge clock) begin
`ifndef SYNTHESIS
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
if (~reset & ~(~(fmadd_io_ina_valid & ~fmadd_io_ina_ready))) begin
+ $fatal; // @[FMAdd.scala 69:9]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
+ if (~reset & ~(~(fmadd_io_ina_valid & ~fmadd_io_ina_ready))) begin
+ $fwrite(32'h80000002,
+ "Assertion failed\n at FMAdd.scala:69 assert(!(fmadd.io.ina.valid && !fmadd.io.ina.ready))\n"); // @[FMAdd.scala 69:9]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
+ if (_T_4 & ~(~(fmadd_io_inb_valid & ~fmadd_io_inb_ready))) begin
$fatal; // @[FMAdd.scala 70:9]
end
`ifdef STOP_COND
@@ -27848,9 +27684,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (~reset & ~(~(fmadd_io_ina_valid & ~fmadd_io_ina_ready))) begin
+ if (_T_4 & ~(~(fmadd_io_inb_valid & ~fmadd_io_inb_ready))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:70 assert(!(fmadd.io.ina.valid && !fmadd.io.ina.ready))\n"); // @[FMAdd.scala 70:9]
+ "Assertion failed\n at FMAdd.scala:70 assert(!(fmadd.io.inb.valid && !fmadd.io.inb.ready))\n"); // @[FMAdd.scala 70:9]
end
`ifdef PRINTF_COND
end
@@ -27860,7 +27696,7 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_4 & ~(~(fmadd_io_inb_valid & ~fmadd_io_inb_ready))) begin
+ if (_T_4 & ~(~(fmadd_io_inc_valid & ~fmadd_io_inc_ready))) begin
$fatal; // @[FMAdd.scala 71:9]
end
`ifdef STOP_COND
@@ -27871,9 +27707,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_4 & ~(~(fmadd_io_inb_valid & ~fmadd_io_inb_ready))) begin
+ if (_T_4 & ~(~(fmadd_io_inc_valid & ~fmadd_io_inc_ready))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:71 assert(!(fmadd.io.inb.valid && !fmadd.io.inb.ready))\n"); // @[FMAdd.scala 71:9]
+ "Assertion failed\n at FMAdd.scala:71 assert(!(fmadd.io.inc.valid && !fmadd.io.inc.ready))\n"); // @[FMAdd.scala 71:9]
end
`ifdef PRINTF_COND
end
@@ -27883,7 +27719,7 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_4 & ~(~(fmadd_io_inc_valid & ~fmadd_io_inc_ready))) begin
+ if (_T_4 & ~(~(addr_io_in_valid & ~addr_io_in_ready))) begin
$fatal; // @[FMAdd.scala 72:9]
end
`ifdef STOP_COND
@@ -27894,32 +27730,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_4 & ~(~(fmadd_io_inc_valid & ~fmadd_io_inc_ready))) begin
- $fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:72 assert(!(fmadd.io.inc.valid && !fmadd.io.inc.ready))\n"); // @[FMAdd.scala 72:9]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_4 & ~(~(addr_io_in_valid & ~addr_io_in_ready))) begin
- $fatal; // @[FMAdd.scala 73:9]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
if (_T_4 & ~(~(addr_io_in_valid & ~addr_io_in_ready))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at FMAdd.scala:73 assert(!(addr.io.in.valid && !addr.io.in.ready))\n"); // @[FMAdd.scala 73:9]
+ "Assertion failed\n at FMAdd.scala:72 assert(!(addr.io.in.valid && !addr.io.in.ready))\n"); // @[FMAdd.scala 72:9]
end
`ifdef PRINTF_COND
end
@@ -32865,158 +32678,158 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 51:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full; // @[Slice.scala 51:22]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_0_lane_valid = mem_0_0_lane_valid; // @[Slice.scala 108:18]
- assign io_out_bits_0_lane_bits_inst = mem_0_0_lane_bits_inst; // @[Slice.scala 108:18]
- assign io_out_bits_0_lane_bits_addr = mem_0_0_lane_bits_addr; // @[Slice.scala 108:18]
- assign io_out_bits_0_lane_bits_data = mem_0_0_lane_bits_data; // @[Slice.scala 108:18]
- assign io_out_bits_1_lane_valid = mem_0_1_lane_valid; // @[Slice.scala 108:18]
- assign io_out_bits_1_lane_bits_inst = mem_0_1_lane_bits_inst; // @[Slice.scala 108:18]
- assign io_out_bits_1_lane_bits_addr = mem_0_1_lane_bits_addr; // @[Slice.scala 108:18]
- assign io_out_bits_1_lane_bits_data = mem_0_1_lane_bits_data; // @[Slice.scala 108:18]
- assign io_out_bits_2_lane_valid = mem_0_2_lane_valid; // @[Slice.scala 108:18]
- assign io_out_bits_2_lane_bits_inst = mem_0_2_lane_bits_inst; // @[Slice.scala 108:18]
- assign io_out_bits_2_lane_bits_addr = mem_0_2_lane_bits_addr; // @[Slice.scala 108:18]
- assign io_out_bits_2_lane_bits_data = mem_0_2_lane_bits_data; // @[Slice.scala 108:18]
- assign io_out_bits_3_lane_valid = mem_0_3_lane_valid; // @[Slice.scala 108:18]
- assign io_out_bits_3_lane_bits_inst = mem_0_3_lane_bits_inst; // @[Slice.scala 108:18]
- assign io_out_bits_3_lane_bits_addr = mem_0_3_lane_bits_addr; // @[Slice.scala 108:18]
- assign io_out_bits_3_lane_bits_data = mem_0_3_lane_bits_data; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_0_lane_valid = mem_0_0_lane_valid; // @[Slice.scala 89:18]
+ assign io_out_bits_0_lane_bits_inst = mem_0_0_lane_bits_inst; // @[Slice.scala 89:18]
+ assign io_out_bits_0_lane_bits_addr = mem_0_0_lane_bits_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_0_lane_bits_data = mem_0_0_lane_bits_data; // @[Slice.scala 89:18]
+ assign io_out_bits_1_lane_valid = mem_0_1_lane_valid; // @[Slice.scala 89:18]
+ assign io_out_bits_1_lane_bits_inst = mem_0_1_lane_bits_inst; // @[Slice.scala 89:18]
+ assign io_out_bits_1_lane_bits_addr = mem_0_1_lane_bits_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_1_lane_bits_data = mem_0_1_lane_bits_data; // @[Slice.scala 89:18]
+ assign io_out_bits_2_lane_valid = mem_0_2_lane_valid; // @[Slice.scala 89:18]
+ assign io_out_bits_2_lane_bits_inst = mem_0_2_lane_bits_inst; // @[Slice.scala 89:18]
+ assign io_out_bits_2_lane_bits_addr = mem_0_2_lane_bits_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_2_lane_bits_data = mem_0_2_lane_bits_data; // @[Slice.scala 89:18]
+ assign io_out_bits_3_lane_valid = mem_0_3_lane_valid; // @[Slice.scala 89:18]
+ assign io_out_bits_3_lane_bits_inst = mem_0_3_lane_bits_inst; // @[Slice.scala 89:18]
+ assign io_out_bits_3_lane_bits_addr = mem_0_3_lane_bits_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_3_lane_bits_data = mem_0_3_lane_bits_data; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_0_lane_valid <= io_in_bits_0_lane_valid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_0_lane_valid <= mem_1_0_lane_valid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_0_lane_valid <= io_in_bits_0_lane_valid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_0_lane_valid <= mem_1_0_lane_valid; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_0_lane_bits_inst <= io_in_bits_0_lane_bits_inst; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_0_lane_bits_inst <= mem_1_0_lane_bits_inst; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_0_lane_bits_inst <= io_in_bits_0_lane_bits_inst; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_0_lane_bits_inst <= mem_1_0_lane_bits_inst; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_0_lane_bits_addr <= io_in_bits_0_lane_bits_addr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_0_lane_bits_addr <= mem_1_0_lane_bits_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_0_lane_bits_addr <= io_in_bits_0_lane_bits_addr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_0_lane_bits_addr <= mem_1_0_lane_bits_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_0_lane_bits_data <= io_in_bits_0_lane_bits_data; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_0_lane_bits_data <= mem_1_0_lane_bits_data; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_0_lane_bits_data <= io_in_bits_0_lane_bits_data; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_0_lane_bits_data <= mem_1_0_lane_bits_data; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_1_lane_valid <= io_in_bits_1_lane_valid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_1_lane_valid <= mem_1_1_lane_valid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_1_lane_valid <= io_in_bits_1_lane_valid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_1_lane_valid <= mem_1_1_lane_valid; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_1_lane_bits_inst <= io_in_bits_1_lane_bits_inst; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_1_lane_bits_inst <= mem_1_1_lane_bits_inst; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_1_lane_bits_inst <= io_in_bits_1_lane_bits_inst; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_1_lane_bits_inst <= mem_1_1_lane_bits_inst; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_1_lane_bits_addr <= io_in_bits_1_lane_bits_addr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_1_lane_bits_addr <= mem_1_1_lane_bits_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_1_lane_bits_addr <= io_in_bits_1_lane_bits_addr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_1_lane_bits_addr <= mem_1_1_lane_bits_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_1_lane_bits_data <= io_in_bits_1_lane_bits_data; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_1_lane_bits_data <= mem_1_1_lane_bits_data; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_1_lane_bits_data <= io_in_bits_1_lane_bits_data; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_1_lane_bits_data <= mem_1_1_lane_bits_data; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_2_lane_valid <= io_in_bits_2_lane_valid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_2_lane_valid <= mem_1_2_lane_valid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_2_lane_valid <= io_in_bits_2_lane_valid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_2_lane_valid <= mem_1_2_lane_valid; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_2_lane_bits_inst <= io_in_bits_2_lane_bits_inst; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_2_lane_bits_inst <= mem_1_2_lane_bits_inst; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_2_lane_bits_inst <= io_in_bits_2_lane_bits_inst; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_2_lane_bits_inst <= mem_1_2_lane_bits_inst; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_2_lane_bits_addr <= io_in_bits_2_lane_bits_addr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_2_lane_bits_addr <= mem_1_2_lane_bits_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_2_lane_bits_addr <= io_in_bits_2_lane_bits_addr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_2_lane_bits_addr <= mem_1_2_lane_bits_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_2_lane_bits_data <= io_in_bits_2_lane_bits_data; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_2_lane_bits_data <= mem_1_2_lane_bits_data; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_2_lane_bits_data <= io_in_bits_2_lane_bits_data; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_2_lane_bits_data <= mem_1_2_lane_bits_data; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_3_lane_valid <= io_in_bits_3_lane_valid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_3_lane_valid <= mem_1_3_lane_valid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_3_lane_valid <= io_in_bits_3_lane_valid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_3_lane_valid <= mem_1_3_lane_valid; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_3_lane_bits_inst <= io_in_bits_3_lane_bits_inst; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_3_lane_bits_inst <= mem_1_3_lane_bits_inst; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_3_lane_bits_inst <= io_in_bits_3_lane_bits_inst; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_3_lane_bits_inst <= mem_1_3_lane_bits_inst; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_3_lane_bits_addr <= io_in_bits_3_lane_bits_addr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_3_lane_bits_addr <= mem_1_3_lane_bits_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_3_lane_bits_addr <= io_in_bits_3_lane_bits_addr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_3_lane_bits_addr <= mem_1_3_lane_bits_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_3_lane_bits_data <= io_in_bits_3_lane_bits_data; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_3_lane_bits_data <= mem_1_3_lane_bits_data; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_3_lane_bits_data <= io_in_bits_3_lane_bits_data; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_3_lane_bits_data <= mem_1_3_lane_bits_data; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_0_lane_valid <= io_in_bits_0_lane_valid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_0_lane_valid <= io_in_bits_0_lane_valid; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_0_lane_bits_inst <= io_in_bits_0_lane_bits_inst; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_0_lane_bits_inst <= io_in_bits_0_lane_bits_inst; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_0_lane_bits_addr <= io_in_bits_0_lane_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_0_lane_bits_addr <= io_in_bits_0_lane_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_0_lane_bits_data <= io_in_bits_0_lane_bits_data; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_0_lane_bits_data <= io_in_bits_0_lane_bits_data; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_1_lane_valid <= io_in_bits_1_lane_valid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_1_lane_valid <= io_in_bits_1_lane_valid; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_1_lane_bits_inst <= io_in_bits_1_lane_bits_inst; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_1_lane_bits_inst <= io_in_bits_1_lane_bits_inst; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_1_lane_bits_addr <= io_in_bits_1_lane_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_1_lane_bits_addr <= io_in_bits_1_lane_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_1_lane_bits_data <= io_in_bits_1_lane_bits_data; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_1_lane_bits_data <= io_in_bits_1_lane_bits_data; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_2_lane_valid <= io_in_bits_2_lane_valid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_2_lane_valid <= io_in_bits_2_lane_valid; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_2_lane_bits_inst <= io_in_bits_2_lane_bits_inst; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_2_lane_bits_inst <= io_in_bits_2_lane_bits_inst; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_2_lane_bits_addr <= io_in_bits_2_lane_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_2_lane_bits_addr <= io_in_bits_2_lane_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_2_lane_bits_data <= io_in_bits_2_lane_bits_data; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_2_lane_bits_data <= io_in_bits_2_lane_bits_data; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_3_lane_valid <= io_in_bits_3_lane_valid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_3_lane_valid <= io_in_bits_3_lane_valid; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_3_lane_bits_inst <= io_in_bits_3_lane_bits_inst; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_3_lane_bits_inst <= io_in_bits_3_lane_bits_inst; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_3_lane_bits_addr <= io_in_bits_3_lane_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_3_lane_bits_addr <= io_in_bits_3_lane_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_3_lane_bits_data <= io_in_bits_3_lane_bits_data; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_3_lane_bits_data <= io_in_bits_3_lane_bits_data; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -37567,8 +37380,8 @@
wire [1:0] _GEN_93 = {{1'd0}, cmdqchk[3]}; // @[Bitwise.scala 48:55]
wire [2:0] _T_367 = _GEN_93 + _T_365; // @[Bitwise.scala 48:55]
wire [2:0] _T_369 = _T_363[1:0] + _T_367[1:0]; // @[Bitwise.scala 48:55]
- wire _io_actv_ractive_T_6 = vfmt6 & ~vslideh2; // @[VDecodeInstruction.scala 671:17]
- wire _io_actv_ractive_T_7 = _io_out_vt_valid_T_6 | _io_actv_ractive_T_6; // @[VDecodeInstruction.scala 670:62]
+ wire _io_actv_ractive_T_6 = vfmt6 & ~vslideh2; // @[VDecodeInstruction.scala 670:17]
+ wire _io_actv_ractive_T_7 = _io_out_vt_valid_T_6 | _io_actv_ractive_T_6; // @[VDecodeInstruction.scala 669:62]
wire [63:0] io_actv_ractive_vs = 64'h1 << vsbits; // @[OneHot.scala 64:12]
wire [63:0] io_actv_ractive_vsm = m ? ractivedi : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_ractive_vt_T_1 = 64'h1 << vtbits; // @[OneHot.scala 64:12]
@@ -37627,66 +37440,66 @@
wire [63:0] _io_actv_ractive_T_13 = _io_actv_ractive_T_8 | io_actv_ractive_vt_1; // @[VDecodeInstruction.scala 86:14]
wire [63:0] _io_actv_ractive_T_14 = _io_actv_ractive_T_13 | io_actv_ractive_vtm_1; // @[VDecodeInstruction.scala 86:19]
wire [63:0] _io_actv_ractive_T_15 = vfmadd4 ? _io_actv_ractive_T_14 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_16 = _io_actv_ractive_T_11 | _io_actv_ractive_T_15; // @[VDecodeInstruction.scala 671:80]
- wire _io_actv_ractive_T_17 = vsraqs | vsrans; // @[VDecodeInstruction.scala 673:18]
+ wire [63:0] _io_actv_ractive_T_16 = _io_actv_ractive_T_11 | _io_actv_ractive_T_15; // @[VDecodeInstruction.scala 670:80]
+ wire _io_actv_ractive_T_17 = vsraqs | vsrans; // @[VDecodeInstruction.scala 672:18]
wire [64:0] _io_actv_ractive_vs_T_4 = {io_actv_ractive_vs,1'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vs_2 = _io_actv_ractive_vs_T_4[63:0]; // @[VDecodeInstruction.scala 91:48]
wire [67:0] _io_actv_ractive_vsm_T_9 = {ractivedi_b_hi,ractivedi_b_lo,4'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vsm_2 = m ? _io_actv_ractive_vsm_T_9[63:0] : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_ractive_T_18 = io_actv_ractive_vs_2 | io_actv_ractive_vsm_2; // @[VDecodeInstruction.scala 95:8]
wire [63:0] _io_actv_ractive_T_19 = _io_actv_ractive_T_17 ? _io_actv_ractive_T_18 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_20 = _io_actv_ractive_T_16 | _io_actv_ractive_T_19; // @[VDecodeInstruction.scala 672:80]
+ wire [63:0] _io_actv_ractive_T_20 = _io_actv_ractive_T_16 | _io_actv_ractive_T_19; // @[VDecodeInstruction.scala 671:80]
wire [65:0] _io_actv_ractive_vs_T_7 = {io_actv_ractive_vs,2'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vs_3 = _io_actv_ractive_vs_T_7[63:0]; // @[VDecodeInstruction.scala 100:48]
wire [71:0] _io_actv_ractive_vsm_T_14 = {ractivedi_b_hi,ractivedi_b_lo,8'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vsm_3 = m ? _io_actv_ractive_vsm_T_14[63:0] : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_ractive_T_21 = io_actv_ractive_vs_3 | io_actv_ractive_vsm_3; // @[VDecodeInstruction.scala 104:8]
wire [63:0] _io_actv_ractive_T_22 = vsraqs ? _io_actv_ractive_T_21 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_23 = _io_actv_ractive_T_20 | _io_actv_ractive_T_22; // @[VDecodeInstruction.scala 673:80]
+ wire [63:0] _io_actv_ractive_T_23 = _io_actv_ractive_T_20 | _io_actv_ractive_T_22; // @[VDecodeInstruction.scala 672:80]
wire [66:0] _io_actv_ractive_vs_T_10 = {io_actv_ractive_vs,3'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vs_4 = _io_actv_ractive_vs_T_10[63:0]; // @[VDecodeInstruction.scala 109:48]
wire [75:0] _io_actv_ractive_vsm_T_19 = {ractivedi_b_hi,ractivedi_b_lo,12'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_ractive_vsm_4 = m ? _io_actv_ractive_vsm_T_19[63:0] : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_ractive_T_24 = io_actv_ractive_vs_4 | io_actv_ractive_vsm_4; // @[VDecodeInstruction.scala 113:8]
wire [63:0] _io_actv_ractive_T_25 = vsraqs ? _io_actv_ractive_T_24 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_26 = _io_actv_ractive_T_23 | _io_actv_ractive_T_25; // @[VDecodeInstruction.scala 674:80]
- wire _io_actv_ractive_T_29 = vmacc | vmadd | vst | vstq; // @[VDecodeInstruction.scala 676:33]
+ wire [63:0] _io_actv_ractive_T_26 = _io_actv_ractive_T_23 | _io_actv_ractive_T_25; // @[VDecodeInstruction.scala 673:80]
+ wire _io_actv_ractive_T_29 = vmacc | vmadd | vst | vstq; // @[VDecodeInstruction.scala 675:33]
wire [63:0] io_actv_ractive_vd = 64'h1 << vdbits; // @[OneHot.scala 64:12]
wire [63:0] io_actv_ractive_vdm = m ? wactivedw : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_ractive_T_30 = io_actv_ractive_vd | io_actv_ractive_vdm; // @[VDecodeInstruction.scala 121:8]
wire [63:0] _io_actv_ractive_T_31 = _io_actv_ractive_T_29 ? _io_actv_ractive_T_30 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_32 = _io_actv_ractive_T_26 | _io_actv_ractive_T_31; // @[VDecodeInstruction.scala 675:80]
+ wire [63:0] _io_actv_ractive_T_32 = _io_actv_ractive_T_26 | _io_actv_ractive_T_31; // @[VDecodeInstruction.scala 674:80]
wire [63:0] _io_actv_ractive_T_33 = ra_vx | ra_vxm; // @[VDecodeInstruction.scala 129:8]
wire [63:0] _io_actv_ractive_T_34 = vfmadd4 ? _io_actv_ractive_T_33 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_35 = _io_actv_ractive_T_32 | _io_actv_ractive_T_34; // @[VDecodeInstruction.scala 676:80]
+ wire [63:0] _io_actv_ractive_T_35 = _io_actv_ractive_T_32 | _io_actv_ractive_T_34; // @[VDecodeInstruction.scala 675:80]
wire [63:0] _io_actv_ractive_T_36 = vadwconv ? ractivedw : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_37 = _io_actv_ractive_T_35 | _io_actv_ractive_T_36; // @[VDecodeInstruction.scala 677:80]
+ wire [63:0] _io_actv_ractive_T_37 = _io_actv_ractive_T_35 | _io_actv_ractive_T_36; // @[VDecodeInstruction.scala 676:80]
wire [63:0] _io_actv_ractive_T_38 = adwinit ? ractivedi : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_39 = _io_actv_ractive_T_37 | _io_actv_ractive_T_38; // @[VDecodeInstruction.scala 678:80]
+ wire [63:0] _io_actv_ractive_T_39 = _io_actv_ractive_T_37 | _io_actv_ractive_T_38; // @[VDecodeInstruction.scala 677:80]
wire [63:0] _io_actv_ractive_T_40 = vslideh2 ? ractivesl : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_41 = _io_actv_ractive_T_39 | _io_actv_ractive_T_40; // @[VDecodeInstruction.scala 679:80]
- wire _io_actv_ractive_T_42 = aconv | actr; // @[VDecodeInstruction.scala 681:17]
+ wire [63:0] _io_actv_ractive_T_41 = _io_actv_ractive_T_39 | _io_actv_ractive_T_40; // @[VDecodeInstruction.scala 678:80]
+ wire _io_actv_ractive_T_42 = aconv | actr; // @[VDecodeInstruction.scala 680:17]
wire [63:0] ractiveconv1 = _ractiveconv1_T_2[63:0]; // @[VDecodeInstruction.scala 557:26 571:18]
wire [63:0] _io_actv_ractive_T_43 = _io_actv_ractive_T_42 ? ractiveconv1 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_44 = _io_actv_ractive_T_41 | _io_actv_ractive_T_43; // @[VDecodeInstruction.scala 680:80]
+ wire [63:0] _io_actv_ractive_T_44 = _io_actv_ractive_T_41 | _io_actv_ractive_T_43; // @[VDecodeInstruction.scala 679:80]
wire [63:0] ractiveconv2 = _ractiveconv2_T_2[63:0]; // @[VDecodeInstruction.scala 558:26 572:18]
wire [63:0] _io_actv_ractive_T_45 = aconv ? ractiveconv2 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_ractive_T_46 = _io_actv_ractive_T_44 | _io_actv_ractive_T_45; // @[VDecodeInstruction.scala 681:80]
+ wire [63:0] _io_actv_ractive_T_46 = _io_actv_ractive_T_44 | _io_actv_ractive_T_45; // @[VDecodeInstruction.scala 680:80]
wire [63:0] ractiveaset = _ractiveaset_T_2[63:0]; // @[VDecodeInstruction.scala 559:26 573:18]
wire [63:0] _io_actv_ractive_T_47 = acset ? ractiveaset : 64'h0; // @[Library.scala 18:8]
- wire _io_actv_wactive_T_6 = _io_out_vt_valid_T_7 | vdup; // @[VDecodeInstruction.scala 686:71]
- wire _io_actv_wactive_T_8 = _io_actv_wactive_T_6 | vld | vfmadd4; // @[VDecodeInstruction.scala 687:23]
+ wire _io_actv_wactive_T_6 = _io_out_vt_valid_T_7 | vdup; // @[VDecodeInstruction.scala 685:71]
+ wire _io_actv_wactive_T_8 = _io_actv_wactive_T_6 | vld | vfmadd4; // @[VDecodeInstruction.scala 686:23]
wire [63:0] _io_actv_wactive_T_10 = _io_actv_wactive_T_8 ? _io_actv_ractive_T_30 : 64'h0; // @[Library.scala 18:8]
- wire _io_actv_wactive_T_16 = vmvp | vmulw | vacc | vaddw | vsubw | vevnodd | vzip; // @[VDecodeInstruction.scala 688:62]
+ wire _io_actv_wactive_T_16 = vmvp | vmulw | vacc | vaddw | vsubw | vevnodd | vzip; // @[VDecodeInstruction.scala 687:62]
wire [64:0] _io_actv_wactive_vd_T_3 = {io_actv_ractive_vd,1'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_wactive_vd_1 = _io_actv_wactive_vd_T_3[63:0]; // @[VDecodeInstruction.scala 142:48]
wire [67:0] _io_actv_wactive_vdm_T_6 = {wactivedw_b_hi,wactivedw_b_lo,4'h0}; // @[Cat.scala 31:58]
wire [63:0] io_actv_wactive_vdm_1 = m ? _io_actv_wactive_vdm_T_6[63:0] : 64'h0; // @[Library.scala 18:8]
wire [63:0] _io_actv_wactive_T_17 = io_actv_wactive_vd_1 | io_actv_wactive_vdm_1; // @[VDecodeInstruction.scala 146:8]
wire [63:0] _io_actv_wactive_T_18 = _io_actv_wactive_T_16 ? _io_actv_wactive_T_17 : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_wactive_T_19 = _io_actv_wactive_T_10 | _io_actv_wactive_T_18; // @[VDecodeInstruction.scala 687:80]
+ wire [63:0] _io_actv_wactive_T_19 = _io_actv_wactive_T_10 | _io_actv_wactive_T_18; // @[VDecodeInstruction.scala 686:80]
wire [63:0] _io_actv_wactive_T_20 = vdwconv ? wactivedw : 64'h0; // @[Library.scala 18:8]
- wire [63:0] _io_actv_wactive_T_21 = _io_actv_wactive_T_19 | _io_actv_wactive_T_20; // @[VDecodeInstruction.scala 689:80]
+ wire [63:0] _io_actv_wactive_T_21 = _io_actv_wactive_T_19 | _io_actv_wactive_T_20; // @[VDecodeInstruction.scala 688:80]
wire [63:0] wactiveconv = _wactiveconv_T_2[63:0]; // @[VDecodeInstruction.scala 560:26 574:18]
wire [63:0] _io_actv_wactive_T_22 = vcget ? wactiveconv : 64'h0; // @[Library.scala 18:8]
assign io_out_op = _op_T_206 | _op_T_207; // @[VDecodeInstruction.scala 535:38]
@@ -37723,8 +37536,8 @@
assign io_cmdq_ldst = vldst & ~uncached; // @[VDecodeInstruction.scala 661:25]
assign io_cmdq_ld = vld & uncached; // @[VDecodeInstruction.scala 662:21]
assign io_cmdq_st = (vst | vstq) & uncached; // @[VDecodeInstruction.scala 663:31]
- assign io_actv_ractive = _io_actv_ractive_T_46 | _io_actv_ractive_T_47; // @[VDecodeInstruction.scala 682:80]
- assign io_actv_wactive = _io_actv_wactive_T_21 | _io_actv_wactive_T_22; // @[VDecodeInstruction.scala 690:80]
+ assign io_actv_ractive = _io_actv_ractive_T_46 | _io_actv_ractive_T_47; // @[VDecodeInstruction.scala 681:80]
+ assign io_actv_wactive = _io_actv_wactive_T_21 | _io_actv_wactive_T_22; // @[VDecodeInstruction.scala 689:80]
assign io_undef = ~undef_value_6_0; // @[VDecodeInstruction.scala 416:15]
always @(posedge clock) begin
`ifndef SYNTHESIS
@@ -39817,7 +39630,7 @@
wire [1:0] _ordered_T_5 = ~_ordered_T[1:0]; // @[VDecode.scala 354:20]
wire [2:0] _ordered_T_8 = ~_ordered_T[2:0]; // @[VDecode.scala 354:20]
wire [3:0] _ordered_T_11 = ~_ordered_T; // @[VDecode.scala 354:20]
- reg nempty; // @[VDecode.scala 370:23]
+ reg nempty; // @[VDecode.scala 368:23]
Fifo4x4 f ( // @[Fifo4x4.scala 8:11]
.clock(f_clock),
.reset(f_reset),
@@ -40024,158 +39837,158 @@
);
assign io_in_ready = f_io_in_ready; // @[VDecode.scala 113:11]
assign io_out_0_valid = ~(~_ordered_T[0]); // @[VDecode.scala 354:43]
- assign io_out_0_bits_op = data_0_op; // @[VDecode.scala 363:20]
- assign io_out_0_bits_f2 = data_0_f2; // @[VDecode.scala 363:20]
- assign io_out_0_bits_sz = data_0_sz; // @[VDecode.scala 363:20]
- assign io_out_0_bits_m = data_0_m; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vd_valid = data_0_vd_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vd_addr = data_0_vd_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_ve_addr = data_0_ve_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vf_addr = data_0_vf_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vg_addr = data_0_vg_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vs_valid = data_0_vs_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vs_addr = data_0_vs_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vs_tag = data_0_vs_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vt_valid = data_0_vt_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vt_addr = data_0_vt_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vt_tag = data_0_vt_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vu_valid = data_0_vu_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vu_addr = data_0_vu_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vu_tag = data_0_vu_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vx_valid = data_0_vx_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vx_addr = data_0_vx_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vx_tag = data_0_vx_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vy_valid = data_0_vy_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vy_addr = data_0_vy_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vy_tag = data_0_vy_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vz_valid = data_0_vz_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vz_addr = data_0_vz_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_vz_tag = data_0_vz_tag; // @[VDecode.scala 363:20]
- assign io_out_0_bits_sv_valid = data_0_sv_valid; // @[VDecode.scala 363:20]
- assign io_out_0_bits_sv_addr = data_0_sv_addr; // @[VDecode.scala 363:20]
- assign io_out_0_bits_sv_data = data_0_sv_data; // @[VDecode.scala 363:20]
- assign io_out_0_bits_cmdsync = data_0_cmdsync; // @[VDecode.scala 363:20]
+ assign io_out_0_bits_op = data_0_op; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_f2 = data_0_f2; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_sz = data_0_sz; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_m = data_0_m; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vd_valid = data_0_vd_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vd_addr = data_0_vd_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_ve_addr = data_0_ve_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vf_addr = data_0_vf_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vg_addr = data_0_vg_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vs_valid = data_0_vs_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vs_addr = data_0_vs_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vs_tag = data_0_vs_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vt_valid = data_0_vt_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vt_addr = data_0_vt_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vt_tag = data_0_vt_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vu_valid = data_0_vu_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vu_addr = data_0_vu_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vu_tag = data_0_vu_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vx_valid = data_0_vx_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vx_addr = data_0_vx_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vx_tag = data_0_vx_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vy_valid = data_0_vy_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vy_addr = data_0_vy_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vy_tag = data_0_vy_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vz_valid = data_0_vz_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vz_addr = data_0_vz_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_vz_tag = data_0_vz_tag; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_sv_valid = data_0_sv_valid; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_sv_addr = data_0_sv_addr; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_sv_data = data_0_sv_data; // @[VDecode.scala 361:20]
+ assign io_out_0_bits_cmdsync = data_0_cmdsync; // @[VDecode.scala 361:20]
assign io_out_1_valid = _ordered_T_5 == 2'h0; // @[VDecode.scala 354:43]
- assign io_out_1_bits_op = data_1_op; // @[VDecode.scala 363:20]
- assign io_out_1_bits_f2 = data_1_f2; // @[VDecode.scala 363:20]
- assign io_out_1_bits_sz = data_1_sz; // @[VDecode.scala 363:20]
- assign io_out_1_bits_m = data_1_m; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vd_valid = data_1_vd_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vd_addr = data_1_vd_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_ve_addr = data_1_ve_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vf_addr = data_1_vf_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vg_addr = data_1_vg_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vs_valid = data_1_vs_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vs_addr = data_1_vs_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vs_tag = data_1_vs_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vt_valid = data_1_vt_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vt_addr = data_1_vt_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vt_tag = data_1_vt_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vu_valid = data_1_vu_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vu_addr = data_1_vu_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vu_tag = data_1_vu_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vx_valid = data_1_vx_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vx_addr = data_1_vx_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vx_tag = data_1_vx_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vy_valid = data_1_vy_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vy_addr = data_1_vy_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vy_tag = data_1_vy_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vz_valid = data_1_vz_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vz_addr = data_1_vz_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_vz_tag = data_1_vz_tag; // @[VDecode.scala 363:20]
- assign io_out_1_bits_sv_valid = data_1_sv_valid; // @[VDecode.scala 363:20]
- assign io_out_1_bits_sv_addr = data_1_sv_addr; // @[VDecode.scala 363:20]
- assign io_out_1_bits_sv_data = data_1_sv_data; // @[VDecode.scala 363:20]
- assign io_out_1_bits_cmdsync = data_1_cmdsync; // @[VDecode.scala 363:20]
+ assign io_out_1_bits_op = data_1_op; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_f2 = data_1_f2; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_sz = data_1_sz; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_m = data_1_m; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vd_valid = data_1_vd_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vd_addr = data_1_vd_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_ve_addr = data_1_ve_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vf_addr = data_1_vf_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vg_addr = data_1_vg_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vs_valid = data_1_vs_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vs_addr = data_1_vs_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vs_tag = data_1_vs_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vt_valid = data_1_vt_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vt_addr = data_1_vt_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vt_tag = data_1_vt_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vu_valid = data_1_vu_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vu_addr = data_1_vu_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vu_tag = data_1_vu_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vx_valid = data_1_vx_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vx_addr = data_1_vx_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vx_tag = data_1_vx_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vy_valid = data_1_vy_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vy_addr = data_1_vy_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vy_tag = data_1_vy_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vz_valid = data_1_vz_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vz_addr = data_1_vz_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_vz_tag = data_1_vz_tag; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_sv_valid = data_1_sv_valid; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_sv_addr = data_1_sv_addr; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_sv_data = data_1_sv_data; // @[VDecode.scala 361:20]
+ assign io_out_1_bits_cmdsync = data_1_cmdsync; // @[VDecode.scala 361:20]
assign io_out_2_valid = _ordered_T_8 == 3'h0; // @[VDecode.scala 354:43]
- assign io_out_2_bits_op = data_2_op; // @[VDecode.scala 363:20]
- assign io_out_2_bits_f2 = data_2_f2; // @[VDecode.scala 363:20]
- assign io_out_2_bits_sz = data_2_sz; // @[VDecode.scala 363:20]
- assign io_out_2_bits_m = data_2_m; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vd_valid = data_2_vd_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vd_addr = data_2_vd_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_ve_addr = data_2_ve_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vf_addr = data_2_vf_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vg_addr = data_2_vg_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vs_valid = data_2_vs_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vs_addr = data_2_vs_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vs_tag = data_2_vs_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vt_valid = data_2_vt_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vt_addr = data_2_vt_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vt_tag = data_2_vt_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vu_valid = data_2_vu_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vu_addr = data_2_vu_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vu_tag = data_2_vu_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vx_valid = data_2_vx_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vx_addr = data_2_vx_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vx_tag = data_2_vx_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vy_valid = data_2_vy_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vy_addr = data_2_vy_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vy_tag = data_2_vy_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vz_valid = data_2_vz_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vz_addr = data_2_vz_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_vz_tag = data_2_vz_tag; // @[VDecode.scala 363:20]
- assign io_out_2_bits_sv_valid = data_2_sv_valid; // @[VDecode.scala 363:20]
- assign io_out_2_bits_sv_addr = data_2_sv_addr; // @[VDecode.scala 363:20]
- assign io_out_2_bits_sv_data = data_2_sv_data; // @[VDecode.scala 363:20]
- assign io_out_2_bits_cmdsync = data_2_cmdsync; // @[VDecode.scala 363:20]
+ assign io_out_2_bits_op = data_2_op; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_f2 = data_2_f2; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_sz = data_2_sz; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_m = data_2_m; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vd_valid = data_2_vd_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vd_addr = data_2_vd_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_ve_addr = data_2_ve_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vf_addr = data_2_vf_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vg_addr = data_2_vg_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vs_valid = data_2_vs_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vs_addr = data_2_vs_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vs_tag = data_2_vs_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vt_valid = data_2_vt_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vt_addr = data_2_vt_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vt_tag = data_2_vt_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vu_valid = data_2_vu_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vu_addr = data_2_vu_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vu_tag = data_2_vu_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vx_valid = data_2_vx_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vx_addr = data_2_vx_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vx_tag = data_2_vx_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vy_valid = data_2_vy_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vy_addr = data_2_vy_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vy_tag = data_2_vy_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vz_valid = data_2_vz_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vz_addr = data_2_vz_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_vz_tag = data_2_vz_tag; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_sv_valid = data_2_sv_valid; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_sv_addr = data_2_sv_addr; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_sv_data = data_2_sv_data; // @[VDecode.scala 361:20]
+ assign io_out_2_bits_cmdsync = data_2_cmdsync; // @[VDecode.scala 361:20]
assign io_out_3_valid = _ordered_T_11 == 4'h0; // @[VDecode.scala 354:43]
- assign io_out_3_bits_op = data_3_op; // @[VDecode.scala 363:20]
- assign io_out_3_bits_f2 = data_3_f2; // @[VDecode.scala 363:20]
- assign io_out_3_bits_sz = data_3_sz; // @[VDecode.scala 363:20]
- assign io_out_3_bits_m = data_3_m; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vd_valid = data_3_vd_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vd_addr = data_3_vd_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_ve_addr = data_3_ve_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vf_addr = data_3_vf_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vg_addr = data_3_vg_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vs_valid = data_3_vs_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vs_addr = data_3_vs_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vs_tag = data_3_vs_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vt_valid = data_3_vt_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vt_addr = data_3_vt_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vt_tag = data_3_vt_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vu_valid = data_3_vu_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vu_addr = data_3_vu_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vu_tag = data_3_vu_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vx_valid = data_3_vx_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vx_addr = data_3_vx_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vx_tag = data_3_vx_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vy_valid = data_3_vy_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vy_addr = data_3_vy_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vy_tag = data_3_vy_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vz_valid = data_3_vz_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vz_addr = data_3_vz_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_vz_tag = data_3_vz_tag; // @[VDecode.scala 363:20]
- assign io_out_3_bits_sv_valid = data_3_sv_valid; // @[VDecode.scala 363:20]
- assign io_out_3_bits_sv_addr = data_3_sv_addr; // @[VDecode.scala 363:20]
- assign io_out_3_bits_sv_data = data_3_sv_data; // @[VDecode.scala 363:20]
- assign io_out_3_bits_cmdsync = data_3_cmdsync; // @[VDecode.scala 363:20]
- assign io_cmdq_0_alu = cmdq_0_alu; // @[VDecode.scala 364:16]
- assign io_cmdq_0_conv = cmdq_0_conv; // @[VDecode.scala 364:16]
- assign io_cmdq_0_ldst = cmdq_0_ldst; // @[VDecode.scala 364:16]
- assign io_cmdq_0_ld = cmdq_0_ld; // @[VDecode.scala 364:16]
- assign io_cmdq_0_st = cmdq_0_st; // @[VDecode.scala 364:16]
- assign io_cmdq_1_alu = cmdq_1_alu; // @[VDecode.scala 364:16]
- assign io_cmdq_1_conv = cmdq_1_conv; // @[VDecode.scala 364:16]
- assign io_cmdq_1_ldst = cmdq_1_ldst; // @[VDecode.scala 364:16]
- assign io_cmdq_1_ld = cmdq_1_ld; // @[VDecode.scala 364:16]
- assign io_cmdq_1_st = cmdq_1_st; // @[VDecode.scala 364:16]
- assign io_cmdq_2_alu = cmdq_2_alu; // @[VDecode.scala 364:16]
- assign io_cmdq_2_conv = cmdq_2_conv; // @[VDecode.scala 364:16]
- assign io_cmdq_2_ldst = cmdq_2_ldst; // @[VDecode.scala 364:16]
- assign io_cmdq_2_ld = cmdq_2_ld; // @[VDecode.scala 364:16]
- assign io_cmdq_2_st = cmdq_2_st; // @[VDecode.scala 364:16]
- assign io_cmdq_3_alu = cmdq_3_alu; // @[VDecode.scala 364:16]
- assign io_cmdq_3_conv = cmdq_3_conv; // @[VDecode.scala 364:16]
- assign io_cmdq_3_ldst = cmdq_3_ldst; // @[VDecode.scala 364:16]
- assign io_cmdq_3_ld = cmdq_3_ld; // @[VDecode.scala 364:16]
- assign io_cmdq_3_st = cmdq_3_st; // @[VDecode.scala 364:16]
+ assign io_out_3_bits_op = data_3_op; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_f2 = data_3_f2; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_sz = data_3_sz; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_m = data_3_m; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vd_valid = data_3_vd_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vd_addr = data_3_vd_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_ve_addr = data_3_ve_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vf_addr = data_3_vf_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vg_addr = data_3_vg_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vs_valid = data_3_vs_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vs_addr = data_3_vs_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vs_tag = data_3_vs_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vt_valid = data_3_vt_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vt_addr = data_3_vt_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vt_tag = data_3_vt_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vu_valid = data_3_vu_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vu_addr = data_3_vu_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vu_tag = data_3_vu_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vx_valid = data_3_vx_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vx_addr = data_3_vx_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vx_tag = data_3_vx_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vy_valid = data_3_vy_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vy_addr = data_3_vy_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vy_tag = data_3_vy_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vz_valid = data_3_vz_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vz_addr = data_3_vz_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_vz_tag = data_3_vz_tag; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_sv_valid = data_3_sv_valid; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_sv_addr = data_3_sv_addr; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_sv_data = data_3_sv_data; // @[VDecode.scala 361:20]
+ assign io_out_3_bits_cmdsync = data_3_cmdsync; // @[VDecode.scala 361:20]
+ assign io_cmdq_0_alu = cmdq_0_alu; // @[VDecode.scala 362:16]
+ assign io_cmdq_0_conv = cmdq_0_conv; // @[VDecode.scala 362:16]
+ assign io_cmdq_0_ldst = cmdq_0_ldst; // @[VDecode.scala 362:16]
+ assign io_cmdq_0_ld = cmdq_0_ld; // @[VDecode.scala 362:16]
+ assign io_cmdq_0_st = cmdq_0_st; // @[VDecode.scala 362:16]
+ assign io_cmdq_1_alu = cmdq_1_alu; // @[VDecode.scala 362:16]
+ assign io_cmdq_1_conv = cmdq_1_conv; // @[VDecode.scala 362:16]
+ assign io_cmdq_1_ldst = cmdq_1_ldst; // @[VDecode.scala 362:16]
+ assign io_cmdq_1_ld = cmdq_1_ld; // @[VDecode.scala 362:16]
+ assign io_cmdq_1_st = cmdq_1_st; // @[VDecode.scala 362:16]
+ assign io_cmdq_2_alu = cmdq_2_alu; // @[VDecode.scala 362:16]
+ assign io_cmdq_2_conv = cmdq_2_conv; // @[VDecode.scala 362:16]
+ assign io_cmdq_2_ldst = cmdq_2_ldst; // @[VDecode.scala 362:16]
+ assign io_cmdq_2_ld = cmdq_2_ld; // @[VDecode.scala 362:16]
+ assign io_cmdq_2_st = cmdq_2_st; // @[VDecode.scala 362:16]
+ assign io_cmdq_3_alu = cmdq_3_alu; // @[VDecode.scala 362:16]
+ assign io_cmdq_3_conv = cmdq_3_conv; // @[VDecode.scala 362:16]
+ assign io_cmdq_3_ldst = cmdq_3_ldst; // @[VDecode.scala 362:16]
+ assign io_cmdq_3_ld = cmdq_3_ld; // @[VDecode.scala 362:16]
+ assign io_cmdq_3_st = cmdq_3_st; // @[VDecode.scala 362:16]
assign io_stall = _io_stall_T_1 > 5'h10; // @[VDecode.scala 142:37]
assign io_vrfsb_set_valid = output_[0] | output_[1] | output_[2] | output_[3]; // @[VDecode.scala 330:61]
assign io_vrfsb_set_bits = _io_vrfsb_set_bits_T_7 | _io_vrfsb_set_bits_T_9; // @[VDecode.scala 334:60]
assign io_undef = io_in_valid & (d_0_io_undef | d_1_io_undef | d_2_io_undef | d_3_io_undef); // @[VDecode.scala 109:27]
- assign io_nempty = nempty; // @[VDecode.scala 375:13]
+ assign io_nempty = nempty; // @[VDecode.scala 373:13]
assign f_clock = clock;
assign f_reset = reset;
assign f_io_in_valid = io_in_valid; // @[VDecode.scala 113:11]
@@ -42118,7 +41931,7 @@
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VDecode.scala 373:40]
+ if (reset) begin // @[VDecode.scala 371:40]
nempty <= 1'h0;
end else begin
nempty <= io_in_valid | f_io_nempty | _dataEn_T_2;
@@ -88016,41 +87829,41 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 49:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full | io_out_ready; // @[Slice.scala 49:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_widx = mem_0_widx; // @[Slice.scala 108:18]
- assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 108:18]
- assign io_out_bits_size = mem_0_size; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_widx = mem_0_widx; // @[Slice.scala 89:18]
+ assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_size = mem_0_size; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_widx <= io_in_bits_widx; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_widx <= mem_1_widx; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_widx <= io_in_bits_widx; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_widx <= mem_1_widx; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_addr <= io_in_bits_addr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_addr <= mem_1_addr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_addr <= io_in_bits_addr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_addr <= mem_1_addr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_size <= io_in_bits_size; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_size <= mem_1_size; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_size <= io_in_bits_size; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_size <= mem_1_size; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_widx <= io_in_bits_widx; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_widx <= io_in_bits_widx; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_addr <= io_in_bits_addr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_addr <= io_in_bits_addr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_size <= io_in_bits_size; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_size <= io_in_bits_size; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -88154,12 +87967,12 @@
wire empty = ipos == opos; // @[Slice.scala 29:20]
wire ivalid = io_in_valid & io_in_ready; // @[Slice.scala 31:28]
wire ovalid = io_out_valid & io_out_ready; // @[Slice.scala 32:29]
- assign io_in_ready = empty | io_out_ready; // @[Slice.scala 93:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits = mem_0; // @[Slice.scala 108:18]
+ assign io_in_ready = empty | io_out_ready; // @[Slice.scala 74:28]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits = mem_0; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0 <= io_in_bits; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0 <= io_in_bits; // @[Slice.scala 80:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -102511,66 +102324,66 @@
reg [5:0] value_tin_vd_addr; // @[VCmdq.scala 37:18]
reg value_m; // @[VCmdq.scala 37:18]
reg [4:0] step; // @[VCmdq.scala 42:21]
- wire [4:0] addrAlign = value_tin_addr[4:0]; // @[VLd.scala 86:28]
- wire [4:0] offsAlign = value_tin_offset[4:0]; // @[VLd.scala 87:30]
- wire _T_2 = ~reset; // @[VLd.scala 88:11]
- wire _T_8 = ~valid; // @[VLd.scala 90:12]
- wire _outlast_T = ~value_m; // @[VLd.scala 95:19]
- wire last = _outlast_T | step == 5'h3; // @[VLd.scala 97:19]
- wire [5:0] tin_vd_addr = value_tin_vd_addr + 6'h1; // @[VLd.scala 101:31]
- wire [31:0] tin_addr = value_tin_addr + value_tin_offset; // @[VLd.scala 103:27]
- wire f_io_in_bits_0_bits_tin_stride = io_in_bits_0_bits_f2[1]; // @[VLd.scala 56:23]
+ wire [4:0] addrAlign = value_tin_addr[4:0]; // @[VLd.scala 87:28]
+ wire [4:0] offsAlign = value_tin_offset[4:0]; // @[VLd.scala 88:30]
+ wire _T_2 = ~reset; // @[VLd.scala 89:11]
+ wire _T_8 = ~valid; // @[VLd.scala 91:12]
+ wire _outlast_T = ~value_m; // @[VLd.scala 96:19]
+ wire last = _outlast_T | step == 5'h3; // @[VLd.scala 98:19]
+ wire [5:0] tin_vd_addr = value_tin_vd_addr + 6'h1; // @[VLd.scala 102:31]
+ wire [31:0] tin_addr = value_tin_addr + value_tin_offset; // @[VLd.scala 104:27]
+ wire f_io_in_bits_0_bits_tin_stride = io_in_bits_0_bits_f2[1]; // @[VLd.scala 57:23]
wire [1:0] _f_io_in_bits_0_bits_tin_T_3 = io_in_bits_0_bits_sz[1] + io_in_bits_0_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_47 = {{1'd0}, io_in_bits_0_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_0_bits_tin_T_5 = _GEN_47 + _f_io_in_bits_0_bits_tin_T_3; // @[Bitwise.scala 48:55]
wire [31:0] _f_io_in_bits_0_bits_tin_data_T_1 = io_in_bits_0_bits_sz[0] ? io_in_bits_0_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_0_bits_tin_data_T_3 = {io_in_bits_0_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_0_bits_tin_data_T_4 = io_in_bits_0_bits_sz[1] ? _f_io_in_bits_0_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_48 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_1}; // @[VLd.scala 63:44]
- wire [32:0] _f_io_in_bits_0_bits_tin_data_T_5 = _GEN_48 | _f_io_in_bits_0_bits_tin_data_T_4; // @[VLd.scala 63:44]
+ wire [32:0] _GEN_48 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_1}; // @[VLd.scala 64:44]
+ wire [32:0] _f_io_in_bits_0_bits_tin_data_T_5 = _GEN_48 | _f_io_in_bits_0_bits_tin_data_T_4; // @[VLd.scala 64:44]
wire [33:0] _f_io_in_bits_0_bits_tin_data_T_7 = {io_in_bits_0_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_0_bits_tin_data_T_8 = io_in_bits_0_bits_sz[2] ? _f_io_in_bits_0_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_49 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_5}; // @[VLd.scala 64:59]
- wire [33:0] f_io_in_bits_0_bits_tin_data = _GEN_49 | _f_io_in_bits_0_bits_tin_data_T_8; // @[VLd.scala 64:59]
- wire f_io_in_bits_1_bits_tin_stride = io_in_bits_1_bits_f2[1]; // @[VLd.scala 56:23]
+ wire [33:0] _GEN_49 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_5}; // @[VLd.scala 65:59]
+ wire [33:0] f_io_in_bits_0_bits_tin_data = _GEN_49 | _f_io_in_bits_0_bits_tin_data_T_8; // @[VLd.scala 65:59]
+ wire f_io_in_bits_1_bits_tin_stride = io_in_bits_1_bits_f2[1]; // @[VLd.scala 57:23]
wire [1:0] _f_io_in_bits_1_bits_tin_T_3 = io_in_bits_1_bits_sz[1] + io_in_bits_1_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_51 = {{1'd0}, io_in_bits_1_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_1_bits_tin_T_5 = _GEN_51 + _f_io_in_bits_1_bits_tin_T_3; // @[Bitwise.scala 48:55]
wire [31:0] _f_io_in_bits_1_bits_tin_data_T_1 = io_in_bits_1_bits_sz[0] ? io_in_bits_1_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_1_bits_tin_data_T_3 = {io_in_bits_1_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_1_bits_tin_data_T_4 = io_in_bits_1_bits_sz[1] ? _f_io_in_bits_1_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_52 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_1}; // @[VLd.scala 63:44]
- wire [32:0] _f_io_in_bits_1_bits_tin_data_T_5 = _GEN_52 | _f_io_in_bits_1_bits_tin_data_T_4; // @[VLd.scala 63:44]
+ wire [32:0] _GEN_52 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_1}; // @[VLd.scala 64:44]
+ wire [32:0] _f_io_in_bits_1_bits_tin_data_T_5 = _GEN_52 | _f_io_in_bits_1_bits_tin_data_T_4; // @[VLd.scala 64:44]
wire [33:0] _f_io_in_bits_1_bits_tin_data_T_7 = {io_in_bits_1_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_1_bits_tin_data_T_8 = io_in_bits_1_bits_sz[2] ? _f_io_in_bits_1_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_53 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_5}; // @[VLd.scala 64:59]
- wire [33:0] f_io_in_bits_1_bits_tin_data = _GEN_53 | _f_io_in_bits_1_bits_tin_data_T_8; // @[VLd.scala 64:59]
- wire f_io_in_bits_2_bits_tin_stride = io_in_bits_2_bits_f2[1]; // @[VLd.scala 56:23]
+ wire [33:0] _GEN_53 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_5}; // @[VLd.scala 65:59]
+ wire [33:0] f_io_in_bits_1_bits_tin_data = _GEN_53 | _f_io_in_bits_1_bits_tin_data_T_8; // @[VLd.scala 65:59]
+ wire f_io_in_bits_2_bits_tin_stride = io_in_bits_2_bits_f2[1]; // @[VLd.scala 57:23]
wire [1:0] _f_io_in_bits_2_bits_tin_T_3 = io_in_bits_2_bits_sz[1] + io_in_bits_2_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_55 = {{1'd0}, io_in_bits_2_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_2_bits_tin_T_5 = _GEN_55 + _f_io_in_bits_2_bits_tin_T_3; // @[Bitwise.scala 48:55]
wire [31:0] _f_io_in_bits_2_bits_tin_data_T_1 = io_in_bits_2_bits_sz[0] ? io_in_bits_2_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_2_bits_tin_data_T_3 = {io_in_bits_2_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_2_bits_tin_data_T_4 = io_in_bits_2_bits_sz[1] ? _f_io_in_bits_2_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_56 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_1}; // @[VLd.scala 63:44]
- wire [32:0] _f_io_in_bits_2_bits_tin_data_T_5 = _GEN_56 | _f_io_in_bits_2_bits_tin_data_T_4; // @[VLd.scala 63:44]
+ wire [32:0] _GEN_56 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_1}; // @[VLd.scala 64:44]
+ wire [32:0] _f_io_in_bits_2_bits_tin_data_T_5 = _GEN_56 | _f_io_in_bits_2_bits_tin_data_T_4; // @[VLd.scala 64:44]
wire [33:0] _f_io_in_bits_2_bits_tin_data_T_7 = {io_in_bits_2_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_2_bits_tin_data_T_8 = io_in_bits_2_bits_sz[2] ? _f_io_in_bits_2_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_57 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_5}; // @[VLd.scala 64:59]
- wire [33:0] f_io_in_bits_2_bits_tin_data = _GEN_57 | _f_io_in_bits_2_bits_tin_data_T_8; // @[VLd.scala 64:59]
- wire f_io_in_bits_3_bits_tin_stride = io_in_bits_3_bits_f2[1]; // @[VLd.scala 56:23]
+ wire [33:0] _GEN_57 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_5}; // @[VLd.scala 65:59]
+ wire [33:0] f_io_in_bits_2_bits_tin_data = _GEN_57 | _f_io_in_bits_2_bits_tin_data_T_8; // @[VLd.scala 65:59]
+ wire f_io_in_bits_3_bits_tin_stride = io_in_bits_3_bits_f2[1]; // @[VLd.scala 57:23]
wire [1:0] _f_io_in_bits_3_bits_tin_T_3 = io_in_bits_3_bits_sz[1] + io_in_bits_3_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_59 = {{1'd0}, io_in_bits_3_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_3_bits_tin_T_5 = _GEN_59 + _f_io_in_bits_3_bits_tin_T_3; // @[Bitwise.scala 48:55]
wire [31:0] _f_io_in_bits_3_bits_tin_data_T_1 = io_in_bits_3_bits_sz[0] ? io_in_bits_3_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_3_bits_tin_data_T_3 = {io_in_bits_3_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_3_bits_tin_data_T_4 = io_in_bits_3_bits_sz[1] ? _f_io_in_bits_3_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_60 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_1}; // @[VLd.scala 63:44]
- wire [32:0] _f_io_in_bits_3_bits_tin_data_T_5 = _GEN_60 | _f_io_in_bits_3_bits_tin_data_T_4; // @[VLd.scala 63:44]
+ wire [32:0] _GEN_60 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_1}; // @[VLd.scala 64:44]
+ wire [32:0] _f_io_in_bits_3_bits_tin_data_T_5 = _GEN_60 | _f_io_in_bits_3_bits_tin_data_T_4; // @[VLd.scala 64:44]
wire [33:0] _f_io_in_bits_3_bits_tin_data_T_7 = {io_in_bits_3_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_3_bits_tin_data_T_8 = io_in_bits_3_bits_sz[2] ? _f_io_in_bits_3_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_61 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_5}; // @[VLd.scala 64:59]
- wire [33:0] f_io_in_bits_3_bits_tin_data = _GEN_61 | _f_io_in_bits_3_bits_tin_data_T_8; // @[VLd.scala 64:59]
+ wire [33:0] _GEN_61 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_5}; // @[VLd.scala 65:59]
+ wire [33:0] f_io_in_bits_3_bits_tin_data = _GEN_61 | _f_io_in_bits_3_bits_tin_data_T_8; // @[VLd.scala 65:59]
wire _T_16 = ~last; // @[VCmdq.scala 66:11]
wire [4:0] _step_T_1 = step + 5'h1; // @[VCmdq.scala 70:20]
wire _GEN_10 = ~last & value_m; // @[VCmdq.scala 66:18 69:15 75:15]
@@ -102622,28 +102435,28 @@
assign f_reset = reset;
assign f_io_in_valid = io_in_valid; // @[VCmdq.scala 48:17]
assign f_io_in_bits_0_valid = io_in_bits_0_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_0_bits_tin_op = io_in_bits_0_bits_op; // @[VLd.scala 55:19 72:12]
- assign f_io_in_bits_0_bits_tin_addr = io_in_bits_0_bits_sv_addr; // @[VLd.scala 55:19 75:14]
- assign f_io_in_bits_0_bits_tin_offset = f_io_in_bits_0_bits_tin_stride ? f_io_in_bits_0_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 76:22]
- assign f_io_in_bits_0_bits_tin_vd_addr = io_in_bits_0_bits_vd_addr; // @[VLd.scala 55:19 78:12]
+ assign f_io_in_bits_0_bits_tin_op = io_in_bits_0_bits_op; // @[VLd.scala 56:19 73:12]
+ assign f_io_in_bits_0_bits_tin_addr = io_in_bits_0_bits_sv_addr; // @[VLd.scala 56:19 76:14]
+ assign f_io_in_bits_0_bits_tin_offset = f_io_in_bits_0_bits_tin_stride ? f_io_in_bits_0_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 77:22]
+ assign f_io_in_bits_0_bits_tin_vd_addr = io_in_bits_0_bits_vd_addr; // @[VLd.scala 56:19 79:12]
assign f_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_1_valid = io_in_bits_1_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_1_bits_tin_op = io_in_bits_1_bits_op; // @[VLd.scala 55:19 72:12]
- assign f_io_in_bits_1_bits_tin_addr = io_in_bits_1_bits_sv_addr; // @[VLd.scala 55:19 75:14]
- assign f_io_in_bits_1_bits_tin_offset = f_io_in_bits_1_bits_tin_stride ? f_io_in_bits_1_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 76:22]
- assign f_io_in_bits_1_bits_tin_vd_addr = io_in_bits_1_bits_vd_addr; // @[VLd.scala 55:19 78:12]
+ assign f_io_in_bits_1_bits_tin_op = io_in_bits_1_bits_op; // @[VLd.scala 56:19 73:12]
+ assign f_io_in_bits_1_bits_tin_addr = io_in_bits_1_bits_sv_addr; // @[VLd.scala 56:19 76:14]
+ assign f_io_in_bits_1_bits_tin_offset = f_io_in_bits_1_bits_tin_stride ? f_io_in_bits_1_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 77:22]
+ assign f_io_in_bits_1_bits_tin_vd_addr = io_in_bits_1_bits_vd_addr; // @[VLd.scala 56:19 79:12]
assign f_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_2_valid = io_in_bits_2_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_2_bits_tin_op = io_in_bits_2_bits_op; // @[VLd.scala 55:19 72:12]
- assign f_io_in_bits_2_bits_tin_addr = io_in_bits_2_bits_sv_addr; // @[VLd.scala 55:19 75:14]
- assign f_io_in_bits_2_bits_tin_offset = f_io_in_bits_2_bits_tin_stride ? f_io_in_bits_2_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 76:22]
- assign f_io_in_bits_2_bits_tin_vd_addr = io_in_bits_2_bits_vd_addr; // @[VLd.scala 55:19 78:12]
+ assign f_io_in_bits_2_bits_tin_op = io_in_bits_2_bits_op; // @[VLd.scala 56:19 73:12]
+ assign f_io_in_bits_2_bits_tin_addr = io_in_bits_2_bits_sv_addr; // @[VLd.scala 56:19 76:14]
+ assign f_io_in_bits_2_bits_tin_offset = f_io_in_bits_2_bits_tin_stride ? f_io_in_bits_2_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 77:22]
+ assign f_io_in_bits_2_bits_tin_vd_addr = io_in_bits_2_bits_vd_addr; // @[VLd.scala 56:19 79:12]
assign f_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_3_valid = io_in_bits_3_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_3_bits_tin_op = io_in_bits_3_bits_op; // @[VLd.scala 55:19 72:12]
- assign f_io_in_bits_3_bits_tin_addr = io_in_bits_3_bits_sv_addr; // @[VLd.scala 55:19 75:14]
- assign f_io_in_bits_3_bits_tin_offset = f_io_in_bits_3_bits_tin_stride ? f_io_in_bits_3_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 76:22]
- assign f_io_in_bits_3_bits_tin_vd_addr = io_in_bits_3_bits_vd_addr; // @[VLd.scala 55:19 78:12]
+ assign f_io_in_bits_3_bits_tin_op = io_in_bits_3_bits_op; // @[VLd.scala 56:19 73:12]
+ assign f_io_in_bits_3_bits_tin_addr = io_in_bits_3_bits_sv_addr; // @[VLd.scala 56:19 76:14]
+ assign f_io_in_bits_3_bits_tin_offset = f_io_in_bits_3_bits_tin_stride ? f_io_in_bits_3_bits_tin_data[31:0] : 32'h20; // @[VLd.scala 77:22]
+ assign f_io_in_bits_3_bits_tin_vd_addr = io_in_bits_3_bits_vd_addr; // @[VLd.scala 56:19 79:12]
assign f_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VCmdq.scala 54:28]
assign f_io_out_ready = _T_8 | io_out_ready & last; // @[VCmdq.scala 57:28]
always @(posedge clock) begin
@@ -102699,28 +102512,6 @@
if (`STOP_COND) begin
`endif
if (~reset & ~(addrAlign == 5'h0)) begin
- $fatal; // @[VLd.scala 88:11]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (~reset & ~(addrAlign == 5'h0)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:88 assert(addrAlign === 0.U)\n"); // @[VLd.scala 88:11]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_2 & ~(offsAlign == 5'h0)) begin
$fatal; // @[VLd.scala 89:11]
end
`ifdef STOP_COND
@@ -102731,8 +102522,8 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_2 & ~(offsAlign == 5'h0)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:89 assert(offsAlign === 0.U)\n"); // @[VLd.scala 89:11]
+ if (~reset & ~(addrAlign == 5'h0)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:89 assert(addrAlign === 0.U)\n"); // @[VLd.scala 89:11]
end
`ifdef PRINTF_COND
end
@@ -102742,7 +102533,7 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_2 & ~(~valid | value_tin_op == 7'h2)) begin
+ if (_T_2 & ~(offsAlign == 5'h0)) begin
$fatal; // @[VLd.scala 90:11]
end
`ifdef STOP_COND
@@ -102753,8 +102544,30 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
+ if (_T_2 & ~(offsAlign == 5'h0)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:90 assert(offsAlign === 0.U)\n"); // @[VLd.scala 90:11]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
if (_T_2 & ~(~valid | value_tin_op == 7'h2)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:90 assert(!valid || in.op === e.vld.U)\n"); // @[VLd.scala 90:11]
+ $fatal; // @[VLd.scala 91:11]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
+ if (_T_2 & ~(~valid | value_tin_op == 7'h2)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:91 assert(!valid || in.op === e.vld.U)\n"); // @[VLd.scala 91:11]
end
`ifdef PRINTF_COND
end
@@ -102765,7 +102578,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_0_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VLd.scala 58:11]
+ $fatal; // @[VLd.scala 59:11]
end
`ifdef STOP_COND
end
@@ -102776,7 +102589,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_0_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:58 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 58:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:59 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 59:11]
end
`ifdef PRINTF_COND
end
@@ -102788,7 +102601,7 @@
`endif
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h2 & (~io_in_bits_0_bits_vd_valid | io_in_bits_0_bits_vs_valid)))
) begin
- $fatal; // @[VLd.scala 59:11]
+ $fatal; // @[VLd.scala 60:11]
end
`ifdef STOP_COND
end
@@ -102801,7 +102614,7 @@
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h2 & (~io_in_bits_0_bits_vd_valid | io_in_bits_0_bits_vs_valid)))
) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:59 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 59:11]
+ "Assertion failed\n at VLd.scala:60 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 60:11]
end
`ifdef PRINTF_COND
end
@@ -102812,7 +102625,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_1_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VLd.scala 58:11]
+ $fatal; // @[VLd.scala 59:11]
end
`ifdef STOP_COND
end
@@ -102823,7 +102636,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_1_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:58 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 58:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:59 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 59:11]
end
`ifdef PRINTF_COND
end
@@ -102835,7 +102648,7 @@
`endif
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h2 & (~io_in_bits_1_bits_vd_valid | io_in_bits_1_bits_vs_valid)))
) begin
- $fatal; // @[VLd.scala 59:11]
+ $fatal; // @[VLd.scala 60:11]
end
`ifdef STOP_COND
end
@@ -102848,7 +102661,7 @@
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h2 & (~io_in_bits_1_bits_vd_valid | io_in_bits_1_bits_vs_valid)))
) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:59 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 59:11]
+ "Assertion failed\n at VLd.scala:60 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 60:11]
end
`ifdef PRINTF_COND
end
@@ -102859,7 +102672,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_2_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VLd.scala 58:11]
+ $fatal; // @[VLd.scala 59:11]
end
`ifdef STOP_COND
end
@@ -102870,7 +102683,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_2_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:58 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 58:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:59 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 59:11]
end
`ifdef PRINTF_COND
end
@@ -102882,7 +102695,7 @@
`endif
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h2 & (~io_in_bits_2_bits_vd_valid | io_in_bits_2_bits_vs_valid)))
) begin
- $fatal; // @[VLd.scala 59:11]
+ $fatal; // @[VLd.scala 60:11]
end
`ifdef STOP_COND
end
@@ -102895,7 +102708,7 @@
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h2 & (~io_in_bits_2_bits_vd_valid | io_in_bits_2_bits_vs_valid)))
) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:59 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 59:11]
+ "Assertion failed\n at VLd.scala:60 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 60:11]
end
`ifdef PRINTF_COND
end
@@ -102906,7 +102719,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_3_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VLd.scala 58:11]
+ $fatal; // @[VLd.scala 59:11]
end
`ifdef STOP_COND
end
@@ -102917,7 +102730,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_3_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:58 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 58:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:59 assert(PopCount(in.sz) <= 1.U)\n"); // @[VLd.scala 59:11]
end
`ifdef PRINTF_COND
end
@@ -102929,7 +102742,7 @@
`endif
if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h2 & (~io_in_bits_3_bits_vd_valid | io_in_bits_3_bits_vs_valid)))
) begin
- $fatal; // @[VLd.scala 59:11]
+ $fatal; // @[VLd.scala 60:11]
end
`ifdef STOP_COND
end
@@ -102942,7 +102755,7 @@
if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h2 & (~io_in_bits_3_bits_vd_valid | io_in_bits_3_bits_vs_valid)))
) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:59 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 59:11]
+ "Assertion failed\n at VLd.scala:60 assert(!(in.op === e.vld.U && (!in.vd.valid || in.vs.valid)))\n"); // @[VLd.scala 60:11]
end
`ifdef PRINTF_COND
end
@@ -103144,16 +102957,16 @@
wire [31:0] q_io_out_bits_addr; // @[VCmdq.scala 14:11]
wire [5:0] q_io_out_bits_vd_addr; // @[VCmdq.scala 14:11]
wire q_io_nempty; // @[VCmdq.scala 14:11]
- wire _T_5 = ~reset; // @[VLd.scala 125:9]
- reg nempty; // @[VLd.scala 140:23]
- reg [6:0] count; // @[VLd.scala 141:22]
- wire inc = io_axi_addr_valid & io_axi_addr_ready; // @[VLd.scala 142:31]
- wire dec = io_axi_data_valid & io_axi_data_ready; // @[VLd.scala 143:31]
- wire _T_13 = inc | dec; // @[VLd.scala 145:13]
- wire [6:0] _GEN_2 = {{6'd0}, inc}; // @[VLd.scala 146:26]
- wire [6:0] _nxtcount_T_1 = count + _GEN_2; // @[VLd.scala 146:26]
- wire [6:0] _GEN_3 = {{6'd0}, dec}; // @[VLd.scala 146:32]
- wire [6:0] nxtcount = _nxtcount_T_1 - _GEN_3; // @[VLd.scala 146:32]
+ wire _T_5 = ~reset; // @[VLd.scala 126:9]
+ reg nempty; // @[VLd.scala 141:23]
+ reg [6:0] count; // @[VLd.scala 142:22]
+ wire inc = io_axi_addr_valid & io_axi_addr_ready; // @[VLd.scala 143:31]
+ wire dec = io_axi_data_valid & io_axi_data_ready; // @[VLd.scala 144:31]
+ wire _T_13 = inc | dec; // @[VLd.scala 146:13]
+ wire [6:0] _GEN_2 = {{6'd0}, inc}; // @[VLd.scala 147:26]
+ wire [6:0] _nxtcount_T_1 = count + _GEN_2; // @[VLd.scala 147:26]
+ wire [6:0] _GEN_3 = {{6'd0}, dec}; // @[VLd.scala 147:32]
+ wire [6:0] nxtcount = _nxtcount_T_1 - _GEN_3; // @[VLd.scala 147:32]
VCmdq_4 q ( // @[VCmdq.scala 14:11]
.clock(q_clock),
.reset(q_reset),
@@ -103205,88 +103018,65 @@
.io_out_bits_vd_addr(q_io_out_bits_vd_addr),
.io_nempty(q_io_nempty)
);
- assign io_in_ready = q_io_in_ready; // @[VLd.scala 118:11]
- assign io_write_valid = io_axi_data_valid; // @[VLd.scala 132:18]
- assign io_write_addr = io_axi_data_bits_id; // @[VLd.scala 134:17]
- assign io_write_data = io_axi_data_bits_data; // @[VLd.scala 133:17]
- assign io_axi_addr_valid = q_io_out_valid; // @[VLd.scala 122:21]
+ assign io_in_ready = q_io_in_ready; // @[VLd.scala 119:11]
+ assign io_write_valid = io_axi_data_valid; // @[VLd.scala 133:18]
+ assign io_write_addr = io_axi_data_bits_id; // @[VLd.scala 135:17]
+ assign io_write_data = io_axi_data_bits_data; // @[VLd.scala 134:17]
+ assign io_axi_addr_valid = q_io_out_valid; // @[VLd.scala 123:21]
assign io_axi_addr_bits_addr = {1'h0,q_io_out_bits_addr[30:0]}; // @[Cat.scala 31:58]
- assign io_axi_addr_bits_id = q_io_out_bits_vd_addr; // @[VLd.scala 124:23]
- assign io_axi_data_ready = 1'h1; // @[VLd.scala 136:21]
- assign io_nempty = q_io_nempty | nempty; // @[VLd.scala 152:28]
+ assign io_axi_addr_bits_id = q_io_out_bits_vd_addr; // @[VLd.scala 125:23]
+ assign io_axi_data_ready = 1'h1; // @[VLd.scala 137:21]
+ assign io_nempty = q_io_nempty | nempty; // @[VLd.scala 153:28]
assign q_clock = clock;
assign q_reset = reset;
- assign q_io_in_valid = io_in_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_valid = io_in_bits_0_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_op = io_in_bits_0_bits_op; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_f2 = io_in_bits_0_bits_f2; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_sz = io_in_bits_0_bits_sz; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_vd_valid = io_in_bits_0_bits_vd_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_vd_addr = io_in_bits_0_bits_vd_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_vs_valid = io_in_bits_0_bits_vs_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_sv_addr = io_in_bits_0_bits_sv_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_0_bits_sv_data = io_in_bits_0_bits_sv_data; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_valid = io_in_bits_1_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_op = io_in_bits_1_bits_op; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_f2 = io_in_bits_1_bits_f2; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_sz = io_in_bits_1_bits_sz; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_vd_valid = io_in_bits_1_bits_vd_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_vd_addr = io_in_bits_1_bits_vd_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_vs_valid = io_in_bits_1_bits_vs_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_sv_addr = io_in_bits_1_bits_sv_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_1_bits_sv_data = io_in_bits_1_bits_sv_data; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_valid = io_in_bits_2_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_op = io_in_bits_2_bits_op; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_f2 = io_in_bits_2_bits_f2; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_sz = io_in_bits_2_bits_sz; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_vd_valid = io_in_bits_2_bits_vd_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_vd_addr = io_in_bits_2_bits_vd_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_vs_valid = io_in_bits_2_bits_vs_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_sv_addr = io_in_bits_2_bits_sv_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_2_bits_sv_data = io_in_bits_2_bits_sv_data; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_valid = io_in_bits_3_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_op = io_in_bits_3_bits_op; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_f2 = io_in_bits_3_bits_f2; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_sz = io_in_bits_3_bits_sz; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_vd_valid = io_in_bits_3_bits_vd_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_vd_addr = io_in_bits_3_bits_vd_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_vs_valid = io_in_bits_3_bits_vs_valid; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_sv_addr = io_in_bits_3_bits_sv_addr; // @[VLd.scala 118:11]
- assign q_io_in_bits_3_bits_sv_data = io_in_bits_3_bits_sv_data; // @[VLd.scala 118:11]
- assign q_io_out_ready = io_axi_addr_ready; // @[VLd.scala 128:18]
+ assign q_io_in_valid = io_in_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_valid = io_in_bits_0_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_op = io_in_bits_0_bits_op; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_f2 = io_in_bits_0_bits_f2; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_sz = io_in_bits_0_bits_sz; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_vd_valid = io_in_bits_0_bits_vd_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_vd_addr = io_in_bits_0_bits_vd_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_vs_valid = io_in_bits_0_bits_vs_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_sv_addr = io_in_bits_0_bits_sv_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_0_bits_sv_data = io_in_bits_0_bits_sv_data; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_valid = io_in_bits_1_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_op = io_in_bits_1_bits_op; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_f2 = io_in_bits_1_bits_f2; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_sz = io_in_bits_1_bits_sz; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_vd_valid = io_in_bits_1_bits_vd_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_vd_addr = io_in_bits_1_bits_vd_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_vs_valid = io_in_bits_1_bits_vs_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_sv_addr = io_in_bits_1_bits_sv_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_1_bits_sv_data = io_in_bits_1_bits_sv_data; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_valid = io_in_bits_2_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_op = io_in_bits_2_bits_op; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_f2 = io_in_bits_2_bits_f2; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_sz = io_in_bits_2_bits_sz; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_vd_valid = io_in_bits_2_bits_vd_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_vd_addr = io_in_bits_2_bits_vd_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_vs_valid = io_in_bits_2_bits_vs_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_sv_addr = io_in_bits_2_bits_sv_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_2_bits_sv_data = io_in_bits_2_bits_sv_data; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_valid = io_in_bits_3_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_op = io_in_bits_3_bits_op; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_f2 = io_in_bits_3_bits_f2; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_sz = io_in_bits_3_bits_sz; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_vd_valid = io_in_bits_3_bits_vd_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_vd_addr = io_in_bits_3_bits_vd_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_vs_valid = io_in_bits_3_bits_vs_valid; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_sv_addr = io_in_bits_3_bits_sv_addr; // @[VLd.scala 119:11]
+ assign q_io_in_bits_3_bits_sv_data = io_in_bits_3_bits_sv_data; // @[VLd.scala 119:11]
+ assign q_io_out_ready = io_axi_addr_ready; // @[VLd.scala 129:18]
always @(posedge clock) begin
`ifndef SYNTHESIS
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
if (~reset & ~(~(q_io_out_valid & ~q_io_out_bits_addr[31]))) begin
- $fatal; // @[VLd.scala 125:9]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (~reset & ~(~(q_io_out_valid & ~q_io_out_bits_addr[31]))) begin
- $fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:125 assert(!(q.io.out.valid && !q.io.out.bits.addr(31)))\n"); // @[VLd.scala 125:9]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_5 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
$fatal; // @[VLd.scala 126:9]
end
`ifdef STOP_COND
@@ -103297,9 +103087,32 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
+ if (~reset & ~(~(q_io_out_valid & ~q_io_out_bits_addr[31]))) begin
+ $fwrite(32'h80000002,
+ "Assertion failed\n at VLd.scala:126 assert(!(q.io.out.valid && !q.io.out.bits.addr(31)))\n"); // @[VLd.scala 126:9]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
+ if (_T_5 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
+ $fatal; // @[VLd.scala 127:9]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
if (_T_5 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VLd.scala:126 assert(!(io.axi.addr.valid && io.axi.addr.bits.addr(31)))\n"); // @[VLd.scala 126:9]
+ "Assertion failed\n at VLd.scala:127 assert(!(io.axi.addr.valid && io.axi.addr.bits.addr(31)))\n"); // @[VLd.scala 127:9]
end
`ifdef PRINTF_COND
end
@@ -103310,7 +103123,7 @@
if (`STOP_COND) begin
`endif
if (_T_13 & _T_5 & ~(count <= 7'h40)) begin
- $fatal; // @[VLd.scala 149:11]
+ $fatal; // @[VLd.scala 150:11]
end
`ifdef STOP_COND
end
@@ -103321,7 +103134,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_13 & _T_5 & ~(count <= 7'h40)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:149 assert(count <= 64.U)\n"); // @[VLd.scala 149:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VLd.scala:150 assert(count <= 64.U)\n"); // @[VLd.scala 150:11]
end
`ifdef PRINTF_COND
end
@@ -103329,16 +103142,16 @@
`endif // SYNTHESIS
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VLd.scala 145:21]
- nempty <= 1'h0; // @[VLd.scala 148:12]
- end else if (inc | dec) begin // @[VLd.scala 140:23]
+ if (reset) begin // @[VLd.scala 146:21]
+ nempty <= 1'h0; // @[VLd.scala 149:12]
+ end else if (inc | dec) begin // @[VLd.scala 141:23]
nempty <= nxtcount != 7'h0;
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VLd.scala 145:21]
- count <= 7'h0; // @[VLd.scala 147:11]
- end else if (inc | dec) begin // @[VLd.scala 141:22]
+ if (reset) begin // @[VLd.scala 146:21]
+ count <= 7'h0; // @[VLd.scala 148:11]
+ end else if (inc | dec) begin // @[VLd.scala 142:22]
count <= nxtcount;
end
end
@@ -107837,115 +107650,115 @@
reg [1:0] value_tin_quad; // @[VCmdq.scala 37:18]
reg value_m; // @[VCmdq.scala 37:18]
reg [4:0] step; // @[VCmdq.scala 42:21]
- wire _addrAlign_T = value_tin_op == 7'h4; // @[VSt.scala 109:31]
- wire [4:0] addrAlign = value_tin_op == 7'h4 ? {{2'd0}, value_tin_addr[2:0]} : value_tin_addr[4:0]; // @[VSt.scala 109:24]
- wire [4:0] offsAlign = _addrAlign_T ? {{2'd0}, value_tin_offset[2:0]} : value_tin_offset[4:0]; // @[VSt.scala 110:24]
- wire _T_2 = ~reset; // @[VSt.scala 111:11]
- wire _T_8 = ~valid; // @[VSt.scala 113:12]
- wire [7:0] fmaxvlb = _addrAlign_T ? 8'h8 : 8'h20; // @[VSt.scala 119:22]
- wire _outlast1_T = ~value_m; // @[VSt.scala 121:20]
- wire _last1_T_1 = step == 5'h3; // @[VSt.scala 125:28]
- wire last1 = _outlast1_T | step == 5'h3; // @[VSt.scala 125:20]
- wire last2 = value_m ? step == 5'hf : _last1_T_1; // @[VSt.scala 126:20]
- wire last = _addrAlign_T ? last2 : last1; // @[VSt.scala 127:19]
- wire [5:0] _out_vs_addr_T_4 = value_tin_vs_addr + 6'h1; // @[VSt.scala 131:74]
- wire [5:0] tin_vs_addr = _addrAlign_T & step[1:0] != 2'h3 ? value_tin_vs_addr : _out_vs_addr_T_4; // @[VSt.scala 131:23]
- wire [31:0] tin_addr = value_tin_addr + value_tin_offset; // @[VSt.scala 133:27]
- wire [7:0] _out_remain_T_2 = value_tin_remain - fmaxvlb; // @[VSt.scala 134:60]
- wire [7:0] tin_remain = value_tin_remain <= fmaxvlb ? 8'h0 : _out_remain_T_2; // @[VSt.scala 134:22]
- wire [4:0] _out_quad_T_2 = step + 5'h1; // @[VSt.scala 138:46]
- wire [4:0] _out_quad_T_3 = _addrAlign_T ? _out_quad_T_2 : 5'h0; // @[VSt.scala 138:20]
- wire f_io_in_bits_0_bits_tin_stride = io_in_bits_0_bits_f2[1]; // @[VSt.scala 77:23]
- wire f_io_in_bits_0_bits_tin_length = io_in_bits_0_bits_f2[0]; // @[VSt.scala 78:23]
+ wire _addrAlign_T = value_tin_op == 7'h4; // @[VSt.scala 110:31]
+ wire [4:0] addrAlign = value_tin_op == 7'h4 ? {{2'd0}, value_tin_addr[2:0]} : value_tin_addr[4:0]; // @[VSt.scala 110:24]
+ wire [4:0] offsAlign = _addrAlign_T ? {{2'd0}, value_tin_offset[2:0]} : value_tin_offset[4:0]; // @[VSt.scala 111:24]
+ wire _T_2 = ~reset; // @[VSt.scala 112:11]
+ wire _T_8 = ~valid; // @[VSt.scala 114:12]
+ wire [7:0] fmaxvlb = _addrAlign_T ? 8'h8 : 8'h20; // @[VSt.scala 120:22]
+ wire _outlast1_T = ~value_m; // @[VSt.scala 122:20]
+ wire _last1_T_1 = step == 5'h3; // @[VSt.scala 126:28]
+ wire last1 = _outlast1_T | step == 5'h3; // @[VSt.scala 126:20]
+ wire last2 = value_m ? step == 5'hf : _last1_T_1; // @[VSt.scala 127:20]
+ wire last = _addrAlign_T ? last2 : last1; // @[VSt.scala 128:19]
+ wire [5:0] _out_vs_addr_T_4 = value_tin_vs_addr + 6'h1; // @[VSt.scala 132:74]
+ wire [5:0] tin_vs_addr = _addrAlign_T & step[1:0] != 2'h3 ? value_tin_vs_addr : _out_vs_addr_T_4; // @[VSt.scala 132:23]
+ wire [31:0] tin_addr = value_tin_addr + value_tin_offset; // @[VSt.scala 134:27]
+ wire [7:0] _out_remain_T_2 = value_tin_remain - fmaxvlb; // @[VSt.scala 135:60]
+ wire [7:0] tin_remain = value_tin_remain <= fmaxvlb ? 8'h0 : _out_remain_T_2; // @[VSt.scala 135:22]
+ wire [4:0] _out_quad_T_2 = step + 5'h1; // @[VSt.scala 139:46]
+ wire [4:0] _out_quad_T_3 = _addrAlign_T ? _out_quad_T_2 : 5'h0; // @[VSt.scala 139:20]
+ wire f_io_in_bits_0_bits_tin_stride = io_in_bits_0_bits_f2[1]; // @[VSt.scala 78:23]
+ wire f_io_in_bits_0_bits_tin_length = io_in_bits_0_bits_f2[0]; // @[VSt.scala 79:23]
wire [1:0] _f_io_in_bits_0_bits_tin_T_3 = io_in_bits_0_bits_sz[1] + io_in_bits_0_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_55 = {{1'd0}, io_in_bits_0_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_0_bits_tin_T_5 = _GEN_55 + _f_io_in_bits_0_bits_tin_T_3; // @[Bitwise.scala 48:55]
- wire _f_io_in_bits_0_bits_tin_T_12 = ~io_in_bits_0_bits_vs_valid; // @[VSt.scala 80:36]
- wire _f_io_in_bits_0_bits_tin_T_18 = io_in_bits_0_bits_op == 7'h4; // @[VSt.scala 81:20]
- wire [7:0] f_io_in_bits_0_bits_tin_limit = io_in_bits_0_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 83:20]
+ wire _f_io_in_bits_0_bits_tin_T_12 = ~io_in_bits_0_bits_vs_valid; // @[VSt.scala 81:36]
+ wire _f_io_in_bits_0_bits_tin_T_18 = io_in_bits_0_bits_op == 7'h4; // @[VSt.scala 82:20]
+ wire [7:0] f_io_in_bits_0_bits_tin_limit = io_in_bits_0_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 84:20]
wire [31:0] _f_io_in_bits_0_bits_tin_data_T_1 = io_in_bits_0_bits_sz[0] ? io_in_bits_0_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_0_bits_tin_data_T_3 = {io_in_bits_0_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_0_bits_tin_data_T_4 = io_in_bits_0_bits_sz[1] ? _f_io_in_bits_0_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_56 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_1}; // @[VSt.scala 85:44]
- wire [32:0] _f_io_in_bits_0_bits_tin_data_T_5 = _GEN_56 | _f_io_in_bits_0_bits_tin_data_T_4; // @[VSt.scala 85:44]
+ wire [32:0] _GEN_56 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_1}; // @[VSt.scala 86:44]
+ wire [32:0] _f_io_in_bits_0_bits_tin_data_T_5 = _GEN_56 | _f_io_in_bits_0_bits_tin_data_T_4; // @[VSt.scala 86:44]
wire [33:0] _f_io_in_bits_0_bits_tin_data_T_7 = {io_in_bits_0_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_0_bits_tin_data_T_8 = io_in_bits_0_bits_sz[2] ? _f_io_in_bits_0_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_57 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_5}; // @[VSt.scala 86:59]
- wire [33:0] f_io_in_bits_0_bits_tin_data = _GEN_57 | _f_io_in_bits_0_bits_tin_data_T_8; // @[VSt.scala 86:59]
- wire [33:0] _GEN_58 = {{26'd0}, f_io_in_bits_0_bits_tin_limit}; // @[VSt.scala 90:28]
+ wire [33:0] _GEN_57 = {{1'd0}, _f_io_in_bits_0_bits_tin_data_T_5}; // @[VSt.scala 87:59]
+ wire [33:0] f_io_in_bits_0_bits_tin_data = _GEN_57 | _f_io_in_bits_0_bits_tin_data_T_8; // @[VSt.scala 87:59]
+ wire [33:0] _GEN_58 = {{26'd0}, f_io_in_bits_0_bits_tin_limit}; // @[VSt.scala 91:28]
wire [33:0] _f_io_in_bits_0_bits_tin_remain1_T_1 = f_io_in_bits_0_bits_tin_data > _GEN_58 ? {{26'd0},
- f_io_in_bits_0_bits_tin_limit} : f_io_in_bits_0_bits_tin_data; // @[VSt.scala 90:22]
- wire [7:0] f_io_in_bits_0_bits_tin_remain1 = _f_io_in_bits_0_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 90:49]
- wire [7:0] _f_io_in_bits_0_bits_tin_out_offset_T_3 = _f_io_in_bits_0_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 98:46]
- wire f_io_in_bits_1_bits_tin_stride = io_in_bits_1_bits_f2[1]; // @[VSt.scala 77:23]
- wire f_io_in_bits_1_bits_tin_length = io_in_bits_1_bits_f2[0]; // @[VSt.scala 78:23]
+ f_io_in_bits_0_bits_tin_limit} : f_io_in_bits_0_bits_tin_data; // @[VSt.scala 91:22]
+ wire [7:0] f_io_in_bits_0_bits_tin_remain1 = _f_io_in_bits_0_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 91:49]
+ wire [7:0] _f_io_in_bits_0_bits_tin_out_offset_T_3 = _f_io_in_bits_0_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 99:46]
+ wire f_io_in_bits_1_bits_tin_stride = io_in_bits_1_bits_f2[1]; // @[VSt.scala 78:23]
+ wire f_io_in_bits_1_bits_tin_length = io_in_bits_1_bits_f2[0]; // @[VSt.scala 79:23]
wire [1:0] _f_io_in_bits_1_bits_tin_T_3 = io_in_bits_1_bits_sz[1] + io_in_bits_1_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_59 = {{1'd0}, io_in_bits_1_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_1_bits_tin_T_5 = _GEN_59 + _f_io_in_bits_1_bits_tin_T_3; // @[Bitwise.scala 48:55]
- wire _f_io_in_bits_1_bits_tin_T_12 = ~io_in_bits_1_bits_vs_valid; // @[VSt.scala 80:36]
- wire _f_io_in_bits_1_bits_tin_T_18 = io_in_bits_1_bits_op == 7'h4; // @[VSt.scala 81:20]
- wire [7:0] f_io_in_bits_1_bits_tin_limit = io_in_bits_1_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 83:20]
+ wire _f_io_in_bits_1_bits_tin_T_12 = ~io_in_bits_1_bits_vs_valid; // @[VSt.scala 81:36]
+ wire _f_io_in_bits_1_bits_tin_T_18 = io_in_bits_1_bits_op == 7'h4; // @[VSt.scala 82:20]
+ wire [7:0] f_io_in_bits_1_bits_tin_limit = io_in_bits_1_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 84:20]
wire [31:0] _f_io_in_bits_1_bits_tin_data_T_1 = io_in_bits_1_bits_sz[0] ? io_in_bits_1_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_1_bits_tin_data_T_3 = {io_in_bits_1_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_1_bits_tin_data_T_4 = io_in_bits_1_bits_sz[1] ? _f_io_in_bits_1_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_60 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_1}; // @[VSt.scala 85:44]
- wire [32:0] _f_io_in_bits_1_bits_tin_data_T_5 = _GEN_60 | _f_io_in_bits_1_bits_tin_data_T_4; // @[VSt.scala 85:44]
+ wire [32:0] _GEN_60 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_1}; // @[VSt.scala 86:44]
+ wire [32:0] _f_io_in_bits_1_bits_tin_data_T_5 = _GEN_60 | _f_io_in_bits_1_bits_tin_data_T_4; // @[VSt.scala 86:44]
wire [33:0] _f_io_in_bits_1_bits_tin_data_T_7 = {io_in_bits_1_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_1_bits_tin_data_T_8 = io_in_bits_1_bits_sz[2] ? _f_io_in_bits_1_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_61 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_5}; // @[VSt.scala 86:59]
- wire [33:0] f_io_in_bits_1_bits_tin_data = _GEN_61 | _f_io_in_bits_1_bits_tin_data_T_8; // @[VSt.scala 86:59]
- wire [33:0] _GEN_62 = {{26'd0}, f_io_in_bits_1_bits_tin_limit}; // @[VSt.scala 90:28]
+ wire [33:0] _GEN_61 = {{1'd0}, _f_io_in_bits_1_bits_tin_data_T_5}; // @[VSt.scala 87:59]
+ wire [33:0] f_io_in_bits_1_bits_tin_data = _GEN_61 | _f_io_in_bits_1_bits_tin_data_T_8; // @[VSt.scala 87:59]
+ wire [33:0] _GEN_62 = {{26'd0}, f_io_in_bits_1_bits_tin_limit}; // @[VSt.scala 91:28]
wire [33:0] _f_io_in_bits_1_bits_tin_remain1_T_1 = f_io_in_bits_1_bits_tin_data > _GEN_62 ? {{26'd0},
- f_io_in_bits_1_bits_tin_limit} : f_io_in_bits_1_bits_tin_data; // @[VSt.scala 90:22]
- wire [7:0] f_io_in_bits_1_bits_tin_remain1 = _f_io_in_bits_1_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 90:49]
- wire [7:0] _f_io_in_bits_1_bits_tin_out_offset_T_3 = _f_io_in_bits_1_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 98:46]
- wire f_io_in_bits_2_bits_tin_stride = io_in_bits_2_bits_f2[1]; // @[VSt.scala 77:23]
- wire f_io_in_bits_2_bits_tin_length = io_in_bits_2_bits_f2[0]; // @[VSt.scala 78:23]
+ f_io_in_bits_1_bits_tin_limit} : f_io_in_bits_1_bits_tin_data; // @[VSt.scala 91:22]
+ wire [7:0] f_io_in_bits_1_bits_tin_remain1 = _f_io_in_bits_1_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 91:49]
+ wire [7:0] _f_io_in_bits_1_bits_tin_out_offset_T_3 = _f_io_in_bits_1_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 99:46]
+ wire f_io_in_bits_2_bits_tin_stride = io_in_bits_2_bits_f2[1]; // @[VSt.scala 78:23]
+ wire f_io_in_bits_2_bits_tin_length = io_in_bits_2_bits_f2[0]; // @[VSt.scala 79:23]
wire [1:0] _f_io_in_bits_2_bits_tin_T_3 = io_in_bits_2_bits_sz[1] + io_in_bits_2_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_63 = {{1'd0}, io_in_bits_2_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_2_bits_tin_T_5 = _GEN_63 + _f_io_in_bits_2_bits_tin_T_3; // @[Bitwise.scala 48:55]
- wire _f_io_in_bits_2_bits_tin_T_12 = ~io_in_bits_2_bits_vs_valid; // @[VSt.scala 80:36]
- wire _f_io_in_bits_2_bits_tin_T_18 = io_in_bits_2_bits_op == 7'h4; // @[VSt.scala 81:20]
- wire [7:0] f_io_in_bits_2_bits_tin_limit = io_in_bits_2_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 83:20]
+ wire _f_io_in_bits_2_bits_tin_T_12 = ~io_in_bits_2_bits_vs_valid; // @[VSt.scala 81:36]
+ wire _f_io_in_bits_2_bits_tin_T_18 = io_in_bits_2_bits_op == 7'h4; // @[VSt.scala 82:20]
+ wire [7:0] f_io_in_bits_2_bits_tin_limit = io_in_bits_2_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 84:20]
wire [31:0] _f_io_in_bits_2_bits_tin_data_T_1 = io_in_bits_2_bits_sz[0] ? io_in_bits_2_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_2_bits_tin_data_T_3 = {io_in_bits_2_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_2_bits_tin_data_T_4 = io_in_bits_2_bits_sz[1] ? _f_io_in_bits_2_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_64 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_1}; // @[VSt.scala 85:44]
- wire [32:0] _f_io_in_bits_2_bits_tin_data_T_5 = _GEN_64 | _f_io_in_bits_2_bits_tin_data_T_4; // @[VSt.scala 85:44]
+ wire [32:0] _GEN_64 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_1}; // @[VSt.scala 86:44]
+ wire [32:0] _f_io_in_bits_2_bits_tin_data_T_5 = _GEN_64 | _f_io_in_bits_2_bits_tin_data_T_4; // @[VSt.scala 86:44]
wire [33:0] _f_io_in_bits_2_bits_tin_data_T_7 = {io_in_bits_2_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_2_bits_tin_data_T_8 = io_in_bits_2_bits_sz[2] ? _f_io_in_bits_2_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_65 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_5}; // @[VSt.scala 86:59]
- wire [33:0] f_io_in_bits_2_bits_tin_data = _GEN_65 | _f_io_in_bits_2_bits_tin_data_T_8; // @[VSt.scala 86:59]
- wire [33:0] _GEN_66 = {{26'd0}, f_io_in_bits_2_bits_tin_limit}; // @[VSt.scala 90:28]
+ wire [33:0] _GEN_65 = {{1'd0}, _f_io_in_bits_2_bits_tin_data_T_5}; // @[VSt.scala 87:59]
+ wire [33:0] f_io_in_bits_2_bits_tin_data = _GEN_65 | _f_io_in_bits_2_bits_tin_data_T_8; // @[VSt.scala 87:59]
+ wire [33:0] _GEN_66 = {{26'd0}, f_io_in_bits_2_bits_tin_limit}; // @[VSt.scala 91:28]
wire [33:0] _f_io_in_bits_2_bits_tin_remain1_T_1 = f_io_in_bits_2_bits_tin_data > _GEN_66 ? {{26'd0},
- f_io_in_bits_2_bits_tin_limit} : f_io_in_bits_2_bits_tin_data; // @[VSt.scala 90:22]
- wire [7:0] f_io_in_bits_2_bits_tin_remain1 = _f_io_in_bits_2_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 90:49]
- wire [7:0] _f_io_in_bits_2_bits_tin_out_offset_T_3 = _f_io_in_bits_2_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 98:46]
- wire f_io_in_bits_3_bits_tin_stride = io_in_bits_3_bits_f2[1]; // @[VSt.scala 77:23]
- wire f_io_in_bits_3_bits_tin_length = io_in_bits_3_bits_f2[0]; // @[VSt.scala 78:23]
+ f_io_in_bits_2_bits_tin_limit} : f_io_in_bits_2_bits_tin_data; // @[VSt.scala 91:22]
+ wire [7:0] f_io_in_bits_2_bits_tin_remain1 = _f_io_in_bits_2_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 91:49]
+ wire [7:0] _f_io_in_bits_2_bits_tin_out_offset_T_3 = _f_io_in_bits_2_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 99:46]
+ wire f_io_in_bits_3_bits_tin_stride = io_in_bits_3_bits_f2[1]; // @[VSt.scala 78:23]
+ wire f_io_in_bits_3_bits_tin_length = io_in_bits_3_bits_f2[0]; // @[VSt.scala 79:23]
wire [1:0] _f_io_in_bits_3_bits_tin_T_3 = io_in_bits_3_bits_sz[1] + io_in_bits_3_bits_sz[2]; // @[Bitwise.scala 48:55]
wire [1:0] _GEN_67 = {{1'd0}, io_in_bits_3_bits_sz[0]}; // @[Bitwise.scala 48:55]
wire [2:0] _f_io_in_bits_3_bits_tin_T_5 = _GEN_67 + _f_io_in_bits_3_bits_tin_T_3; // @[Bitwise.scala 48:55]
- wire _f_io_in_bits_3_bits_tin_T_12 = ~io_in_bits_3_bits_vs_valid; // @[VSt.scala 80:36]
- wire _f_io_in_bits_3_bits_tin_T_18 = io_in_bits_3_bits_op == 7'h4; // @[VSt.scala 81:20]
- wire [7:0] f_io_in_bits_3_bits_tin_limit = io_in_bits_3_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 83:20]
+ wire _f_io_in_bits_3_bits_tin_T_12 = ~io_in_bits_3_bits_vs_valid; // @[VSt.scala 81:36]
+ wire _f_io_in_bits_3_bits_tin_T_18 = io_in_bits_3_bits_op == 7'h4; // @[VSt.scala 82:20]
+ wire [7:0] f_io_in_bits_3_bits_tin_limit = io_in_bits_3_bits_m ? 8'h80 : 8'h20; // @[VSt.scala 84:20]
wire [31:0] _f_io_in_bits_3_bits_tin_data_T_1 = io_in_bits_3_bits_sz[0] ? io_in_bits_3_bits_sv_data : 32'h0; // @[Library.scala 8:8]
wire [32:0] _f_io_in_bits_3_bits_tin_data_T_3 = {io_in_bits_3_bits_sv_data,1'h0}; // @[Cat.scala 31:58]
wire [32:0] _f_io_in_bits_3_bits_tin_data_T_4 = io_in_bits_3_bits_sz[1] ? _f_io_in_bits_3_bits_tin_data_T_3 : 33'h0; // @[Library.scala 8:8]
- wire [32:0] _GEN_68 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_1}; // @[VSt.scala 85:44]
- wire [32:0] _f_io_in_bits_3_bits_tin_data_T_5 = _GEN_68 | _f_io_in_bits_3_bits_tin_data_T_4; // @[VSt.scala 85:44]
+ wire [32:0] _GEN_68 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_1}; // @[VSt.scala 86:44]
+ wire [32:0] _f_io_in_bits_3_bits_tin_data_T_5 = _GEN_68 | _f_io_in_bits_3_bits_tin_data_T_4; // @[VSt.scala 86:44]
wire [33:0] _f_io_in_bits_3_bits_tin_data_T_7 = {io_in_bits_3_bits_sv_data,2'h0}; // @[Cat.scala 31:58]
wire [33:0] _f_io_in_bits_3_bits_tin_data_T_8 = io_in_bits_3_bits_sz[2] ? _f_io_in_bits_3_bits_tin_data_T_7 : 34'h0; // @[Library.scala 8:8]
- wire [33:0] _GEN_69 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_5}; // @[VSt.scala 86:59]
- wire [33:0] f_io_in_bits_3_bits_tin_data = _GEN_69 | _f_io_in_bits_3_bits_tin_data_T_8; // @[VSt.scala 86:59]
- wire [33:0] _GEN_70 = {{26'd0}, f_io_in_bits_3_bits_tin_limit}; // @[VSt.scala 90:28]
+ wire [33:0] _GEN_69 = {{1'd0}, _f_io_in_bits_3_bits_tin_data_T_5}; // @[VSt.scala 87:59]
+ wire [33:0] f_io_in_bits_3_bits_tin_data = _GEN_69 | _f_io_in_bits_3_bits_tin_data_T_8; // @[VSt.scala 87:59]
+ wire [33:0] _GEN_70 = {{26'd0}, f_io_in_bits_3_bits_tin_limit}; // @[VSt.scala 91:28]
wire [33:0] _f_io_in_bits_3_bits_tin_remain1_T_1 = f_io_in_bits_3_bits_tin_data > _GEN_70 ? {{26'd0},
- f_io_in_bits_3_bits_tin_limit} : f_io_in_bits_3_bits_tin_data; // @[VSt.scala 90:22]
- wire [7:0] f_io_in_bits_3_bits_tin_remain1 = _f_io_in_bits_3_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 90:49]
- wire [7:0] _f_io_in_bits_3_bits_tin_out_offset_T_3 = _f_io_in_bits_3_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 98:46]
+ f_io_in_bits_3_bits_tin_limit} : f_io_in_bits_3_bits_tin_data; // @[VSt.scala 91:22]
+ wire [7:0] f_io_in_bits_3_bits_tin_remain1 = _f_io_in_bits_3_bits_tin_remain1_T_1[7:0]; // @[VSt.scala 91:49]
+ wire [7:0] _f_io_in_bits_3_bits_tin_out_offset_T_3 = _f_io_in_bits_3_bits_tin_T_18 ? 8'h8 : 8'h20; // @[VSt.scala 99:46]
wire _T_17 = io_out_valid & io_out_ready; // @[VCmdq.scala 65:29]
wire _T_18 = ~last; // @[VCmdq.scala 66:11]
- wire [1:0] tin_quad = _out_quad_T_3[1:0]; // @[VSt.scala 115:19 138:14]
+ wire [1:0] tin_quad = _out_quad_T_3[1:0]; // @[VSt.scala 116:19 139:14]
wire _GEN_5 = ~last & value_tin_vs_valid; // @[VCmdq.scala 66:18 68:17 74:17]
wire _GEN_12 = ~last & value_m; // @[VCmdq.scala 66:18 69:15 75:15]
wire _GEN_14 = io_out_valid & io_out_ready ? _T_18 : valid; // @[VCmdq.scala 35:22 65:46]
@@ -108819,7 +108632,7 @@
wire [63:0] active_active_11 = f_io_entry_7_valid ? active_active_active_11 : 64'h0; // @[Library.scala 8:8]
wire [63:0] _active_T_18 = _active_T_17 | active_active_11; // @[VCmdq.scala 91:24]
wire [5:0] _active_active0_T = {{1'd0}, step}; // @[VCmdq.scala 94:48]
- wire [2:0] active_active0_stepq = _addrAlign_T ? _active_active0_T[4:2] : _active_active0_T[2:0]; // @[VSt.scala 146:20]
+ wire [2:0] active_active0_stepq = _addrAlign_T ? _active_active0_T[4:2] : _active_active0_T[2:0]; // @[VSt.scala 147:20]
wire [3:0] active_active0_active_oh_shiftAmount = value_tin_vs_addr[5:2]; // @[VCommon.scala 13:27]
wire [15:0] active_active0_active_oh = 16'h1 << active_active0_active_oh_shiftAmount; // @[OneHot.scala 64:12]
wire [15:0] active_active0_active_oh0_lo_lo = {3'h0,active_active0_active_oh[3],3'h0,active_active0_active_oh[2],3'h0,
@@ -108894,7 +108707,7 @@
; // @[Library.scala 18:8]
wire [63:0] active_active0_active_active = _active_active0_active_active_T_22 | _active_active0_active_active_T_29; // @[VCommon.scala 93:68]
wire [63:0] active_active0 = value_tin_vs_valid ? active_active0_active_active : 64'h0; // @[Library.scala 8:8]
- wire [2:0] active_active1_stepq = _addrAlign_T ? _out_quad_T_2[4:2] : _out_quad_T_2[2:0]; // @[VSt.scala 146:20]
+ wire [2:0] active_active1_stepq = _addrAlign_T ? _out_quad_T_2[4:2] : _out_quad_T_2[2:0]; // @[VSt.scala 147:20]
wire _active_active1_active_active_T_5 = _outlast1_T & active_active0_active_idx == 2'h0 | value_m &
active_active1_stepq <= 3'h0; // @[VCommon.scala 91:42]
wire [63:0] _active_active1_active_active_T_6 = _active_active1_active_active_T_5 ? active_active0_active_oh0 : 64'h0; // @[Library.scala 18:8]
@@ -109023,44 +108836,44 @@
assign f_reset = reset;
assign f_io_in_valid = io_in_valid; // @[VCmdq.scala 48:17]
assign f_io_in_bits_0_valid = io_in_bits_0_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_0_bits_tin_op = io_in_bits_0_bits_op; // @[VSt.scala 76:19 94:12]
- assign f_io_in_bits_0_bits_tin_addr = io_in_bits_0_bits_sv_addr; // @[VSt.scala 76:19 97:14]
+ assign f_io_in_bits_0_bits_tin_op = io_in_bits_0_bits_op; // @[VSt.scala 77:19 95:12]
+ assign f_io_in_bits_0_bits_tin_addr = io_in_bits_0_bits_sv_addr; // @[VSt.scala 77:19 98:14]
assign f_io_in_bits_0_bits_tin_offset = f_io_in_bits_0_bits_tin_stride ? f_io_in_bits_0_bits_tin_data[31:0] : {{24
- 'd0}, _f_io_in_bits_0_bits_tin_out_offset_T_3}; // @[VSt.scala 98:22]
- assign f_io_in_bits_0_bits_tin_remain = f_io_in_bits_0_bits_tin_length ? f_io_in_bits_0_bits_tin_remain1 : 8'h80; // @[VSt.scala 99:22]
- assign f_io_in_bits_0_bits_tin_vs_valid = io_in_bits_0_bits_vs_valid; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_0_bits_tin_vs_addr = io_in_bits_0_bits_vs_addr; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_0_bits_tin_vs_tag = io_in_bits_0_bits_vs_tag; // @[VSt.scala 100:12 76:19]
+ 'd0}, _f_io_in_bits_0_bits_tin_out_offset_T_3}; // @[VSt.scala 99:22]
+ assign f_io_in_bits_0_bits_tin_remain = f_io_in_bits_0_bits_tin_length ? f_io_in_bits_0_bits_tin_remain1 : 8'h80; // @[VSt.scala 100:22]
+ assign f_io_in_bits_0_bits_tin_vs_valid = io_in_bits_0_bits_vs_valid; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_0_bits_tin_vs_addr = io_in_bits_0_bits_vs_addr; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_0_bits_tin_vs_tag = io_in_bits_0_bits_vs_tag; // @[VSt.scala 101:12 77:19]
assign f_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_1_valid = io_in_bits_1_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_1_bits_tin_op = io_in_bits_1_bits_op; // @[VSt.scala 76:19 94:12]
- assign f_io_in_bits_1_bits_tin_addr = io_in_bits_1_bits_sv_addr; // @[VSt.scala 76:19 97:14]
+ assign f_io_in_bits_1_bits_tin_op = io_in_bits_1_bits_op; // @[VSt.scala 77:19 95:12]
+ assign f_io_in_bits_1_bits_tin_addr = io_in_bits_1_bits_sv_addr; // @[VSt.scala 77:19 98:14]
assign f_io_in_bits_1_bits_tin_offset = f_io_in_bits_1_bits_tin_stride ? f_io_in_bits_1_bits_tin_data[31:0] : {{24
- 'd0}, _f_io_in_bits_1_bits_tin_out_offset_T_3}; // @[VSt.scala 98:22]
- assign f_io_in_bits_1_bits_tin_remain = f_io_in_bits_1_bits_tin_length ? f_io_in_bits_1_bits_tin_remain1 : 8'h80; // @[VSt.scala 99:22]
- assign f_io_in_bits_1_bits_tin_vs_valid = io_in_bits_1_bits_vs_valid; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_1_bits_tin_vs_addr = io_in_bits_1_bits_vs_addr; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_1_bits_tin_vs_tag = io_in_bits_1_bits_vs_tag; // @[VSt.scala 100:12 76:19]
+ 'd0}, _f_io_in_bits_1_bits_tin_out_offset_T_3}; // @[VSt.scala 99:22]
+ assign f_io_in_bits_1_bits_tin_remain = f_io_in_bits_1_bits_tin_length ? f_io_in_bits_1_bits_tin_remain1 : 8'h80; // @[VSt.scala 100:22]
+ assign f_io_in_bits_1_bits_tin_vs_valid = io_in_bits_1_bits_vs_valid; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_1_bits_tin_vs_addr = io_in_bits_1_bits_vs_addr; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_1_bits_tin_vs_tag = io_in_bits_1_bits_vs_tag; // @[VSt.scala 101:12 77:19]
assign f_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_2_valid = io_in_bits_2_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_2_bits_tin_op = io_in_bits_2_bits_op; // @[VSt.scala 76:19 94:12]
- assign f_io_in_bits_2_bits_tin_addr = io_in_bits_2_bits_sv_addr; // @[VSt.scala 76:19 97:14]
+ assign f_io_in_bits_2_bits_tin_op = io_in_bits_2_bits_op; // @[VSt.scala 77:19 95:12]
+ assign f_io_in_bits_2_bits_tin_addr = io_in_bits_2_bits_sv_addr; // @[VSt.scala 77:19 98:14]
assign f_io_in_bits_2_bits_tin_offset = f_io_in_bits_2_bits_tin_stride ? f_io_in_bits_2_bits_tin_data[31:0] : {{24
- 'd0}, _f_io_in_bits_2_bits_tin_out_offset_T_3}; // @[VSt.scala 98:22]
- assign f_io_in_bits_2_bits_tin_remain = f_io_in_bits_2_bits_tin_length ? f_io_in_bits_2_bits_tin_remain1 : 8'h80; // @[VSt.scala 99:22]
- assign f_io_in_bits_2_bits_tin_vs_valid = io_in_bits_2_bits_vs_valid; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_2_bits_tin_vs_addr = io_in_bits_2_bits_vs_addr; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_2_bits_tin_vs_tag = io_in_bits_2_bits_vs_tag; // @[VSt.scala 100:12 76:19]
+ 'd0}, _f_io_in_bits_2_bits_tin_out_offset_T_3}; // @[VSt.scala 99:22]
+ assign f_io_in_bits_2_bits_tin_remain = f_io_in_bits_2_bits_tin_length ? f_io_in_bits_2_bits_tin_remain1 : 8'h80; // @[VSt.scala 100:22]
+ assign f_io_in_bits_2_bits_tin_vs_valid = io_in_bits_2_bits_vs_valid; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_2_bits_tin_vs_addr = io_in_bits_2_bits_vs_addr; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_2_bits_tin_vs_tag = io_in_bits_2_bits_vs_tag; // @[VSt.scala 101:12 77:19]
assign f_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VCmdq.scala 54:28]
assign f_io_in_bits_3_valid = io_in_bits_3_valid; // @[VCmdq.scala 52:27]
- assign f_io_in_bits_3_bits_tin_op = io_in_bits_3_bits_op; // @[VSt.scala 76:19 94:12]
- assign f_io_in_bits_3_bits_tin_addr = io_in_bits_3_bits_sv_addr; // @[VSt.scala 76:19 97:14]
+ assign f_io_in_bits_3_bits_tin_op = io_in_bits_3_bits_op; // @[VSt.scala 77:19 95:12]
+ assign f_io_in_bits_3_bits_tin_addr = io_in_bits_3_bits_sv_addr; // @[VSt.scala 77:19 98:14]
assign f_io_in_bits_3_bits_tin_offset = f_io_in_bits_3_bits_tin_stride ? f_io_in_bits_3_bits_tin_data[31:0] : {{24
- 'd0}, _f_io_in_bits_3_bits_tin_out_offset_T_3}; // @[VSt.scala 98:22]
- assign f_io_in_bits_3_bits_tin_remain = f_io_in_bits_3_bits_tin_length ? f_io_in_bits_3_bits_tin_remain1 : 8'h80; // @[VSt.scala 99:22]
- assign f_io_in_bits_3_bits_tin_vs_valid = io_in_bits_3_bits_vs_valid; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_3_bits_tin_vs_addr = io_in_bits_3_bits_vs_addr; // @[VSt.scala 100:12 76:19]
- assign f_io_in_bits_3_bits_tin_vs_tag = io_in_bits_3_bits_vs_tag; // @[VSt.scala 100:12 76:19]
+ 'd0}, _f_io_in_bits_3_bits_tin_out_offset_T_3}; // @[VSt.scala 99:22]
+ assign f_io_in_bits_3_bits_tin_remain = f_io_in_bits_3_bits_tin_length ? f_io_in_bits_3_bits_tin_remain1 : 8'h80; // @[VSt.scala 100:22]
+ assign f_io_in_bits_3_bits_tin_vs_valid = io_in_bits_3_bits_vs_valid; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_3_bits_tin_vs_addr = io_in_bits_3_bits_vs_addr; // @[VSt.scala 101:12 77:19]
+ assign f_io_in_bits_3_bits_tin_vs_tag = io_in_bits_3_bits_vs_tag; // @[VSt.scala 101:12 77:19]
assign f_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VCmdq.scala 54:28]
assign f_io_out_ready = _T_8 | io_out_ready & last; // @[VCmdq.scala 57:28]
always @(posedge clock) begin
@@ -109154,28 +108967,6 @@
if (`STOP_COND) begin
`endif
if (~reset & ~(addrAlign == 5'h0)) begin
- $fatal; // @[VSt.scala 111:11]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (~reset & ~(addrAlign == 5'h0)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:111 assert(addrAlign === 0.U)\n"); // @[VSt.scala 111:11]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_2 & ~(offsAlign == 5'h0)) begin
$fatal; // @[VSt.scala 112:11]
end
`ifdef STOP_COND
@@ -109186,8 +108977,30 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
+ if (~reset & ~(addrAlign == 5'h0)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:112 assert(addrAlign === 0.U)\n"); // @[VSt.scala 112:11]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
if (_T_2 & ~(offsAlign == 5'h0)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:112 assert(offsAlign === 0.U)\n"); // @[VSt.scala 112:11]
+ $fatal; // @[VSt.scala 113:11]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
+ if (_T_2 & ~(offsAlign == 5'h0)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:113 assert(offsAlign === 0.U)\n"); // @[VSt.scala 113:11]
end
`ifdef PRINTF_COND
end
@@ -109198,7 +109011,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~valid | value_tin_op == 7'h3 | _addrAlign_T)) begin
- $fatal; // @[VSt.scala 113:11]
+ $fatal; // @[VSt.scala 114:11]
end
`ifdef STOP_COND
end
@@ -109210,7 +109023,7 @@
`endif
if (_T_2 & ~(~valid | value_tin_op == 7'h3 | _addrAlign_T)) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:113 assert(!valid || in.op === e.vst.U || in.op === e.vstq.U)\n"); // @[VSt.scala 113:11]
+ "Assertion failed\n at VSt.scala:114 assert(!valid || in.op === e.vst.U || in.op === e.vstq.U)\n"); // @[VSt.scala 114:11]
end
`ifdef PRINTF_COND
end
@@ -109221,7 +109034,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_0_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VSt.scala 79:11]
+ $fatal; // @[VSt.scala 80:11]
end
`ifdef STOP_COND
end
@@ -109232,7 +109045,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_0_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:79 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 79:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 80:11]
end
`ifdef PRINTF_COND
end
@@ -109243,7 +109056,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h3 & ~io_in_bits_0_bits_vs_valid))) begin
- $fatal; // @[VSt.scala 80:11]
+ $fatal; // @[VSt.scala 81:11]
end
`ifdef STOP_COND
end
@@ -109254,7 +109067,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h3 & ~io_in_bits_0_bits_vs_valid))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 80:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
end
`ifdef PRINTF_COND
end
@@ -109265,7 +109078,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h4 & _f_io_in_bits_0_bits_tin_T_12))) begin
- $fatal; // @[VSt.scala 81:11]
+ $fatal; // @[VSt.scala 82:11]
end
`ifdef STOP_COND
end
@@ -109276,7 +109089,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_0_bits_op == 7'h4 & _f_io_in_bits_0_bits_tin_T_12))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:82 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 82:11]
end
`ifdef PRINTF_COND
end
@@ -109287,7 +109100,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_1_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VSt.scala 79:11]
+ $fatal; // @[VSt.scala 80:11]
end
`ifdef STOP_COND
end
@@ -109298,7 +109111,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_1_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:79 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 79:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 80:11]
end
`ifdef PRINTF_COND
end
@@ -109309,7 +109122,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h3 & ~io_in_bits_1_bits_vs_valid))) begin
- $fatal; // @[VSt.scala 80:11]
+ $fatal; // @[VSt.scala 81:11]
end
`ifdef STOP_COND
end
@@ -109320,7 +109133,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h3 & ~io_in_bits_1_bits_vs_valid))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 80:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
end
`ifdef PRINTF_COND
end
@@ -109331,7 +109144,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h4 & _f_io_in_bits_1_bits_tin_T_12))) begin
- $fatal; // @[VSt.scala 81:11]
+ $fatal; // @[VSt.scala 82:11]
end
`ifdef STOP_COND
end
@@ -109342,7 +109155,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_1_bits_op == 7'h4 & _f_io_in_bits_1_bits_tin_T_12))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:82 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 82:11]
end
`ifdef PRINTF_COND
end
@@ -109353,7 +109166,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_2_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VSt.scala 79:11]
+ $fatal; // @[VSt.scala 80:11]
end
`ifdef STOP_COND
end
@@ -109364,7 +109177,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_2_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:79 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 79:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 80:11]
end
`ifdef PRINTF_COND
end
@@ -109375,7 +109188,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h3 & ~io_in_bits_2_bits_vs_valid))) begin
- $fatal; // @[VSt.scala 80:11]
+ $fatal; // @[VSt.scala 81:11]
end
`ifdef STOP_COND
end
@@ -109386,7 +109199,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h3 & ~io_in_bits_2_bits_vs_valid))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 80:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
end
`ifdef PRINTF_COND
end
@@ -109397,7 +109210,7 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h4 & _f_io_in_bits_2_bits_tin_T_12))) begin
- $fatal; // @[VSt.scala 81:11]
+ $fatal; // @[VSt.scala 82:11]
end
`ifdef STOP_COND
end
@@ -109408,7 +109221,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_2 & ~(~(io_in_bits_2_bits_op == 7'h4 & _f_io_in_bits_2_bits_tin_T_12))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:82 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 82:11]
end
`ifdef PRINTF_COND
end
@@ -109419,28 +109232,6 @@
if (`STOP_COND) begin
`endif
if (_T_2 & ~(_f_io_in_bits_3_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fatal; // @[VSt.scala 79:11]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (_T_2 & ~(_f_io_in_bits_3_bits_tin_T_5[1:0] <= 2'h1)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:79 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 79:11]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h3 & ~io_in_bits_3_bits_vs_valid))) begin
$fatal; // @[VSt.scala 80:11]
end
`ifdef STOP_COND
@@ -109451,8 +109242,8 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h3 & ~io_in_bits_3_bits_vs_valid))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 80:11]
+ if (_T_2 & ~(_f_io_in_bits_3_bits_tin_T_5[1:0] <= 2'h1)) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:80 assert(PopCount(in.sz) <= 1.U)\n"); // @[VSt.scala 80:11]
end
`ifdef PRINTF_COND
end
@@ -109462,7 +109253,7 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h4 & _f_io_in_bits_3_bits_tin_T_12))) begin
+ if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h3 & ~io_in_bits_3_bits_vs_valid))) begin
$fatal; // @[VSt.scala 81:11]
end
`ifdef STOP_COND
@@ -109473,8 +109264,30 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
+ if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h3 & ~io_in_bits_3_bits_vs_valid))) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vst.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h4 & _f_io_in_bits_3_bits_tin_T_12))) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:81 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 81:11]
+ $fatal; // @[VSt.scala 82:11]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
+ if (_T_2 & ~(~(io_in_bits_3_bits_op == 7'h4 & _f_io_in_bits_3_bits_tin_T_12))) begin
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:82 assert(!(in.op === e.vstq.U && !in.vs.valid))\n"); // @[VSt.scala 82:11]
end
`ifdef PRINTF_COND
end
@@ -109666,28 +109479,28 @@
wire empty = ipos == opos; // @[Slice.scala 29:20]
wire ivalid = io_in_valid & io_in_ready; // @[Slice.scala 31:28]
wire ovalid = io_out_valid & io_out_ready; // @[Slice.scala 32:29]
- assign io_in_ready = empty | io_out_ready; // @[Slice.scala 93:28]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 108:18]
- assign io_out_bits_id = mem_0_id; // @[Slice.scala 108:18]
- assign io_out_bits_size = mem_0_size; // @[Slice.scala 108:18]
- assign io_out_bits_vstq = mem_0_vstq; // @[Slice.scala 108:18]
- assign io_out_bits_quad = mem_0_quad; // @[Slice.scala 108:18]
+ assign io_in_ready = empty | io_out_ready; // @[Slice.scala 74:28]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_addr = mem_0_addr; // @[Slice.scala 89:18]
+ assign io_out_bits_id = mem_0_id; // @[Slice.scala 89:18]
+ assign io_out_bits_size = mem_0_size; // @[Slice.scala 89:18]
+ assign io_out_bits_vstq = mem_0_vstq; // @[Slice.scala 89:18]
+ assign io_out_bits_quad = mem_0_quad; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_addr <= io_in_bits_addr; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_addr <= io_in_bits_addr; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_id <= io_in_bits_id; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_id <= io_in_bits_id; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_size <= io_in_bits_size; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_size <= io_in_bits_size; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_vstq <= io_in_bits_vstq; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_vstq <= io_in_bits_vstq; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_quad <= io_in_bits_quad; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_quad <= io_in_bits_quad; // @[Slice.scala 80:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -109795,17 +109608,17 @@
wire _ivalid_T_1 = ~bypass; // @[Slice.scala 31:46]
wire ivalid = io_in_valid & io_in_ready & ~bypass; // @[Slice.scala 31:43]
wire ovalid = io_out_valid & io_out_ready & _ivalid_T_1; // @[Slice.scala 32:45]
- wire _io_value_0_valid_T = ~empty; // @[Slice.scala 102:26]
- assign io_in_ready = empty | io_out_ready; // @[Slice.scala 93:28]
- assign io_out_valid = _io_value_0_valid_T | io_in_valid; // @[Slice.scala 110:28]
- assign io_out_bits_data = _io_value_0_valid_T ? mem_0_data : io_in_bits_data; // @[Slice.scala 111:24]
- assign io_out_bits_strb = _io_value_0_valid_T ? mem_0_strb : io_in_bits_strb; // @[Slice.scala 111:24]
+ wire _io_value_0_valid_T = ~empty; // @[Slice.scala 83:26]
+ assign io_in_ready = empty | io_out_ready; // @[Slice.scala 74:28]
+ assign io_out_valid = _io_value_0_valid_T | io_in_valid; // @[Slice.scala 91:28]
+ assign io_out_bits_data = _io_value_0_valid_T ? mem_0_data : io_in_bits_data; // @[Slice.scala 92:24]
+ assign io_out_bits_strb = _io_value_0_valid_T ? mem_0_strb : io_in_bits_strb; // @[Slice.scala 92:24]
always @(posedge clock) begin
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_data <= io_in_bits_data; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_data <= io_in_bits_data; // @[Slice.scala 80:14]
end
- if (ivalid) begin // @[Slice.scala 98:19]
- mem_0_strb <= io_in_bits_strb; // @[Slice.scala 99:14]
+ if (ivalid) begin // @[Slice.scala 79:19]
+ mem_0_strb <= io_in_bits_strb; // @[Slice.scala 80:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -110029,128 +109842,128 @@
wire data_io_out_valid; // @[Slice.scala 9:11]
wire [255:0] data_io_out_bits_data; // @[Slice.scala 9:11]
wire [31:0] data_io_out_bits_strb; // @[Slice.scala 9:11]
- reg dataEn; // @[VSt.scala 170:23]
+ reg dataEn; // @[VSt.scala 171:23]
wire [3:0] _q_io_out_ready_tag_T_1 = q_io_out_bits_vs_tag >> q_io_out_bits_vs_addr[1:0]; // @[VCommon.scala 119:20]
wire q_io_out_ready_tag = _q_io_out_ready_tag_T_1[0]; // @[VCommon.scala 119:20]
wire [6:0] q_io_out_ready_idx = {q_io_out_ready_tag,q_io_out_bits_vs_addr}; // @[Cat.scala 31:58]
wire [127:0] _q_io_out_ready_T_1 = io_vrfsb >> q_io_out_ready_idx; // @[VCommon.scala 122:21]
wire _q_io_out_ready_T_4 = ~q_io_out_bits_vs_valid | ~_q_io_out_ready_T_1[0]; // @[VCommon.scala 122:15]
- wire ctrlready = ctrl_io_in_ready & data_io_in_ready; // @[VSt.scala 265:50]
- wire [7:0] qmaxvlb = q_io_out_bits_op == 7'h4 ? 8'h8 : 8'h20; // @[VSt.scala 231:20]
- wire [7:0] qsize = q_io_out_bits_remain > qmaxvlb ? qmaxvlb : q_io_out_bits_remain; // @[VSt.scala 232:18]
- wire _T_4 = ~reset; // @[VSt.scala 246:9]
- wire [63:0] data_io_in_bits_data_d0 = io_read_data[63:0]; // @[VSt.scala 182:18]
- wire [63:0] data_io_in_bits_data_d1 = io_read_data[127:64]; // @[VSt.scala 183:18]
- wire [63:0] data_io_in_bits_data_d2 = io_read_data[191:128]; // @[VSt.scala 184:18]
- wire [63:0] data_io_in_bits_data_d3 = io_read_data[255:192]; // @[VSt.scala 185:18]
- wire _data_io_in_bits_data_dataout_T = ~ctrl_io_out_bits_vstq; // @[VSt.scala 187:25]
+ wire ctrlready = ctrl_io_in_ready & data_io_in_ready; // @[VSt.scala 266:50]
+ wire [7:0] qmaxvlb = q_io_out_bits_op == 7'h4 ? 8'h8 : 8'h20; // @[VSt.scala 232:20]
+ wire [7:0] qsize = q_io_out_bits_remain > qmaxvlb ? qmaxvlb : q_io_out_bits_remain; // @[VSt.scala 233:18]
+ wire _T_4 = ~reset; // @[VSt.scala 247:9]
+ wire [63:0] data_io_in_bits_data_d0 = io_read_data[63:0]; // @[VSt.scala 183:18]
+ wire [63:0] data_io_in_bits_data_d1 = io_read_data[127:64]; // @[VSt.scala 184:18]
+ wire [63:0] data_io_in_bits_data_d2 = io_read_data[191:128]; // @[VSt.scala 185:18]
+ wire [63:0] data_io_in_bits_data_d3 = io_read_data[255:192]; // @[VSt.scala 186:18]
+ wire _data_io_in_bits_data_dataout_T = ~ctrl_io_out_bits_vstq; // @[VSt.scala 188:25]
wire [255:0] _data_io_in_bits_data_dataout_T_1 = _data_io_in_bits_data_dataout_T ? io_read_data : 256'h0; // @[Library.scala 8:8]
- wire _data_io_in_bits_data_dataout_T_3 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h0; // @[VSt.scala 188:30]
+ wire _data_io_in_bits_data_dataout_T_3 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h0; // @[VSt.scala 189:30]
wire [255:0] _data_io_in_bits_data_dataout_T_4 = {data_io_in_bits_data_d0,data_io_in_bits_data_d0,
data_io_in_bits_data_d0,data_io_in_bits_data_d0}; // @[Cat.scala 31:58]
wire [255:0] _data_io_in_bits_data_dataout_T_5 = _data_io_in_bits_data_dataout_T_3 ? _data_io_in_bits_data_dataout_T_4
: 256'h0; // @[Library.scala 8:8]
wire [255:0] _data_io_in_bits_data_dataout_T_6 = _data_io_in_bits_data_dataout_T_1 | _data_io_in_bits_data_dataout_T_5
- ; // @[VSt.scala 187:38]
- wire _data_io_in_bits_data_dataout_T_8 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h1; // @[VSt.scala 189:30]
+ ; // @[VSt.scala 188:38]
+ wire _data_io_in_bits_data_dataout_T_8 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h1; // @[VSt.scala 190:30]
wire [255:0] _data_io_in_bits_data_dataout_T_9 = {data_io_in_bits_data_d1,data_io_in_bits_data_d1,
data_io_in_bits_data_d1,data_io_in_bits_data_d1}; // @[Cat.scala 31:58]
wire [255:0] _data_io_in_bits_data_dataout_T_10 = _data_io_in_bits_data_dataout_T_8 ?
_data_io_in_bits_data_dataout_T_9 : 256'h0; // @[Library.scala 8:8]
wire [255:0] _data_io_in_bits_data_dataout_T_11 = _data_io_in_bits_data_dataout_T_6 |
- _data_io_in_bits_data_dataout_T_10; // @[VSt.scala 188:68]
- wire _data_io_in_bits_data_dataout_T_13 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h2; // @[VSt.scala 190:30]
+ _data_io_in_bits_data_dataout_T_10; // @[VSt.scala 189:68]
+ wire _data_io_in_bits_data_dataout_T_13 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h2; // @[VSt.scala 191:30]
wire [255:0] _data_io_in_bits_data_dataout_T_14 = {data_io_in_bits_data_d2,data_io_in_bits_data_d2,
data_io_in_bits_data_d2,data_io_in_bits_data_d2}; // @[Cat.scala 31:58]
wire [255:0] _data_io_in_bits_data_dataout_T_15 = _data_io_in_bits_data_dataout_T_13 ?
_data_io_in_bits_data_dataout_T_14 : 256'h0; // @[Library.scala 8:8]
wire [255:0] _data_io_in_bits_data_dataout_T_16 = _data_io_in_bits_data_dataout_T_11 |
- _data_io_in_bits_data_dataout_T_15; // @[VSt.scala 189:68]
- wire _data_io_in_bits_data_dataout_T_18 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h3; // @[VSt.scala 191:30]
+ _data_io_in_bits_data_dataout_T_15; // @[VSt.scala 190:68]
+ wire _data_io_in_bits_data_dataout_T_18 = ctrl_io_out_bits_vstq & ctrl_io_out_bits_quad == 2'h3; // @[VSt.scala 192:30]
wire [255:0] _data_io_in_bits_data_dataout_T_19 = {data_io_in_bits_data_d3,data_io_in_bits_data_d3,
data_io_in_bits_data_d3,data_io_in_bits_data_d3}; // @[Cat.scala 31:58]
wire [255:0] _data_io_in_bits_data_dataout_T_20 = _data_io_in_bits_data_dataout_T_18 ?
_data_io_in_bits_data_dataout_T_19 : 256'h0; // @[Library.scala 8:8]
- wire data_io_in_bits_strb_strbB_1 = ctrl_io_out_bits_size > 6'h1; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_0 = ctrl_io_out_bits_size > 6'h0; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_3 = ctrl_io_out_bits_size > 6'h3; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_2 = ctrl_io_out_bits_size > 6'h2; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_5 = ctrl_io_out_bits_size > 6'h5; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_4 = ctrl_io_out_bits_size > 6'h4; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_7 = ctrl_io_out_bits_size > 6'h7; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_6 = ctrl_io_out_bits_size > 6'h6; // @[VSt.scala 211:24]
+ wire data_io_in_bits_strb_strbB_1 = ctrl_io_out_bits_size > 6'h1; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_0 = ctrl_io_out_bits_size > 6'h0; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_3 = ctrl_io_out_bits_size > 6'h3; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_2 = ctrl_io_out_bits_size > 6'h2; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_5 = ctrl_io_out_bits_size > 6'h5; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_4 = ctrl_io_out_bits_size > 6'h4; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_7 = ctrl_io_out_bits_size > 6'h7; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_6 = ctrl_io_out_bits_size > 6'h6; // @[VSt.scala 212:24]
wire [7:0] data_io_in_bits_strb_strb_lo_lo = {data_io_in_bits_strb_strbB_7,data_io_in_bits_strb_strbB_6,
data_io_in_bits_strb_strbB_5,data_io_in_bits_strb_strbB_4,data_io_in_bits_strb_strbB_3,data_io_in_bits_strb_strbB_2,
- data_io_in_bits_strb_strbB_1,data_io_in_bits_strb_strbB_0}; // @[VSt.scala 202:22]
- wire data_io_in_bits_strb_strbB_9 = ctrl_io_out_bits_size > 6'h9; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_8 = ctrl_io_out_bits_size > 6'h8; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_11 = ctrl_io_out_bits_size > 6'hb; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_10 = ctrl_io_out_bits_size > 6'ha; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_13 = ctrl_io_out_bits_size > 6'hd; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_12 = ctrl_io_out_bits_size > 6'hc; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_15 = ctrl_io_out_bits_size > 6'hf; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_14 = ctrl_io_out_bits_size > 6'he; // @[VSt.scala 211:24]
+ data_io_in_bits_strb_strbB_1,data_io_in_bits_strb_strbB_0}; // @[VSt.scala 203:22]
+ wire data_io_in_bits_strb_strbB_9 = ctrl_io_out_bits_size > 6'h9; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_8 = ctrl_io_out_bits_size > 6'h8; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_11 = ctrl_io_out_bits_size > 6'hb; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_10 = ctrl_io_out_bits_size > 6'ha; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_13 = ctrl_io_out_bits_size > 6'hd; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_12 = ctrl_io_out_bits_size > 6'hc; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_15 = ctrl_io_out_bits_size > 6'hf; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_14 = ctrl_io_out_bits_size > 6'he; // @[VSt.scala 212:24]
wire [15:0] data_io_in_bits_strb_strb_lo = {data_io_in_bits_strb_strbB_15,data_io_in_bits_strb_strbB_14,
data_io_in_bits_strb_strbB_13,data_io_in_bits_strb_strbB_12,data_io_in_bits_strb_strbB_11,
data_io_in_bits_strb_strbB_10,data_io_in_bits_strb_strbB_9,data_io_in_bits_strb_strbB_8,
- data_io_in_bits_strb_strb_lo_lo}; // @[VSt.scala 202:22]
- wire data_io_in_bits_strb_strbB_17 = ctrl_io_out_bits_size > 6'h11; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_16 = ctrl_io_out_bits_size > 6'h10; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_19 = ctrl_io_out_bits_size > 6'h13; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_18 = ctrl_io_out_bits_size > 6'h12; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_21 = ctrl_io_out_bits_size > 6'h15; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_20 = ctrl_io_out_bits_size > 6'h14; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_23 = ctrl_io_out_bits_size > 6'h17; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_22 = ctrl_io_out_bits_size > 6'h16; // @[VSt.scala 211:24]
+ data_io_in_bits_strb_strb_lo_lo}; // @[VSt.scala 203:22]
+ wire data_io_in_bits_strb_strbB_17 = ctrl_io_out_bits_size > 6'h11; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_16 = ctrl_io_out_bits_size > 6'h10; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_19 = ctrl_io_out_bits_size > 6'h13; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_18 = ctrl_io_out_bits_size > 6'h12; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_21 = ctrl_io_out_bits_size > 6'h15; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_20 = ctrl_io_out_bits_size > 6'h14; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_23 = ctrl_io_out_bits_size > 6'h17; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_22 = ctrl_io_out_bits_size > 6'h16; // @[VSt.scala 212:24]
wire [7:0] data_io_in_bits_strb_strb_hi_lo = {data_io_in_bits_strb_strbB_23,data_io_in_bits_strb_strbB_22,
data_io_in_bits_strb_strbB_21,data_io_in_bits_strb_strbB_20,data_io_in_bits_strb_strbB_19,
- data_io_in_bits_strb_strbB_18,data_io_in_bits_strb_strbB_17,data_io_in_bits_strb_strbB_16}; // @[VSt.scala 202:22]
- wire data_io_in_bits_strb_strbB_25 = ctrl_io_out_bits_size > 6'h19; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_24 = ctrl_io_out_bits_size > 6'h18; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_27 = ctrl_io_out_bits_size > 6'h1b; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_26 = ctrl_io_out_bits_size > 6'h1a; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_29 = ctrl_io_out_bits_size > 6'h1d; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_28 = ctrl_io_out_bits_size > 6'h1c; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_31 = ctrl_io_out_bits_size > 6'h1f; // @[VSt.scala 211:24]
- wire data_io_in_bits_strb_strbB_30 = ctrl_io_out_bits_size > 6'h1e; // @[VSt.scala 211:24]
+ data_io_in_bits_strb_strbB_18,data_io_in_bits_strb_strbB_17,data_io_in_bits_strb_strbB_16}; // @[VSt.scala 203:22]
+ wire data_io_in_bits_strb_strbB_25 = ctrl_io_out_bits_size > 6'h19; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_24 = ctrl_io_out_bits_size > 6'h18; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_27 = ctrl_io_out_bits_size > 6'h1b; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_26 = ctrl_io_out_bits_size > 6'h1a; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_29 = ctrl_io_out_bits_size > 6'h1d; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_28 = ctrl_io_out_bits_size > 6'h1c; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_31 = ctrl_io_out_bits_size > 6'h1f; // @[VSt.scala 212:24]
+ wire data_io_in_bits_strb_strbB_30 = ctrl_io_out_bits_size > 6'h1e; // @[VSt.scala 212:24]
wire [31:0] data_io_in_bits_strb_strb = {data_io_in_bits_strb_strbB_31,data_io_in_bits_strb_strbB_30,
data_io_in_bits_strb_strbB_29,data_io_in_bits_strb_strbB_28,data_io_in_bits_strb_strbB_27,
data_io_in_bits_strb_strbB_26,data_io_in_bits_strb_strbB_25,data_io_in_bits_strb_strbB_24,
- data_io_in_bits_strb_strb_hi_lo,data_io_in_bits_strb_strb_lo}; // @[VSt.scala 202:22]
- wire [7:0] data_io_in_bits_strb_strbq = data_io_in_bits_strb_strb[7:0]; // @[VSt.scala 203:21]
- wire [1:0] data_io_in_bits_strb_quad = ctrl_io_out_bits_addr[4:3]; // @[VSt.scala 207:20]
+ data_io_in_bits_strb_strb_hi_lo,data_io_in_bits_strb_strb_lo}; // @[VSt.scala 203:22]
+ wire [7:0] data_io_in_bits_strb_strbq = data_io_in_bits_strb_strb[7:0]; // @[VSt.scala 204:21]
+ wire [1:0] data_io_in_bits_strb_quad = ctrl_io_out_bits_addr[4:3]; // @[VSt.scala 208:20]
wire [31:0] _data_io_in_bits_strb_strbout_T_1 = _data_io_in_bits_data_dataout_T ? data_io_in_bits_strb_strb : 32'h0; // @[Library.scala 8:8]
- wire _data_io_in_bits_strb_strbout_T_3 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h0; // @[VSt.scala 215:19]
+ wire _data_io_in_bits_strb_strbout_T_3 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h0; // @[VSt.scala 216:19]
wire [31:0] _data_io_in_bits_strb_strbout_T_4 = {16'h0,8'h0,data_io_in_bits_strb_strbq}; // @[Cat.scala 31:58]
wire [31:0] _data_io_in_bits_strb_strbout_T_5 = _data_io_in_bits_strb_strbout_T_3 ? _data_io_in_bits_strb_strbout_T_4
: 32'h0; // @[Library.scala 8:8]
- wire [31:0] _data_io_in_bits_strb_strbout_T_6 = _data_io_in_bits_strb_strbout_T_1 | _data_io_in_bits_strb_strbout_T_5; // @[VSt.scala 214:38]
- wire _data_io_in_bits_strb_strbout_T_8 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h1; // @[VSt.scala 216:19]
+ wire [31:0] _data_io_in_bits_strb_strbout_T_6 = _data_io_in_bits_strb_strbout_T_1 | _data_io_in_bits_strb_strbout_T_5; // @[VSt.scala 215:38]
+ wire _data_io_in_bits_strb_strbout_T_8 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h1; // @[VSt.scala 217:19]
wire [31:0] _data_io_in_bits_strb_strbout_T_9 = {16'h0,data_io_in_bits_strb_strbq,8'h0}; // @[Cat.scala 31:58]
wire [31:0] _data_io_in_bits_strb_strbout_T_10 = _data_io_in_bits_strb_strbout_T_8 ? _data_io_in_bits_strb_strbout_T_9
: 32'h0; // @[Library.scala 8:8]
wire [31:0] _data_io_in_bits_strb_strbout_T_11 = _data_io_in_bits_strb_strbout_T_6 |
- _data_io_in_bits_strb_strbout_T_10; // @[VSt.scala 215:69]
- wire _data_io_in_bits_strb_strbout_T_13 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h2; // @[VSt.scala 217:19]
+ _data_io_in_bits_strb_strbout_T_10; // @[VSt.scala 216:69]
+ wire _data_io_in_bits_strb_strbout_T_13 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h2; // @[VSt.scala 218:19]
wire [31:0] _data_io_in_bits_strb_strbout_T_14 = {8'h0,data_io_in_bits_strb_strbq,16'h0}; // @[Cat.scala 31:58]
wire [31:0] _data_io_in_bits_strb_strbout_T_15 = _data_io_in_bits_strb_strbout_T_13 ?
_data_io_in_bits_strb_strbout_T_14 : 32'h0; // @[Library.scala 8:8]
wire [31:0] _data_io_in_bits_strb_strbout_T_16 = _data_io_in_bits_strb_strbout_T_11 |
- _data_io_in_bits_strb_strbout_T_15; // @[VSt.scala 216:69]
- wire _data_io_in_bits_strb_strbout_T_18 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h3; // @[VSt.scala 218:19]
+ _data_io_in_bits_strb_strbout_T_15; // @[VSt.scala 217:69]
+ wire _data_io_in_bits_strb_strbout_T_18 = ctrl_io_out_bits_vstq & data_io_in_bits_strb_quad == 2'h3; // @[VSt.scala 219:19]
wire [31:0] _data_io_in_bits_strb_strbout_T_19 = {data_io_in_bits_strb_strbq,8'h0,16'h0}; // @[Cat.scala 31:58]
wire [31:0] _data_io_in_bits_strb_strbout_T_20 = _data_io_in_bits_strb_strbout_T_18 ?
_data_io_in_bits_strb_strbout_T_19 : 32'h0; // @[Library.scala 8:8]
wire [26:0] io_axi_addr_bits_addr_hi = {1'h0,ctrl_io_out_bits_addr[30:5]}; // @[Cat.scala 31:58]
- reg nempty; // @[VSt.scala 290:23]
- reg [8:0] count; // @[VSt.scala 291:22]
- wire inc = io_axi_addr_valid & io_axi_addr_ready; // @[VSt.scala 292:31]
- wire dec = io_axi_resp_valid & io_axi_resp_ready; // @[VSt.scala 293:31]
- wire _T_27 = inc | dec; // @[VSt.scala 295:13]
- wire [8:0] _GEN_2 = {{8'd0}, inc}; // @[VSt.scala 296:26]
- wire [8:0] _nxtcount_T_1 = count + _GEN_2; // @[VSt.scala 296:26]
- wire [8:0] _GEN_3 = {{8'd0}, dec}; // @[VSt.scala 296:32]
- wire [8:0] nxtcount = _nxtcount_T_1 - _GEN_3; // @[VSt.scala 296:32]
+ reg nempty; // @[VSt.scala 291:23]
+ reg [8:0] count; // @[VSt.scala 292:22]
+ wire inc = io_axi_addr_valid & io_axi_addr_ready; // @[VSt.scala 293:31]
+ wire dec = io_axi_resp_valid & io_axi_resp_ready; // @[VSt.scala 294:31]
+ wire _T_27 = inc | dec; // @[VSt.scala 296:13]
+ wire [8:0] _GEN_2 = {{8'd0}, inc}; // @[VSt.scala 297:26]
+ wire [8:0] _nxtcount_T_1 = count + _GEN_2; // @[VSt.scala 297:26]
+ wire [8:0] _GEN_3 = {{8'd0}, dec}; // @[VSt.scala 297:32]
+ wire [8:0] nxtcount = _nxtcount_T_1 - _GEN_3; // @[VSt.scala 297:32]
VCmdq_5 q ( // @[VCmdq.scala 14:11]
.clock(q_clock),
.reset(q_reset),
@@ -110238,84 +110051,84 @@
.io_out_bits_data(data_io_out_bits_data),
.io_out_bits_strb(data_io_out_bits_strb)
);
- assign io_in_ready = q_io_in_ready; // @[VSt.scala 226:11]
- assign io_active = q_io_active; // @[VSt.scala 286:13]
- assign io_read_valid = q_io_out_valid & q_io_out_bits_vs_valid; // @[VSt.scala 238:35]
- assign io_read_addr = q_io_out_bits_vs_addr; // @[VSt.scala 240:16]
- assign io_axi_addr_valid = ctrl_io_out_valid; // @[VSt.scala 269:21]
+ assign io_in_ready = q_io_in_ready; // @[VSt.scala 227:11]
+ assign io_active = q_io_active; // @[VSt.scala 287:13]
+ assign io_read_valid = q_io_out_valid & q_io_out_bits_vs_valid; // @[VSt.scala 239:35]
+ assign io_read_addr = q_io_out_bits_vs_addr; // @[VSt.scala 241:16]
+ assign io_axi_addr_valid = ctrl_io_out_valid; // @[VSt.scala 270:21]
assign io_axi_addr_bits_addr = {io_axi_addr_bits_addr_hi,5'h0}; // @[Cat.scala 31:58]
- assign io_axi_addr_bits_id = ctrl_io_out_bits_id; // @[VSt.scala 271:23]
- assign io_axi_data_valid = ctrl_io_out_valid; // @[VSt.scala 275:21]
- assign io_axi_data_bits_data = data_io_out_bits_data; // @[VSt.scala 276:25]
- assign io_axi_data_bits_strb = data_io_out_bits_strb; // @[VSt.scala 277:25]
- assign io_axi_resp_ready = 1'h1; // @[VSt.scala 279:21]
- assign io_nempty = q_io_nempty | ctrl_io_out_valid | nempty; // @[VSt.scala 302:49]
+ assign io_axi_addr_bits_id = ctrl_io_out_bits_id; // @[VSt.scala 272:23]
+ assign io_axi_data_valid = ctrl_io_out_valid; // @[VSt.scala 276:21]
+ assign io_axi_data_bits_data = data_io_out_bits_data; // @[VSt.scala 277:25]
+ assign io_axi_data_bits_strb = data_io_out_bits_strb; // @[VSt.scala 278:25]
+ assign io_axi_resp_ready = 1'h1; // @[VSt.scala 280:21]
+ assign io_nempty = q_io_nempty | ctrl_io_out_valid | nempty; // @[VSt.scala 303:49]
assign q_clock = clock;
assign q_reset = reset;
- assign q_io_in_valid = io_in_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_valid = io_in_bits_0_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_op = io_in_bits_0_bits_op; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_f2 = io_in_bits_0_bits_f2; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_sz = io_in_bits_0_bits_sz; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_vs_valid = io_in_bits_0_bits_vs_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_vs_addr = io_in_bits_0_bits_vs_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_vs_tag = io_in_bits_0_bits_vs_tag; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_sv_addr = io_in_bits_0_bits_sv_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_0_bits_sv_data = io_in_bits_0_bits_sv_data; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_valid = io_in_bits_1_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_op = io_in_bits_1_bits_op; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_f2 = io_in_bits_1_bits_f2; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_sz = io_in_bits_1_bits_sz; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_vs_valid = io_in_bits_1_bits_vs_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_vs_addr = io_in_bits_1_bits_vs_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_vs_tag = io_in_bits_1_bits_vs_tag; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_sv_addr = io_in_bits_1_bits_sv_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_1_bits_sv_data = io_in_bits_1_bits_sv_data; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_valid = io_in_bits_2_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_op = io_in_bits_2_bits_op; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_f2 = io_in_bits_2_bits_f2; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_sz = io_in_bits_2_bits_sz; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_vs_valid = io_in_bits_2_bits_vs_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_vs_addr = io_in_bits_2_bits_vs_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_vs_tag = io_in_bits_2_bits_vs_tag; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_sv_addr = io_in_bits_2_bits_sv_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_2_bits_sv_data = io_in_bits_2_bits_sv_data; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_valid = io_in_bits_3_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_op = io_in_bits_3_bits_op; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_f2 = io_in_bits_3_bits_f2; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_sz = io_in_bits_3_bits_sz; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_vs_valid = io_in_bits_3_bits_vs_valid; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_vs_addr = io_in_bits_3_bits_vs_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_vs_tag = io_in_bits_3_bits_vs_tag; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_sv_addr = io_in_bits_3_bits_sv_addr; // @[VSt.scala 226:11]
- assign q_io_in_bits_3_bits_sv_data = io_in_bits_3_bits_sv_data; // @[VSt.scala 226:11]
- assign q_io_out_ready = _q_io_out_ready_T_4 & ctrlready; // @[VSt.scala 229:65]
+ assign q_io_in_valid = io_in_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_valid = io_in_bits_0_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_op = io_in_bits_0_bits_op; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_f2 = io_in_bits_0_bits_f2; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_sz = io_in_bits_0_bits_sz; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_m = io_in_bits_0_bits_m; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_vs_valid = io_in_bits_0_bits_vs_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_vs_addr = io_in_bits_0_bits_vs_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_vs_tag = io_in_bits_0_bits_vs_tag; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_sv_addr = io_in_bits_0_bits_sv_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_0_bits_sv_data = io_in_bits_0_bits_sv_data; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_valid = io_in_bits_1_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_op = io_in_bits_1_bits_op; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_f2 = io_in_bits_1_bits_f2; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_sz = io_in_bits_1_bits_sz; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_m = io_in_bits_1_bits_m; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_vs_valid = io_in_bits_1_bits_vs_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_vs_addr = io_in_bits_1_bits_vs_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_vs_tag = io_in_bits_1_bits_vs_tag; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_sv_addr = io_in_bits_1_bits_sv_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_1_bits_sv_data = io_in_bits_1_bits_sv_data; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_valid = io_in_bits_2_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_op = io_in_bits_2_bits_op; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_f2 = io_in_bits_2_bits_f2; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_sz = io_in_bits_2_bits_sz; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_m = io_in_bits_2_bits_m; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_vs_valid = io_in_bits_2_bits_vs_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_vs_addr = io_in_bits_2_bits_vs_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_vs_tag = io_in_bits_2_bits_vs_tag; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_sv_addr = io_in_bits_2_bits_sv_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_2_bits_sv_data = io_in_bits_2_bits_sv_data; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_valid = io_in_bits_3_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_op = io_in_bits_3_bits_op; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_f2 = io_in_bits_3_bits_f2; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_sz = io_in_bits_3_bits_sz; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_m = io_in_bits_3_bits_m; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_vs_valid = io_in_bits_3_bits_vs_valid; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_vs_addr = io_in_bits_3_bits_vs_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_vs_tag = io_in_bits_3_bits_vs_tag; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_sv_addr = io_in_bits_3_bits_sv_addr; // @[VSt.scala 227:11]
+ assign q_io_in_bits_3_bits_sv_data = io_in_bits_3_bits_sv_data; // @[VSt.scala 227:11]
+ assign q_io_out_ready = _q_io_out_ready_T_4 & ctrlready; // @[VSt.scala 230:65]
assign ctrl_clock = clock;
assign ctrl_reset = reset;
- assign ctrl_io_in_valid = q_io_out_valid & q_io_out_ready; // @[VSt.scala 234:31]
- assign ctrl_io_in_bits_addr = q_io_out_bits_addr; // @[VSt.scala 257:24]
- assign ctrl_io_in_bits_id = q_io_out_bits_vs_addr; // @[VSt.scala 258:24]
- assign ctrl_io_in_bits_size = qsize[5:0]; // @[VSt.scala 259:24]
- assign ctrl_io_in_bits_vstq = q_io_out_bits_op == 7'h4; // @[VSt.scala 260:44]
- assign ctrl_io_in_bits_quad = q_io_out_bits_quad; // @[VSt.scala 261:24]
- assign ctrl_io_out_ready = io_axi_addr_ready; // @[VSt.scala 263:21]
+ assign ctrl_io_in_valid = q_io_out_valid & q_io_out_ready; // @[VSt.scala 235:31]
+ assign ctrl_io_in_bits_addr = q_io_out_bits_addr; // @[VSt.scala 258:24]
+ assign ctrl_io_in_bits_id = q_io_out_bits_vs_addr; // @[VSt.scala 259:24]
+ assign ctrl_io_in_bits_size = qsize[5:0]; // @[VSt.scala 260:24]
+ assign ctrl_io_in_bits_vstq = q_io_out_bits_op == 7'h4; // @[VSt.scala 261:44]
+ assign ctrl_io_in_bits_quad = q_io_out_bits_quad; // @[VSt.scala 262:24]
+ assign ctrl_io_out_ready = io_axi_addr_ready; // @[VSt.scala 264:21]
assign data_clock = clock;
assign data_reset = reset;
- assign data_io_in_valid = dataEn; // @[VSt.scala 245:20]
- assign data_io_in_bits_data = _data_io_in_bits_data_dataout_T_16 | _data_io_in_bits_data_dataout_T_20; // @[VSt.scala 190:68]
- assign data_io_in_bits_strb = _data_io_in_bits_strb_strbout_T_16 | _data_io_in_bits_strb_strbout_T_20; // @[VSt.scala 217:69]
- assign data_io_out_ready = io_axi_addr_ready; // @[VSt.scala 248:21]
+ assign data_io_in_valid = dataEn; // @[VSt.scala 246:20]
+ assign data_io_in_bits_data = _data_io_in_bits_data_dataout_T_16 | _data_io_in_bits_data_dataout_T_20; // @[VSt.scala 191:68]
+ assign data_io_in_bits_strb = _data_io_in_bits_strb_strbout_T_16 | _data_io_in_bits_strb_strbout_T_20; // @[VSt.scala 218:69]
+ assign data_io_out_ready = io_axi_addr_ready; // @[VSt.scala 249:21]
always @(posedge clock) begin
`ifndef SYNTHESIS
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
if (~reset & ~(~(data_io_in_valid & ~data_io_in_ready))) begin
- $fatal; // @[VSt.scala 246:9]
+ $fatal; // @[VSt.scala 247:9]
end
`ifdef STOP_COND
end
@@ -110327,7 +110140,7 @@
`endif
if (~reset & ~(~(data_io_in_valid & ~data_io_in_ready))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:246 assert(!(data.io.in.valid && !data.io.in.ready))\n"); // @[VSt.scala 246:9]
+ "Assertion failed\n at VSt.scala:247 assert(!(data.io.in.valid && !data.io.in.ready))\n"); // @[VSt.scala 247:9]
end
`ifdef PRINTF_COND
end
@@ -110338,29 +110151,6 @@
if (`STOP_COND) begin
`endif
if (_T_4 & ~(~(ctrl_io_out_valid & ~ctrl_io_out_bits_addr[31]))) begin
- $fatal; // @[VSt.scala 272:9]
- end
- `ifdef STOP_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef PRINTF_COND
- if (`PRINTF_COND) begin
- `endif
- if (_T_4 & ~(~(ctrl_io_out_valid & ~ctrl_io_out_bits_addr[31]))) begin
- $fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:272 assert(!(ctrl.io.out.valid && !ctrl.io.out.bits.addr(31)))\n"); // @[VSt.scala 272:9]
- end
- `ifdef PRINTF_COND
- end
- `endif
- `endif // SYNTHESIS
- `ifndef SYNTHESIS
- `ifdef STOP_COND
- if (`STOP_COND) begin
- `endif
- if (_T_4 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
$fatal; // @[VSt.scala 273:9]
end
`ifdef STOP_COND
@@ -110371,9 +110161,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_4 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
+ if (_T_4 & ~(~(ctrl_io_out_valid & ~ctrl_io_out_bits_addr[31]))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:273 assert(!(io.axi.addr.valid && io.axi.addr.bits.addr(31)))\n"); // @[VSt.scala 273:9]
+ "Assertion failed\n at VSt.scala:273 assert(!(ctrl.io.out.valid && !ctrl.io.out.bits.addr(31)))\n"); // @[VSt.scala 273:9]
end
`ifdef PRINTF_COND
end
@@ -110383,8 +110173,8 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_4 & ~(io_axi_addr_valid == io_axi_data_valid)) begin
- $fatal; // @[VSt.scala 281:9]
+ if (_T_4 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
+ $fatal; // @[VSt.scala 274:9]
end
`ifdef STOP_COND
end
@@ -110394,9 +110184,9 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
- if (_T_4 & ~(io_axi_addr_valid == io_axi_data_valid)) begin
+ if (_T_4 & ~(~(io_axi_addr_valid & io_axi_addr_bits_addr[31]))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:281 assert(io.axi.addr.valid === io.axi.data.valid)\n"); // @[VSt.scala 281:9]
+ "Assertion failed\n at VSt.scala:274 assert(!(io.axi.addr.valid && io.axi.addr.bits.addr(31)))\n"); // @[VSt.scala 274:9]
end
`ifdef PRINTF_COND
end
@@ -110406,7 +110196,7 @@
`ifdef STOP_COND
if (`STOP_COND) begin
`endif
- if (_T_4 & ~(io_axi_addr_ready == io_axi_data_ready)) begin
+ if (_T_4 & ~(io_axi_addr_valid == io_axi_data_valid)) begin
$fatal; // @[VSt.scala 282:9]
end
`ifdef STOP_COND
@@ -110417,9 +110207,32 @@
`ifdef PRINTF_COND
if (`PRINTF_COND) begin
`endif
+ if (_T_4 & ~(io_axi_addr_valid == io_axi_data_valid)) begin
+ $fwrite(32'h80000002,
+ "Assertion failed\n at VSt.scala:282 assert(io.axi.addr.valid === io.axi.data.valid)\n"); // @[VSt.scala 282:9]
+ end
+ `ifdef PRINTF_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef STOP_COND
+ if (`STOP_COND) begin
+ `endif
+ if (_T_4 & ~(io_axi_addr_ready == io_axi_data_ready)) begin
+ $fatal; // @[VSt.scala 283:9]
+ end
+ `ifdef STOP_COND
+ end
+ `endif
+ `endif // SYNTHESIS
+ `ifndef SYNTHESIS
+ `ifdef PRINTF_COND
+ if (`PRINTF_COND) begin
+ `endif
if (_T_4 & ~(io_axi_addr_ready == io_axi_data_ready)) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VSt.scala:282 assert(io.axi.addr.ready === io.axi.data.ready)\n"); // @[VSt.scala 282:9]
+ "Assertion failed\n at VSt.scala:283 assert(io.axi.addr.ready === io.axi.data.ready)\n"); // @[VSt.scala 283:9]
end
`ifdef PRINTF_COND
end
@@ -110430,7 +110243,7 @@
if (`STOP_COND) begin
`endif
if (_T_27 & _T_4 & ~(count <= 9'h100)) begin
- $fatal; // @[VSt.scala 299:11]
+ $fatal; // @[VSt.scala 300:11]
end
`ifdef STOP_COND
end
@@ -110441,7 +110254,7 @@
if (`PRINTF_COND) begin
`endif
if (_T_27 & _T_4 & ~(count <= 9'h100)) begin
- $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:299 assert(count <= 256.U)\n"); // @[VSt.scala 299:11]
+ $fwrite(32'h80000002,"Assertion failed\n at VSt.scala:300 assert(count <= 256.U)\n"); // @[VSt.scala 300:11]
end
`ifdef PRINTF_COND
end
@@ -110449,23 +110262,23 @@
`endif // SYNTHESIS
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VSt.scala 234:31]
+ if (reset) begin // @[VSt.scala 235:31]
dataEn <= 1'h0;
end else begin
dataEn <= q_io_out_valid & q_io_out_ready;
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VSt.scala 295:21]
- nempty <= 1'h0; // @[VSt.scala 298:12]
- end else if (inc | dec) begin // @[VSt.scala 290:23]
+ if (reset) begin // @[VSt.scala 296:21]
+ nempty <= 1'h0; // @[VSt.scala 299:12]
+ end else if (inc | dec) begin // @[VSt.scala 291:23]
nempty <= nxtcount != 9'h0;
end
end
always @(posedge clock or posedge reset) begin
- if (reset) begin // @[VSt.scala 295:21]
- count <= 9'h0; // @[VSt.scala 297:11]
- end else if (inc | dec) begin // @[VSt.scala 291:22]
+ if (reset) begin // @[VSt.scala 296:21]
+ count <= 9'h0; // @[VSt.scala 298:11]
+ end else if (inc | dec) begin // @[VSt.scala 292:22]
count <= nxtcount;
end
end
@@ -121079,8 +120892,7 @@
`endif
if (_T_18 & ~(~(_convClear_T_1 & _T_457 != 79'h0))) begin
$fwrite(32'h80000002,
- "Assertion failed\n at VRegfile.scala:342 assert(!(convClear0 && (writePrev & convmaska) =/= 0.U)) // TODO: may need to delete, and retain next comments.\n"
- ); // @[VRegfile.scala 342:9]
+ "Assertion failed\n at VRegfile.scala:342 assert(!(convClear0 && (writePrev & convmaska) =/= 0.U))\n"); // @[VRegfile.scala 342:9]
end
`ifdef PRINTF_COND
end
@@ -122221,51 +122033,51 @@
wire _aluready_T_2 = valu_io_in_ready & vdec_io_cmdq_1_alu; // @[VCore.scala 129:39]
wire _aluready_T_3 = valu_io_in_ready & vdec_io_cmdq_0_alu; // @[VCore.scala 130:39]
wire [3:0] aluready = {_aluready_T,_aluready_T_1,_aluready_T_2,_aluready_T_3}; // @[Cat.scala 31:58]
- wire _convvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_conv; // @[VCore.scala 170:44]
- wire _convvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_conv; // @[VCore.scala 171:44]
- wire _convvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_conv; // @[VCore.scala 172:44]
- wire _convvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_conv; // @[VCore.scala 173:44]
+ wire _convvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_conv; // @[VCore.scala 167:44]
+ wire _convvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_conv; // @[VCore.scala 168:44]
+ wire _convvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_conv; // @[VCore.scala 169:44]
+ wire _convvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_conv; // @[VCore.scala 170:44]
wire [3:0] convvalid = {_convvalid_T,_convvalid_T_1,_convvalid_T_2,_convvalid_T_3}; // @[Cat.scala 31:58]
- wire _convready_T = vconv_io_in_ready & vdec_io_cmdq_3_conv; // @[VCore.scala 175:41]
- wire _convready_T_1 = vconv_io_in_ready & vdec_io_cmdq_2_conv; // @[VCore.scala 176:41]
- wire _convready_T_2 = vconv_io_in_ready & vdec_io_cmdq_1_conv; // @[VCore.scala 177:41]
- wire _convready_T_3 = vconv_io_in_ready & vdec_io_cmdq_0_conv; // @[VCore.scala 178:41]
+ wire _convready_T = vconv_io_in_ready & vdec_io_cmdq_3_conv; // @[VCore.scala 172:41]
+ wire _convready_T_1 = vconv_io_in_ready & vdec_io_cmdq_2_conv; // @[VCore.scala 173:41]
+ wire _convready_T_2 = vconv_io_in_ready & vdec_io_cmdq_1_conv; // @[VCore.scala 174:41]
+ wire _convready_T_3 = vconv_io_in_ready & vdec_io_cmdq_0_conv; // @[VCore.scala 175:41]
wire [3:0] convready = {_convready_T,_convready_T_1,_convready_T_2,_convready_T_3}; // @[Cat.scala 31:58]
- wire _ldstvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_ldst; // @[VCore.scala 193:44]
- wire _ldstvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_ldst; // @[VCore.scala 194:44]
- wire _ldstvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_ldst; // @[VCore.scala 195:44]
- wire _ldstvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_ldst; // @[VCore.scala 196:44]
+ wire _ldstvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_ldst; // @[VCore.scala 190:44]
+ wire _ldstvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_ldst; // @[VCore.scala 191:44]
+ wire _ldstvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_ldst; // @[VCore.scala 192:44]
+ wire _ldstvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_ldst; // @[VCore.scala 193:44]
wire [3:0] ldstvalid = {_ldstvalid_T,_ldstvalid_T_1,_ldstvalid_T_2,_ldstvalid_T_3}; // @[Cat.scala 31:58]
- wire _ldstready_T = vldst_io_in_ready & vdec_io_cmdq_3_ldst; // @[VCore.scala 198:41]
- wire _ldstready_T_1 = vldst_io_in_ready & vdec_io_cmdq_2_ldst; // @[VCore.scala 199:41]
- wire _ldstready_T_2 = vldst_io_in_ready & vdec_io_cmdq_1_ldst; // @[VCore.scala 200:41]
- wire _ldstready_T_3 = vldst_io_in_ready & vdec_io_cmdq_0_ldst; // @[VCore.scala 201:41]
+ wire _ldstready_T = vldst_io_in_ready & vdec_io_cmdq_3_ldst; // @[VCore.scala 195:41]
+ wire _ldstready_T_1 = vldst_io_in_ready & vdec_io_cmdq_2_ldst; // @[VCore.scala 196:41]
+ wire _ldstready_T_2 = vldst_io_in_ready & vdec_io_cmdq_1_ldst; // @[VCore.scala 197:41]
+ wire _ldstready_T_3 = vldst_io_in_ready & vdec_io_cmdq_0_ldst; // @[VCore.scala 198:41]
wire [3:0] ldstready = {_ldstready_T,_ldstready_T_1,_ldstready_T_2,_ldstready_T_3}; // @[Cat.scala 31:58]
- wire _ldvalid_T = vdec_io_cmdq_3_ld & vdec_io_out_3_valid; // @[VCore.scala 223:37]
- wire _ldvalid_T_1 = vdec_io_cmdq_2_ld & vdec_io_out_2_valid; // @[VCore.scala 224:37]
- wire _ldvalid_T_2 = vdec_io_cmdq_1_ld & vdec_io_out_1_valid; // @[VCore.scala 225:37]
- wire _ldvalid_T_3 = vdec_io_cmdq_0_ld & vdec_io_out_0_valid; // @[VCore.scala 226:37]
+ wire _ldvalid_T = vdec_io_cmdq_3_ld & vdec_io_out_3_valid; // @[VCore.scala 220:37]
+ wire _ldvalid_T_1 = vdec_io_cmdq_2_ld & vdec_io_out_2_valid; // @[VCore.scala 221:37]
+ wire _ldvalid_T_2 = vdec_io_cmdq_1_ld & vdec_io_out_1_valid; // @[VCore.scala 222:37]
+ wire _ldvalid_T_3 = vdec_io_cmdq_0_ld & vdec_io_out_0_valid; // @[VCore.scala 223:37]
wire [3:0] ldvalid = {_ldvalid_T,_ldvalid_T_1,_ldvalid_T_2,_ldvalid_T_3}; // @[Cat.scala 31:58]
- wire _ldready_T = vdec_io_cmdq_3_ld & vld_io_in_ready; // @[VCore.scala 228:37]
- wire _ldready_T_1 = vdec_io_cmdq_2_ld & vld_io_in_ready; // @[VCore.scala 229:37]
- wire _ldready_T_2 = vdec_io_cmdq_1_ld & vld_io_in_ready; // @[VCore.scala 230:37]
- wire _ldready_T_3 = vdec_io_cmdq_0_ld & vld_io_in_ready; // @[VCore.scala 231:37]
+ wire _ldready_T = vdec_io_cmdq_3_ld & vld_io_in_ready; // @[VCore.scala 225:37]
+ wire _ldready_T_1 = vdec_io_cmdq_2_ld & vld_io_in_ready; // @[VCore.scala 226:37]
+ wire _ldready_T_2 = vdec_io_cmdq_1_ld & vld_io_in_ready; // @[VCore.scala 227:37]
+ wire _ldready_T_3 = vdec_io_cmdq_0_ld & vld_io_in_ready; // @[VCore.scala 228:37]
wire [3:0] ldready = {_ldready_T,_ldready_T_1,_ldready_T_2,_ldready_T_3}; // @[Cat.scala 31:58]
- wire _stvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_st; // @[VCore.scala 247:39]
- wire _stvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_st; // @[VCore.scala 248:39]
- wire _stvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_st; // @[VCore.scala 249:39]
- wire _stvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_st; // @[VCore.scala 250:39]
+ wire _stvalid_T = vdec_io_out_3_valid & vdec_io_cmdq_3_st; // @[VCore.scala 244:39]
+ wire _stvalid_T_1 = vdec_io_out_2_valid & vdec_io_cmdq_2_st; // @[VCore.scala 245:39]
+ wire _stvalid_T_2 = vdec_io_out_1_valid & vdec_io_cmdq_1_st; // @[VCore.scala 246:39]
+ wire _stvalid_T_3 = vdec_io_out_0_valid & vdec_io_cmdq_0_st; // @[VCore.scala 247:39]
wire [3:0] stvalid = {_stvalid_T,_stvalid_T_1,_stvalid_T_2,_stvalid_T_3}; // @[Cat.scala 31:58]
- wire _stready_T = vst_io_in_ready & vdec_io_cmdq_3_st; // @[VCore.scala 252:34]
- wire _stready_T_1 = vst_io_in_ready & vdec_io_cmdq_2_st; // @[VCore.scala 253:34]
- wire _stready_T_2 = vst_io_in_ready & vdec_io_cmdq_1_st; // @[VCore.scala 254:34]
- wire _stready_T_3 = vst_io_in_ready & vdec_io_cmdq_0_st; // @[VCore.scala 255:34]
+ wire _stready_T = vst_io_in_ready & vdec_io_cmdq_3_st; // @[VCore.scala 249:34]
+ wire _stready_T_1 = vst_io_in_ready & vdec_io_cmdq_2_st; // @[VCore.scala 250:34]
+ wire _stready_T_2 = vst_io_in_ready & vdec_io_cmdq_1_st; // @[VCore.scala 251:34]
+ wire _stready_T_3 = vst_io_in_ready & vdec_io_cmdq_0_st; // @[VCore.scala 252:34]
wire [3:0] stready = {_stready_T,_stready_T_1,_stready_T_2,_stready_T_3}; // @[Cat.scala 31:58]
- wire _vdec_io_out_0_ready_T_6 = aluready[0] | convready[0] | ldstready[0] | ldready[0]; // @[VCore.scala 292:73]
- wire _vdec_io_out_1_ready_T_6 = aluready[1] | convready[1] | ldstready[1] | ldready[1]; // @[VCore.scala 292:73]
- wire _vdec_io_out_2_ready_T_6 = aluready[2] | convready[2] | ldstready[2] | ldready[2]; // @[VCore.scala 292:73]
- wire _vdec_io_out_3_ready_T_6 = aluready[3] | convready[3] | ldstready[3] | ldready[3]; // @[VCore.scala 292:73]
- wire _io_score_mactive_T_1 = vinst_io_nempty | vdec_io_nempty | vld_io_nempty; // @[VCore.scala 298:57]
+ wire _vdec_io_out_0_ready_T_6 = aluready[0] | convready[0] | ldstready[0] | ldready[0]; // @[VCore.scala 289:73]
+ wire _vdec_io_out_1_ready_T_6 = aluready[1] | convready[1] | ldstready[1] | ldready[1]; // @[VCore.scala 289:73]
+ wire _vdec_io_out_2_ready_T_6 = aluready[2] | convready[2] | ldstready[2] | ldready[2]; // @[VCore.scala 289:73]
+ wire _vdec_io_out_3_ready_T_6 = aluready[3] | convready[3] | ldstready[3] | ldready[3]; // @[VCore.scala 289:73]
+ wire _io_score_mactive_T_1 = vinst_io_nempty | vdec_io_nempty | vld_io_nempty; // @[VCore.scala 295:57]
VInst vinst ( // @[VInst.scala 9:18]
.clock(vinst_clock),
.reset(vinst_reset),
@@ -123014,25 +122826,25 @@
assign io_score_rd_3_valid = vinst_io_rd_3_valid; // @[VCore.scala 68:15]
assign io_score_rd_3_addr = vinst_io_rd_3_addr; // @[VCore.scala 68:15]
assign io_score_rd_3_data = vinst_io_rd_3_data; // @[VCore.scala 68:15]
- assign io_score_mactive = _io_score_mactive_T_1 | vst_io_nempty; // @[VCore.scala 299:37]
+ assign io_score_mactive = _io_score_mactive_T_1 | vst_io_nempty; // @[VCore.scala 296:37]
assign io_score_undef = vdec_io_undef; // @[VCore.scala 90:18]
- assign io_dbus_valid = vldst_io_dbus_valid; // @[VCore.scala 215:11]
- assign io_dbus_write = vldst_io_dbus_write; // @[VCore.scala 215:11]
- assign io_dbus_addr = vldst_io_dbus_addr; // @[VCore.scala 215:11]
- assign io_dbus_adrx = vldst_io_dbus_adrx; // @[VCore.scala 215:11]
- assign io_dbus_size = vldst_io_dbus_size; // @[VCore.scala 215:11]
- assign io_dbus_wdata = vldst_io_dbus_wdata; // @[VCore.scala 215:11]
- assign io_dbus_wmask = vldst_io_dbus_wmask; // @[VCore.scala 215:11]
- assign io_last = vldst_io_last; // @[VCore.scala 216:11]
- assign io_ld_addr_valid = vld_io_axi_addr_valid; // @[VCore.scala 240:9]
- assign io_ld_addr_bits_addr = vld_io_axi_addr_bits_addr; // @[VCore.scala 240:9]
- assign io_ld_addr_bits_id = vld_io_axi_addr_bits_id; // @[VCore.scala 240:9]
- assign io_st_addr_valid = vst_io_axi_addr_valid; // @[VCore.scala 264:9]
- assign io_st_addr_bits_addr = vst_io_axi_addr_bits_addr; // @[VCore.scala 264:9]
- assign io_st_addr_bits_id = vst_io_axi_addr_bits_id; // @[VCore.scala 264:9]
- assign io_st_data_valid = vst_io_axi_data_valid; // @[VCore.scala 264:9]
- assign io_st_data_bits_data = vst_io_axi_data_bits_data; // @[VCore.scala 264:9]
- assign io_st_data_bits_strb = vst_io_axi_data_bits_strb; // @[VCore.scala 264:9]
+ assign io_dbus_valid = vldst_io_dbus_valid; // @[VCore.scala 212:11]
+ assign io_dbus_write = vldst_io_dbus_write; // @[VCore.scala 212:11]
+ assign io_dbus_addr = vldst_io_dbus_addr; // @[VCore.scala 212:11]
+ assign io_dbus_adrx = vldst_io_dbus_adrx; // @[VCore.scala 212:11]
+ assign io_dbus_size = vldst_io_dbus_size; // @[VCore.scala 212:11]
+ assign io_dbus_wdata = vldst_io_dbus_wdata; // @[VCore.scala 212:11]
+ assign io_dbus_wmask = vldst_io_dbus_wmask; // @[VCore.scala 212:11]
+ assign io_last = vldst_io_last; // @[VCore.scala 213:11]
+ assign io_ld_addr_valid = vld_io_axi_addr_valid; // @[VCore.scala 237:9]
+ assign io_ld_addr_bits_addr = vld_io_axi_addr_bits_addr; // @[VCore.scala 237:9]
+ assign io_ld_addr_bits_id = vld_io_axi_addr_bits_id; // @[VCore.scala 237:9]
+ assign io_st_addr_valid = vst_io_axi_addr_valid; // @[VCore.scala 261:9]
+ assign io_st_addr_bits_addr = vst_io_axi_addr_bits_addr; // @[VCore.scala 261:9]
+ assign io_st_addr_bits_id = vst_io_axi_addr_bits_id; // @[VCore.scala 261:9]
+ assign io_st_data_valid = vst_io_axi_data_valid; // @[VCore.scala 261:9]
+ assign io_st_data_bits_data = vst_io_axi_data_bits_data; // @[VCore.scala 261:9]
+ assign io_st_data_bits_strb = vst_io_axi_data_bits_strb; // @[VCore.scala 261:9]
assign vinst_clock = clock;
assign vinst_reset = reset;
assign vinst_io_in_0_valid = io_score_vinst_0_valid; // @[VCore.scala 66:15]
@@ -123084,10 +122896,10 @@
assign vdec_io_in_bits_3_bits_inst = vinst_io_out_lane_3_bits_inst; // @[VCore.scala 87:24]
assign vdec_io_in_bits_3_bits_addr = vinst_io_out_lane_3_bits_addr; // @[VCore.scala 87:24]
assign vdec_io_in_bits_3_bits_data = vinst_io_out_lane_3_bits_data; // @[VCore.scala 87:24]
- assign vdec_io_out_0_ready = _vdec_io_out_0_ready_T_6 | stready[0]; // @[VCore.scala 293:40]
- assign vdec_io_out_1_ready = _vdec_io_out_1_ready_T_6 | stready[1]; // @[VCore.scala 293:40]
- assign vdec_io_out_2_ready = _vdec_io_out_2_ready_T_6 | stready[2]; // @[VCore.scala 293:40]
- assign vdec_io_out_3_ready = _vdec_io_out_3_ready_T_6 | stready[3]; // @[VCore.scala 293:40]
+ assign vdec_io_out_0_ready = _vdec_io_out_0_ready_T_6 | stready[0]; // @[VCore.scala 290:40]
+ assign vdec_io_out_1_ready = _vdec_io_out_1_ready_T_6 | stready[1]; // @[VCore.scala 290:40]
+ assign vdec_io_out_2_ready = _vdec_io_out_2_ready_T_6 | stready[2]; // @[VCore.scala 290:40]
+ assign vdec_io_out_3_ready = _vdec_io_out_3_ready_T_6 | stready[3]; // @[VCore.scala 290:40]
assign vdec_io_active = _vdec_io_active_T_1 | vst_io_active; // @[VCore.scala 78:72]
assign vdec_io_vrfsb_data = vrf_io_vrfsb_data; // @[VCore.scala 76:17]
assign valu_clock = clock;
@@ -123213,7 +123025,7 @@
assign valu_io_in_bits_3_bits_sv_valid = vdec_io_out_3_bits_sv_valid; // @[VCore.scala 136:29]
assign valu_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 136:29]
assign valu_io_in_bits_3_bits_cmdsync = vdec_io_out_3_bits_cmdsync; // @[VCore.scala 136:29]
- assign valu_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 166:17]
+ assign valu_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 163:17]
assign valu_io_read_0_data = vrf_io_read_0_data; // @[VCore.scala 146:26]
assign valu_io_read_1_data = vrf_io_read_1_data; // @[VCore.scala 146:26]
assign valu_io_read_2_data = vrf_io_read_2_data; // @[VCore.scala 146:26]
@@ -123222,184 +123034,184 @@
assign valu_io_read_5_data = vrf_io_read_5_data; // @[VCore.scala 146:26]
assign vconv_clock = clock;
assign vconv_reset = reset;
- assign vconv_io_in_valid = convvalid != 4'h0; // @[VCore.scala 180:34]
- assign vconv_io_in_bits_0_valid = convvalid[0]; // @[VCore.scala 183:43]
- assign vconv_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_0_bits_vu_addr = vdec_io_out_0_bits_vu_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_1_valid = convvalid[1]; // @[VCore.scala 183:43]
- assign vconv_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_1_bits_vu_addr = vdec_io_out_1_bits_vu_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_2_valid = convvalid[2]; // @[VCore.scala 183:43]
- assign vconv_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_2_bits_vu_addr = vdec_io_out_2_bits_vu_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_3_valid = convvalid[3]; // @[VCore.scala 183:43]
- assign vconv_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_3_bits_vu_addr = vdec_io_out_3_bits_vu_addr; // @[VCore.scala 184:30]
- assign vconv_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 184:30]
- assign vconv_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 189:18]
+ assign vconv_io_in_valid = convvalid != 4'h0; // @[VCore.scala 177:34]
+ assign vconv_io_in_bits_0_valid = convvalid[0]; // @[VCore.scala 180:43]
+ assign vconv_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_0_bits_vu_addr = vdec_io_out_0_bits_vu_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_1_valid = convvalid[1]; // @[VCore.scala 180:43]
+ assign vconv_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_1_bits_vu_addr = vdec_io_out_1_bits_vu_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_2_valid = convvalid[2]; // @[VCore.scala 180:43]
+ assign vconv_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_2_bits_vu_addr = vdec_io_out_2_bits_vu_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_3_valid = convvalid[3]; // @[VCore.scala 180:43]
+ assign vconv_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_3_bits_vu_addr = vdec_io_out_3_bits_vu_addr; // @[VCore.scala 181:30]
+ assign vconv_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 181:30]
+ assign vconv_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 186:18]
assign vldst_clock = clock;
assign vldst_reset = reset;
- assign vldst_io_in_valid = ldstvalid != 4'h0; // @[VCore.scala 203:34]
- assign vldst_io_in_bits_0_valid = ldstvalid[0]; // @[VCore.scala 206:43]
- assign vldst_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_vd_valid = vdec_io_out_0_bits_vd_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_vd_addr = vdec_io_out_0_bits_vd_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_vs_tag = vdec_io_out_0_bits_vs_tag; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_valid = ldstvalid[1]; // @[VCore.scala 206:43]
- assign vldst_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_vd_valid = vdec_io_out_1_bits_vd_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_vd_addr = vdec_io_out_1_bits_vd_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_vs_tag = vdec_io_out_1_bits_vs_tag; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_valid = ldstvalid[2]; // @[VCore.scala 206:43]
- assign vldst_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_vd_valid = vdec_io_out_2_bits_vd_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_vd_addr = vdec_io_out_2_bits_vd_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_vs_tag = vdec_io_out_2_bits_vs_tag; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_valid = ldstvalid[3]; // @[VCore.scala 206:43]
- assign vldst_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_vd_valid = vdec_io_out_3_bits_vd_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_vd_addr = vdec_io_out_3_bits_vd_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_vs_tag = vdec_io_out_3_bits_vs_tag; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 207:30]
- assign vldst_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 207:30]
- assign vldst_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 213:18]
- assign vldst_io_read_ready = ~vst_io_read_valid; // @[VCore.scala 210:26]
- assign vldst_io_read_data = vrf_io_read_6_data; // @[VCore.scala 211:22]
- assign vldst_io_dbus_ready = io_dbus_ready; // @[VCore.scala 215:11]
- assign vldst_io_dbus_rdata = io_dbus_rdata; // @[VCore.scala 215:11]
+ assign vldst_io_in_valid = ldstvalid != 4'h0; // @[VCore.scala 200:34]
+ assign vldst_io_in_bits_0_valid = ldstvalid[0]; // @[VCore.scala 203:43]
+ assign vldst_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_vd_valid = vdec_io_out_0_bits_vd_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_vd_addr = vdec_io_out_0_bits_vd_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_vs_tag = vdec_io_out_0_bits_vs_tag; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_valid = ldstvalid[1]; // @[VCore.scala 203:43]
+ assign vldst_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_vd_valid = vdec_io_out_1_bits_vd_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_vd_addr = vdec_io_out_1_bits_vd_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_vs_tag = vdec_io_out_1_bits_vs_tag; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_valid = ldstvalid[2]; // @[VCore.scala 203:43]
+ assign vldst_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_vd_valid = vdec_io_out_2_bits_vd_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_vd_addr = vdec_io_out_2_bits_vd_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_vs_tag = vdec_io_out_2_bits_vs_tag; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_valid = ldstvalid[3]; // @[VCore.scala 203:43]
+ assign vldst_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_vd_valid = vdec_io_out_3_bits_vd_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_vd_addr = vdec_io_out_3_bits_vd_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_vs_tag = vdec_io_out_3_bits_vs_tag; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 204:30]
+ assign vldst_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 204:30]
+ assign vldst_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 210:18]
+ assign vldst_io_read_ready = ~vst_io_read_valid; // @[VCore.scala 207:26]
+ assign vldst_io_read_data = vrf_io_read_6_data; // @[VCore.scala 208:22]
+ assign vldst_io_dbus_ready = io_dbus_ready; // @[VCore.scala 212:11]
+ assign vldst_io_dbus_rdata = io_dbus_rdata; // @[VCore.scala 212:11]
assign vld_clock = clock;
assign vld_reset = reset;
- assign vld_io_in_valid = ldvalid != 4'h0; // @[VCore.scala 233:30]
- assign vld_io_in_bits_0_valid = ldvalid[0]; // @[VCore.scala 236:39]
- assign vld_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_vd_valid = vdec_io_out_0_bits_vd_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_vd_addr = vdec_io_out_0_bits_vd_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_valid = ldvalid[1]; // @[VCore.scala 236:39]
- assign vld_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_vd_valid = vdec_io_out_1_bits_vd_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_vd_addr = vdec_io_out_1_bits_vd_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_valid = ldvalid[2]; // @[VCore.scala 236:39]
- assign vld_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_vd_valid = vdec_io_out_2_bits_vd_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_vd_addr = vdec_io_out_2_bits_vd_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_valid = ldvalid[3]; // @[VCore.scala 236:39]
- assign vld_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_vd_valid = vdec_io_out_3_bits_vd_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_vd_addr = vdec_io_out_3_bits_vd_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 237:28]
- assign vld_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 237:28]
- assign vld_io_axi_addr_ready = io_ld_addr_ready; // @[VCore.scala 240:9]
- assign vld_io_axi_data_valid = io_ld_data_valid; // @[VCore.scala 240:9]
- assign vld_io_axi_data_bits_id = io_ld_data_bits_id; // @[VCore.scala 240:9]
- assign vld_io_axi_data_bits_data = io_ld_data_bits_data; // @[VCore.scala 240:9]
+ assign vld_io_in_valid = ldvalid != 4'h0; // @[VCore.scala 230:30]
+ assign vld_io_in_bits_0_valid = ldvalid[0]; // @[VCore.scala 233:39]
+ assign vld_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_vd_valid = vdec_io_out_0_bits_vd_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_vd_addr = vdec_io_out_0_bits_vd_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_valid = ldvalid[1]; // @[VCore.scala 233:39]
+ assign vld_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_vd_valid = vdec_io_out_1_bits_vd_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_vd_addr = vdec_io_out_1_bits_vd_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_valid = ldvalid[2]; // @[VCore.scala 233:39]
+ assign vld_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_vd_valid = vdec_io_out_2_bits_vd_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_vd_addr = vdec_io_out_2_bits_vd_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_valid = ldvalid[3]; // @[VCore.scala 233:39]
+ assign vld_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_vd_valid = vdec_io_out_3_bits_vd_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_vd_addr = vdec_io_out_3_bits_vd_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 234:28]
+ assign vld_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 234:28]
+ assign vld_io_axi_addr_ready = io_ld_addr_ready; // @[VCore.scala 237:9]
+ assign vld_io_axi_data_valid = io_ld_data_valid; // @[VCore.scala 237:9]
+ assign vld_io_axi_data_bits_id = io_ld_data_bits_id; // @[VCore.scala 237:9]
+ assign vld_io_axi_data_bits_data = io_ld_data_bits_data; // @[VCore.scala 237:9]
assign vst_clock = clock;
assign vst_reset = reset;
- assign vst_io_in_valid = stvalid != 4'h0; // @[VCore.scala 257:30]
- assign vst_io_in_bits_0_valid = stvalid[0]; // @[VCore.scala 260:39]
- assign vst_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_vs_tag = vdec_io_out_0_bits_vs_tag; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_valid = stvalid[1]; // @[VCore.scala 260:39]
- assign vst_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_vs_tag = vdec_io_out_1_bits_vs_tag; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_valid = stvalid[2]; // @[VCore.scala 260:39]
- assign vst_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_vs_tag = vdec_io_out_2_bits_vs_tag; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_valid = stvalid[3]; // @[VCore.scala 260:39]
- assign vst_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_vs_tag = vdec_io_out_3_bits_vs_tag; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 261:28]
- assign vst_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 261:28]
- assign vst_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 266:16]
- assign vst_io_read_ready = 1'h1; // @[VCore.scala 268:21]
- assign vst_io_read_data = vrf_io_read_6_data; // @[VCore.scala 269:20]
- assign vst_io_axi_addr_ready = io_st_addr_ready; // @[VCore.scala 264:9]
- assign vst_io_axi_data_ready = io_st_data_ready; // @[VCore.scala 264:9]
- assign vst_io_axi_resp_valid = io_st_resp_valid; // @[VCore.scala 264:9]
+ assign vst_io_in_valid = stvalid != 4'h0; // @[VCore.scala 254:30]
+ assign vst_io_in_bits_0_valid = stvalid[0]; // @[VCore.scala 257:39]
+ assign vst_io_in_bits_0_bits_op = vdec_io_out_0_bits_op; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_f2 = vdec_io_out_0_bits_f2; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_sz = vdec_io_out_0_bits_sz; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_m = vdec_io_out_0_bits_m; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_vs_valid = vdec_io_out_0_bits_vs_valid; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_vs_addr = vdec_io_out_0_bits_vs_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_vs_tag = vdec_io_out_0_bits_vs_tag; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_sv_addr = vdec_io_out_0_bits_sv_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_0_bits_sv_data = vdec_io_out_0_bits_sv_data; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_valid = stvalid[1]; // @[VCore.scala 257:39]
+ assign vst_io_in_bits_1_bits_op = vdec_io_out_1_bits_op; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_f2 = vdec_io_out_1_bits_f2; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_sz = vdec_io_out_1_bits_sz; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_m = vdec_io_out_1_bits_m; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_vs_valid = vdec_io_out_1_bits_vs_valid; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_vs_addr = vdec_io_out_1_bits_vs_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_vs_tag = vdec_io_out_1_bits_vs_tag; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_sv_addr = vdec_io_out_1_bits_sv_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_1_bits_sv_data = vdec_io_out_1_bits_sv_data; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_valid = stvalid[2]; // @[VCore.scala 257:39]
+ assign vst_io_in_bits_2_bits_op = vdec_io_out_2_bits_op; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_f2 = vdec_io_out_2_bits_f2; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_sz = vdec_io_out_2_bits_sz; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_m = vdec_io_out_2_bits_m; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_vs_valid = vdec_io_out_2_bits_vs_valid; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_vs_addr = vdec_io_out_2_bits_vs_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_vs_tag = vdec_io_out_2_bits_vs_tag; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_sv_addr = vdec_io_out_2_bits_sv_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_2_bits_sv_data = vdec_io_out_2_bits_sv_data; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_valid = stvalid[3]; // @[VCore.scala 257:39]
+ assign vst_io_in_bits_3_bits_op = vdec_io_out_3_bits_op; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_f2 = vdec_io_out_3_bits_f2; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_sz = vdec_io_out_3_bits_sz; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_m = vdec_io_out_3_bits_m; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_vs_valid = vdec_io_out_3_bits_vs_valid; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_vs_addr = vdec_io_out_3_bits_vs_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_vs_tag = vdec_io_out_3_bits_vs_tag; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_sv_addr = vdec_io_out_3_bits_sv_addr; // @[VCore.scala 258:28]
+ assign vst_io_in_bits_3_bits_sv_data = vdec_io_out_3_bits_sv_data; // @[VCore.scala 258:28]
+ assign vst_io_vrfsb = vrf_io_vrfsb_data; // @[VCore.scala 263:16]
+ assign vst_io_read_ready = 1'h1; // @[VCore.scala 265:21]
+ assign vst_io_read_data = vrf_io_read_6_data; // @[VCore.scala 266:20]
+ assign vst_io_axi_addr_ready = io_st_addr_ready; // @[VCore.scala 261:9]
+ assign vst_io_axi_data_ready = io_st_data_ready; // @[VCore.scala 261:9]
+ assign vst_io_axi_resp_valid = io_st_resp_valid; // @[VCore.scala 261:9]
assign vrf_clock = clock;
assign vrf_reset = reset;
assign vrf_io_read_0_valid = valu_io_read_0_valid; // @[VCore.scala 140:26]
@@ -123414,12 +123226,12 @@
assign vrf_io_read_4_addr = valu_io_read_4_addr; // @[VCore.scala 141:25]
assign vrf_io_read_5_valid = valu_io_read_5_valid; // @[VCore.scala 140:26]
assign vrf_io_read_5_addr = valu_io_read_5_addr; // @[VCore.scala 141:25]
- assign vrf_io_read_6_valid = vst_io_read_valid | vldst_io_read_valid; // @[VCore.scala 283:45]
- assign vrf_io_read_6_addr = vst_io_read_valid ? vst_io_read_addr : vldst_io_read_addr; // @[VCore.scala 284:29]
- assign vrf_io_scalar_0_valid = valu_io_scalar_0_valid; // @[VCore.scala 162:28]
- assign vrf_io_scalar_0_data = valu_io_scalar_0_data; // @[VCore.scala 163:27]
- assign vrf_io_scalar_1_valid = valu_io_scalar_1_valid; // @[VCore.scala 162:28]
- assign vrf_io_scalar_1_data = valu_io_scalar_1_data; // @[VCore.scala 163:27]
+ assign vrf_io_read_6_valid = vst_io_read_valid | vldst_io_read_valid; // @[VCore.scala 280:45]
+ assign vrf_io_read_6_addr = vst_io_read_valid ? vst_io_read_addr : vldst_io_read_addr; // @[VCore.scala 281:29]
+ assign vrf_io_scalar_0_valid = valu_io_scalar_0_valid; // @[VCore.scala 159:28]
+ assign vrf_io_scalar_0_data = valu_io_scalar_0_data; // @[VCore.scala 160:27]
+ assign vrf_io_scalar_1_valid = valu_io_scalar_1_valid; // @[VCore.scala 159:28]
+ assign vrf_io_scalar_1_data = valu_io_scalar_1_data; // @[VCore.scala 160:27]
assign vrf_io_write_0_valid = valu_io_write_0_valid; // @[VCore.scala 150:27]
assign vrf_io_write_0_addr = valu_io_write_0_addr; // @[VCore.scala 151:26]
assign vrf_io_write_0_data = valu_io_write_0_data; // @[VCore.scala 152:26]
@@ -123432,12 +123244,12 @@
assign vrf_io_write_3_valid = valu_io_write_3_valid; // @[VCore.scala 150:27]
assign vrf_io_write_3_addr = valu_io_write_3_addr; // @[VCore.scala 151:26]
assign vrf_io_write_3_data = valu_io_write_3_data; // @[VCore.scala 152:26]
- assign vrf_io_write_4_valid = vldst_io_write_valid; // @[VCore.scala 273:25]
- assign vrf_io_write_4_addr = vldst_io_write_addr; // @[VCore.scala 274:24]
- assign vrf_io_write_4_data = vldst_io_write_data; // @[VCore.scala 275:24]
- assign vrf_io_write_5_valid = vld_io_write_valid; // @[VCore.scala 277:25]
- assign vrf_io_write_5_addr = vld_io_write_addr; // @[VCore.scala 278:24]
- assign vrf_io_write_5_data = vld_io_write_data; // @[VCore.scala 279:24]
+ assign vrf_io_write_4_valid = vldst_io_write_valid; // @[VCore.scala 270:25]
+ assign vrf_io_write_4_addr = vldst_io_write_addr; // @[VCore.scala 271:24]
+ assign vrf_io_write_4_data = vldst_io_write_data; // @[VCore.scala 272:24]
+ assign vrf_io_write_5_valid = vld_io_write_valid; // @[VCore.scala 274:25]
+ assign vrf_io_write_5_addr = vld_io_write_addr; // @[VCore.scala 275:24]
+ assign vrf_io_write_5_data = vld_io_write_data; // @[VCore.scala 276:24]
assign vrf_io_whint_0_valid = valu_io_whint_0_valid; // @[VCore.scala 154:27]
assign vrf_io_whint_0_addr = valu_io_whint_0_addr; // @[VCore.scala 155:26]
assign vrf_io_whint_1_valid = valu_io_whint_1_valid; // @[VCore.scala 154:27]
@@ -123446,20 +123258,20 @@
assign vrf_io_whint_2_addr = valu_io_whint_2_addr; // @[VCore.scala 155:26]
assign vrf_io_whint_3_valid = valu_io_whint_3_valid; // @[VCore.scala 154:27]
assign vrf_io_whint_3_addr = valu_io_whint_3_addr; // @[VCore.scala 155:26]
- assign vrf_io_conv_valid = vconv_io_out_valid; // @[VCore.scala 187:15]
- assign vrf_io_conv_ready = vconv_io_out_ready; // @[VCore.scala 187:15]
- assign vrf_io_conv_op_conv = vconv_io_out_op_conv; // @[VCore.scala 187:15]
- assign vrf_io_conv_op_init = vconv_io_out_op_init; // @[VCore.scala 187:15]
- assign vrf_io_conv_op_tran = vconv_io_out_op_tran; // @[VCore.scala 187:15]
- assign vrf_io_conv_op_wclr = vconv_io_out_op_wclr; // @[VCore.scala 187:15]
- assign vrf_io_conv_addr1 = vconv_io_out_addr1; // @[VCore.scala 187:15]
- assign vrf_io_conv_addr2 = vconv_io_out_addr2; // @[VCore.scala 187:15]
- assign vrf_io_conv_mode = vconv_io_out_mode; // @[VCore.scala 187:15]
- assign vrf_io_conv_index = vconv_io_out_index; // @[VCore.scala 187:15]
- assign vrf_io_conv_abias = vconv_io_out_abias; // @[VCore.scala 187:15]
- assign vrf_io_conv_bbias = vconv_io_out_bbias; // @[VCore.scala 187:15]
- assign vrf_io_conv_asign = vconv_io_out_asign; // @[VCore.scala 187:15]
- assign vrf_io_conv_bsign = vconv_io_out_bsign; // @[VCore.scala 187:15]
+ assign vrf_io_conv_valid = vconv_io_out_valid; // @[VCore.scala 184:15]
+ assign vrf_io_conv_ready = vconv_io_out_ready; // @[VCore.scala 184:15]
+ assign vrf_io_conv_op_conv = vconv_io_out_op_conv; // @[VCore.scala 184:15]
+ assign vrf_io_conv_op_init = vconv_io_out_op_init; // @[VCore.scala 184:15]
+ assign vrf_io_conv_op_tran = vconv_io_out_op_tran; // @[VCore.scala 184:15]
+ assign vrf_io_conv_op_wclr = vconv_io_out_op_wclr; // @[VCore.scala 184:15]
+ assign vrf_io_conv_addr1 = vconv_io_out_addr1; // @[VCore.scala 184:15]
+ assign vrf_io_conv_addr2 = vconv_io_out_addr2; // @[VCore.scala 184:15]
+ assign vrf_io_conv_mode = vconv_io_out_mode; // @[VCore.scala 184:15]
+ assign vrf_io_conv_index = vconv_io_out_index; // @[VCore.scala 184:15]
+ assign vrf_io_conv_abias = vconv_io_out_abias; // @[VCore.scala 184:15]
+ assign vrf_io_conv_bbias = vconv_io_out_bbias; // @[VCore.scala 184:15]
+ assign vrf_io_conv_asign = vconv_io_out_asign; // @[VCore.scala 184:15]
+ assign vrf_io_conv_bsign = vconv_io_out_bsign; // @[VCore.scala 184:15]
assign vrf_io_vrfsb_set_valid = vdec_io_vrfsb_set_valid; // @[VCore.scala 76:17]
assign vrf_io_vrfsb_set_bits = vdec_io_vrfsb_set_bits; // @[VCore.scala 76:17]
always @(posedge clock) begin
@@ -206508,41 +206320,41 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 51:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full; // @[Slice.scala 51:22]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_cwrite = mem_0_cwrite; // @[Slice.scala 108:18]
- assign io_out_bits_caddr = mem_0_caddr; // @[Slice.scala 108:18]
- assign io_out_bits_cid = mem_0_cid; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_cwrite = mem_0_cwrite; // @[Slice.scala 89:18]
+ assign io_out_bits_caddr = mem_0_caddr; // @[Slice.scala 89:18]
+ assign io_out_bits_cid = mem_0_cid; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_cwrite <= io_in_bits_cwrite; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_cwrite <= mem_1_cwrite; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_cwrite <= io_in_bits_cwrite; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_cwrite <= mem_1_cwrite; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_caddr <= io_in_bits_caddr; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_caddr <= mem_1_caddr; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_caddr <= io_in_bits_caddr; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_caddr <= mem_1_caddr; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_cid <= io_in_bits_cid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_cid <= mem_1_cid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_cid <= io_in_bits_cid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_cid <= mem_1_cid; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_cwrite <= io_in_bits_cwrite; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_cwrite <= io_in_bits_cwrite; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_caddr <= io_in_bits_caddr; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_caddr <= io_in_bits_caddr; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_cid <= io_in_bits_cid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_cid <= io_in_bits_cid; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -206658,32 +206470,32 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 51:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full; // @[Slice.scala 51:22]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_wdata = mem_0_wdata; // @[Slice.scala 108:18]
- assign io_out_bits_wmask = mem_0_wmask; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_wdata = mem_0_wdata; // @[Slice.scala 89:18]
+ assign io_out_bits_wmask = mem_0_wmask; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_wdata <= io_in_bits_wdata; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_wdata <= mem_1_wdata; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_wdata <= io_in_bits_wdata; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_wdata <= mem_1_wdata; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_wmask <= io_in_bits_wmask; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_wmask <= mem_1_wmask; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_wmask <= io_in_bits_wmask; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_wmask <= mem_1_wmask; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_wdata <= io_in_bits_wdata; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_wdata <= io_in_bits_wdata; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_wmask <= io_in_bits_wmask; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_wmask <= io_in_bits_wmask; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
@@ -206795,32 +206607,32 @@
wire [1:0] _opos_T_1 = opos + 2'h1; // @[Slice.scala 39:18]
wire full = ipos[0] == opos[0] & ipos[1] != opos[1]; // @[Slice.scala 47:36]
wire _io_in_ready_T = ~full; // @[Slice.scala 51:22]
- wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 77:18]
- wire _T_5 = ivalid & ovalid; // @[Slice.scala 78:18]
- wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 78:28]
- wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 77:38]
- wire _T_14 = _T_5 & full; // @[Slice.scala 83:28]
- wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 82:39]
+ wire _T_3 = ivalid & ~ovalid; // @[Slice.scala 58:18]
+ wire _T_5 = ivalid & ovalid; // @[Slice.scala 59:18]
+ wire _T_7 = ivalid & ovalid & _io_in_ready_T; // @[Slice.scala 59:28]
+ wire _T_8 = ivalid & ~ovalid & empty | _T_7; // @[Slice.scala 58:38]
+ wire _T_14 = _T_5 & full; // @[Slice.scala 64:28]
+ wire _T_15 = _T_3 & ~empty | _T_14; // @[Slice.scala 63:39]
assign io_in_ready = ~full; // @[Slice.scala 51:22]
- assign io_out_valid = ~empty; // @[Slice.scala 107:21]
- assign io_out_bits_rid = mem_0_rid; // @[Slice.scala 108:18]
- assign io_out_bits_rdata = mem_0_rdata; // @[Slice.scala 108:18]
+ assign io_out_valid = ~empty; // @[Slice.scala 88:21]
+ assign io_out_bits_rid = mem_0_rid; // @[Slice.scala 89:18]
+ assign io_out_bits_rdata = mem_0_rdata; // @[Slice.scala 89:18]
always @(posedge clock) begin
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_rid <= io_in_bits_rid; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_rid <= mem_1_rid; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_rid <= io_in_bits_rid; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_rid <= mem_1_rid; // @[Slice.scala 55:14]
end
- if (_T_8) begin // @[Slice.scala 78:38]
- mem_0_rdata <= io_in_bits_rdata; // @[Slice.scala 79:14]
- end else if (ovalid & full) begin // @[Slice.scala 73:27]
- mem_0_rdata <= mem_1_rdata; // @[Slice.scala 74:14]
+ if (_T_8) begin // @[Slice.scala 59:38]
+ mem_0_rdata <= io_in_bits_rdata; // @[Slice.scala 60:14]
+ end else if (ovalid & full) begin // @[Slice.scala 54:27]
+ mem_0_rdata <= mem_1_rdata; // @[Slice.scala 55:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_rid <= io_in_bits_rid; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_rid <= io_in_bits_rid; // @[Slice.scala 65:14]
end
- if (_T_15) begin // @[Slice.scala 83:37]
- mem_1_rdata <= io_in_bits_rdata; // @[Slice.scala 84:14]
+ if (_T_15) begin // @[Slice.scala 64:37]
+ mem_1_rdata <= io_in_bits_rdata; // @[Slice.scala 65:14]
end
end
always @(posedge clock or posedge reset) begin
diff --git a/rules/matcha.bzl b/rules/matcha.bzl
index 71a430d..87b4594 100644
--- a/rules/matcha.bzl
+++ b/rules/matcha.bzl
@@ -38,6 +38,11 @@
"smc": "//sw/device/lib/arch:smc_sim_verilator",
}
+DV_CORE_TARGETS = {
+ "secure_core": "@lowrisc_opentitan//sw/device/lib/arch:sim_dv",
+ "smc": "//sw/device/lib/arch:smc_sim_dv",
+}
+
NEXUS_CORE_TARGETS = {
"secure_core": "//sw/device/lib/arch:sc_fpga_nexus",
"smc": "//sw/device/lib/arch:smc_fpga_nexus",
@@ -50,7 +55,7 @@
def device_deps(core):
per_device_deps = {
"sim_verilator": [VERILATOR_CORE_TARGETS.get(core)],
- "sim_dv": ["@lowrisc_opentitan//sw/device/lib/arch:sim_dv"],
+ "sim_dv": [DV_CORE_TARGETS.get(core)],
"fpga_nexus": [NEXUS_CORE_TARGETS.get(core)],
}
return per_device_deps
diff --git a/rules/matcha_test.bzl b/rules/matcha_test.bzl
index 5d791bf..f24991f 100644
--- a/rules/matcha_test.bzl
+++ b/rules/matcha_test.bzl
@@ -14,7 +14,12 @@
"""Rules to build matcha test targets"""
-load("//rules:matcha.bzl", "flash_binary", "opentitan_rom_binary")
+load(
+ "//rules:matcha.bzl",
+ "DV_CORE_TARGETS",
+ "flash_binary",
+ "opentitan_rom_binary",
+)
def matcha_verilator_test(
name,
@@ -56,7 +61,7 @@
sh_test_tags = ["verilator"] + tags
sh_test_runner = "@//util:run_chip_verilator_sim.sh"
sh_test_args = [
- "$(locations %s)" % (verilator_testbench),
+ "$(location %s)" % (verilator_testbench),
"$(location %s)" % (rom_img),
"$(location %s)" % (sec_verilator_binary),
"$(location %s)" % (otp_img),
@@ -168,6 +173,8 @@
signed = False,
dv = None,
test_binary = None,
+ per_device_deps = {"sim_dv": [DV_CORE_TARGETS.get("secure_core")]},
+ word_size = 64,
**kwargs):
"""A helper macro for generating Matcha functional tests.
@@ -188,6 +195,9 @@
signed: Whether to sign the test image. Unsigned by default.
dv: DV test parameters.
test_binary: Use the named binary as the test program rather than building one from srcs/deps.
+ per_device_deps: Target deps that are forwared to flash_binary. Default to build for secure
+ core DV only.
+ word_size: The word size that is forwared to flash_binary. Default to 64 for secure core.
**kwargs: Arguments to forward to `flash_binary`.
This macro emits the following rules:
@@ -208,7 +218,8 @@
flash_binary(
name = test_binary,
signed = signed,
- word_size = 64,
+ per_device_deps = per_device_deps,
+ word_size = word_size,
deps = deps,
**kwargs
)
diff --git a/sw/device/examples/hello_world/BUILD b/sw/device/examples/hello_world/BUILD
index 00ddb67..fa9fce8 100644
--- a/sw/device/examples/hello_world/BUILD
+++ b/sw/device/examples/hello_world/BUILD
@@ -42,3 +42,26 @@
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
+
+# Use shell test to run the interactive verilator test on UART and GPIO
+sh_test(
+ name = "verilator_hello_world_test",
+ timeout = "long",
+ srcs = [":run_verilator_hello_world.sh"],
+ args = [
+ "$(location //hw:verilator)",
+ "$(location //sw/device/lib/testing/test_rom:test_rom_sim_verilator_scr_vmem)",
+ "$(location :hello_world_sim_verilator_vmem)",
+ "$(location //hw/top_matcha/data:otp_img_rma)",
+ ],
+ data = [
+ ":hello_world_sim_verilator_vmem",
+ ":hello_world_test_expected_gpio.txt",
+ "//hw:verilator",
+ "//hw/top_matcha/data:otp_img_rma",
+ "//sw/device/lib/testing/test_rom:test_rom_sim_verilator_scr_vmem",
+ ],
+ tags = [
+ "verilator",
+ ],
+)
diff --git a/sw/device/examples/hello_world/hello_world_test_expected_gpio.txt b/sw/device/examples/hello_world/hello_world_test_expected_gpio.txt
new file mode 100644
index 0000000..4617c93
--- /dev/null
+++ b/sw/device/examples/hello_world/hello_world_test_expected_gpio.txt
@@ -0,0 +1,16 @@
+XXXXXXXXXXXXXXXX1111111111111111
+XXXXXXXXXXXXXXXX0000000000000000
+XXXXXXXXXXXXXXXX0110110001101100
+XXXXXXXXXXXXXXXX0110010101100101
+XXXXXXXXXXXXXXXX0110010001100100
+XXXXXXXXXXXXXXXX0010000000100000
+XXXXXXXXXXXXXXXX0110011101100111
+XXXXXXXXXXXXXXXX0111000001110000
+XXXXXXXXXXXXXXXX0110100101101001
+XXXXXXXXXXXXXXXX0110111101101111
+XXXXXXXXXXXXXXXX0010000000100000
+XXXXXXXXXXXXXXXX0111010001110100
+XXXXXXXXXXXXXXXX0110010101100101
+XXXXXXXXXXXXXXXX0111001101110011
+XXXXXXXXXXXXXXXX0111010001110100
+XXXXXXXXXXXXXXXX0000101000001010
diff --git a/sw/device/examples/hello_world/run_verilator_hello_world.sh b/sw/device/examples/hello_world/run_verilator_hello_world.sh
new file mode 100755
index 0000000..932dbdd
--- /dev/null
+++ b/sw/device/examples/hello_world/run_verilator_hello_world.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+#
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Run verilator interactive simulation on sw/device/examples/hello_world.
+
+function print_usage(
+ echo "Usage: run_verilator_hello_world.sh <verilator testbench> <rom binary> <flash binary> <otp binary>"
+)
+
+if [[ $1 == "--help" ]]; then
+ print_usage
+ exit 0
+fi
+
+if [[ $# -ne 4 ]]; then
+ print_usage
+ exit 1
+fi
+
+if [[ -z ${TEST_UNDECLARED_OUTPUTS_DIR} ]]; then
+ echo "The script only works under bazel test"
+ exit 1
+fi
+
+
+TEST_CYCLES=650000
+
+VCHIP_TB=$1
+ROM_BIN=$2
+FLASH_BIN=$3
+OTP_BIN=$4
+
+if [[ ! -f $(realpath ${VCHIP_TB}) ]]; then
+ echo "Verilator testbench not found. Please make sure //hw:verilator is in data."
+ exit 1
+fi
+
+if [[ ! -f $(realpath ${ROM_BIN}) ]] || [[ ! -f $(realpath ${FLASH_BIN}) ]] ||
+ [[ ! -f $(realpath ${OTP_BIN}) ]]; then
+ echo "Software binaries not found. Please make sure the targets are in data and args."
+ exit 1
+fi
+
+# Run verilator testbench in the background
+${VCHIP_TB} \
+ "--meminit=rom,${ROM_BIN}" \
+ "--meminit=flash,${FLASH_BIN}" \
+ "--meminit=otp,${OTP_BIN}" -c "${TEST_CYCLES}" &
+
+VERILATOR_PID=$!
+
+# Pipe GPIO output to a log file
+sleep 5
+cat gpio0-read | tee "${TEST_UNDECLARED_OUTPUTS_DIR}/gpio0_read.log" &
+
+# Wait for 300s to reach the end of the hello_world initialization.
+sleep 300
+echo 'led gpio test' > "${TEST_UNDECLARED_OUTPUTS_DIR}/uart0_device"
+
+# Wait up to another 350s to complete the verilator simulation.
+timeout 350 tail --pid=${VERILATOR_PID} -f /dev/null
+
+# Check results in GPIO and UART logs.
+cat "${TEST_UNDECLARED_OUTPUTS_DIR}/uart0.log" | grep -q "led gpio test" || exit 1
+
+diff -q "${TEST_UNDECLARED_OUTPUTS_DIR}/gpio0_read.log" \
+ "sw/device/examples/hello_world/hello_world_test_expected_gpio.txt" || exit 1
diff --git a/sw/device/lib/arch/BUILD b/sw/device/lib/arch/BUILD
index 172ae85..373534e 100644
--- a/sw/device/lib/arch/BUILD
+++ b/sw/device/lib/arch/BUILD
@@ -11,6 +11,14 @@
)
cc_library(
+ name = "smc_sim_dv",
+ srcs = ["device_smc_sim_dv.c"],
+ deps = [
+ ":device",
+ ],
+)
+
+cc_library(
name = "smc_sim_verilator",
srcs = ["device_smc_sim_verilator.c"],
deps = [
diff --git a/sw/device/lib/arch/device_smc_sim_dv.c b/sw/device/lib/arch/device_smc_sim_dv.c
new file mode 100644
index 0000000..ef7c4ac
--- /dev/null
+++ b/sw/device/lib/arch/device_smc_sim_dv.c
@@ -0,0 +1,49 @@
+// Copyright 2022 Google LLC.
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#include <assert.h>
+#include <stdbool.h>
+
+#include "sw/device/lib/arch/device.h"
+
+/**
+ * @file
+ * @brief Device-specific symbol definitions for the DV device.
+ */
+
+const device_type_t kDeviceType = kDeviceSimDV;
+
+const uint64_t kClockFreqCpuMhz = 100;
+
+const uint64_t kClockFreqCpuHz = kClockFreqCpuMhz * 1000 * 1000;
+
+uint64_t to_cpu_cycles(uint64_t usec) { return usec * kClockFreqCpuMhz; }
+
+const uint64_t kClockFreqHiSpeedPeripheralHz = 96 * 1000 * 1000; // 96MHz
+
+const uint64_t kClockFreqPeripheralHz = 24 * 1000 * 1000; // 24MHz
+
+const uint64_t kClockFreqUsbHz = 48 * 1000 * 1000; // 48MHz
+
+const uint64_t kClockFreqAonHz = 200 * 1000; // 200kHz
+
+const uint64_t kUartBaudrate = 1 * 1000 * 1000; // 1Mbps
+
+const uint32_t kUartNCOValue =
+ CALCULATE_UART_NCO(kUartBaudrate, kClockFreqPeripheralHz);
+
+const uint32_t kUartTxFifoCpuCycles =
+ CALCULATE_UART_TX_FIFO_CPU_CYCLES(kUartBaudrate, kClockFreqCpuHz);
+
+const uint32_t kAstCheckPollCpuCycles =
+ CALCULATE_AST_CHECK_POLL_CPU_CYCLES(kClockFreqCpuHz);
+
+const uintptr_t kDeviceTestStatusAddress = 0x54030080;
+
+const uintptr_t kDeviceLogBypassUartAddress = 0x54030084;
+
+const bool kJitterEnabled = false;
+
+void device_fpga_version_print(void) {}
diff --git a/sw/device/tests/BUILD b/sw/device/tests/BUILD
index ebe30fd..1f7375c 100644
--- a/sw/device/tests/BUILD
+++ b/sw/device/tests/BUILD
@@ -577,6 +577,7 @@
"verilator_supervisor_mode_test",
"verilator_tlul_mailbox_test",
"verilator_virtual_memory_test",
+ "//sw/device/examples/hello_world:verilator_hello_world_test",
"//sw/device/tests/smc:verilator_kelvin_checksum_test",
"//sw/device/tests/smc:verilator_kelvin_hello_test",
"//sw/device/tests/smc:verilator_ml_top_irq_test",
diff --git a/util/run_chip_verilator_sim.sh b/util/run_chip_verilator_sim.sh
index 6358763..7819142 100755
--- a/util/run_chip_verilator_sim.sh
+++ b/util/run_chip_verilator_sim.sh
@@ -21,12 +21,6 @@
exit 0
fi
-# In bazel build the verilator target has multiple outputs, so we need to trim
-# the non-executable one.
-while [[ $1 != *"Vchip_sim_tb" ]]; do
- shift 1
-done
-
VCHIP_TB=$1
ROM_BIN=$2
FLASH_BIN=$3