From 867a02fa3cdb17aa388020394d1f9b75cc3ca2f9 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Tue, 7 Jan 2025 21:12:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9E=82=E7=9B=B4=E7=BA=BF?= =?UTF-8?q?=E6=9D=A1=E7=9A=84=E6=B8=B2=E6=9F=93=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Word/Unary operators/$reduce_bool.svg | 12 + public/HDU1.json | 1473 +++++++++++++++++ public/dide.skin | Bin 200844 -> 201923 bytes public/index.html | 4 +- src/hook/render/connection.js | 4 +- src/hook/render/instantiation.js | 5 +- src/hook/render/wire.js | 22 +- 7 files changed, 1511 insertions(+), 9 deletions(-) create mode 100644 design/dide/Word/Unary operators/$reduce_bool.svg create mode 100644 public/HDU1.json 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 7b2d4fc063dff6721a04adf94615808ac70d2c0c..6aef2d818113e67e328d2351847262c8704aa256 100644 GIT binary patch delta 1622 zcmX|>dr(tH6vnf=2@w-WBw(U~Sg`?AP(TBN0#d6{9##rQ3yr)A5h|cUrW9q;Vk-r- zgu-yuQY3&VMyQJRDi%>5Q!_;nu}V=8BSpd5=#W&QwKUmvocqW9?RU<8d+zSpdr-q| zuji^)p+2YFlE8K3R&0b=K zLsN5yh;q+)lq7e&`vp;?i_4i7-_l{vojCV{WoHovI*zgAa5;2 zLXOgU0@p+O-Xw48Bss~EQnJFCtqIuJVcP{;3^$S+xEOLXvv?Scd60xA)omPH)|CpG zy}3L^s9dSo9EzCsj2Y%fCoatx^ei_)(M%f#d#_fhuWJgMXdMZEoJ8jue@p=_utBsn-1QpX-jWBSL=Ol_Qm5Bp+15r>$>H0f<3we zlHEf3n~e>f(fR}9{0#z8X7KTZh~hba`0JZI57)_htTe*URQKa6Ww7|9_GLg;*~U&q zTkn&l^KZ@*Wk=pFaO)SY*wbwsUAub3`T1DHv6f`JiFnG;x=1y+Oc!+jA$38ww`e*x z=4VZbtT|;YY@Y9g=%2={_3_kf+sh{RJK^Zh$+cb2t9qR)eI+VoVNBrPpC5WXWlz8G z|Bt~l{p9Dz-#%Xzd&wr`>qD=0c_#j=Rd1h$n?u<%T+YjnYaxSiwsd9H$M~ens??+t zUF)VHR^01P6X@59Neh7=2Z%Cs_5p#b=Q{~}Lwm6CtczFpB>C5CZ>HyTI1}dzT^I>H z?Xo8DvZt0nWuJ~f>Rl%Sg#+FMS_d5n+#TLXz-44P0oh|CSv`Dw6OW0tb)EXP)L=E#0n_4pf lg_N3yyx_ryZ{-MhX_O2$^O2`*5+jMx;m%-;jhinW<9~Dtw!#1a delta 1572 zcmYL}c~DbV6vlJ!O$Zp4uxUjgmO_A5QD8_Zf>^gGn>bXYkrZ487Fd8P@1e{qp-^uA3F=^{BXVPdjE^VS{M&pM*j6s=;4ZpEB3#>&1u>1G%v zvLOl06kp@vw%V$~Et&RW1EsRq&_KktVi__IEK43-MqQtV@69t|aUBz7vHBgz_}&4? zkL1iqU&@xqS(B^ikvxn2OP|}e_QaVKgl(@=%6Y{F@!K8v-4#4ZyQgtOQr%U7rWJas-nhayRL_xpKxH&i8YIZqg9;m3fB3>D0KO^FGN>L{1)YYF(6ON z%aj=T9y_g>y0ckmU2P<;ZOK@b60Hs1?0hUb>Q473y+_Q(i{)1u#QR=VZdBz-+vXH+ zWd2Tbsd-U%g=0(ql_!mVvtIJ&@p{js0oBf@7kd_dEtPmbz1tA+u}SlYnR`dhdU=LM z{ifeFc}6|r^-32u@Uw0j`Sv{+)~?F1pWXLZ); z>uj0V(MWvKilfD3Y@LtKL9Dnoo+O}d5|R-DKinsZ=FAX*D?fHYBw|JCpmx8-{~1;n}PMi2?+`?Ss|??rAp?_~6lU0^uVQ zq>bReR*)qQj=7WBZvQ(Pt!Dain0Vg^!}{549Q^=OJOp;?6*>)p#b#JiSb%UWJ+lCN zEHUjAf=OczlNMV}rEURUbg3s;ZiPc#VsP99Q}PyIV~y!xJP25Tz0_G?8K@$Eb zI!y@zN$>5oAOf4))B$(WXb26QNe>w+ptiu#upw}P^va(A0}HS=#)D7znAEl~$rRIu zkKkI8SL6@lNZ#vkc!h_fmv=xparV!E5yZK&0Gbl5sTzt&?PLpVF{3U)z^Bf2Ko4#( zb2I2Sdb|Tl^&>%V?u5hmz-Uo7bi|hsEmgr!@!8Qezrs5tn%)Bwh&J2@y*bp_btov; zKqqYCqJfb 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); });