diff --git a/design/dide/Word/Unary operators/$reduce_bool.svg b/design/dide/Word/Unary operators/$reduce_bool.svg
new file mode 100644
index 0000000..89b206f
--- /dev/null
+++ b/design/dide/Word/Unary operators/$reduce_bool.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/public/HDU1.json b/public/HDU1.json
new file mode 100644
index 0000000..b952fa6
--- /dev/null
+++ b/public/HDU1.json
@@ -0,0 +1,1473 @@
+{
+ "creator": "Yosys 0.48 (git sha1 aaa5347494801e9e3870b31387da59da24233f76, clang++ 18.1.2-wasi-sdk -Oz)",
+ "modules": {
+ "HDU1": {
+ "attributes": {
+ "cells_not_processed": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:17.1-52.10"
+ },
+ "ports": {
+ "clock": {
+ "direction": "input",
+ "bits": [ 2 ]
+ },
+ "reset": {
+ "direction": "input",
+ "bits": [ 3 ]
+ },
+ "use_stage": {
+ "direction": "input",
+ "bits": [ 4 ]
+ },
+ "ID_EX_RegWrite": {
+ "direction": "input",
+ "bits": [ 5 ]
+ },
+ "EX_MEM_LS_bit": {
+ "direction": "input",
+ "bits": [ 6, 7 ]
+ },
+ "EX_MEM_MemWrite": {
+ "direction": "input",
+ "bits": [ 8 ]
+ },
+ "rs": {
+ "direction": "input",
+ "bits": [ 9, 10, 11, 12, 13 ]
+ },
+ "rt": {
+ "direction": "input",
+ "bits": [ 14, 15, 16, 17, 18 ]
+ },
+ "mux1_out": {
+ "direction": "input",
+ "bits": [ 19, 20, 21, 22, 23, 24 ]
+ },
+ "EX_MEM_mux1_out": {
+ "direction": "input",
+ "bits": [ 25, 26, 27, 28, 29, 30 ]
+ },
+ "PcStall1": {
+ "direction": "output",
+ "bits": [ 31 ]
+ },
+ "IF_ID_Stall1": {
+ "direction": "output",
+ "bits": [ 32 ]
+ },
+ "HDU1_block": {
+ "direction": "output",
+ "bits": [ 33 ]
+ }
+ },
+ "cells": {
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:40$3": {
+ "hide_name": 1,
+ "type": "$not",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-40.27"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 4 ],
+ "Y": [ 34 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:41$5": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.10-41.24"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 9, 10, 11, 12, 13 ],
+ "B": [ 19, 20, 21, 22, 23, 24 ],
+ "Y": [ 35 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:41$6": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.28-41.42"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 14, 15, 16, 17, 18 ],
+ "B": [ 19, 20, 21, 22, 23, 24 ],
+ "Y": [ 36 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:43$9": {
+ "hide_name": 1,
+ "type": "$not",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-43.32"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 4 ],
+ "Y": [ 37 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:45$14": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.14-45.35"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 9, 10, 11, 12, 13 ],
+ "B": [ 25, 26, 27, 28, 29, 30 ],
+ "Y": [ 38 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:45$15": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.39-45.60"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 14, 15, 16, 17, 18 ],
+ "B": [ 25, 26, 27, 28, 29, 30 ],
+ "Y": [ 39 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:40$4": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-40.45"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 34 ],
+ "B": [ 5 ],
+ "Y": [ 40 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:40$8": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 40 ],
+ "B": [ 41 ],
+ "Y": [ 42 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$11": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-44.33"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 37 ],
+ "B": [ 43 ],
+ "Y": [ 44 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$13": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-44.59"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 44 ],
+ "B": [ 45 ],
+ "Y": [ 46 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$17": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-45.61"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 46 ],
+ "B": [ 47 ],
+ "Y": [ 48 ]
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:41$7": {
+ "hide_name": 1,
+ "type": "$logic_or",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.10-41.42"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 35 ],
+ "B": [ 36 ],
+ "Y": [ 41 ]
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:45$16": {
+ "hide_name": 1,
+ "type": "$logic_or",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.14-45.60"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 38 ],
+ "B": [ 39 ],
+ "Y": [ 47 ]
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:44$10": {
+ "hide_name": 1,
+ "type": "$not",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:44.13-44.33"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 8 ],
+ "Y": [ 43 ]
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:44$12": {
+ "hide_name": 1,
+ "type": "$reduce_bool",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000010",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:44.37-44.59"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 6, 7 ],
+ "Y": [ 45 ]
+ }
+ },
+ "$procdff$50": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 31 ]
+ }
+ },
+ "$procdff$51": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 32 ]
+ }
+ },
+ "$procdff$52": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 33 ]
+ }
+ },
+ "$procmux$33": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000011"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-45.61|{workspace}/src/DataPath/Hazard/HDU.v:43.14-48.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ "0", "0", "0" ],
+ "B": [ "1", "1", "1" ],
+ "S": [ 48 ],
+ "Y": [ 49, 50, 51 ]
+ }
+ },
+ "$procmux$36": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000011"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43|{workspace}/src/DataPath/Hazard/HDU.v:40.9-48.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 49, 50, 51 ],
+ "B": [ "x", "x", "x" ],
+ "S": [ 42 ],
+ "Y": [ 52, 53, 54 ]
+ }
+ },
+ "$procmux$39": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43|{workspace}/src/DataPath/Hazard/HDU.v:40.9-48.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 53 ],
+ "B": [ "1" ],
+ "S": [ 42 ],
+ "Y": [ 32 ]
+ }
+ },
+ "$procmux$42": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43|{workspace}/src/DataPath/Hazard/HDU.v:40.9-48.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 52 ],
+ "B": [ "1" ],
+ "S": [ 42 ],
+ "Y": [ 33 ]
+ }
+ },
+ "$procmux$45": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43|{workspace}/src/DataPath/Hazard/HDU.v:40.9-48.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 54 ],
+ "B": [ "1" ],
+ "S": [ 42 ],
+ "Y": [ 31 ]
+ }
+ }
+ },
+ "netnames": {
+ "$0\\HDU1_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ }
+ },
+ "$0\\IF_ID_Stall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ }
+ },
+ "$0\\PcStall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:34.5-36.8"
+ }
+ },
+ "$1\\HDU1_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ 33 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$1\\IF_ID_Stall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 32 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$1\\PcStall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 31 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$2\\HDU1_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ 33 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$2\\IF_ID_Stall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 32 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$2\\PcStall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 31 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$3\\HDU1_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ 52 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$3\\IF_ID_Stall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 53 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$3\\PcStall1[0:0]": {
+ "hide_name": 1,
+ "bits": [ 54 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:39.5-49.8"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:40$3_Y": {
+ "hide_name": 1,
+ "bits": [ 34 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-40.27"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:41$5_Y": {
+ "hide_name": 1,
+ "bits": [ 35 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.10-41.24"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:41$6_Y": {
+ "hide_name": 1,
+ "bits": [ 36 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.28-41.42"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:43$9_Y": {
+ "hide_name": 1,
+ "bits": [ 37 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-43.32"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:45$14_Y": {
+ "hide_name": 1,
+ "bits": [ 38 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.14-45.35"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:45$15_Y": {
+ "hide_name": 1,
+ "bits": [ 39 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.39-45.60"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:40$4_Y": {
+ "hide_name": 1,
+ "bits": [ 40 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-40.45"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:40$8_Y": {
+ "hide_name": 1,
+ "bits": [ 42 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:40.13-41.43"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$11_Y": {
+ "hide_name": 1,
+ "bits": [ 44 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-44.33"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$13_Y": {
+ "hide_name": 1,
+ "bits": [ 46 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-44.59"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:43$17_Y": {
+ "hide_name": 1,
+ "bits": [ 48 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:43.18-45.61"
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:41$7_Y": {
+ "hide_name": 1,
+ "bits": [ 41 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:41.10-41.42"
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:45$16_Y": {
+ "hide_name": 1,
+ "bits": [ 47 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:45.14-45.60"
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:44$10_Y": {
+ "hide_name": 1,
+ "bits": [ 43 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:44.13-44.33"
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:44$12_Y": {
+ "hide_name": 1,
+ "bits": [ 45 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:44.37-44.59"
+ }
+ },
+ "$procmux$33_Y": {
+ "hide_name": 1,
+ "bits": [ 49, 50, 51 ],
+ "attributes": {
+ }
+ },
+ "$procmux$34_CMP": {
+ "hide_name": 1,
+ "bits": [ 48 ],
+ "attributes": {
+ }
+ },
+ "$procmux$36_Y": {
+ "hide_name": 1,
+ "bits": [ 52, 53, 54 ],
+ "attributes": {
+ }
+ },
+ "$procmux$37_CMP": {
+ "hide_name": 1,
+ "bits": [ 42 ],
+ "attributes": {
+ }
+ },
+ "$procmux$39_Y": {
+ "hide_name": 1,
+ "bits": [ 32 ],
+ "attributes": {
+ }
+ },
+ "$procmux$40_CMP": {
+ "hide_name": 1,
+ "bits": [ 42 ],
+ "attributes": {
+ }
+ },
+ "$procmux$42_Y": {
+ "hide_name": 1,
+ "bits": [ 33 ],
+ "attributes": {
+ }
+ },
+ "$procmux$43_CMP": {
+ "hide_name": 1,
+ "bits": [ 42 ],
+ "attributes": {
+ }
+ },
+ "$procmux$45_Y": {
+ "hide_name": 1,
+ "bits": [ 31 ],
+ "attributes": {
+ }
+ },
+ "$procmux$46_CMP": {
+ "hide_name": 1,
+ "bits": [ 42 ],
+ "attributes": {
+ }
+ },
+ "EX_MEM_LS_bit": {
+ "hide_name": 0,
+ "bits": [ 6, 7 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:22.25-22.38"
+ }
+ },
+ "EX_MEM_MemWrite": {
+ "hide_name": 0,
+ "bits": [ 8 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:23.25-23.40"
+ }
+ },
+ "EX_MEM_mux1_out": {
+ "hide_name": 0,
+ "bits": [ 25, 26, 27, 28, 29, 30 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:27.25-27.40"
+ }
+ },
+ "HDU1_block": {
+ "hide_name": 0,
+ "bits": [ 33 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:30.25-30.35"
+ }
+ },
+ "ID_EX_RegWrite": {
+ "hide_name": 0,
+ "bits": [ 5 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:21.25-21.39"
+ }
+ },
+ "IF_ID_Stall1": {
+ "hide_name": 0,
+ "bits": [ 32 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:29.25-29.37"
+ }
+ },
+ "PcStall1": {
+ "hide_name": 0,
+ "bits": [ 31 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:28.25-28.33"
+ }
+ },
+ "clock": {
+ "hide_name": 0,
+ "bits": [ 2 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:18.25-18.30"
+ }
+ },
+ "mux1_out": {
+ "hide_name": 0,
+ "bits": [ 19, 20, 21, 22, 23, 24 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:26.25-26.33"
+ }
+ },
+ "reset": {
+ "hide_name": 0,
+ "bits": [ 3 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:19.25-19.30"
+ }
+ },
+ "rs": {
+ "hide_name": 0,
+ "bits": [ 9, 10, 11, 12, 13 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:24.25-24.27"
+ }
+ },
+ "rt": {
+ "hide_name": 0,
+ "bits": [ 14, 15, 16, 17, 18 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:25.25-25.27"
+ }
+ },
+ "use_stage": {
+ "hide_name": 0,
+ "bits": [ 4 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:20.25-20.34"
+ }
+ }
+ }
+ },
+ "HDU2": {
+ "attributes": {
+ "cells_not_processed": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:54.1-86.10"
+ },
+ "ports": {
+ "clock": {
+ "direction": "input",
+ "bits": [ 2 ]
+ },
+ "reset": {
+ "direction": "input",
+ "bits": [ 3 ]
+ },
+ "use_stage": {
+ "direction": "input",
+ "bits": [ 4 ]
+ },
+ "ID_EX_LS_bit": {
+ "direction": "input",
+ "bits": [ 5, 6 ]
+ },
+ "ID_EX_MemWrite": {
+ "direction": "input",
+ "bits": [ 7 ]
+ },
+ "rs": {
+ "direction": "input",
+ "bits": [ 8, 9, 10, 11, 12 ]
+ },
+ "rt": {
+ "direction": "input",
+ "bits": [ 13, 14, 15, 16, 17 ]
+ },
+ "mux1_out": {
+ "direction": "input",
+ "bits": [ 18, 19, 20, 21, 22, 23 ]
+ },
+ "PcStall2": {
+ "direction": "output",
+ "bits": [ 24 ]
+ },
+ "IF_ID_Stall2": {
+ "direction": "output",
+ "bits": [ 25 ]
+ },
+ "HDU2_block": {
+ "direction": "output",
+ "bits": [ 26 ]
+ }
+ },
+ "cells": {
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:80$25": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.14-80.28"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 8, 9, 10, 11, 12 ],
+ "B": [ 18, 19, 20, 21, 22, 23 ],
+ "Y": [ 27 ]
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:80$26": {
+ "hide_name": 1,
+ "type": "$eq",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000101",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000110",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.32-80.46"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 13, 14, 15, 16, 17 ],
+ "B": [ 18, 19, 20, 21, 22, 23 ],
+ "Y": [ 28 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$22": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-79.32"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 4 ],
+ "B": [ 29 ],
+ "Y": [ 30 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$24": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-79.57"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 30 ],
+ "B": [ 31 ],
+ "Y": [ 32 ]
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$28": {
+ "hide_name": 1,
+ "type": "$logic_and",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-80.47"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 32 ],
+ "B": [ 33 ],
+ "Y": [ 34 ]
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:80$27": {
+ "hide_name": 1,
+ "type": "$logic_or",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "B_SIGNED": "00000000000000000000000000000000",
+ "B_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.14-80.46"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 27 ],
+ "B": [ 28 ],
+ "Y": [ 33 ]
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:79$21": {
+ "hide_name": 1,
+ "type": "$not",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000001",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:79.13-79.32"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 7 ],
+ "Y": [ 29 ]
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:79$23": {
+ "hide_name": 1,
+ "type": "$reduce_bool",
+ "parameters": {
+ "A_SIGNED": "00000000000000000000000000000000",
+ "A_WIDTH": "00000000000000000000000000000010",
+ "Y_WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:79.36-79.57"
+ },
+ "port_directions": {
+ "A": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ 5, 6 ],
+ "Y": [ 31 ]
+ }
+ },
+ "$procdff$47": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 24 ]
+ }
+ },
+ "$procdff$48": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 25 ]
+ }
+ },
+ "$procdff$49": {
+ "hide_name": 1,
+ "type": "$dff",
+ "parameters": {
+ "CLK_POLARITY": "1",
+ "WIDTH": "00000000000000000000000000000001"
+ },
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ },
+ "port_directions": {
+ "CLK": "input",
+ "D": "input",
+ "Q": "output"
+ },
+ "connections": {
+ "CLK": [ 3 ],
+ "D": [ "0" ],
+ "Q": [ 26 ]
+ }
+ },
+ "$procmux$30": {
+ "hide_name": 1,
+ "type": "$mux",
+ "parameters": {
+ "WIDTH": "00000000000000000000000000000011"
+ },
+ "attributes": {
+ "full_case": "00000000000000000000000000000001",
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-80.47|{workspace}/src/DataPath/Hazard/HDU.v:78.9-83.71"
+ },
+ "port_directions": {
+ "A": "input",
+ "B": "input",
+ "S": "input",
+ "Y": "output"
+ },
+ "connections": {
+ "A": [ "0", "0", "0" ],
+ "B": [ "1", "1", "1" ],
+ "S": [ 34 ],
+ "Y": [ 26, 25, 24 ]
+ }
+ }
+ },
+ "netnames": {
+ "$0\\HDU2_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ }
+ },
+ "$0\\IF_ID_Stall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ }
+ },
+ "$0\\PcStall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ "0" ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:70.5-72.8"
+ }
+ },
+ "$1\\HDU2_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ 26 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$1\\IF_ID_Stall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ 25 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$1\\PcStall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ 24 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$2\\HDU2_block[0:0]": {
+ "hide_name": 1,
+ "bits": [ 26 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$2\\IF_ID_Stall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ 25 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$2\\PcStall2[0:0]": {
+ "hide_name": 1,
+ "bits": [ 24 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:75.5-84.8"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:78$20_Y": {
+ "hide_name": 1,
+ "bits": [ 4 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-78.27"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:80$25_Y": {
+ "hide_name": 1,
+ "bits": [ 27 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.14-80.28"
+ }
+ },
+ "$eq${workspace}/src/DataPath/Hazard/HDU.v:80$26_Y": {
+ "hide_name": 1,
+ "bits": [ 28 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.32-80.46"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$22_Y": {
+ "hide_name": 1,
+ "bits": [ 30 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-79.32"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$24_Y": {
+ "hide_name": 1,
+ "bits": [ 32 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-79.57"
+ }
+ },
+ "$logic_and${workspace}/src/DataPath/Hazard/HDU.v:78$28_Y": {
+ "hide_name": 1,
+ "bits": [ 34 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:78.13-80.47"
+ }
+ },
+ "$logic_or${workspace}/src/DataPath/Hazard/HDU.v:80$27_Y": {
+ "hide_name": 1,
+ "bits": [ 33 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:80.14-80.46"
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:79$21_Y": {
+ "hide_name": 1,
+ "bits": [ 29 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:79.13-79.32"
+ }
+ },
+ "$ne${workspace}/src/DataPath/Hazard/HDU.v:79$23_Y": {
+ "hide_name": 1,
+ "bits": [ 31 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:79.36-79.57"
+ }
+ },
+ "$procmux$30_Y": {
+ "hide_name": 1,
+ "bits": [ 26, 25, 24 ],
+ "attributes": {
+ }
+ },
+ "$procmux$31_CMP": {
+ "hide_name": 1,
+ "bits": [ 34 ],
+ "attributes": {
+ }
+ },
+ "HDU2_block": {
+ "hide_name": 0,
+ "bits": [ 26 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:65.25-65.35"
+ }
+ },
+ "ID_EX_LS_bit": {
+ "hide_name": 0,
+ "bits": [ 5, 6 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:58.25-58.37"
+ }
+ },
+ "ID_EX_MemWrite": {
+ "hide_name": 0,
+ "bits": [ 7 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:59.25-59.39"
+ }
+ },
+ "IF_ID_Stall2": {
+ "hide_name": 0,
+ "bits": [ 25 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:64.25-64.37"
+ }
+ },
+ "PcStall2": {
+ "hide_name": 0,
+ "bits": [ 24 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:63.25-63.33"
+ }
+ },
+ "clock": {
+ "hide_name": 0,
+ "bits": [ 2 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:55.25-55.30"
+ }
+ },
+ "mux1_out": {
+ "hide_name": 0,
+ "bits": [ 18, 19, 20, 21, 22, 23 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:62.25-62.33"
+ }
+ },
+ "reset": {
+ "hide_name": 0,
+ "bits": [ 3 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:56.25-56.30"
+ }
+ },
+ "rs": {
+ "hide_name": 0,
+ "bits": [ 8, 9, 10, 11, 12 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:60.25-60.27"
+ }
+ },
+ "rt": {
+ "hide_name": 0,
+ "bits": [ 13, 14, 15, 16, 17 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:61.25-61.27"
+ }
+ },
+ "use_stage": {
+ "hide_name": 0,
+ "bits": [ 4 ],
+ "attributes": {
+ "src": "{workspace}/src/DataPath/Hazard/HDU.v:57.25-57.34"
+ }
+ }
+ }
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/public/dide.skin b/public/dide.skin
index 7b2d4fc..6aef2d8 100644
Binary files a/public/dide.skin and b/public/dide.skin differ
diff --git a/public/index.html b/public/index.html
index b2a4d4c..c3b3a96 100644
--- a/public/index.html
+++ b/public/index.html
@@ -15,7 +15,7 @@
diff --git a/src/hook/render/connection.js b/src/hook/render/connection.js
index a96c308..44e598e 100644
--- a/src/hook/render/connection.js
+++ b/src/hook/render/connection.js
@@ -32,9 +32,11 @@ export class ConnectionRender {
const marginParamter = getMarginParamter(port);
const marginOffset = port.direction === 'input' ? marginParamter.leftMargin: - marginParamter.rightMargin;
+ const xoffset = port.y === 0 ? 1 : 0;
+
this.data.push({
id: port.id,
- x: port.x + node.x + marginOffset,
+ x: port.x + node.x + marginOffset + xoffset,
y: port.y + node.y + 0.5, // 0.5 是为了线宽
width: port.width,
height: port.height,
diff --git a/src/hook/render/instantiation.js b/src/hook/render/instantiation.js
index 3d6ff51..365d5d4 100644
--- a/src/hook/render/instantiation.js
+++ b/src/hook/render/instantiation.js
@@ -31,7 +31,10 @@ export class InstantiationRender {
* @param {import('../jsdoc').ElkNode} node
*/
addAsD3DataItem(node) {
- const nodeModule = this.rootRender.nameToModule.get(node.renderName);
+ console.log(node);
+
+ const nodeModule = this.rootRender.nameToModule.get(node.renderName);
+
const view = nodeModule.view;
const textPadding = 5;
const portnames = [];
diff --git a/src/hook/render/wire.js b/src/hook/render/wire.js
index c7db516..50749fc 100644
--- a/src/hook/render/wire.js
+++ b/src/hook/render/wire.js
@@ -45,6 +45,7 @@ export class WireRender {
const linePaths = [];
const beginPoint = points.at(0);
+ const beginTwoPoint = points.at(1);
const endPoint = points.at(-1);
const lastTwoPoint = points.at(-2);
@@ -53,9 +54,19 @@ export class WireRender {
const sourceMargin = getMarginParamter(sourcePort);
const targetMargin = getMarginParamter(targetPort);
- beginPoint.x -= sourceMargin.rightMargin;
- const direction = judgeDirection(endPoint, lastTwoPoint);
+ // 判断开头
+ const beginDirection = judgeDirection(beginPoint, beginTwoPoint);
+ if (beginDirection === 'up' || beginDirection === 'down') {
+ // TODO: 提前在布局算法中进行调整
+ beginPoint.x += targetMargin.leftMargin + 1;
+ beginTwoPoint.x += targetMargin.leftMargin + 1;
+ } else {
+ beginPoint.x -= sourceMargin.rightMargin;
+ }
+
+ // 判断结尾
+ const endDirection = judgeDirection(endPoint, lastTwoPoint);
// 特殊情况: targetPort 为 undefined
if (targetPort === undefined) {
const port = id2port.get(edge.orginalTarget);
@@ -63,7 +74,7 @@ export class WireRender {
endPoint.x -= LAYOUT_CONSTANT.INSTANCE_RIGHT_MARGIN;
} else {
// 判断当前的方向
- if (direction === 'up' || direction === 'down') {
+ if (endDirection === 'up' || endDirection === 'down') {
lastTwoPoint.x += targetMargin.leftMargin + 1;
endPoint.x += targetMargin.leftMargin + 1;
} else {
@@ -81,7 +92,7 @@ export class WireRender {
const lineSvg = linePaths.join(' ');
- const arrowLocation = getArrowLocation(endPoint, direction, this.arrowWidth, this.arrowHeight);
+ const arrowLocation = getArrowLocation(endPoint, endDirection, this.arrowWidth, this.arrowHeight);
this.data.push({
id: this.idCounter,
@@ -89,7 +100,7 @@ export class WireRender {
endPoint: points.at(-1),
width: width,
arrow: {
- icon: direction + '-arrow',
+ icon: endDirection + '-arrow',
x: arrowLocation.x,
y: arrowLocation.y,
width: this.arrowWidth,
@@ -208,6 +219,7 @@ export class WireRender {
})
.each(function (data) {
const selection = d3.select(this);
+
// const manager = _this.createDataManager(selection, data);
});