From 3e3ad2ce06ad729cb1501d61edda2e754236039d Mon Sep 17 00:00:00 2001 From: tracer-ysyx Date: Wed, 13 Mar 2024 11:54:44 +0800 Subject: [PATCH] =?UTF-8?q?>=20build=5Fflow=5FVFlow=20=20ysyx=5F22040000?= =?UTF-8?q?=20=E6=9D=8E=E5=BF=83=E6=9D=A8=20=20Linux=20calcite=206.6.19=20?= =?UTF-8?q?#1-NixOS=20SMP=20PREEMPT=5FDYNAMIC=20Fri=20Mar=20=201=2012:35:1?= =?UTF-8?q?1=20UTC=202024=20x86=5F64=20GNU/Linux=20=20=2011:54:44=20=20up?= =?UTF-8?q?=20=20=201:30,=20=202=20users,=20=20load=20average:=200.58,=200?= =?UTF-8?q?.75,=200.87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- npc/csrc/Flow/main.cpp | 6 + npc/waveform.vcd | 764 +++++++++++++++++++++-------------------- 2 files changed, 390 insertions(+), 380 deletions(-) diff --git a/npc/csrc/Flow/main.cpp b/npc/csrc/Flow/main.cpp index 1fd6f13..87441c5 100644 --- a/npc/csrc/Flow/main.cpp +++ b/npc/csrc/Flow/main.cpp @@ -19,6 +19,12 @@ int main(int argc, char **argv, char **env) { top->trace(m_trace, 5); m_trace->open("waveform.vcd"); #endif + top->reset = 1; + top->clock = 1; + top->eval(); + top->clock = 0; + top->reset = 0; + top->eval(); for (sim_time = 0; sim_time < MAX_SIM_TIME; sim_time++) { top->eval(); top->clock = !top->clock; diff --git a/npc/waveform.vcd b/npc/waveform.vcd index e978c4b..6271d0c 100644 --- a/npc/waveform.vcd +++ b/npc/waveform.vcd @@ -1,81 +1,84 @@ $version Generated by VerilatedVcd $end $timescale 1ps $end $scope module TOP $end - $var wire 1 M clock $end - $var wire 1 N reset $end + $var wire 1 N clock $end + $var wire 1 O reset $end $scope module Flow $end - $var wire 1 M clock $end - $var wire 1 N reset $end + $var wire 1 N clock $end + $var wire 1 O reset $end $scope module alu $end - $var wire 4 O control_op [3:0] $end - $var wire 32 # in_a [31:0] $end - $var wire 32 $ in_b [31:0] $end - $var wire 32 % out_result [31:0] $end + $var wire 4 P control_op [3:0] $end + $var wire 1 Q control_src $end + $var wire 32 # in_a_0 [31:0] $end + $var wire 32 $ in_a_1 [31:0] $end + $var wire 32 % in_b [31:0] $end + $var wire 32 & out_result [31:0] $end $upscope $end $scope module control $end - $var wire 1 P reg_writeEnable $end - $var wire 1 P reg_writeSelect $end - $var wire 1 P pc_srcSelect $end - $var wire 4 O alu_op [3:0] $end - $var wire 7 Q out [6:0] $end + $var wire 1 Q reg_writeEnable $end + $var wire 1 R reg_writeSelect $end + $var wire 1 R pc_srcSelect $end + $var wire 4 P alu_op [3:0] $end + $var wire 1 Q alu_src $end + $var wire 8 S out [7:0] $end $upscope $end $scope module pc $end - $var wire 1 M clock $end - $var wire 1 N reset $end - $var wire 1 P control_srcSelect $end - $var wire 32 & in_pcSrcs_0 [31:0] $end - $var wire 32 % in_pcSrcs_1 [31:0] $end - $var wire 32 ' out [31:0] $end - $var wire 32 ' pc [31:0] $end + $var wire 1 N clock $end + $var wire 1 O reset $end + $var wire 1 R control_srcSelect $end + $var wire 32 ' in_pcSrcs_0 [31:0] $end + $var wire 32 & in_pcSrcs_1 [31:0] $end + $var wire 32 ( out [31:0] $end + $var wire 32 ( pc [31:0] $end $upscope $end $scope module ram_mem_ext $end - $var wire 10 ( R0_addr [9:0] $end - $var wire 1 R R0_en $end - $var wire 1 M R0_clk $end - $var wire 32 ) R0_data [31:0] $end + $var wire 10 ) R0_addr [9:0] $end + $var wire 1 Q R0_en $end + $var wire 1 N R0_clk $end + $var wire 32 * R0_data [31:0] $end $upscope $end $scope module reg_core $end - $var wire 1 M clock $end - $var wire 1 N reset $end - $var wire 1 P writePort_enable $end - $var wire 5 * writePort_addr [4:0] $end - $var wire 32 % writePort_data [31:0] $end - $var wire 5 + readPorts_0_addr [4:0] $end + $var wire 1 N clock $end + $var wire 1 O reset $end + $var wire 1 Q writePort_enable $end + $var wire 5 + writePort_addr [4:0] $end + $var wire 32 & writePort_data [31:0] $end + $var wire 5 , readPorts_0_addr [4:0] $end $var wire 32 # readPorts_0_data [31:0] $end - $var wire 5 , readPorts_1_addr [4:0] $end - $var wire 32 $ readPorts_1_data [31:0] $end - $var wire 32 - regFile_0 [31:0] $end - $var wire 32 . regFile_1 [31:0] $end - $var wire 32 / regFile_2 [31:0] $end - $var wire 32 0 regFile_3 [31:0] $end - $var wire 32 1 regFile_4 [31:0] $end - $var wire 32 2 regFile_5 [31:0] $end - $var wire 32 3 regFile_6 [31:0] $end - $var wire 32 4 regFile_7 [31:0] $end - $var wire 32 5 regFile_8 [31:0] $end - $var wire 32 6 regFile_9 [31:0] $end - $var wire 32 7 regFile_10 [31:0] $end - $var wire 32 8 regFile_11 [31:0] $end - $var wire 32 9 regFile_12 [31:0] $end - $var wire 32 : regFile_13 [31:0] $end - $var wire 32 ; regFile_14 [31:0] $end - $var wire 32 < regFile_15 [31:0] $end - $var wire 32 = regFile_16 [31:0] $end - $var wire 32 > regFile_17 [31:0] $end - $var wire 32 ? regFile_18 [31:0] $end - $var wire 32 @ regFile_19 [31:0] $end - $var wire 32 A regFile_20 [31:0] $end - $var wire 32 B regFile_21 [31:0] $end - $var wire 32 C regFile_22 [31:0] $end - $var wire 32 D regFile_23 [31:0] $end - $var wire 32 E regFile_24 [31:0] $end - $var wire 32 F regFile_25 [31:0] $end - $var wire 32 G regFile_26 [31:0] $end - $var wire 32 H regFile_27 [31:0] $end - $var wire 32 I regFile_28 [31:0] $end - $var wire 32 J regFile_29 [31:0] $end - $var wire 32 K regFile_30 [31:0] $end - $var wire 32 L regFile_31 [31:0] $end + $var wire 5 - readPorts_1_addr [4:0] $end + $var wire 32 % readPorts_1_data [31:0] $end + $var wire 32 . regFile_0 [31:0] $end + $var wire 32 / regFile_1 [31:0] $end + $var wire 32 0 regFile_2 [31:0] $end + $var wire 32 1 regFile_3 [31:0] $end + $var wire 32 2 regFile_4 [31:0] $end + $var wire 32 3 regFile_5 [31:0] $end + $var wire 32 4 regFile_6 [31:0] $end + $var wire 32 5 regFile_7 [31:0] $end + $var wire 32 6 regFile_8 [31:0] $end + $var wire 32 7 regFile_9 [31:0] $end + $var wire 32 8 regFile_10 [31:0] $end + $var wire 32 9 regFile_11 [31:0] $end + $var wire 32 : regFile_12 [31:0] $end + $var wire 32 ; regFile_13 [31:0] $end + $var wire 32 < regFile_14 [31:0] $end + $var wire 32 = regFile_15 [31:0] $end + $var wire 32 > regFile_16 [31:0] $end + $var wire 32 ? regFile_17 [31:0] $end + $var wire 32 @ regFile_18 [31:0] $end + $var wire 32 A regFile_19 [31:0] $end + $var wire 32 B regFile_20 [31:0] $end + $var wire 32 C regFile_21 [31:0] $end + $var wire 32 D regFile_22 [31:0] $end + $var wire 32 E regFile_23 [31:0] $end + $var wire 32 F regFile_24 [31:0] $end + $var wire 32 G regFile_25 [31:0] $end + $var wire 32 H regFile_26 [31:0] $end + $var wire 32 I regFile_27 [31:0] $end + $var wire 32 J regFile_28 [31:0] $end + $var wire 32 K regFile_29 [31:0] $end + $var wire 32 L regFile_30 [31:0] $end + $var wire 32 M regFile_31 [31:0] $end $upscope $end $upscope $end $upscope $end @@ -86,14 +89,14 @@ $enddefinitions $end b00000000000000000000000000000000 # b00000000000000000000000000000000 $ b00000000000000000000000000000000 % -b00000000000000000000000000000100 & -b00000000000000000000000000000000 ' -b0000000000 ( -b00000000000000000000000000000000 ) -b00000 * +b00000000000000000000000000000000 & +b00000000000000000000000000000100 ' +b00000000000000000000000000000000 ( +b0000000000 ) +b00000000000000000000000000000000 * b00000 + b00000 , -b00000000000000000000000000000000 - +b00000 - b00000000000000000000000000000000 . b00000000000000000000000000000000 / b00000000000000000000000000000000 0 @@ -125,363 +128,364 @@ b00000000000000000000000000000000 I b00000000000000000000000000000000 J b00000000000000000000000000000000 K b00000000000000000000000000000000 L -1M -0N -b0000 O -0P -b0000000 Q -1R +b00000000000000000000000000000000 M +1N +0O +b0000 P +1Q +0R +b10000001 S #1 -b00000000000000000000000000001000 & -b00000000000000000000000000000100 ' -b0000000100 ( -b00000000000010000100000100010011 ) -b00010 * -b10000 + -0M -#2 -1M -#3 -b00000000000000000000000000001100 & b00000000000000000000000000001000 ' -b0000001000 ( -0M -#4 -1M -#5 -b00000000000000000000000000010000 & +b00000000000000000000000000000100 ( +b0000000100 ) +b00000000000010000100000100010011 * +b00010 + +b10000 , +0N +#2 +1N +#3 b00000000000000000000000000001100 ' -b0000001100 ( -0M -#6 -1M -#7 -b00000000000000000000000000010100 & +b00000000000000000000000000001000 ( +b0000001000 ) +0N +#4 +1N +#5 b00000000000000000000000000010000 ' -b0000010000 ( -b00000000000000000000000000000000 ) -b00000 * -b00000 + -0M -#8 -1M -#9 -b00000000000000000000000000011000 & +b00000000000000000000000000001100 ( +b0000001100 ) +0N +#6 +1N +#7 b00000000000000000000000000010100 ' -b0000010100 ( -0M -#10 -1M -#11 -b00000000000000000000000000011100 & +b00000000000000000000000000010000 ( +b0000010000 ) +b00000000000000000000000000000000 * +b00000 + +b00000 , +0N +#8 +1N +#9 b00000000000000000000000000011000 ' -b0000011000 ( -0M -#12 -1M -#13 -b00000000000000000000000000100000 & +b00000000000000000000000000010100 ( +b0000010100 ) +0N +#10 +1N +#11 b00000000000000000000000000011100 ' -b0000011100 ( -0M -#14 -1M -#15 -b00000000000000000000000000100100 & +b00000000000000000000000000011000 ( +b0000011000 ) +0N +#12 +1N +#13 b00000000000000000000000000100000 ' -b0000100000 ( -0M -#16 -1M -#17 -b00000000000000000000000000101000 & +b00000000000000000000000000011100 ( +b0000011100 ) +0N +#14 +1N +#15 b00000000000000000000000000100100 ' -b0000100100 ( -0M -#18 -1M -#19 -b00000000000000000000000000101100 & +b00000000000000000000000000100000 ( +b0000100000 ) +0N +#16 +1N +#17 b00000000000000000000000000101000 ' -b0000101000 ( -0M -#20 -1M -#21 -b00000000000000000000000000110000 & +b00000000000000000000000000100100 ( +b0000100100 ) +0N +#18 +1N +#19 b00000000000000000000000000101100 ' -b0000101100 ( -0M -#22 -1M -#23 -b00000000000000000000000000110100 & +b00000000000000000000000000101000 ( +b0000101000 ) +0N +#20 +1N +#21 b00000000000000000000000000110000 ' -b0000110000 ( -0M -#24 -1M -#25 -b00000000000000000000000000111000 & +b00000000000000000000000000101100 ( +b0000101100 ) +0N +#22 +1N +#23 b00000000000000000000000000110100 ' -b0000110100 ( -0M -#26 -1M -#27 -b00000000000000000000000000111100 & +b00000000000000000000000000110000 ( +b0000110000 ) +0N +#24 +1N +#25 b00000000000000000000000000111000 ' -b0000111000 ( -0M -#28 -1M -#29 -b00000000000000000000000001000000 & +b00000000000000000000000000110100 ( +b0000110100 ) +0N +#26 +1N +#27 b00000000000000000000000000111100 ' -b0000111100 ( -0M -#30 -1M -#31 -b00000000000000000000000001000100 & +b00000000000000000000000000111000 ( +b0000111000 ) +0N +#28 +1N +#29 b00000000000000000000000001000000 ' -b0001000000 ( -0M -#32 -1M -#33 -b00000000000000000000000001001000 & +b00000000000000000000000000111100 ( +b0000111100 ) +0N +#30 +1N +#31 b00000000000000000000000001000100 ' -b0001000100 ( -0M -#34 -1M -#35 -b00000000000000000000000001001100 & +b00000000000000000000000001000000 ( +b0001000000 ) +0N +#32 +1N +#33 b00000000000000000000000001001000 ' -b0001001000 ( -0M -#36 -1M -#37 -b00000000000000000000000001010000 & +b00000000000000000000000001000100 ( +b0001000100 ) +0N +#34 +1N +#35 b00000000000000000000000001001100 ' -b0001001100 ( -0M -#38 -1M -#39 -b00000000000000000000000001010100 & +b00000000000000000000000001001000 ( +b0001001000 ) +0N +#36 +1N +#37 b00000000000000000000000001010000 ' -b0001010000 ( -0M -#40 -1M -#41 -b00000000000000000000000001011000 & +b00000000000000000000000001001100 ( +b0001001100 ) +0N +#38 +1N +#39 b00000000000000000000000001010100 ' -b0001010100 ( -0M -#42 -1M -#43 -b00000000000000000000000001011100 & +b00000000000000000000000001010000 ( +b0001010000 ) +0N +#40 +1N +#41 b00000000000000000000000001011000 ' -b0001011000 ( -0M -#44 -1M -#45 -b00000000000000000000000001100000 & +b00000000000000000000000001010100 ( +b0001010100 ) +0N +#42 +1N +#43 b00000000000000000000000001011100 ' -b0001011100 ( -0M -#46 -1M -#47 -b00000000000000000000000001100100 & +b00000000000000000000000001011000 ( +b0001011000 ) +0N +#44 +1N +#45 b00000000000000000000000001100000 ' -b0001100000 ( -0M -#48 -1M -#49 -b00000000000000000000000001101000 & +b00000000000000000000000001011100 ( +b0001011100 ) +0N +#46 +1N +#47 b00000000000000000000000001100100 ' -b0001100100 ( -0M -#50 -1M -#51 -b00000000000000000000000001101100 & +b00000000000000000000000001100000 ( +b0001100000 ) +0N +#48 +1N +#49 b00000000000000000000000001101000 ' -b0001101000 ( -0M -#52 -1M -#53 -b00000000000000000000000001110000 & +b00000000000000000000000001100100 ( +b0001100100 ) +0N +#50 +1N +#51 b00000000000000000000000001101100 ' -b0001101100 ( -0M -#54 -1M -#55 -b00000000000000000000000001110100 & +b00000000000000000000000001101000 ( +b0001101000 ) +0N +#52 +1N +#53 b00000000000000000000000001110000 ' -b0001110000 ( -0M -#56 -1M -#57 -b00000000000000000000000001111000 & +b00000000000000000000000001101100 ( +b0001101100 ) +0N +#54 +1N +#55 b00000000000000000000000001110100 ' -b0001110100 ( -0M -#58 -1M -#59 -b00000000000000000000000001111100 & +b00000000000000000000000001110000 ( +b0001110000 ) +0N +#56 +1N +#57 b00000000000000000000000001111000 ' -b0001111000 ( -0M -#60 -1M -#61 -b00000000000000000000000010000000 & +b00000000000000000000000001110100 ( +b0001110100 ) +0N +#58 +1N +#59 b00000000000000000000000001111100 ' -b0001111100 ( -0M -#62 -1M -#63 -b00000000000000000000000010000100 & +b00000000000000000000000001111000 ( +b0001111000 ) +0N +#60 +1N +#61 b00000000000000000000000010000000 ' -b0010000000 ( -0M -#64 -1M -#65 -b00000000000000000000000010001000 & +b00000000000000000000000001111100 ( +b0001111100 ) +0N +#62 +1N +#63 b00000000000000000000000010000100 ' -b0010000100 ( -0M -#66 -1M -#67 -b00000000000000000000000010001100 & +b00000000000000000000000010000000 ( +b0010000000 ) +0N +#64 +1N +#65 b00000000000000000000000010001000 ' -b0010001000 ( -0M -#68 -1M -#69 -b00000000000000000000000010010000 & +b00000000000000000000000010000100 ( +b0010000100 ) +0N +#66 +1N +#67 b00000000000000000000000010001100 ' -b0010001100 ( -0M -#70 -1M -#71 -b00000000000000000000000010010100 & +b00000000000000000000000010001000 ( +b0010001000 ) +0N +#68 +1N +#69 b00000000000000000000000010010000 ' -b0010010000 ( -0M -#72 -1M -#73 -b00000000000000000000000010011000 & +b00000000000000000000000010001100 ( +b0010001100 ) +0N +#70 +1N +#71 b00000000000000000000000010010100 ' -b0010010100 ( -0M -#74 -1M -#75 -b00000000000000000000000010011100 & +b00000000000000000000000010010000 ( +b0010010000 ) +0N +#72 +1N +#73 b00000000000000000000000010011000 ' -b0010011000 ( -0M -#76 -1M -#77 -b00000000000000000000000010100000 & +b00000000000000000000000010010100 ( +b0010010100 ) +0N +#74 +1N +#75 b00000000000000000000000010011100 ' -b0010011100 ( -0M -#78 -1M -#79 -b00000000000000000000000010100100 & +b00000000000000000000000010011000 ( +b0010011000 ) +0N +#76 +1N +#77 b00000000000000000000000010100000 ' -b0010100000 ( -0M -#80 -1M -#81 -b00000000000000000000000010101000 & +b00000000000000000000000010011100 ( +b0010011100 ) +0N +#78 +1N +#79 b00000000000000000000000010100100 ' -b0010100100 ( -0M -#82 -1M -#83 -b00000000000000000000000010101100 & +b00000000000000000000000010100000 ( +b0010100000 ) +0N +#80 +1N +#81 b00000000000000000000000010101000 ' -b0010101000 ( -0M -#84 -1M -#85 -b00000000000000000000000010110000 & +b00000000000000000000000010100100 ( +b0010100100 ) +0N +#82 +1N +#83 b00000000000000000000000010101100 ' -b0010101100 ( -0M -#86 -1M -#87 -b00000000000000000000000010110100 & +b00000000000000000000000010101000 ( +b0010101000 ) +0N +#84 +1N +#85 b00000000000000000000000010110000 ' -b0010110000 ( -0M -#88 -1M -#89 -b00000000000000000000000010111000 & +b00000000000000000000000010101100 ( +b0010101100 ) +0N +#86 +1N +#87 b00000000000000000000000010110100 ' -b0010110100 ( -0M -#90 -1M -#91 -b00000000000000000000000010111100 & +b00000000000000000000000010110000 ( +b0010110000 ) +0N +#88 +1N +#89 b00000000000000000000000010111000 ' -b0010111000 ( -0M -#92 -1M -#93 -b00000000000000000000000011000000 & +b00000000000000000000000010110100 ( +b0010110100 ) +0N +#90 +1N +#91 b00000000000000000000000010111100 ' -b0010111100 ( -0M -#94 -1M -#95 -b00000000000000000000000011000100 & +b00000000000000000000000010111000 ( +b0010111000 ) +0N +#92 +1N +#93 b00000000000000000000000011000000 ' -b0011000000 ( -0M -#96 -1M -#97 -b00000000000000000000000011001000 & +b00000000000000000000000010111100 ( +b0010111100 ) +0N +#94 +1N +#95 b00000000000000000000000011000100 ' -b0011000100 ( -0M -#98 -1M -#99 -b00000000000000000000000011001100 & +b00000000000000000000000011000000 ( +b0011000000 ) +0N +#96 +1N +#97 b00000000000000000000000011001000 ' -b0011001000 ( -0M +b00000000000000000000000011000100 ( +b0011000100 ) +0N +#98 +1N +#99 +b00000000000000000000000011001100 ' +b00000000000000000000000011001000 ( +b0011001000 ) +0N