From 79356c7ab1a94caa0be14724d323047a2a26f58b Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Tue, 7 May 2019 23:45:05 -0700 Subject: [PATCH] Changed hierarchy + Identified private + public modules --- kernel/Makefile | 12 +- kernel/vortex_test.dump | 2 +- kernel/vortex_test.elf | Bin 15400 -> 15536 bytes kernel/vortex_test.hex | 2 +- kernel/vx_os/vx_back/vx_back.s | 2 +- rtl/VX_context.v | 93 ++ rtl/VX_decode.v | 138 +- rtl/VX_define.h | 4 +- rtl/VX_define.v | 4 +- rtl/VX_fetch.v | 96 +- rtl/VX_warp.v | 52 +- rtl/obj_dir/VVortex | Bin 390524 -> 411004 bytes rtl/obj_dir/VVortex.cpp | 2597 +++++++++++++++++++++++++---- rtl/obj_dir/VVortex.h | 261 +-- rtl/obj_dir/VVortex__ALL.a | Bin 52192 -> 70672 bytes rtl/obj_dir/VVortex__ALLcls.o | Bin 49056 -> 67536 bytes rtl/obj_dir/VVortex__ver.d | 2 +- rtl/obj_dir/VVortex__verFiles.dat | 25 +- rtl/obj_dir/test_bench.o | Bin 66380 -> 66380 bytes rtl/results.txt | 6 +- 20 files changed, 2602 insertions(+), 694 deletions(-) create mode 100644 rtl/VX_context.v diff --git a/kernel/Makefile b/kernel/Makefile index a4e16460..04fa14d6 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -1,13 +1,13 @@ -# COMP = /opt/riscv/bin/riscv32-unknown-elf-gcc -COMP = /opt/riscv/bin/riscv32-unknown-linux-gnu-gcc +COMP = /opt/riscv/bin/riscv32-unknown-elf-gcc +# COMP = /opt/riscv/bin/riscv32-unknown-linux-gnu-gcc CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib -# DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump -# CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy +DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump +CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy -DMP = /opt/riscv/bin/riscv32-unknown-linux-gnu-objdump -CPY = /opt/riscv/bin/riscv32-unknown-linux-gnu-objcopy +# DMP = /opt/riscv/bin/riscv32-unknown-linux-gnu-objdump +# CPY = /opt/riscv/bin/riscv32-unknown-linux-gnu-objcopy VX_LIB = ./vx_os/vx_back/vx_back.s ./vx_os/vx_back/vx_back.c ./vx_os/vx_util/queue.s VX_IO = ./vx_os/vx_io/vx_io.s ./vx_os/vx_io/vx_io.c diff --git a/kernel/vortex_test.dump b/kernel/vortex_test.dump index c2848f9e..0befe0cf 100644 --- a/kernel/vortex_test.dump +++ b/kernel/vortex_test.dump @@ -7,7 +7,7 @@ Disassembly of section .text: 80000000 <_start>: 80000000: 00100513 li a0,1 80000004: 02051073 csrw 0x20,a0 -80000008: 00100513 li a0,1 +80000008: 00200513 li a0,2 8000000c: 02151073 csrw 0x21,a0 80000010: f1401073 csrw mhartid,zero 80000014: 30101073 csrw misa,zero diff --git a/kernel/vortex_test.elf b/kernel/vortex_test.elf index 93e532745e5a594f6a0f87bf0081a6c510936dbc..1bad09ba804b1b2812569d1cbf30315a5f75cb94 100755 GIT binary patch delta 1443 zcmbW1-%C?r7{{Np&D7MKWj4@iWkm*YhTCvv#*#n-jU@w1j7n|(3~dupFWNiWMVH$C z0SPa>2r>*3x?Oh)Rs=y%UP$di`f=9}p}x=SdpxgQ`dsWipXYske$Qd^6AP2m-jbFE zk`^E@IcCl_Kg--LotZuQ$i3I_E*7~PtCJUSA0iT4aR#;E;k?G};Hbu3;IPIqaI3~6 zV9Q+e<8KEb>!4H>PJ>)DiE|C?+TtXoIKZG(SUQ~a5T|8a;1wX>a)4LxT&wXLJdf_N z7kCGr)A&7jQ{xX{PrenOH0UE7mT|*M0}5;h7<2?2(fAnHGLGj3T-Yd#(;z3+{CCd^ zq-%C6FbkFnBq0eGxTF;bpuijg%4Is0oRgJHKEwd!gUEkTz)wwOX?3Y&k zu)mYKQ6QT~;xwx4#|~rQG4)QF?}Kv=5+`sn-*A920J(|Eu)s9@YX?anN8SfQ7T*!&5c)&}|pzNKCX$NvI*FyN}n zFTnuCE)pAxE5XlEuUGLIunz;ZpucPwfa7}^i7pi4f=yt2bppSVBjDU+d*gQSFz&PJ z{wBCw8+e5CwSoJ<>yTW)$%>7GeOw>?Wdn~B5*68!JwU*O`f7QgliYiEZ<4FG z2U=hS_SyL}h{x;XezN{!aFw>u3-CJXbAK6-h2u#f36`E4z6SR?Ddj!2HSt@%*EYoW zKtCbzvdaGrPM6yX7Gfc{w!k6qLa}`3vVJu=X#IlVc+}to!|d^+4B9x{9It) z$Fn3)m;&T3oxW&X{gF+TEFWuoe>cu7}MtyjQYJ41=)Hn!^ zYdiuT(>MXPk3qlxodVQcWc5QC8N!$9V57wak(_Fbthh9|=?2t3BEcO%yKMkx@I0h( z9?$7EXMl&`ipGz?O^q$EzuopPFe<`eA5m}~5Z!TL^b9<%@q+CP75-uX0~5uejNJ4J zY9D(8#lhVhcnOvpC?JJMa9&HW1g^lr2Nf$@g|2}8ia$ZuHU0{=k6o~FeRn})VrS*D zUQyM<{BHV==-M9Q1JDB~`4gI@)`|rG0XJO4kFnPMH)sP5kV)i4gB{@dLE?y!@$bMZ zCh>^!KLpM1B_38h03GipKFz2g1H{D^8bG|{3*ZWK_!_vVHH1LArCy0>@E+KY2G>>m z6R^i1zNL5``~mq=ieH06Xy_8^%YsWVY=!sB@}s^iP;y~KUCzpyaLB8#Ry6bi-0UTugbE%;Tw}y( zXb^V)ekZ;Y`S3bLJ?Y;E?$-tifj5y~)Rzu17~XaeUsDA}!6`RcffKEc$Hcuh;cf6= ztaweuXTU|Dv%$w;QyX9oyzG(hT-JLIPWIACzNivpVHoRiCZJ$;HXWRt%*{^BOih=2 zB3C>u!_OV diff --git a/kernel/vortex_test.hex b/kernel/vortex_test.hex index 5660a498..1e7886e6 100644 --- a/kernel/vortex_test.hex +++ b/kernel/vortex_test.hex @@ -1,5 +1,5 @@ :0200000480007A -:10000000130510007310050213051000731015027C +:10000000130510007310050213052000731015026C :10001000731040F17310103037F1FF7FEF0080193B :10002000EF10C06D73000000938B0600130D0700E6 :10003000130F01009303050013051000635C7500A6 diff --git a/kernel/vx_os/vx_back/vx_back.s b/kernel/vx_os/vx_back/vx_back.s index e9067e8b..546d309a 100644 --- a/kernel/vx_os/vx_back/vx_back.s +++ b/kernel/vx_os/vx_back/vx_back.s @@ -8,7 +8,7 @@ _start: li a0, 1 # Num Warps csrw 0x20, a0 # Setting the number of available warps - li a0, 1 # Num Threads + li a0, 2 # Num Threads csrw 0x21, a0 # Setting the number of available threads csrw mhartid,zero csrw misa,zero diff --git a/rtl/VX_context.v b/rtl/VX_context.v new file mode 100644 index 00000000..cdbc80f2 --- /dev/null +++ b/rtl/VX_context.v @@ -0,0 +1,93 @@ + +`include "VX_define.v" + +module VX_context ( + input wire clk, + input wire in_valid[`NT_M1:0], + input wire in_write_register, + input wire[4:0] in_rd, + input wire[31:0] in_write_data[`NT_M1:0], + input wire[4:0] in_src1, + input wire[4:0] in_src2, + input wire[31:0] in_curr_PC, + input wire in_is_clone, + input wire in_is_jal, + input wire in_src1_fwd, + input wire[31:0] in_src1_fwd_data[`NT_M1:0], + input wire in_src2_fwd, + input wire[31:0] in_src2_fwd_data[`NT_M1:0], + + output reg[31:0] out_a_reg_data[`NT_M1:0], + output reg[31:0] out_b_reg_data[`NT_M1:0], + output wire out_clone_stall + +); + wire[31:0] rd1_register[`NT_M1:0]; + wire[31:0] rd2_register[`NT_M1:0]; + /* verilator lint_off UNUSED */ + wire[31:0] clone_regsiters[31:0]; + /* verilator lint_on UNUSED */ + + VX_register_file vx_register_file_master( + .clk (clk), + .in_valid (in_valid[0]), + .in_write_register (in_write_register), + .in_rd (in_rd), + .in_data (in_write_data[0]), + .in_src1 (in_src1), + .in_src2 (in_src2), + .out_regs (clone_regsiters), + .out_src1_data (rd1_register[0]), + .out_src2_data (rd2_register[0]) + ); + + genvar index; + generate + for (index=1; index < `NT; index=index+1) + begin: gen_code_label + wire to_clone; + assign to_clone = (index == rd1_register[0]) && (state_stall == 1); + VX_register_file_slave vx_register_file_slave( + .clk (clk), + .in_valid (in_valid[index]), + .in_write_register (in_write_register), + .in_rd (in_rd), + .in_data (in_write_data[index]), + .in_src1 (in_src1), + .in_src2 (in_src2), + .in_clone (in_is_clone), + .in_to_clone (to_clone), + .in_regs (clone_regsiters), + .out_src1_data (rd1_register[index]), + .out_src2_data (rd2_register[index]) + ); + end + endgenerate + + + reg[5:0] state_stall = 0; + always @(posedge clk) begin + if ((in_is_clone) && state_stall == 0) begin + state_stall <= 10; + // $display("CLONEEE BITCH %d, 1 =? %h = %h -- %d", state_stall, rd1_register[0], to_clone_1, in_is_clone); + end else if (state_stall == 1) begin + // $display("ENDING CLONE, 1 =? %h = %h -- %d", rd1_register[0], to_clone_1, in_is_clone); + state_stall <= 0; + end else if (state_stall > 0) begin + state_stall <= state_stall - 1; + // $display("CLONEEE BITCH %d, 1 =? %h = %h -- %d", state_stall, rd1_register[0], to_clone_1, in_is_clone); + end + end + + genvar index_out_reg; + generate + for (index_out_reg = 0; index_out_reg < `NT; index_out_reg = index_out_reg + 1) + begin + assign out_a_reg_data[index_out_reg] = ( (in_is_jal == 1'b1) ? in_curr_PC : ((in_src1_fwd == 1'b1) ? in_src1_fwd_data[index_out_reg] : rd1_register[index_out_reg])); + assign out_b_reg_data[index_out_reg] = (in_src2_fwd == 1'b1) ? in_src2_fwd_data[index_out_reg] : rd2_register[index_out_reg]; + end + endgenerate + + assign out_clone_stall = ((state_stall == 0) && in_is_clone) || ((state_stall != 1) && in_is_clone); + +endmodule \ No newline at end of file diff --git a/rtl/VX_decode.v b/rtl/VX_decode.v index 6e3fb499..5ae64dc8 100644 --- a/rtl/VX_decode.v +++ b/rtl/VX_decode.v @@ -49,10 +49,6 @@ module VX_decode( wire[6:0] curr_opcode; - - wire[31:0] rd1_register[`NT_M1:0]; - wire[31:0] rd2_register[`NT_M1:0]; - wire is_itype; wire is_rtype; wire is_stype; @@ -107,104 +103,31 @@ module VX_decode( reg[4:0] alu_op; reg[4:0] mul_alu; - // wire[31:0] internal_rd1; - // wire[31:0] internal_rd2; + VX_context VX_Context( + .clk (clk), + .in_valid (in_wb_valid), + .in_rd (in_rd), + .in_src1 (out_rs1), + .in_src2 (out_rs2), + .in_curr_PC (in_curr_PC), + .in_is_clone (is_clone), + .in_is_jal (is_jal), + .in_src1_fwd (in_src1_fwd), + .in_src1_fwd_data (in_src1_fwd_data), + .in_src2_fwd (in_src2_fwd), + .in_src2_fwd_data (in_src2_fwd_data), + .in_write_register(write_register), + .in_write_data (in_write_data), + .out_a_reg_data (out_a_reg_data), + .out_b_reg_data (out_b_reg_data), + .out_clone_stall (out_clone_stall) + ); - // VX_register_file vx_register_file_0( - // .clk(clk), - // .in_valid(in_wb_valid[0]), - // .in_write_register(write_register), - // .in_rd(in_rd), - // .in_data(in_write_data[1:0]), - // .in_src1(out_rs1), - // .in_src2(out_rs2), - // .out_src1_data(rd1_register), - // .out_src2_data(rd2_register) - // ); - - - // VX_register_file vx_register_file_1( - // .clk(clk), - // .in_valid(in_wb_valid), - // .in_write_register(write_register), - // .in_rd(in_rd), - // .in_data(in_write_data), - // .in_src1(out_rs1), - // .in_src2(out_rs2), - // .out_src1_data(rd1_register), - // .out_src2_data(rd2_register) - // ); assign out_valid = in_valid; assign write_register = (in_wb != 2'h0) ? (1'b1) : (1'b0); - // always @(*) begin - // $display("DECODE PC: %h",in_curr_PC); - // end - - - // always @(posedge clk) begin - // $display("Decode: curr_pc: %h", in_curr_PC); - // end - /* verilator lint_off UNUSED */ - wire[31:0] clone_regsiters[31:0]; - /* verilator lint_on UNUSED */ - - VX_register_file vx_register_file_master( - .clk (clk), - .in_valid (in_wb_valid[0]), - .in_write_register (write_register), - .in_rd (in_rd), - .in_data (in_write_data[0]), - .in_src1 (out_rs1), - .in_src2 (out_rs2), - .out_regs (clone_regsiters), - .out_src1_data (rd1_register[0]), - .out_src2_data (rd2_register[0]) - ); - - - // wire to_clone_1 = (1 == rd1_register[0]) && (state_stall == 1); - - - // VX_register_file_slave vx_register_file_slave( - // .clk (clk), - // .in_valid (in_wb_valid[1]), - // .in_write_register (write_register), - // .in_rd (in_rd), - // .in_data (in_write_data[1]), - // .in_src1 (out_rs1), - // .in_src2 (out_rs2), - // .in_clone (is_clone), - // .in_to_clone (to_clone_1), - // .in_regs (clone_regsiters), - // .out_src1_data (rd1_register[1]), - // .out_src2_data (rd2_register[1]) - // ); - - genvar index; - generate - for (index=1; index < `NT; index=index+1) - begin: gen_code_label - wire to_clone; - assign to_clone = (index == rd1_register[0]) && (state_stall == 1); - VX_register_file_slave vx_register_file_slave( - .clk (clk), - .in_valid (in_wb_valid[index]), - .in_write_register (write_register), - .in_rd (in_rd), - .in_data (in_write_data[index]), - .in_src1 (out_rs1), - .in_src2 (out_rs2), - .in_clone (is_clone), - .in_to_clone (to_clone), - .in_regs (clone_regsiters), - .out_src1_data (rd1_register[index]), - .out_src2_data (rd2_register[index]) - ); - end - endgenerate assign curr_opcode = in_instruction[6:0]; @@ -278,32 +201,11 @@ module VX_decode( // $display("Decode inst: %h", in_instruction); // end - reg[5:0] state_stall = 0; - always @(posedge clk) begin - if ((is_clone) && state_stall == 0) begin - state_stall <= 10; - // $display("CLONEEE BITCH %d, 1 =? %h = %h -- %d", state_stall, rd1_register[0], to_clone_1, is_clone); - end else if (state_stall == 1) begin - // $display("ENDING CLONE, 1 =? %h = %h -- %d", rd1_register[0], to_clone_1, is_clone); - state_stall <= 0; - end else if (state_stall > 0) begin - state_stall <= state_stall - 1; - // $display("CLONEEE BITCH %d, 1 =? %h = %h -- %d", state_stall, rd1_register[0], to_clone_1, is_clone); - end - end - assign out_clone_stall = ((state_stall == 0) && is_clone) || ((state_stall != 1) && is_clone); // ch_print("DECODE: PC: {0}, INSTRUCTION: {1}", in_curr_PC, in_instruction); - genvar index_out_reg; - generate - for (index_out_reg = 0; index_out_reg < `NT; index_out_reg = index_out_reg + 1) - begin - assign out_a_reg_data[index_out_reg] = ( (is_jal == 1'b1) ? in_curr_PC : ((in_src1_fwd == 1'b1) ? in_src1_fwd_data[index_out_reg] : rd1_register[index_out_reg])); - assign out_b_reg_data[index_out_reg] = (in_src2_fwd == 1'b1) ? in_src2_fwd_data[index_out_reg] : rd2_register[index_out_reg]; - end - endgenerate + // assign out_reg_data[0] = ( (is_jal == 1'b1) ? in_curr_PC : ((in_src1_fwd == 1'b1) ? in_src1_fwd_data[0] : rd1_register[0])); // assign out_reg_data[1] = (in_src2_fwd == 1'b1) ? in_src2_fwd_data[0] : rd2_register[0]; diff --git a/rtl/VX_define.h b/rtl/VX_define.h index 7c32053f..5fb42fb8 100644 --- a/rtl/VX_define.h +++ b/rtl/VX_define.h @@ -1,7 +1,7 @@ -#define NT 1 -#define NT_M1 0 +#define NT 2 +#define NT_M1 1 #define R_INST 51 #define L_INST 3 diff --git a/rtl/VX_define.v b/rtl/VX_define.v index 320f0bfc..377cf319 100644 --- a/rtl/VX_define.v +++ b/rtl/VX_define.v @@ -1,6 +1,6 @@ -`define NT 1 -`define NT_M1 0 +`define NT 2 +`define NT_M1 1 `define R_INST 7'd51 diff --git a/rtl/VX_fetch.v b/rtl/VX_fetch.v index 37c35540..53d2cbe9 100644 --- a/rtl/VX_fetch.v +++ b/rtl/VX_fetch.v @@ -2,80 +2,60 @@ `include "VX_define.v" module VX_fetch ( - input wire clk, - input wire reset, - input wire in_branch_dir, - input wire in_freeze, - input wire[31:0] in_branch_dest, - input wire in_branch_stall, - input wire in_fwd_stall, - input wire in_branch_stall_exe, - input wire in_clone_stall, - input wire in_jal, - input wire[31:0] in_jal_dest, - input wire in_interrupt, - input wire in_debug, - input wire[31:0] in_instruction, - input wire in_thread_mask[`NT_M1:0], - input wire in_change_mask, + input wire clk, + input wire reset, + input wire in_branch_dir, + input wire in_freeze, + input wire[31:0] in_branch_dest, + input wire in_branch_stall, + input wire in_fwd_stall, + input wire in_branch_stall_exe, + input wire in_clone_stall, + input wire in_jal, + input wire[31:0] in_jal_dest, + input wire in_interrupt, + input wire in_debug, + input wire[31:0] in_instruction, + input wire in_thread_mask[`NT_M1:0], + input wire in_change_mask, - output wire[31:0] out_instruction, - output wire out_delay, - output wire[31:0] out_curr_PC, - output wire out_valid[`NT_M1:0] + output wire[31:0] out_instruction, + output wire out_delay, + // output wire[1:0] out_warp_num, + output wire[31:0] out_curr_PC, + output wire out_valid[`NT_M1:0] ); - reg stall; reg[31:0] out_PC; + // reg[1:0] warp_num; - reg valid[`NT_M1:0]; - - - integer ini_cur_th = 0; - genvar out_cur_th; - - initial begin - for (ini_cur_th = 1; ini_cur_th < `NT; ini_cur_th=ini_cur_th+1) - valid[ini_cur_th] = 0; // Thread 1 active - valid[0] = 1; - end - - - always @(*) begin : proc_ - if (in_change_mask) begin - // $display("CHANGING MASK: [%d %d]",in_thread_mask[0], in_thread_mask[1]); - assign valid = in_thread_mask; - end - end + // initial begin + // warp_num = 0; + // end - assign out_delay = 0; assign stall = in_clone_stall || in_branch_stall || in_fwd_stall || in_branch_stall_exe || in_interrupt || in_freeze || in_debug; - assign out_instruction = stall ? 32'b0 : in_instruction; - // assign out_instruction = in_instruction; - - generate - for (out_cur_th = 0; out_cur_th < `NT; out_cur_th = out_cur_th+1) - assign out_valid[out_cur_th] = in_change_mask ? in_thread_mask[out_cur_th] : stall ? 1'b0 : valid[out_cur_th]; - endgenerate - - wire[31:0] warp_pc; + wire warp_valid[`NT_M1:0]; + VX_warp VX_Warp( .clk (clk), .reset (reset), .stall (stall), + .in_thread_mask(in_thread_mask), + .in_change_mask(in_change_mask), .in_jal (in_jal), .in_jal_dest (in_jal_dest), .in_branch_dir (in_branch_dir), .in_branch_dest(in_branch_dest), - .out_PC (warp_pc) + .out_PC (warp_pc), + .out_valid (warp_valid) ); @@ -86,15 +66,11 @@ module VX_fetch ( // end - assign out_curr_PC = out_PC; - - - - - // always @(*) begin - // $display("Fetch out pc: %h", out_PC); - // end - + assign out_curr_PC = out_PC; + assign out_valid = warp_valid; + // assign out_warp_num = warp_num; + assign out_delay = 0; + assign out_instruction = stall ? 32'b0 : in_instruction; diff --git a/rtl/VX_warp.v b/rtl/VX_warp.v index 4c05005d..f81b2871 100644 --- a/rtl/VX_warp.v +++ b/rtl/VX_warp.v @@ -1,24 +1,51 @@ +`include "VX_define.v" + module VX_warp ( - input wire clk, - input wire reset, - input wire stall, - input wire in_jal, - input wire[31:0] in_jal_dest, - input wire in_branch_dir, - input wire[31:0] in_branch_dest, + input wire clk, + input wire reset, + input wire stall, + input wire in_thread_mask[`NT_M1:0], + input wire in_change_mask, + input wire in_jal, + input wire[31:0] in_jal_dest, + input wire in_branch_dir, + input wire[31:0] in_branch_dest, - output wire[31:0] out_PC + output wire[31:0] out_PC, + output wire out_valid[`NT_M1:0] ); reg[31:0] real_PC; + var[31:0] temp_PC; + var[31:0] use_PC; + reg valid[`NT_M1:0]; + + integer ini_cur_th = 0; initial begin real_PC = 0; + for (ini_cur_th = 1; ini_cur_th < `NT; ini_cur_th=ini_cur_th+1) + valid[ini_cur_th] = 0; // Thread 1 active + valid[0] = 1; end - var[31:0] temp_PC; + + always @(*) begin + if (in_change_mask) begin + assign valid = in_thread_mask; + end + end + + + genvar out_cur_th; + generate + for (out_cur_th = 0; out_cur_th < `NT; out_cur_th = out_cur_th+1) + assign out_valid[out_cur_th] = in_change_mask ? in_thread_mask[out_cur_th] : stall ? 1'b0 : valid[out_cur_th]; + endgenerate + + always @(*) begin if (in_jal == 1'b1) begin temp_PC = in_jal_dest; @@ -29,13 +56,16 @@ module VX_warp ( end end + assign use_PC = temp_PC; assign out_PC = temp_PC; always @(posedge clk or posedge reset) begin if (reset) begin real_PC <= 0; - end else if (stall != 1'b1) begin - real_PC <= temp_PC + 32'h4; + end else if (stall == 1'b0) begin + real_PC <= use_PC + 32'h4; + end else begin + real_PC <= use_PC; end end diff --git a/rtl/obj_dir/VVortex b/rtl/obj_dir/VVortex index ac08fe27a07563ea23f710e8e80566807a922441..8bc532bd0117fdbfe235b472633b3e7fc446e035 100755 GIT binary patch delta 94553 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 delta 76481 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 diff --git a/rtl/obj_dir/VVortex.cpp b/rtl/obj_dir/VVortex.cpp index eac6f82d..9d9c8db9 100644 --- a/rtl/obj_dir/VVortex.cpp +++ b/rtl/obj_dir/VVortex.cpp @@ -95,12 +95,12 @@ void VVortex::_initial__TOP__1(VVortex__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_initial__TOP__1\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body - // INITIAL at VX_warp.v:17 + // INITIAL at VX_warp.v:27 vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC = 0U; - // INITIAL at VX_fetch.v:39 - vlTOPp->Vortex__DOT__vx_fetch__DOT__valid[0U] = 1U; - // INITIAL at VX_decode.v:281 - vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall = 0U; + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[1U] = 0U; + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[0U] = 1U; + // INITIAL at VX_context.v:68 + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall = 0U; // INITIAL at VX_m_w_reg.v:39 vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd = 0U; vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb = 0U; @@ -127,6 +127,10 @@ void VVortex::_initial__TOP__1(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[0U] = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[0U] = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[0U] = 0U; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__a_reg_data[1U] = 0U; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[1U] = 0U; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[1U] = 0U; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[1U] = 0U; // INITIAL at VX_d_e_reg.v:83 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[0U] = 0U; @@ -134,6 +138,11 @@ void VVortex::_initial__TOP__1(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[0U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[0U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z[0U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[1U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[1U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[1U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[1U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z[1U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out = 0U; @@ -156,21 +165,136 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[0U] = 1U; + vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[1U] = 0U; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[1U] + = vlTOPp->in_cache_driver_out_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[0U] = vlTOPp->in_cache_driver_out_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid [0U]; - vlTOPp->Vortex__DOT__vx_decode__DOT__rd1_register[0U] - = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src1_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src1_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid [0U]; - vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register[0U] - = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src2_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src2_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result [0U]; @@ -192,7 +316,7 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U) : 0x55U)); - // ALWAYS at VX_decode.v:492 + // ALWAYS at VX_decode.v:397 vlTOPp->__Vtableidx1 = (7U & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xcU)); vlTOPp->Vortex__DOT__vx_decode__DOT__mul_alu = @@ -232,8 +356,12 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { >> 0xcU)))); vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; vlTOPp->Vortex__DOT__csr_decode_csr_data = ((0xc00U == (IData)(vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address)) ? (IData)(vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle) @@ -258,28 +386,50 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { [vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address])))); vlTOPp->out_cache_driver_in_mem_read = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_read; vlTOPp->out_cache_driver_in_mem_write = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_write; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT__execute_branch_stall = ((0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type)) | (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal)); - vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[0U] - = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid - [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data [0U]; @@ -293,18 +443,125 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data [0U]; + vlTOPp->Vortex__DOT__m_w_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__m_w_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid [0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0U]; + vlTOPp->Vortex__DOT__f_d_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__f_d_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid [0U]; + vlTOPp->Vortex__DOT__m_w_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result + [1U]; vlTOPp->Vortex__DOT__m_w_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__m_w_mem_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result + [1U]; vlTOPp->Vortex__DOT__m_w_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result [0U]; - // ALWAYS at VX_decode.v:423 + // ALWAYS at VX_decode.v:328 vlTOPp->Vortex__DOT__decode_itype_immed = ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction) ? ( @@ -440,11 +697,11 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { : 0xdeadbeefU) : 0xdeadbeefU)))))); vlTOPp->Vortex__DOT__decode_clone_stall = (((0U - == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall)) + == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall)) | (1U - != (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall))) + != (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall))) & (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_clone)); - // ALWAYS at VX_decode.v:375 + // ALWAYS at VX_decode.v:280 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -532,7 +789,7 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { } else { vlTOPp->Vortex__DOT__decode_jal_offset = 0xdeadbeefU; } - // ALWAYS at VX_decode.v:434 + // ALWAYS at VX_decode.v:339 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -593,16 +850,28 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { } vlTOPp->Vortex__DOT__decode_change_mask = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) | (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jmprt)); + vlTOPp->Vortex__DOT__e_m_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__e_m_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data [0U]; + vlTOPp->Vortex__DOT__e_m_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__e_m_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid [0U]; + vlTOPp->Vortex__DOT__e_m_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result + [1U]; vlTOPp->Vortex__DOT__e_m_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__d_e_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__d_e_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid [0U]; + vlTOPp->Vortex__DOT__d_e_a_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data + [1U]; vlTOPp->Vortex__DOT__d_e_a_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data [0U]; + vlTOPp->Vortex__DOT__d_e_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__d_e_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd @@ -618,18 +887,128 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd))); + vlTOPp->Vortex__DOT__memory_mem_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result + [1U]; vlTOPp->Vortex__DOT__memory_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[1U] + = vlTOPp->Vortex__DOT__m_w_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[0U] = vlTOPp->Vortex__DOT__m_w_valid[0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[1U] + = vlTOPp->Vortex__DOT__f_d_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[0U] = vlTOPp->Vortex__DOT__f_d_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[1U] + = vlTOPp->Vortex__DOT__m_w_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[0U] = vlTOPp->Vortex__DOT__m_w_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[1U] + = vlTOPp->Vortex__DOT__m_w_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[0U] = vlTOPp->Vortex__DOT__m_w_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[1U] + = vlTOPp->Vortex__DOT__m_w_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[0U] = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[1U] + = vlTOPp->Vortex__DOT__m_w_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[0U] = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; vlTOPp->Vortex__DOT__vx_decode__DOT__temp_final_alu @@ -713,16 +1092,28 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { >> 0x19U))) ? 0U : 1U)))))))))); + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[1U] + = vlTOPp->Vortex__DOT__e_m_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[0U] = vlTOPp->Vortex__DOT__e_m_b_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[1U] + = vlTOPp->Vortex__DOT__e_m_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[0U] = vlTOPp->Vortex__DOT__e_m_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[1U] + = vlTOPp->Vortex__DOT__e_m_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[0U] = vlTOPp->Vortex__DOT__e_m_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[1U] + = vlTOPp->Vortex__DOT__d_e_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[0U] = vlTOPp->Vortex__DOT__d_e_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[1U] + = vlTOPp->Vortex__DOT__d_e_a_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[0U] = vlTOPp->Vortex__DOT__d_e_a_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__d_e_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[0U] = vlTOPp->Vortex__DOT__d_e_b_reg_data[0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd @@ -749,14 +1140,27 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd))); + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[1U] + = vlTOPp->Vortex__DOT__memory_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[0U] = vlTOPp->Vortex__DOT__memory_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[1U] + = vlTOPp->Vortex__DOT__memory_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[0U] = vlTOPp->Vortex__DOT__memory_mem_result[0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid [0U]; - // ALWAYS at VX_decode.v:375 + // ALWAYS at VX_decode.v:280 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -821,7 +1225,7 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { } else { vlTOPp->Vortex__DOT__decode_jal = 0U; } - // ALWAYS at VX_decode.v:434 + // ALWAYS at VX_decode.v:339 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -869,6 +1273,13 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { } else { vlTOPp->Vortex__DOT__decode_branch_stall = 0U; } + vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data[1U] + = ((3U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data + [1U] : ((1U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result + [1U])); vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data[0U] = ((3U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) ? vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data @@ -876,19 +1287,25 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { ? vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result [0U])); + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid [0U]; - vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[0U] - = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result - [0U]; - // ALWAYS at VX_warp.v:22 + // ALWAYS at VX_warp.v:49 vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC = ((IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal) ? vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest @@ -913,12 +1330,27 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { ? (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__curr_PC + (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_offset << 1U)) : vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC)); + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data [0U]; @@ -927,32 +1359,62 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed : vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data [0U]); + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rs2_src) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed + : vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data + [1U]); + vlTOPp->Vortex__DOT__forwarding_src1_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)); vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling = (((IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall) | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)) | (IData)(vlTOPp->Vortex__DOT__decode_clone_stall)); + vlTOPp->Vortex__DOT__forwarding_src2_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)); + vlTOPp->Vortex__DOT__decode_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [1U]; vlTOPp->Vortex__DOT__decode_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid [0U]; vlTOPp->Vortex__DOT__vx_fetch__DOT__stall = ((((IData)(vlTOPp->Vortex__DOT__decode_clone_stall) | (IData)(vlTOPp->Vortex__DOT__decode_branch_stall)) | (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)) | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); + vlTOPp->Vortex__DOT__writeback_write_data[1U] = + vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data + [1U]; vlTOPp->Vortex__DOT__writeback_write_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data [0U]; + vlTOPp->out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data + [1U]; vlTOPp->out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data [0U]; + vlTOPp->out_cache_driver_in_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [1U]; vlTOPp->out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid [0U]; + vlTOPp->Vortex__DOT__memory_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [1U]; vlTOPp->Vortex__DOT__memory_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid [0U]; + vlTOPp->curr_PC = vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC; + vlTOPp->out_cache_driver_in_address[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address + [1U]; vlTOPp->out_cache_driver_in_address[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address [0U]; - vlTOPp->curr_PC = vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC; + vlTOPp->Vortex__DOT__memory_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result + [1U]; vlTOPp->Vortex__DOT__memory_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result [0U]; + vlTOPp->Vortex__DOT__execute_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [1U]; vlTOPp->Vortex__DOT__execute_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid [0U]; + vlTOPp->Vortex__DOT__execute_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__execute_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data [0U]; vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__mult_signed_result @@ -960,19 +1422,39 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data [0U]), VL_EXTENDS_QI(64,32, vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2)); + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result + = VL_MULS_QQQ(64,64,64, VL_EXTENDS_QI(64,32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]), + VL_EXTENDS_QI(64,32, vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)); + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__decode_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[0U] = vlTOPp->Vortex__DOT__decode_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[1U] + = vlTOPp->Vortex__DOT__writeback_write_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[0U] = vlTOPp->Vortex__DOT__writeback_write_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__memory_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[0U] = vlTOPp->Vortex__DOT__memory_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[1U] + = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[1U] + = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__execute_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[0U] = vlTOPp->Vortex__DOT__execute_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__execute_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[0U] = vlTOPp->Vortex__DOT__execute_b_reg_data[0U]; // ALWAYS at VX_alu.v:48 @@ -1102,14 +1584,183 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data [0U] + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2)))))); + // ALWAYS at VX_alu.v:48 + vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result + = ((0x10U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((8U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? 0U : ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] : VL_MODDIV_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] : VL_MODDIVS_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0xffffffffU : + VL_DIV_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0xffffffffU : + VL_DIVS_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))) + : ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (IData)((((QData)((IData)( + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U])) + * (QData)((IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + >> 0x20U)) + : (IData)((((((QData)((IData)( + VL_NEGATE_I((IData)( + (1U + & (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + >> 0x1fU)))))) + << 0x20U) + | (QData)((IData)( + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]))) + * (QData)((IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + >> 0x20U))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (IData)((vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result + >> 0x20U)) + : (IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result))))) + : ((8U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? vlTOPp->Vortex__DOT__csr_decode_csr_data + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? vlTOPp->Vortex__DOT__csr_decode_csr_data + : (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC + + (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__upper_immed + << 0xcU)))) : ((2U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__upper_immed + << 0xcU) + : + ((vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + >= vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0U + : 0xffffffffU)) + : + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2 + & vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + | vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))) + : ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? VL_SHIFTRS_III(32,32,5, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], + (0x1fU + & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] >> (0x1fU & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] ^ vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + : ((vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] < vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 1U : 0U))) : ((2U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (VL_LTS_III(1,32,32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 1U + : 0U) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + << + (0x1fU + & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + - vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))))); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result; + vlTOPp->Vortex__DOT__execute_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result + [1U]; vlTOPp->Vortex__DOT__execute_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[1U] + = vlTOPp->Vortex__DOT__execute_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[0U] = vlTOPp->Vortex__DOT__execute_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[1U] + = vlTOPp->Vortex__DOT__execute_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[0U] = vlTOPp->Vortex__DOT__execute_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next + [1U] : ((2U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result + [1U])) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd) + ? ((3U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next + [1U] + : + ((2U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data + [1U] + : + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result + [1U])) + : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]))); vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) @@ -1138,6 +1789,34 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { [0U])) : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result [0U]))); + vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next + [1U] : ((2U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result + [1U])) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd) + ? ((3U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next + [1U] + : + ((2U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data + [1U] + : + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result + [1U])) + : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]))); vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) @@ -1166,68 +1845,163 @@ void VVortex::_settle__TOP__2(VVortex__Syms* __restrict vlSymsp) { [0U])) : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result [0U]))); + vlTOPp->Vortex__DOT__forwarding_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data + [1U]; vlTOPp->Vortex__DOT__forwarding_src1_fwd_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data [0U]; + vlTOPp->Vortex__DOT__forwarding_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data + [1U]; vlTOPp->Vortex__DOT__forwarding_src2_fwd_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT__forwarding_src1_fwd_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[0U] = vlTOPp->Vortex__DOT__forwarding_src1_fwd_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT__forwarding_src2_fwd_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[0U] = vlTOPp->Vortex__DOT__forwarding_src2_fwd_data [0U]; - vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[0U] + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data + [0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data + [0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[0U] = ((0x6fU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) ? vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC - : ((((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data - [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__rd1_register + : ((IData)(vlTOPp->Vortex__DOT__forwarding_src1_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data + [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register [0U])); - vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[0U] - = ((((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data - [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[1U] + = ((0x6fU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + ? vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC + : ((IData)(vlTOPp->Vortex__DOT__forwarding_src1_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register + [1U])); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[0U] + = ((IData)(vlTOPp->Vortex__DOT__forwarding_src2_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data + [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register [0U]); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__forwarding_src2_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register + [1U]); + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data + [0U]; + vlTOPp->Vortex__DOT__decode_a_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data + [1U]; vlTOPp->Vortex__DOT__decode_a_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data [0U]; + vlTOPp->Vortex__DOT__decode_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__decode_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data [0U]; vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[0U] = VL_LTES_III(1,32,32, 0U, vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data [0U]); + vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[1U] + = VL_LTES_III(1,32,32, 1U, vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data + [0U]); + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[1U] + = vlTOPp->Vortex__DOT__decode_a_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[0U] = vlTOPp->Vortex__DOT__decode_a_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__decode_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[0U] = vlTOPp->Vortex__DOT__decode_b_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) + ? vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask + [1U]); vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) ? vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask [0U]); + vlTOPp->Vortex__DOT__decode_thread_mask[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask + [1U]; vlTOPp->Vortex__DOT__decode_thread_mask[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[1U] + = vlTOPp->Vortex__DOT__decode_thread_mask[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[0U] = vlTOPp->Vortex__DOT__decode_thread_mask[0U]; - // ALWAYS at VX_fetch.v:46 + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + [0U]; + // ALWAYS at VX_warp.v:35 if (vlTOPp->Vortex__DOT__decode_change_mask) { - vlTOPp->Vortex__DOT__vx_fetch__DOT__valid[0U] - = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask [0U]; } - vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[0U] = ((IData)(vlTOPp->Vortex__DOT__decode_change_mask) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + ? vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask [0U] : ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - & vlTOPp->Vortex__DOT__vx_fetch__DOT__valid + & vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid [0U])); + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[1U] + = ((IData)(vlTOPp->Vortex__DOT__decode_change_mask) + ? vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask + [1U] : ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid + [1U])); + vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid + [0U]; + vlTOPp->Vortex__DOT__fetch_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [1U]; vlTOPp->Vortex__DOT__fetch_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__fetch_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[0U] = vlTOPp->Vortex__DOT__fetch_valid[0U]; } @@ -1237,65 +2011,124 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Variables // Begin mtask footprint all: - VL_SIG8(__Vdly__Vortex__DOT__vx_decode__DOT__state_stall,5,0); - VL_SIG8(__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0,4,0); - VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0,0,0); + VL_SIG8(__Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall,5,0); + VL_SIG8(__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0,4,0); + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0,0,0); + VL_SIG8(__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0,4,0); + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0,0,0); + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1,0,0); VL_SIG8(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1,0,0); VL_SIG8(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1,0,0); VL_SIG8(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1,0,0); VL_SIG8(__Vdlyvset__Vortex__DOT__vx_csr_handler__DOT__csr__v0,0,0); VL_SIG16(__Vdlyvdim0__Vortex__DOT__vx_csr_handler__DOT__csr__v0,11,0); VL_SIG16(__Vdlyvval__Vortex__DOT__vx_csr_handler__DOT__csr__v0,11,0); - VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0,31,0); - VL_SIG(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v2,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v3,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v4,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v5,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v6,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v7,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v8,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v9,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v10,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v11,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v12,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v13,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v14,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v15,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v16,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v17,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v18,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v19,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v20,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v21,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v22,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v23,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v24,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v25,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v26,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v27,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v28,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v29,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v30,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v31,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v32,31,0); VL_SIG(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v1,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v1,31,0); VL_SIG(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v1,31,0); VL_SIG(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v0,31,0); - VL_SIG(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v1,31,0); VL_SIG(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v1,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0,31,0); + VL_SIG(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v1,31,0); // Body - __Vdly__Vortex__DOT__vx_decode__DOT__state_stall - = vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall; - __Vdlyvset__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0 = 0U; + __Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0 = 0U; __Vdlyvset__Vortex__DOT__vx_csr_handler__DOT__csr__v0 = 0U; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0 = 0U; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1 = 0U; // ALWAYS at VX_m_w_reg.v:60 __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid + [1U]; + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1 = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid [0U]; // ALWAYS at VX_e_m_reg.v:126 __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data + [1U]; + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v1 = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data [0U]; - // ALWAYS at VX_decode.v:282 + // ALWAYS at VX_e_m_reg.v:126 + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid + [1U]; + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid + [0U]; + // ALWAYS at VX_context.v:69 if (((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_clone) - & (0U == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall)))) { - __Vdly__Vortex__DOT__vx_decode__DOT__state_stall = 0xaU; + & (0U == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall)))) { + __Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall = 0xaU; } else { - if ((1U == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall))) { - __Vdly__Vortex__DOT__vx_decode__DOT__state_stall = 0U; + if ((1U == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall))) { + __Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall = 0U; } else { - if ((0U < (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall))) { - __Vdly__Vortex__DOT__vx_decode__DOT__state_stall - = (0x3fU & ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall) + if ((0U < (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall))) { + __Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall + = (0x3fU & ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall) - (IData)(1U))); } } } - // ALWAYS at VX_e_m_reg.v:126 - __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0 - = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid + // ALWAYS at VX_m_w_reg.v:60 + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result + [1U]; + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v1 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result [0U]; // ALWAYS at VX_m_w_reg.v:60 __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result + [1U]; + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v1 = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result [0U]; - // ALWAYS at VX_m_w_reg.v:60 - __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0 - = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result - [0U]; - // ALWAYS at VX_csr_handler.v:34 - vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address - = vlTOPp->Vortex__DOT__decode_csr_address; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__upper_immed = (0xfffffU & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -1310,6 +2143,9 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) >> 0xcU) : 0U)))); // ALWAYS at VX_csr_handler.v:34 + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address + = vlTOPp->Vortex__DOT__decode_csr_address; + // ALWAYS at VX_csr_handler.v:34 vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle = (VL_ULL(1) + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle); // ALWAYS at VX_csr_handler.v:34 @@ -1317,10 +2153,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret = (VL_ULL(1) + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret); } - // ALWAYS at VX_e_m_reg.v:126 - __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0 - = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result - [0U]; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rs2_src = (1U & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -1328,56 +2160,67 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) | (0x23U == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction))) ? 1U : 0U)))); // ALWAYS at VX_e_m_reg.v:126 + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result + [1U]; + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v1 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result + [0U]; + // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal; // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_type = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type; // ALWAYS at VX_d_e_reg.v:139 __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid + [1U]); + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1 = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid [0U]); // ALWAYS at VX_e_m_reg.v:126 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__curr_PC = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC; - // ALWAYS at VX_e_m_reg.v:126 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_write - = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_write; - // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_read = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_read; // ALWAYS at VX_e_m_reg.v:126 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_write + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_write; + // ALWAYS at VX_e_m_reg.v:126 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__curr_PC = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC; + // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest = (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data [0U] + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal_offset); - // ALWAYS at VX_m_w_reg.v:60 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_offset = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed; + // ALWAYS at VX_m_w_reg.v:60 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; + // ALWAYS at VX_register_file.v:39 + if ((((0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + & (0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd))) + & vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid + [0U])) { + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0 + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data + [0U]; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0 = 1U; + __Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0 + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd; + } // ALWAYS at VX_d_e_reg.v:139 __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v0 = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z - [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data - [0U]); - // ALWAYS at VX_register_file.v:39 - if ((((0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) - & (0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd))) - & vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid - [0U])) { - __Vdlyvval__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0 - = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data - [0U]; - __Vdlyvset__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0 = 1U; - __Vdlyvdim0__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0 - = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd; - } - // ALWAYS at VX_d_e_reg.v:139 - __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0 + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data + [1U]); + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v1 = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z - [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data + [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data [0U]); // ALWAYS at VX_csr_handler.v:43 if (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__is_csr) { @@ -1387,60 +2230,292 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) __Vdlyvdim0__Vortex__DOT__vx_csr_handler__DOT__csr__v0 = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__csr_address; } - // ALWAYSPOST at VX_m_w_reg.v:69 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid[0U] - = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0; - // ALWAYSPOST at VX_e_m_reg.v:137 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[0U] - = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v0; - vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall - = __Vdly__Vortex__DOT__vx_decode__DOT__state_stall; - // ALWAYSPOST at VX_e_m_reg.v:146 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[0U] - = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0; - // ALWAYSPOST at VX_m_w_reg.v:63 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result[0U] - = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v0; - // ALWAYSPOST at VX_m_w_reg.v:62 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result[0U] - = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0; - // ALWAYSPOST at VX_e_m_reg.v:128 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[0U] - = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0; - // ALWAYSPOST at VX_d_e_reg.v:161 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[0U] - = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0; - // ALWAYSPOST at VX_d_e_reg.v:144 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[0U] - = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v0; - // ALWAYSPOST at VX_register_file.v:42 - if (__Vdlyvset__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0) { - vlTOPp->Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers[__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0] - = __Vdlyvval__Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers__v0; + // ALWAYS at VX_register_file_slave.v:44 + if (((((0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + & (0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd))) + & vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid + [1U]) & (~ (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_clone)))) { + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0 + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data + [1U]; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0 = 1U; + __Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0 + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd; + } else { + if (((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_clone) + & ((1U == vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register + [0U]) & (1U == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall))))) { + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1fU]; + __Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1 = 1U; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v2 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1eU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v3 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1dU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v4 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1cU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v5 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1bU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v6 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x1aU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v7 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x19U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v8 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x18U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v9 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x17U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v10 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x16U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v11 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x15U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v12 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x14U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v13 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x13U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v14 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x12U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v15 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x11U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v16 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0x10U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v17 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xfU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v18 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xeU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v19 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xdU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v20 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xcU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v21 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xbU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v22 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0xaU]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v23 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [9U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v24 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [8U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v25 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [7U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v26 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [6U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v27 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [5U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v28 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [4U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v29 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [3U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v30 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [2U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v31 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [1U]; + __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v32 + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs + [0U]; + } } - // ALWAYSPOST at VX_d_e_reg.v:145 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[0U] - = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0; + // ALWAYS at VX_d_e_reg.v:139 + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data + [1U]); + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v1 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z + [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data + [0U]); + // ALWAYSPOST at VX_m_w_reg.v:69 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1; + // ALWAYSPOST at VX_e_m_reg.v:137 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[1U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v0; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[0U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__b_reg_data__v1; + // ALWAYSPOST at VX_e_m_reg.v:146 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1; + // ALWAYSPOST at VX_m_w_reg.v:62 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result[1U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v0; + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result[0U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__alu_result__v1; + // ALWAYSPOST at VX_m_w_reg.v:63 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result[1U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v0; + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result[0U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__mem_result__v1; + // ALWAYSPOST at VX_e_m_reg.v:128 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[1U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[0U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v1; + // ALWAYSPOST at VX_d_e_reg.v:161 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1; + // ALWAYSPOST at VX_register_file.v:42 + if (__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0) { + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers[__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers__v0; + } + // ALWAYSPOST at VX_d_e_reg.v:144 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[1U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v0; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[0U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__a_reg_data__v1; // ALWAYSPOST at VX_csr_handler.v:45 if (__Vdlyvset__Vortex__DOT__vx_csr_handler__DOT__csr__v0) { vlTOPp->Vortex__DOT__vx_csr_handler__DOT__csr[__Vdlyvdim0__Vortex__DOT__vx_csr_handler__DOT__csr__v0] = __Vdlyvval__Vortex__DOT__vx_csr_handler__DOT__csr__v0; } + // ALWAYSPOST at VX_register_file_slave.v:47 + if (__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0) { + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v0; + } + if (__Vdlyvset__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1) { + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1fU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v1; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1eU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v2; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1dU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v3; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1cU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v4; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1bU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v5; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x1aU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v6; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x19U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v7; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x18U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v8; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x17U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v9; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x16U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v10; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x15U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v11; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x14U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v12; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x13U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v13; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x12U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v14; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x11U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v15; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0x10U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v16; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xfU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v17; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xeU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v18; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xdU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v19; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xcU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v20; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xbU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v21; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0xaU] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v22; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[9U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v23; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[8U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v24; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[7U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v25; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[6U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v26; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[5U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v27; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[4U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v28; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[3U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v29; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[2U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v30; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[1U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v31; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[0U] + = __Vdlyvval__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers__v32; + } + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall + = __Vdly__Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall; + // ALWAYSPOST at VX_d_e_reg.v:145 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[1U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v0; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[0U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__b_reg_data__v1; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__b_reg_data [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid [0U]; - vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[0U] - = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result - [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[0U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__mem_result + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result [0U]; @@ -1451,20 +2526,12 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? 0U : (IData)(vlTOPp->Vortex__DOT__decode_branch_type)); + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid [0U]; - // ALWAYS at VX_d_e_reg.v:139 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC = - ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) - ? 0U : vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC); - vlTOPp->out_cache_driver_in_mem_write = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_write; - // ALWAYS at VX_d_e_reg.v:139 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_write - = (7U & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) - ? 7U : ((0x23U == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) - ? (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xcU) : 7U))); vlTOPp->out_cache_driver_in_mem_read = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_read; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_read @@ -1472,30 +2539,137 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) ? 7U : ((3U == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) ? (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xcU) : 7U))); + vlTOPp->out_cache_driver_in_mem_write = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_write; + // ALWAYS at VX_d_e_reg.v:139 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_write + = (7U & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? 7U : ((0x23U == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + ? (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xcU) : 7U))); + // ALWAYS at VX_d_e_reg.v:139 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC = + ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? 0U : vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC); // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal_offset = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? 0U : vlTOPp->Vortex__DOT__decode_jal_offset); - vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data[0U] - = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; - vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[0U] - = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; - // ALWAYS at VX_e_m_reg.v:126 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? 0xdeadbeefU : vlTOPp->Vortex__DOT__decode_itype_immed); + vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data[0U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[0U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__PC_next; + // ALWAYS at VX_e_m_reg.v:126 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__a_reg_data [0U]; - // ALWAYS at VX_m_w_reg.v:60 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd; - // ALWAYS at VX_m_w_reg.v:60 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb; - vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[0U] - = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data - [0U]; // ALWAYS at VX_e_m_reg.v:126 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__csr_address = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__csr_address; @@ -1512,23 +2686,143 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) ? (vlTOPp->Vortex__DOT__csr_decode_csr_data & ((IData)(0xffffffffU) - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__csr_mask)) : 0xdeadbeefU))); + // ALWAYS at VX_m_w_reg.v:60 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd; + // ALWAYS at VX_m_w_reg.v:60 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[0U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__b_reg_data + [0U]; + vlTOPp->Vortex__DOT__m_w_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__m_w_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid [0U]; + vlTOPp->Vortex__DOT__e_m_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__e_m_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data [0U]; + vlTOPp->Vortex__DOT__e_m_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__e_m_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid [0U]; - vlTOPp->Vortex__DOT__m_w_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result - [0U]; + vlTOPp->Vortex__DOT__m_w_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result + [1U]; vlTOPp->Vortex__DOT__m_w_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__m_w_mem_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result + [1U]; + vlTOPp->Vortex__DOT__m_w_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result + [0U]; + vlTOPp->Vortex__DOT__e_m_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result + [1U]; vlTOPp->Vortex__DOT__e_m_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__d_e_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__d_e_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid [0U]; - vlTOPp->Vortex__DOT__d_e_a_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs [0U]; - vlTOPp->Vortex__DOT__d_e_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data + vlTOPp->Vortex__DOT__d_e_a_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data + [1U]; + vlTOPp->Vortex__DOT__d_e_a_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data [0U]; vlTOPp->Vortex__DOT__csr_decode_csr_data = ((0xc00U == (IData)(vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address)) @@ -1552,41 +2846,157 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) : vlTOPp->Vortex__DOT__vx_csr_handler__DOT__csr [vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address])))); + vlTOPp->Vortex__DOT__d_e_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data + [1U]; + vlTOPp->Vortex__DOT__d_e_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[1U] + = vlTOPp->Vortex__DOT__m_w_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[0U] = vlTOPp->Vortex__DOT__m_w_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[1U] + = vlTOPp->Vortex__DOT__e_m_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[0U] = vlTOPp->Vortex__DOT__e_m_b_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[1U] + = vlTOPp->Vortex__DOT__e_m_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[0U] = vlTOPp->Vortex__DOT__e_m_valid[0U]; - vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[0U] - = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; - vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[0U] - = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[1U] + = vlTOPp->Vortex__DOT__m_w_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[0U] = vlTOPp->Vortex__DOT__m_w_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[1U] + = vlTOPp->Vortex__DOT__m_w_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[0U] = vlTOPp->Vortex__DOT__m_w_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[1U] + = vlTOPp->Vortex__DOT__m_w_mem_result[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[0U] + = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[1U] + = vlTOPp->Vortex__DOT__m_w_mem_result[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[0U] + = vlTOPp->Vortex__DOT__m_w_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[1U] + = vlTOPp->Vortex__DOT__e_m_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[0U] = vlTOPp->Vortex__DOT__e_m_alu_result[0U]; vlTOPp->Vortex__DOT__execute_branch_stall = ((0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type)) | (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal)); + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[1U] + = vlTOPp->Vortex__DOT__d_e_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[0U] = vlTOPp->Vortex__DOT__d_e_valid[0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__PC_next; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? 0U : ((IData)(4U) + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC)); + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1fU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1fU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1eU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1eU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1dU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1dU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1cU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1cU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1bU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1bU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x1aU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x1aU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x19U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x19U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x18U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x18U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x17U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x17U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x16U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x16U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x15U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x15U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x14U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x14U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x13U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x13U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x12U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x12U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x11U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x11U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0x10U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0x10U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xfU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xfU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xeU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xeU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xdU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xdU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xcU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xcU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xbU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xbU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0xaU] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0xaU]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[9U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [9U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[8U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [8U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[7U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [7U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[6U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [6U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[5U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [5U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[4U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [4U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[3U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [3U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[2U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [2U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[1U] + = vlTOPp->Vortex__DOT__d_e_a_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[0U] = vlTOPp->Vortex__DOT__d_e_a_reg_data[0U]; - // ALWAYS at VX_e_m_reg.v:126 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd; - // ALWAYS at VX_e_m_reg.v:126 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb; - vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[0U] - = vlTOPp->Vortex__DOT__d_e_b_reg_data[0U]; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__csr_address = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -1612,15 +3022,45 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction))) ? (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__mul_alu) : (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__temp_final_alu))); + // ALWAYS at VX_e_m_reg.v:126 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd; + // ALWAYS at VX_e_m_reg.v:126 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__d_e_b_reg_data[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[0U] + = vlTOPp->Vortex__DOT__d_e_b_reg_data[0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data[1U] + = ((3U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data + [1U] : ((1U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result + [1U])); vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data[0U] = ((3U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) ? vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data @@ -1628,15 +3068,27 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) ? vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result [0U])); + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data [0U]; @@ -1645,23 +3097,45 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed : vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data [0U]); + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rs2_src) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed + : vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data + [1U]); + vlTOPp->out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data + [1U]; vlTOPp->out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data [0U]; + vlTOPp->out_cache_driver_in_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [1U]; vlTOPp->out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid [0U]; + vlTOPp->Vortex__DOT__memory_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [1U]; vlTOPp->Vortex__DOT__memory_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid [0U]; + vlTOPp->Vortex__DOT__writeback_write_data[1U] = + vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data + [1U]; vlTOPp->Vortex__DOT__writeback_write_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data [0U]; + vlTOPp->out_cache_driver_in_address[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address + [1U]; vlTOPp->out_cache_driver_in_address[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address [0U]; + vlTOPp->Vortex__DOT__memory_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result + [1U]; vlTOPp->Vortex__DOT__memory_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result [0U]; + vlTOPp->Vortex__DOT__execute_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [1U]; vlTOPp->Vortex__DOT__execute_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; // ALWAYS at VX_d_e_reg.v:139 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd = (0x1fU & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -1715,6 +3189,8 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) | (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_csr)) ? 1U : 0U)))); + vlTOPp->Vortex__DOT__execute_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__execute_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_b_reg_data [0U]; vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__mult_signed_result @@ -1722,17 +3198,35 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data [0U]), VL_EXTENDS_QI(64,32, vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2)); + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result + = VL_MULS_QQQ(64,64,64, VL_EXTENDS_QI(64,32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]), + VL_EXTENDS_QI(64,32, vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)); + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__memory_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[0U] = vlTOPp->Vortex__DOT__memory_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[1U] + = vlTOPp->Vortex__DOT__writeback_write_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[0U] = vlTOPp->Vortex__DOT__writeback_write_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[1U] + = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[1U] + = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__execute_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[0U] = vlTOPp->Vortex__DOT__execute_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__execute_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[0U] = vlTOPp->Vortex__DOT__execute_b_reg_data[0U]; // ALWAYS at VX_alu.v:48 @@ -1862,12 +3356,153 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__3(VVortex__Syms* __restrict vlSymsp) (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data [0U] + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2)))))); + // ALWAYS at VX_alu.v:48 + vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result + = ((0x10U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((8U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? 0U : ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] : VL_MODDIV_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] : VL_MODDIVS_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0xffffffffU : + VL_DIV_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : ((0U == vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0xffffffffU : + VL_DIVS_III(32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))) + : ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (IData)((((QData)((IData)( + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U])) + * (QData)((IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + >> 0x20U)) + : (IData)((((((QData)((IData)( + VL_NEGATE_I((IData)( + (1U + & (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + >> 0x1fU)))))) + << 0x20U) + | (QData)((IData)( + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]))) + * (QData)((IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + >> 0x20U))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (IData)((vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result + >> 0x20U)) + : (IData)(vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result))))) + : ((8U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? vlTOPp->Vortex__DOT__csr_decode_csr_data + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? vlTOPp->Vortex__DOT__csr_decode_csr_data + : (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__curr_PC + + (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__upper_immed + << 0xcU)))) : ((2U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__upper_immed + << 0xcU) + : + ((vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + >= vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 0U + : 0xffffffffU)) + : + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2 + & vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U]) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + | vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))) + : ((4U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? VL_SHIFTRS_III(32,32,5, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], + (0x1fU + & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)) + : (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] >> (0x1fU & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] ^ vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + : ((vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] < vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 1U : 0U))) : ((2U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (VL_LTS_III(1,32,32, + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U], vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + ? 1U + : 0U) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + << + (0x1fU + & vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2))) + : + ((1U + & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) + ? + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + - vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2) + : + (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data + [1U] + + vlTOPp->Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2)))))); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[1U] + = vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result; + vlTOPp->Vortex__DOT__execute_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result + [1U]; vlTOPp->Vortex__DOT__execute_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[1U] + = vlTOPp->Vortex__DOT__execute_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[0U] = vlTOPp->Vortex__DOT__execute_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[1U] + = vlTOPp->Vortex__DOT__execute_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[0U] = vlTOPp->Vortex__DOT__execute_alu_result[0U]; } @@ -1878,20 +3513,18 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__4(VVortex__Syms* __restrict vlSymsp) // Variables // Begin mtask footprint all: VL_SIG8(__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0,0,0); - VL_SIG8(__Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v1,0,0); - VL_SIG8(__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v1,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2,0,0); + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3,0,0); // Body __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0 = 0U; - __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v1 = 0U; - // ALWAYS at VX_warp.v:34 - if (vlTOPp->reset) { - vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC = 0U; - } else { - if ((1U & (~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)))) { - vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC - = ((IData)(4U) + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC); - } - } + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 = 0U; + // ALWAYS at VX_warp.v:62 + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC + = ((IData)(vlTOPp->reset) ? 0U : ((IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall) + ? vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC + : ((IData)(4U) + + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC))); // ALWAYS at VX_f_d_reg.v:33 if (vlTOPp->reset) { vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC = 0U; @@ -1908,21 +3541,27 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__4(VVortex__Syms* __restrict vlSymsp) } else { if ((1U & (~ ((IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall) | (IData)(vlTOPp->Vortex__DOT__decode_clone_stall))))) { - __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v1 + __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 + = vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid + [1U]; + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 = 1U; + __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3 = vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid [0U]; - __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v1 = 1U; } } // ALWAYSPOST at VX_f_d_reg.v:38 if (__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0) { vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[0U] = 0U; + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[1U] = 0U; } - if (__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v1) { + if (__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2) { + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2; vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[0U] - = __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v1; + = __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3; } - // ALWAYS at VX_warp.v:22 + // ALWAYS at VX_warp.v:49 vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC = ((IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal) ? vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest @@ -1947,19 +3586,33 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__4(VVortex__Syms* __restrict vlSymsp) ? (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__curr_PC + (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_offset << 1U)) : vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC)); + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[0U] = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid [0U]; vlTOPp->curr_PC = vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC; + vlTOPp->Vortex__DOT__f_d_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [1U]; vlTOPp->Vortex__DOT__f_d_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[1U] + = vlTOPp->Vortex__DOT__f_d_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[0U] = vlTOPp->Vortex__DOT__f_d_valid[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid [0U]; + vlTOPp->Vortex__DOT__decode_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [1U]; vlTOPp->Vortex__DOT__decode_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__decode_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[0U] = vlTOPp->Vortex__DOT__decode_valid[0U]; } @@ -1968,15 +3621,26 @@ VL_INLINE_OPT void VVortex::_combo__TOP__5(VVortex__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_combo__TOP__5\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[1U] + = vlTOPp->in_cache_driver_out_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[0U] = vlTOPp->in_cache_driver_out_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data + [1U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data [0U]; + vlTOPp->Vortex__DOT__memory_mem_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result + [1U]; vlTOPp->Vortex__DOT__memory_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[1U] + = vlTOPp->Vortex__DOT__memory_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[0U] = vlTOPp->Vortex__DOT__memory_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[1U] + = vlTOPp->Vortex__DOT__memory_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[0U] = vlTOPp->Vortex__DOT__memory_mem_result[0U]; } @@ -1985,20 +3649,34 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__6(VVortex__Syms* __restrict vlSymsp) VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_sequent__TOP__6\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body - // ALWAYS at VX_register_file.v:46 - vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src1_data - = vlTOPp->Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers + // ALWAYS at VX_register_file_slave.v:60 + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers [(0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xfU))]; // ALWAYS at VX_register_file.v:46 - vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src2_data - = vlTOPp->Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src1_data + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [(0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU))]; + // ALWAYS at VX_register_file_slave.v:60 + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers [(0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U))]; - vlTOPp->Vortex__DOT__vx_decode__DOT__rd1_register[0U] - = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src1_data; - vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register[0U] - = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src2_data; + // ALWAYS at VX_register_file.v:46 + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src2_data + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers + [(0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0x14U))]; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src1_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data; + vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src2_data; } VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) { @@ -2034,7 +3712,7 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U) : 0x55U)); - // ALWAYS at VX_decode.v:492 + // ALWAYS at VX_decode.v:397 vlTOPp->__Vtableidx1 = (7U & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xcU)); vlTOPp->Vortex__DOT__vx_decode__DOT__mul_alu = @@ -2068,21 +3746,21 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) ((0x6bU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) & (4U == (7U & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xcU)))); - vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs = - ((0x6bU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) - & (6U == (7U & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xcU)))); vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); + vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs = + ((0x6bU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + & (6U == (7U & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xcU)))); vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); - // ALWAYS at VX_decode.v:423 + // ALWAYS at VX_decode.v:328 vlTOPp->Vortex__DOT__decode_itype_immed = ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction) ? ( @@ -2218,11 +3896,17 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) : 0xdeadbeefU) : 0xdeadbeefU)))))); vlTOPp->Vortex__DOT__decode_clone_stall = (((0U - == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall)) + == (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall)) | (1U - != (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__state_stall))) + != (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall))) & (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_clone)); - // ALWAYS at VX_decode.v:375 + vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd + = (((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd)) + & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb))) + & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))); + // ALWAYS at VX_decode.v:280 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -2310,7 +3994,7 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) } else { vlTOPp->Vortex__DOT__decode_jal_offset = 0xdeadbeefU; } - // ALWAYS at VX_decode.v:375 + // ALWAYS at VX_decode.v:280 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -2375,7 +4059,7 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) } else { vlTOPp->Vortex__DOT__decode_jal = 0U; } - // ALWAYS at VX_decode.v:434 + // ALWAYS at VX_decode.v:339 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -2434,7 +4118,7 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) } else { vlTOPp->Vortex__DOT__decode_branch_type = 0U; } - // ALWAYS at VX_decode.v:434 + // ALWAYS at VX_decode.v:339 if ((0x40U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x20U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { if ((0x10U & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) { @@ -2484,12 +4168,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) } vlTOPp->Vortex__DOT__decode_change_mask = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) | (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jmprt)); - vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd - = (((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd)) - & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb))) - & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))); vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd = (((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd)) @@ -2497,6 +4175,14 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd))); + vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd + = ((((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd)) + & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)))) & (0U + != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb))) + & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))) + & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd))); vlTOPp->Vortex__DOT__vx_decode__DOT__temp_final_alu = ((0x63U == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) ? ((5U > (IData)(vlTOPp->Vortex__DOT__decode_branch_type)) @@ -2578,14 +4264,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) >> 0x19U))) ? 0U : 1U)))))))))); - vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd - = ((((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd)) - & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)))) & (0U - != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb))) - & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))) - & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd))); vlTOPp->Vortex__DOT__forwarding_fwd_stall = ((((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd)) & (2U @@ -2602,6 +4280,9 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd))); + vlTOPp->Vortex__DOT__forwarding_src1_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)); vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling = (((IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall) | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)) @@ -2610,12 +4291,43 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) | (IData)(vlTOPp->Vortex__DOT__decode_branch_stall)) | (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)) | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); + vlTOPp->Vortex__DOT__forwarding_src2_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)); } VL_INLINE_OPT void VVortex::_combo__TOP__8(VVortex__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_combo__TOP__8\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body + vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next + [1U] : ((2U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result + [1U])) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd) + ? ((3U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next + [1U] + : + ((2U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data + [1U] + : + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result + [1U])) + : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]))); vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) @@ -2644,6 +4356,34 @@ VL_INLINE_OPT void VVortex::_combo__TOP__8(VVortex__Syms* __restrict vlSymsp) { [0U])) : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result [0U]))); + vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd) + ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next + [1U] : ((2U == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb)) + ? vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result + [1U])) : ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd) + ? ((3U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next + [1U] + : + ((2U + == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) + ? + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data + [1U] + : + vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result + [1U])) + : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result + [1U]))); vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) ? ((3U == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb)) @@ -2672,68 +4412,163 @@ VL_INLINE_OPT void VVortex::_combo__TOP__8(VVortex__Syms* __restrict vlSymsp) { [0U])) : vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result [0U]))); + vlTOPp->Vortex__DOT__forwarding_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data + [1U]; vlTOPp->Vortex__DOT__forwarding_src1_fwd_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data [0U]; + vlTOPp->Vortex__DOT__forwarding_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data + [1U]; vlTOPp->Vortex__DOT__forwarding_src2_fwd_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT__forwarding_src1_fwd_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[0U] = vlTOPp->Vortex__DOT__forwarding_src1_fwd_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT__forwarding_src2_fwd_data + [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[0U] = vlTOPp->Vortex__DOT__forwarding_src2_fwd_data [0U]; - vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[0U] + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data + [0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data + [1U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data + [0U]; + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[0U] = ((0x6fU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) ? vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC - : ((((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data - [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__rd1_register + : ((IData)(vlTOPp->Vortex__DOT__forwarding_src1_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data + [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register [0U])); - vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[0U] - = ((((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data - [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[1U] + = ((0x6fU == (0x7fU & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + ? vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC + : ((IData)(vlTOPp->Vortex__DOT__forwarding_src1_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register + [1U])); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[0U] + = ((IData)(vlTOPp->Vortex__DOT__forwarding_src2_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data + [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register [0U]); + vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[1U] + = ((IData)(vlTOPp->Vortex__DOT__forwarding_src2_fwd) + ? vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register + [1U]); + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[1U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[0U] + = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data + [0U]; + vlTOPp->Vortex__DOT__decode_a_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data + [1U]; vlTOPp->Vortex__DOT__decode_a_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_a_reg_data [0U]; + vlTOPp->Vortex__DOT__decode_b_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data + [1U]; vlTOPp->Vortex__DOT__decode_b_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data [0U]; vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[0U] = VL_LTES_III(1,32,32, 0U, vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data [0U]); + vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[1U] + = VL_LTES_III(1,32,32, 1U, vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_b_reg_data + [0U]); + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[1U] + = vlTOPp->Vortex__DOT__decode_a_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[0U] = vlTOPp->Vortex__DOT__decode_a_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[1U] + = vlTOPp->Vortex__DOT__decode_b_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[0U] = vlTOPp->Vortex__DOT__decode_b_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask[1U] + = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) + ? vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask + [1U] : vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask + [1U]); vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask[0U] = ((IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_jalrs) ? vlTOPp->Vortex__DOT__vx_decode__DOT__jalrs_thread_mask [0U] : vlTOPp->Vortex__DOT__vx_decode__DOT__jmprt_thread_mask [0U]); + vlTOPp->Vortex__DOT__decode_thread_mask[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask + [1U]; vlTOPp->Vortex__DOT__decode_thread_mask[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_thread_mask [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[1U] + = vlTOPp->Vortex__DOT__decode_thread_mask[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[0U] = vlTOPp->Vortex__DOT__decode_thread_mask[0U]; - // ALWAYS at VX_fetch.v:46 + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + [0U]; + // ALWAYS at VX_warp.v:35 if (vlTOPp->Vortex__DOT__decode_change_mask) { - vlTOPp->Vortex__DOT__vx_fetch__DOT__valid[0U] - = vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask [0U]; } - vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[0U] = ((IData)(vlTOPp->Vortex__DOT__decode_change_mask) - ? vlTOPp->Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask + ? vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask [0U] : ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - & vlTOPp->Vortex__DOT__vx_fetch__DOT__valid + & vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid [0U])); + vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[1U] + = ((IData)(vlTOPp->Vortex__DOT__decode_change_mask) + ? vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask + [1U] : ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & vlTOPp->Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid + [1U])); + vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid + [1U]; + vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_fetch__DOT__warp_valid + [0U]; + vlTOPp->Vortex__DOT__fetch_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [1U]; vlTOPp->Vortex__DOT__fetch_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__fetch_valid[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[0U] = vlTOPp->Vortex__DOT__fetch_valid[0U]; } @@ -2812,292 +4647,297 @@ void VVortex::_ctor_var_reset() { clk = VL_RAND_RESET_I(1); reset = VL_RAND_RESET_I(1); fe_instruction = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { in_cache_driver_out_data[__Vi0] = VL_RAND_RESET_I(32); }} curr_PC = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { out_cache_driver_in_address[__Vi0] = VL_RAND_RESET_I(32); }} out_cache_driver_in_mem_read = VL_RAND_RESET_I(3); out_cache_driver_in_mem_write = VL_RAND_RESET_I(3); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { out_cache_driver_in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { out_cache_driver_in_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__fetch_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__f_d_valid[__Vi0] = VL_RAND_RESET_I(1); }} Vortex__DOT__decode_branch_stall = VL_RAND_RESET_I(1); Vortex__DOT__decode_csr_address = VL_RAND_RESET_I(12); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__decode_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__decode_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__decode_itype_immed = VL_RAND_RESET_I(32); Vortex__DOT__decode_branch_type = VL_RAND_RESET_I(3); Vortex__DOT__decode_jal = VL_RAND_RESET_I(1); Vortex__DOT__decode_jal_offset = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__decode_valid[__Vi0] = VL_RAND_RESET_I(1); }} Vortex__DOT__decode_clone_stall = VL_RAND_RESET_I(1); Vortex__DOT__decode_change_mask = VL_RAND_RESET_I(1); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__decode_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__d_e_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__d_e_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__d_e_valid[__Vi0] = VL_RAND_RESET_I(1); }} Vortex__DOT__execute_branch_stall = VL_RAND_RESET_I(1); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__execute_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__execute_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__execute_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__e_m_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__e_m_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__e_m_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__memory_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__memory_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__memory_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__m_w_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__m_w_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__m_w_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__writeback_write_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__csr_decode_csr_data = VL_RAND_RESET_I(32); Vortex__DOT__forwarding_fwd_stall = VL_RAND_RESET_I(1); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + Vortex__DOT__forwarding_src1_fwd = VL_RAND_RESET_I(1); + Vortex__DOT__forwarding_src2_fwd = VL_RAND_RESET_I(1); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__forwarding_src1_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__forwarding_src2_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_fetch__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_decode__out_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_decode__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_write_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_execute__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_execute__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_execute__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_rd2[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_writeback__out_write_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_fetch__DOT__stall = VL_RAND_RESET_I(1); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { - Vortex__DOT__vx_fetch__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_fetch__DOT__warp_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__real_PC = VL_RAND_RESET_I(32); Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__temp_PC = VL_RAND_RESET_I(32); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + }} Vortex__DOT__vx_f_d_reg__DOT__instruction = VL_RAND_RESET_I(32); Vortex__DOT__vx_f_d_reg__DOT__curr_PC = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_f_d_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { - Vortex__DOT__vx_decode__DOT__rd1_register[__Vi0] = VL_RAND_RESET_I(32); - }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { - Vortex__DOT__vx_decode__DOT__rd2_register[__Vi0] = VL_RAND_RESET_I(32); - }} Vortex__DOT__vx_decode__DOT__is_itype = VL_RAND_RESET_I(1); Vortex__DOT__vx_decode__DOT__is_csr = VL_RAND_RESET_I(1); Vortex__DOT__vx_decode__DOT__is_clone = VL_RAND_RESET_I(1); @@ -3105,24 +4945,62 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_decode__DOT__is_jmprt = VL_RAND_RESET_I(1); Vortex__DOT__vx_decode__DOT__alu_tempp = VL_RAND_RESET_I(12); Vortex__DOT__vx_decode__DOT__mul_alu = VL_RAND_RESET_I(5); - Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src2_data = VL_RAND_RESET_I(32); - Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src1_data = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[__Vi0] = VL_RAND_RESET_I(1); }} - Vortex__DOT__vx_decode__DOT__state_stall = VL_RAND_RESET_I(6); Vortex__DOT__vx_decode__DOT__temp_final_alu = VL_RAND_RESET_I(5); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[__Vi0] = VL_RAND_RESET_I(32); + }} { int __Vi0=0; for (; __Vi0<32; ++__Vi0) { - Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers[__Vi0] = VL_RAND_RESET_I(32); + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[__Vi0] = VL_RAND_RESET_I(32); + }} + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src2_data = VL_RAND_RESET_I(32); + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src1_data = VL_RAND_RESET_I(32); + { int __Vi0=0; for (; __Vi0<32; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[__Vi0] = VL_RAND_RESET_I(32); + }} + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall = VL_RAND_RESET_I(6); + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data = VL_RAND_RESET_I(32); + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data = VL_RAND_RESET_I(32); + { int __Vi0=0; for (; __Vi0<32; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<32; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers[__Vi0] = VL_RAND_RESET_I(32); + }} + { int __Vi0=0; for (; __Vi0<32; ++__Vi0) { + Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_d_e_reg__DOT__rd = VL_RAND_RESET_I(5); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_d_e_reg__DOT__alu_op = VL_RAND_RESET_I(5); @@ -3140,27 +5018,30 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_d_e_reg__DOT__curr_PC = VL_RAND_RESET_I(32); Vortex__DOT__vx_d_e_reg__DOT__jal = VL_RAND_RESET_I(1); Vortex__DOT__vx_d_e_reg__DOT__jal_offset = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__valid_z[__Vi0] = VL_RAND_RESET_I(1); }} Vortex__DOT__vx_d_e_reg__DOT__stalling = VL_RAND_RESET_I(1); Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result = VL_RAND_RESET_I(32); + Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result = VL_RAND_RESET_I(32); Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2 = VL_RAND_RESET_I(32); Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__mult_signed_result = VL_RAND_RESET_Q(64); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2 = VL_RAND_RESET_I(32); + Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result = VL_RAND_RESET_Q(64); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_e_m_reg__DOT__alu_result[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_e_m_reg__DOT__rd = VL_RAND_RESET_I(5); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_e_m_reg__DOT__a_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_e_m_reg__DOT__wb = VL_RAND_RESET_I(2); @@ -3175,22 +5056,22 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_e_m_reg__DOT__branch_type = VL_RAND_RESET_I(3); Vortex__DOT__vx_e_m_reg__DOT__jal = VL_RAND_RESET_I(1); Vortex__DOT__vx_e_m_reg__DOT__jal_dest = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_e_m_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_m_w_reg__DOT__alu_result[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_m_w_reg__DOT__mem_result[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_m_w_reg__DOT__rd = VL_RAND_RESET_I(5); Vortex__DOT__vx_m_w_reg__DOT__wb = VL_RAND_RESET_I(2); Vortex__DOT__vx_m_w_reg__DOT__PC_next = VL_RAND_RESET_I(32); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_m_w_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_writeback__DOT__out_pc_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd = VL_RAND_RESET_I(1); @@ -3199,13 +5080,13 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd = VL_RAND_RESET_I(1); Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd = VL_RAND_RESET_I(1); Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd = VL_RAND_RESET_I(1); - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[__Vi0] = VL_RAND_RESET_I(32); }} - { int __Vi0=0; for (; __Vi0<1; ++__Vi0) { + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<4096; ++__Vi0) { diff --git a/rtl/obj_dir/VVortex.h b/rtl/obj_dir/VVortex.h index 87d5c4cb..ddbe3dd4 100644 --- a/rtl/obj_dir/VVortex.h +++ b/rtl/obj_dir/VVortex.h @@ -27,10 +27,10 @@ VL_MODULE(VVortex) { VL_OUT8(out_cache_driver_in_mem_write,2,0); VL_IN(fe_instruction,31,0); VL_OUT(curr_PC,31,0); - VL_IN(in_cache_driver_out_data[1],31,0); - VL_OUT(out_cache_driver_in_address[1],31,0); - VL_OUT8(out_cache_driver_in_valid[1],0,0); - VL_OUT(out_cache_driver_in_data[1],31,0); + VL_IN(in_cache_driver_out_data[2],31,0); + VL_OUT(out_cache_driver_in_address[2],31,0); + VL_OUT8(out_cache_driver_in_valid[2],0,0); + VL_OUT(out_cache_driver_in_data[2],31,0); // LOCAL SIGNALS // Internals; generally not touched by application code @@ -44,6 +44,8 @@ VL_MODULE(VVortex) { VL_SIG8(Vortex__DOT__decode_change_mask,0,0); VL_SIG8(Vortex__DOT__execute_branch_stall,0,0); VL_SIG8(Vortex__DOT__forwarding_fwd_stall,0,0); + VL_SIG8(Vortex__DOT__forwarding_src1_fwd,0,0); + VL_SIG8(Vortex__DOT__forwarding_src2_fwd,0,0); VL_SIG8(Vortex__DOT__vx_fetch__DOT__stall,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__is_itype,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__is_csr,0,0); @@ -51,8 +53,8 @@ VL_MODULE(VVortex) { VL_SIG8(Vortex__DOT__vx_decode__DOT__is_jalrs,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__is_jmprt,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__mul_alu,4,0); - VL_SIG8(Vortex__DOT__vx_decode__DOT__state_stall,5,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__temp_final_alu,4,0); + VL_SIG8(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__state_stall,5,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__rd,4,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__alu_op,4,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__wb,1,0); @@ -97,133 +99,156 @@ VL_MODULE(VVortex) { VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__curr_PC,31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__jal_offset,31,0); VL_SIG(Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2,31,0); + VL_SIG(Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__ALU_in2,31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__PC_next,31,0); + }; + struct { VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__csr_result,31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__curr_PC,31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__branch_offset,31,0); - }; - struct { VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__jal_dest,31,0); VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__PC_next,31,0); VL_SIG64(Vortex__DOT__vx_execute__DOT__genblk1__BRA__0__KET____DOT__vx_alu__DOT__mult_signed_result,63,0); + VL_SIG64(Vortex__DOT__vx_execute__DOT__genblk1__BRA__1__KET____DOT__vx_alu__DOT__mult_signed_result,63,0); VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__cycle,63,0); VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__instret,63,0); - VL_SIG8(Vortex__DOT__fetch_valid[1],0,0); - VL_SIG8(Vortex__DOT__f_d_valid[1],0,0); - VL_SIG(Vortex__DOT__decode_a_reg_data[1],31,0); - VL_SIG(Vortex__DOT__decode_b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__decode_valid[1],0,0); - VL_SIG8(Vortex__DOT__decode_thread_mask[1],0,0); - VL_SIG(Vortex__DOT__d_e_a_reg_data[1],31,0); - VL_SIG(Vortex__DOT__d_e_b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__d_e_valid[1],0,0); - VL_SIG(Vortex__DOT__execute_alu_result[1],31,0); - VL_SIG(Vortex__DOT__execute_b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__execute_valid[1],0,0); - VL_SIG(Vortex__DOT__e_m_alu_result[1],31,0); - VL_SIG(Vortex__DOT__e_m_b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__e_m_valid[1],0,0); - VL_SIG(Vortex__DOT__memory_alu_result[1],31,0); - VL_SIG(Vortex__DOT__memory_mem_result[1],31,0); - VL_SIG8(Vortex__DOT__memory_valid[1],0,0); - VL_SIG(Vortex__DOT__m_w_alu_result[1],31,0); - VL_SIG(Vortex__DOT__m_w_mem_result[1],31,0); - VL_SIG8(Vortex__DOT__m_w_valid[1],0,0); - VL_SIG(Vortex__DOT__writeback_write_data[1],31,0); - VL_SIG(Vortex__DOT__forwarding_src1_fwd_data[1],31,0); - VL_SIG(Vortex__DOT__forwarding_src2_fwd_data[1],31,0); - VL_SIG8(Vortex__DOT__vx_fetch__DOT__valid[1],0,0); - VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__valid[1],0,0); - VL_SIG(Vortex__DOT__vx_decode__DOT__rd1_register[1],31,0); - VL_SIG(Vortex__DOT__vx_decode__DOT__rd2_register[1],31,0); - VL_SIG8(Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[1],0,0); - VL_SIG8(Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[1],0,0); - VL_SIG(Vortex__DOT__vx_decode__DOT__vx_register_file_master__DOT__registers[32],31,0); - VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[1],31,0); - VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid[1],0,0); - VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[1],31,0); - VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid_z[1],0,0); - VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__alu_result[1],31,0); - VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__a_reg_data[1],31,0); - VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[1],31,0); - VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__valid[1],0,0); - VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__alu_result[1],31,0); - VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__mem_result[1],31,0); - VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__valid[1],0,0); - VL_SIG(Vortex__DOT__vx_writeback__DOT__out_pc_data[1],31,0); - VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[1],31,0); - VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[1],31,0); - VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[1],31,0); + VL_SIG8(Vortex__DOT__fetch_valid[2],0,0); + VL_SIG8(Vortex__DOT__f_d_valid[2],0,0); + VL_SIG(Vortex__DOT__decode_a_reg_data[2],31,0); + VL_SIG(Vortex__DOT__decode_b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__decode_valid[2],0,0); + VL_SIG8(Vortex__DOT__decode_thread_mask[2],0,0); + VL_SIG(Vortex__DOT__d_e_a_reg_data[2],31,0); + VL_SIG(Vortex__DOT__d_e_b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__d_e_valid[2],0,0); + VL_SIG(Vortex__DOT__execute_alu_result[2],31,0); + VL_SIG(Vortex__DOT__execute_b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__execute_valid[2],0,0); + VL_SIG(Vortex__DOT__e_m_alu_result[2],31,0); + VL_SIG(Vortex__DOT__e_m_b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__e_m_valid[2],0,0); + VL_SIG(Vortex__DOT__memory_alu_result[2],31,0); + VL_SIG(Vortex__DOT__memory_mem_result[2],31,0); + VL_SIG8(Vortex__DOT__memory_valid[2],0,0); + VL_SIG(Vortex__DOT__m_w_alu_result[2],31,0); + VL_SIG(Vortex__DOT__m_w_mem_result[2],31,0); + VL_SIG8(Vortex__DOT__m_w_valid[2],0,0); + VL_SIG(Vortex__DOT__writeback_write_data[2],31,0); + VL_SIG(Vortex__DOT__forwarding_src1_fwd_data[2],31,0); + VL_SIG(Vortex__DOT__forwarding_src2_fwd_data[2],31,0); + VL_SIG8(Vortex__DOT__vx_fetch__DOT__warp_valid[2],0,0); + VL_SIG8(Vortex__DOT__vx_fetch__DOT__VX_Warp__DOT__valid[2],0,0); + VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__valid[2],0,0); + VL_SIG8(Vortex__DOT__vx_decode__DOT__jalrs_thread_mask[2],0,0); + VL_SIG8(Vortex__DOT__vx_decode__DOT__jmprt_thread_mask[2],0,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd1_register[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__rd2_register[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__clone_regsiters[32],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__vx_register_file_master__DOT__registers[32],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__DOT__registers[32],31,0); + VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__a_reg_data[2],31,0); + VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid[2],0,0); + VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[2],31,0); + VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid_z[2],0,0); + VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__alu_result[2],31,0); + VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__a_reg_data[2],31,0); + VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__b_reg_data[2],31,0); + VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__valid[2],0,0); + VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__alu_result[2],31,0); + VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__mem_result[2],31,0); + VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__valid[2],0,0); + VL_SIG(Vortex__DOT__vx_writeback__DOT__out_pc_data[2],31,0); + VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[2],31,0); + VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[2],31,0); + VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_writeback_PC_next[2],31,0); VL_SIG16(Vortex__DOT__vx_csr_handler__DOT__csr[4096],11,0); }; // LOCAL VARIABLES // Internals; generally not touched by application code - // Begin mtask footprint all: - VL_SIG8(__Vtableidx1,2,0); - VL_SIG8(__Vclklast__TOP__clk,0,0); - VL_SIG8(__Vclklast__TOP__reset,0,0); - VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src2_data,31,0); - VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__vx_register_file_master__out_src1_data,31,0); - VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result,31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_fetch__out_valid[1],0,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[1],0,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[1],0,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[1],0,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_thread_mask[1],0,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_write_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_valid[1],0,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_execute__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_alu_result[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_execute__in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[1],31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[1],31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_mem_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_alu_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_memory__in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_rd2[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_alu_result[1],31,0); - VL_SIG8(Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[1],31,0); - VL_SIG8(Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[1],0,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_writeback__out_write_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[1],31,0); - VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[1],31,0); + // Anonymous structures to workaround compiler member-count bugs + struct { + // Begin mtask footprint all: + VL_SIG8(__Vtableidx1,2,0); + VL_SIG8(__Vclklast__TOP__clk,0,0); + VL_SIG8(__Vclklast__TOP__reset,0,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src2_data,31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_src1_data,31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src2_data,31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__out_src1_data,31,0); + VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__0__KET____DOT__vx_alu__out_alu_result,31,0); + VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__genblk1__BRA__1__KET____DOT__vx_alu__out_alu_result,31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_fetch__out_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_fetch__in_thread_mask[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_thread_mask[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_a_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_write_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_a_reg_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_a_reg_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_execute__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_execute__in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_a_reg_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_mem_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_alu_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_memory__in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_rd2[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[2],0,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_writeback__out_write_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_mem_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src2_fwd_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellout__vx_forwarding__out_src1_fwd_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_mem_data[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_writeback_alu_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[2],31,0); + }; + struct { + VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[2],31,0); + VL_SIG(Vortex__DOT____Vcellinp__vx_forwarding__in_execute_alu_result[2],31,0); + VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellout__VX_Warp__out_valid[2],0,0); + VL_SIG8(Vortex__DOT__vx_fetch__DOT____Vcellinp__VX_Warp__in_thread_mask[2],0,0); + VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_b_reg_data[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__VX_Context__out_a_reg_data[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_write_data[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src2_fwd_data[2],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_src1_fwd_data[2],31,0); + VL_SIG8(Vortex__DOT__vx_decode__DOT____Vcellinp__VX_Context__in_valid[2],0,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellout__vx_register_file_master__out_regs[32],31,0); + VL_SIG(Vortex__DOT__vx_decode__DOT__VX_Context__DOT____Vcellinp__gen_code_label__BRA__1__KET____DOT__vx_register_file_slave__in_regs[32],31,0); + }; static VL_ST_SIG8(__Vtable1_Vortex__DOT__vx_decode__DOT__mul_alu[8],4,0); // INTERNAL VARIABLES diff --git a/rtl/obj_dir/VVortex__ALL.a b/rtl/obj_dir/VVortex__ALL.a index 1210e54822ae25fecfd388fa9cf72995becd3525..4bcfefdd8a9bbbc1cd3314e73250482cce1f80c9 100644 GIT binary patch literal 70672 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%0DuZ#dV& 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 diff --git a/rtl/obj_dir/VVortex__ALLcls.o b/rtl/obj_dir/VVortex__ALLcls.o index 9d6eca9f55cea9ad999a236c8d6e876546bdd9a4..4f1428bac792c27a33cec140f64beeca62db34d4 100644 GIT binary patch literal 67536 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%0DIk+Eq^AdENUXy?8i| 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 yty!N=&As7 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 G#Qy