diff --git a/README.md b/README.md
deleted file mode 100644
index 8b62cca..0000000
--- a/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# CN_RISC_V
diff --git a/RISC_V.cache/wt/gui_handlers.wdf b/RISC_V.cache/wt/gui_handlers.wdf
deleted file mode 100644
index 9aa752c..0000000
--- a/RISC_V.cache/wt/gui_handlers.wdf
+++ /dev/null
@@ -1,69 +0,0 @@
-version:1
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:626173656469616c6f675f6170706c79:35:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:626173656469616c6f675f6f6b:3639:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:636d646d73676469616c6f675f6f70656e5f6d657373616765735f76696577:37:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:636f6e6669726d736176657465787465646974736469616c6f675f796573:3130:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:63726561746573726366696c656469616c6f675f66696c655f6e616d65:3132:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:646566696e656d6f64756c65736469616c6f675f646566696e655f6d6f64756c65735f616e645f737065636966795f696f5f706f727473:3136:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:646566696e656d6f64756c65736469616c6f675f656e746974795f6e616d65:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:66696c6573657470616e656c5f66696c655f7365745f70616e656c5f74726565:333339:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:66696e64616e647265706c616365616c6c6469616c6f675f636c6f7365:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:666c6f6174696e67746f706469616c6f675f73656c6563745f746f705f6d6f64756c655f6f665f796f75725f64657369676e:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:666c6f6174696e67746f706469616c6f675f737065636966795f6e65775f746f705f6d6f64756c65:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:666c6f776e6176696761746f727472656570616e656c5f666c6f775f6e6176696761746f725f74726565:3835:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:67657474696e6773746172746564766965775f6372656174655f6e65775f70726f6a656374:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:67726170686963616c766965775f7a6f6f6d5f666974:3536:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:67726170686963616c766965775f7a6f6f6d5f696e:3231:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:67726170686963616c766965775f7a6f6f6d5f6f7574:33:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:68636f6465656469746f725f626c616e6b5f6f7065726174696f6e73:34:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:68636f6465656469746f725f636f6d6d616e64735f746f5f666f6c645f74657874:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:68636f6465656469746f725f646966665f77697468:34:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:686a66696c6563686f6f736572726563656e746c697374707265766965775f726563656e745f6469726563746f72696573:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:68706f7075707469746c655f636c6f7365:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f636865636b706f696e74:38:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f65646974:34:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f6578706f7274:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f66696c65:3230:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f666c6f77:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f6970:39:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f70726f6a656374:39:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f7265706f727473:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f73696d756c6174696f6e5f77617665666f726d:38:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f746578745f656469746f72:35:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d61696e6d656e756d67725f746f6f6c73:34:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d73677472656570616e656c5f6d6573736167655f766965775f74726565:3135:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:6d7367766965775f6572726f725f6d65737361676573:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6465656469746f725f66696e645f696e5f66696c6573:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6d6d616e646e616d65735f6164645f736f7572636573:3132:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6d6d616e646e616d65735f6175746f5f7570646174655f68696572:3135:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6d6d616e646e616d65735f7365745f61735f746f70:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6d6d616e646e616d65735f73696d756c6174696f6e5f636c6f7365:35:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7061636f6d6d616e646e616d65735f73696d756c6174696f6e5f72756e5f6265686176696f72616c:3637:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:706176696577735f636f6465:3531:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:706176696577735f70726f6a6563745f73756d6d617279:3338:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:70726f67726573736469616c6f675f6261636b67726f756e64:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:70726f67726573736469616c6f675f63616e63656c:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:70726f6a6563746e616d6563686f6f7365725f70726f6a6563745f6e616d65:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:70726f6a65637473657474696e677373696d756c6174696f6e70616e656c5f656e61626c655f696e6372656d656e74616c5f636f6d70696c6174696f6e:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:70726f6a65637473657474696e677373696d756c6174696f6e70616e656c5f7461626265645f70616e65:33:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:726469636f6d6d616e64735f64656c657465:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:726469636f6d6d616e64735f736176655f66696c655f6173:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:72646976696577735f77617665666f726d5f766965776572:3534:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7361766570726f6a6563747574696c735f63616e63656c:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7361766570726f6a6563747574696c735f73617665:3135:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:736561726368636f6d6d616e64636f6d706f6e656e745f717569636b5f616363657373:36:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73656c656374746f706d6f64756c656469616c6f675f73656c6563745f746f705f6d6f64756c65:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73657474696e67736469616c6f675f6f7074696f6e735f74726565:37:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73657474696e67736469616c6f675f70726f6a6563745f74726565:31:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73657474696e6773656469746f72706167655f637573746f6d5f656469746f72:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73657474696e6773656469746f72706167655f656e7465725f636f6d6d616e645f6c696e655f666f725f637573746f6d:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73657474696e6773656469746f72706167655f7573655f746869735f64726f705f646f776e5f6c6973745f626f785f746f5f73656c656374:35:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73696d756c6174696f6e6f626a6563747370616e656c5f73696d756c6174696f6e5f6f626a656374735f747265655f7461626c65:3935:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73696d756c6174696f6e73636f70657370616e656c5f73696d756c6174655f73636f70655f7461626c65:313935:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73726363686f6f73657270616e656c5f6164645f68646c5f616e645f6e65746c6973745f66696c65735f746f5f796f75725f70726f6a656374:34:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73726363686f6f73657270616e656c5f6164645f6f725f6372656174655f736f757263655f66696c65:32:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73726363686f6f73657270616e656c5f6372656174655f66696c65:3131:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:7372636d656e755f69705f686965726172636879:3137:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:73796e7468657469636167657474696e6773746172746564766965775f726563656e745f70726f6a65637473:3134:00:00
-70726f6a656374:76697661646f5f75736167655c6775695f68616e646c657273:77617665666f726d6e616d65747265655f77617665666f726d5f6e616d655f74726565:3137:00:00
-eof:500691182
diff --git a/RISC_V.cache/wt/java_command_handlers.wdf b/RISC_V.cache/wt/java_command_handlers.wdf
deleted file mode 100644
index 6766068..0000000
--- a/RISC_V.cache/wt/java_command_handlers.wdf
+++ /dev/null
@@ -1,12 +0,0 @@
-version:1
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:616464736f7572636573:3132:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:6564697464656c657465:31:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:6e657770726f6a656374:31:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:72756e73796e746865736973:31:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:736574746f706e6f6465:31:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:73686f7776696577:37:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:73696d756c6174696f6e636c6f7365:35:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:73696d756c6174696f6e72756e:3636:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:746f6f6c7373657474696e6773:39:00:00
-70726f6a656374:76697661646f5f75736167655c6a6176615f636f6d6d616e645f68616e646c657273:75692e76696577732e632e682e66:31:00:00
-eof:180561010
diff --git a/RISC_V.cache/wt/project.wpc b/RISC_V.cache/wt/project.wpc
deleted file mode 100644
index f16dd14..0000000
--- a/RISC_V.cache/wt/project.wpc
+++ /dev/null
@@ -1,3 +0,0 @@
-version:1
-6d6f64655f636f756e7465727c4755494d6f6465:16
-eof:
diff --git a/RISC_V.cache/wt/webtalk_pa.xml b/RISC_V.cache/wt/webtalk_pa.xml
deleted file mode 100644
index c85c37f..0000000
--- a/RISC_V.cache/wt/webtalk_pa.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
--
-
-
-
-
-
-
--
-
-
-
-
-
-
-
-
-
-
-
--
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--
-
-
-
-
-
-
-
diff --git a/RISC_V.cache/wt/xsim.wdf b/RISC_V.cache/wt/xsim.wdf
deleted file mode 100644
index 50afb2c..0000000
--- a/RISC_V.cache/wt/xsim.wdf
+++ /dev/null
@@ -1,4 +0,0 @@
-version:1
-7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:64656661756c743a3a6265686176696f72616c:00:00
-7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00
-eof:241934075
diff --git a/RISC_V.hw/RISC_V.lpr b/RISC_V.hw/RISC_V.lpr
deleted file mode 100644
index adee5c1..0000000
--- a/RISC_V.hw/RISC_V.lpr
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/RISC_V.ip_user_files/README.txt b/RISC_V.ip_user_files/README.txt
deleted file mode 100644
index 023052c..0000000
--- a/RISC_V.ip_user_files/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended.
diff --git a/RISC_V.ip_user_files/mem_init_files/code.mem b/RISC_V.ip_user_files/mem_init_files/code.mem
deleted file mode 100644
index 1874a70..0000000
--- a/RISC_V.ip_user_files/mem_init_files/code.mem
+++ /dev/null
@@ -1,18 +0,0 @@
-00008133 00108093 0020F1B3 0010E213 0042A223 00802603 04090E63
-
-add x2, x1, x0 - 0000000 00000 00001 000 00010 0110011 - 00008133
-
-addi x1, x1, 1 - 000000000001 00001 000 00001 0010011 - 00108093
-
-and x3, x1, x2 - 0000000 00010 00001 111 00011 0110011 - 0020F1B3
-
-ori x4, x1, 1 - 000000000001 00001 110 00100 0010011 - 0010E213
-
-sw x4, 4(x5) - 0000000 00100 00101 010 00100 0100011 - 0042A223
-
-lw x12, 8(x0) - 000000001000 00000 010 01100 0000011 - 00802603
-
-beq x18, x0, 5c - 0 0000010 00000 10010 000 1110 0 1100011 - 04090E63
-
-5c = 0 0000 0101 1100
-18 = 16 + 2 = 10010
\ No newline at end of file
diff --git a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB.tcl b/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB.tcl
deleted file mode 100644
index 1094e45..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB.tcl
+++ /dev/null
@@ -1,11 +0,0 @@
-set curr_wave [current_wave_config]
-if { [string length $curr_wave] == 0 } {
- if { [llength [get_objects]] > 0} {
- add_wave /
- set_property needs_save false [current_wave_config]
- } else {
- send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console."
- }
-}
-
-run 1000ns
diff --git a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_behav.wdb b/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_behav.wdb
deleted file mode 100644
index fc92982..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_behav.wdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_vlog.prj b/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_vlog.prj
deleted file mode 100644
index 2890c6c..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/RISC_V_IF_ID_TB_vlog.prj
+++ /dev/null
@@ -1,19 +0,0 @@
-# compile verilog/system verilog design source files
-verilog xil_defaultlib \
-"../../../../RISC_V.srcs/sources_1/new/ID.v" \
-"../../../../RISC_V.srcs/sources_1/new/IF.v" \
-"../../../../RISC_V.srcs/sources_1/new/IF_ID_REG.v" \
-"../../../../RISC_V.srcs/sources_1/new/PC.v" \
-"../../../../RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v" \
-"../../../../RISC_V.srcs/sources_1/new/adder.v" \
-"../../../../RISC_V.srcs/sources_1/new/imm_gen.v" \
-"../../../../RISC_V.srcs/sources_1/new/instruction_memory.v" \
-"../../../../RISC_V.srcs/sources_1/new/mux2_1.v" \
-"../../../../RISC_V.srcs/sources_1/new/registers.v" \
-"../../../../RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v" \
-
-# compile glbl module
-verilog xil_defaultlib "glbl.v"
-
-# Do not sort compile order
-nosort
diff --git a/RISC_V.sim/sim_1/behav/xsim/code.mem b/RISC_V.sim/sim_1/behav/xsim/code.mem
deleted file mode 100644
index 1874a70..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/code.mem
+++ /dev/null
@@ -1,18 +0,0 @@
-00008133 00108093 0020F1B3 0010E213 0042A223 00802603 04090E63
-
-add x2, x1, x0 - 0000000 00000 00001 000 00010 0110011 - 00008133
-
-addi x1, x1, 1 - 000000000001 00001 000 00001 0010011 - 00108093
-
-and x3, x1, x2 - 0000000 00010 00001 111 00011 0110011 - 0020F1B3
-
-ori x4, x1, 1 - 000000000001 00001 110 00100 0010011 - 0010E213
-
-sw x4, 4(x5) - 0000000 00100 00101 010 00100 0100011 - 0042A223
-
-lw x12, 8(x0) - 000000001000 00000 010 01100 0000011 - 00802603
-
-beq x18, x0, 5c - 0 0000010 00000 10010 000 1110 0 1100011 - 04090E63
-
-5c = 0 0000 0101 1100
-18 = 16 + 2 = 10010
\ No newline at end of file
diff --git a/RISC_V.sim/sim_1/behav/xsim/compile.bat b/RISC_V.sim/sim_1/behav/xsim/compile.bat
deleted file mode 100644
index 20552bd..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/compile.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo off
-REM ****************************************************************************
-REM Vivado (TM) v2018.3 (64-bit)
-REM
-REM Filename : compile.bat
-REM Simulator : Xilinx Vivado Simulator
-REM Description : Script for compiling the simulation design source files
-REM
-REM Generated by Vivado on Sat Nov 21 18:32:22 +0200 2020
-REM SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-REM
-REM Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
-REM
-REM usage: compile.bat
-REM
-REM ****************************************************************************
-echo "xvlog --relax -prj RISC_V_IF_ID_TB_vlog.prj"
-call xvlog --relax -prj RISC_V_IF_ID_TB_vlog.prj -log xvlog.log
-call type xvlog.log > compile.log
-if "%errorlevel%"=="1" goto END
-if "%errorlevel%"=="0" goto SUCCESS
-:END
-exit 1
-:SUCCESS
-exit 0
diff --git a/RISC_V.sim/sim_1/behav/xsim/compile.log b/RISC_V.sim/sim_1/behav/xsim/compile.log
deleted file mode 100644
index 02f1fbe..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/compile.log
+++ /dev/null
@@ -1,25 +0,0 @@
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/ID.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module ID
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module IF
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF_ID_REG.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module IF_ID_REG
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/PC.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module PC
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module RISC_V_IF_ID
-WARNING: [VRFC 10-3676] redeclaration of ansi port 'PC_ID' is not allowed [D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v:44]
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/adder.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module adder
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/imm_gen.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module imm_gen
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/instruction_memory.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module instruction_memory
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/mux2_1.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module mux2_1
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/registers.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module registers
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module RISC_V_IF_ID_TB
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/glbl.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module glbl
diff --git a/RISC_V.sim/sim_1/behav/xsim/elaborate.bat b/RISC_V.sim/sim_1/behav/xsim/elaborate.bat
deleted file mode 100644
index 525642d..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/elaborate.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off
-REM ****************************************************************************
-REM Vivado (TM) v2018.3 (64-bit)
-REM
-REM Filename : elaborate.bat
-REM Simulator : Xilinx Vivado Simulator
-REM Description : Script for elaborating the compiled design
-REM
-REM Generated by Vivado on Sat Nov 21 18:32:30 +0200 2020
-REM SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-REM
-REM Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
-REM
-REM usage: elaborate.bat
-REM
-REM ****************************************************************************
-call xelab -wto ee467e506e3e426b91b11db7a6f036e4 --debug typical --relax --mt 2 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip --snapshot RISC_V_IF_ID_TB_behav xil_defaultlib.RISC_V_IF_ID_TB xil_defaultlib.glbl -log elaborate.log
-if "%errorlevel%"=="0" goto SUCCESS
-if "%errorlevel%"=="1" goto END
-:END
-exit 1
-:SUCCESS
-exit 0
diff --git a/RISC_V.sim/sim_1/behav/xsim/elaborate.log b/RISC_V.sim/sim_1/behav/xsim/elaborate.log
deleted file mode 100644
index ed4d91c..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/elaborate.log
+++ /dev/null
@@ -1,22 +0,0 @@
-Vivado Simulator 2018.3
-Copyright 1986-1999, 2001-2018 Xilinx, Inc. All Rights Reserved.
-Running: D:/Vivado/2018.3/bin/unwrapped/win64.o/xelab.exe -wto ee467e506e3e426b91b11db7a6f036e4 --debug typical --relax --mt 2 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip --snapshot RISC_V_IF_ID_TB_behav xil_defaultlib.RISC_V_IF_ID_TB xil_defaultlib.glbl -log elaborate.log
-Using 2 slave threads.
-Starting static elaboration
-Completed static elaboration
-Starting simulation data flow analysis
-Completed simulation data flow analysis
-Time Resolution for simulation is 1ps
-Compiling module xil_defaultlib.PC
-Compiling module xil_defaultlib.instruction_memory
-Compiling module xil_defaultlib.adder
-Compiling module xil_defaultlib.mux2_1
-Compiling module xil_defaultlib.IF
-Compiling module xil_defaultlib.IF_ID_REG
-Compiling module xil_defaultlib.registers
-Compiling module xil_defaultlib.imm_gen
-Compiling module xil_defaultlib.ID
-Compiling module xil_defaultlib.RISC_V_IF_ID
-Compiling module xil_defaultlib.RISC_V_IF_ID_TB
-Compiling module xil_defaultlib.glbl
-Built simulation snapshot RISC_V_IF_ID_TB_behav
diff --git a/RISC_V.sim/sim_1/behav/xsim/glbl.v b/RISC_V.sim/sim_1/behav/xsim/glbl.v
deleted file mode 100644
index be64233..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/glbl.v
+++ /dev/null
@@ -1,71 +0,0 @@
-// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $
-`ifndef GLBL
-`define GLBL
-`timescale 1 ps / 1 ps
-
-module glbl ();
-
- parameter ROC_WIDTH = 100000;
- parameter TOC_WIDTH = 0;
-
-//-------- STARTUP Globals --------------
- wire GSR;
- wire GTS;
- wire GWE;
- wire PRLD;
- tri1 p_up_tmp;
- tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
-
- wire PROGB_GLBL;
- wire CCLKO_GLBL;
- wire FCSBO_GLBL;
- wire [3:0] DO_GLBL;
- wire [3:0] DI_GLBL;
-
- reg GSR_int;
- reg GTS_int;
- reg PRLD_int;
-
-//-------- JTAG Globals --------------
- wire JTAG_TDO_GLBL;
- wire JTAG_TCK_GLBL;
- wire JTAG_TDI_GLBL;
- wire JTAG_TMS_GLBL;
- wire JTAG_TRST_GLBL;
-
- reg JTAG_CAPTURE_GLBL;
- reg JTAG_RESET_GLBL;
- reg JTAG_SHIFT_GLBL;
- reg JTAG_UPDATE_GLBL;
- reg JTAG_RUNTEST_GLBL;
-
- reg JTAG_SEL1_GLBL = 0;
- reg JTAG_SEL2_GLBL = 0 ;
- reg JTAG_SEL3_GLBL = 0;
- reg JTAG_SEL4_GLBL = 0;
-
- reg JTAG_USER_TDO1_GLBL = 1'bz;
- reg JTAG_USER_TDO2_GLBL = 1'bz;
- reg JTAG_USER_TDO3_GLBL = 1'bz;
- reg JTAG_USER_TDO4_GLBL = 1'bz;
-
- assign (strong1, weak0) GSR = GSR_int;
- assign (strong1, weak0) GTS = GTS_int;
- assign (weak1, weak0) PRLD = PRLD_int;
-
- initial begin
- GSR_int = 1'b1;
- PRLD_int = 1'b1;
- #(ROC_WIDTH)
- GSR_int = 1'b0;
- PRLD_int = 1'b0;
- end
-
- initial begin
- GTS_int = 1'b1;
- #(TOC_WIDTH)
- GTS_int = 1'b0;
- end
-
-endmodule
-`endif
diff --git a/RISC_V.sim/sim_1/behav/xsim/simulate.bat b/RISC_V.sim/sim_1/behav/xsim/simulate.bat
deleted file mode 100644
index b4bb808..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/simulate.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off
-REM ****************************************************************************
-REM Vivado (TM) v2018.3 (64-bit)
-REM
-REM Filename : simulate.bat
-REM Simulator : Xilinx Vivado Simulator
-REM Description : Script for simulating the design by launching the simulator
-REM
-REM Generated by Vivado on Sat Nov 21 18:32:47 +0200 2020
-REM SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-REM
-REM Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
-REM
-REM usage: simulate.bat
-REM
-REM ****************************************************************************
-call xsim RISC_V_IF_ID_TB_behav -key {Behavioral:sim_1:Functional:RISC_V_IF_ID_TB} -tclbatch RISC_V_IF_ID_TB.tcl -log simulate.log
-if "%errorlevel%"=="0" goto SUCCESS
-if "%errorlevel%"=="1" goto END
-:END
-exit 1
-:SUCCESS
-exit 0
diff --git a/RISC_V.sim/sim_1/behav/xsim/simulate.log b/RISC_V.sim/sim_1/behav/xsim/simulate.log
deleted file mode 100644
index b250c4e..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/simulate.log
+++ /dev/null
@@ -1,4 +0,0 @@
-Vivado Simulator 2018.3
-Time resolution is 1 ps
-WARNING: Too many words specified in data file code.mem
-$finish called at time : 210 ns : File "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v" Line 55
diff --git a/RISC_V.sim/sim_1/behav/xsim/webtalk.jou b/RISC_V.sim/sim_1/behav/xsim/webtalk.jou
deleted file mode 100644
index 4ebc56f..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/webtalk.jou
+++ /dev/null
@@ -1,12 +0,0 @@
-#-----------------------------------------------------------
-# Webtalk v2018.3 (64-bit)
-# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018
-# Start of session at: Sat Nov 21 18:34:41 2020
-# Process ID: 16964
-# Current directory: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim
-# Command line: wbtcv.exe -mode batch -source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-# Log file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/webtalk.log
-# Journal file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim\webtalk.jou
-#-----------------------------------------------------------
-source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
diff --git a/RISC_V.sim/sim_1/behav/xsim/webtalk.log b/RISC_V.sim/sim_1/behav/xsim/webtalk.log
deleted file mode 100644
index 8a9d183..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/webtalk.log
+++ /dev/null
@@ -1,13 +0,0 @@
-#-----------------------------------------------------------
-# Webtalk v2018.3 (64-bit)
-# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018
-# Start of session at: Sat Nov 21 18:34:41 2020
-# Process ID: 16964
-# Current directory: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim
-# Command line: wbtcv.exe -mode batch -source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-# Log file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/webtalk.log
-# Journal file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim\webtalk.jou
-#-----------------------------------------------------------
-source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-INFO: [Common 17-206] Exiting Webtalk at Sat Nov 21 18:34:42 2020...
diff --git a/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.jou b/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.jou
deleted file mode 100644
index e7939e8..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.jou
+++ /dev/null
@@ -1,12 +0,0 @@
-#-----------------------------------------------------------
-# Webtalk v2018.3 (64-bit)
-# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018
-# Start of session at: Sat Nov 21 18:32:45 2020
-# Process ID: 15032
-# Current directory: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim
-# Command line: wbtcv.exe -mode batch -source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-# Log file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/webtalk.log
-# Journal file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim\webtalk.jou
-#-----------------------------------------------------------
-source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
diff --git a/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.log b/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.log
deleted file mode 100644
index 7682e41..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/webtalk_15032.backup.log
+++ /dev/null
@@ -1,13 +0,0 @@
-#-----------------------------------------------------------
-# Webtalk v2018.3 (64-bit)
-# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018
-# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018
-# Start of session at: Sat Nov 21 18:32:45 2020
-# Process ID: 15032
-# Current directory: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim
-# Command line: wbtcv.exe -mode batch -source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-# Log file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/webtalk.log
-# Journal file: D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim\webtalk.jou
-#-----------------------------------------------------------
-source D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/xsim_webtalk.tcl -notrace
-INFO: [Common 17-206] Exiting Webtalk at Sat Nov 21 18:32:47 2020...
diff --git a/RISC_V.sim/sim_1/behav/xsim/xelab.pb b/RISC_V.sim/sim_1/behav/xsim/xelab.pb
deleted file mode 100644
index c70e36a..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xelab.pb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/Compile_Options.txt b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/Compile_Options.txt
deleted file mode 100644
index 374d302..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/Compile_Options.txt
+++ /dev/null
@@ -1 +0,0 @@
--wto "ee467e506e3e426b91b11db7a6f036e4" --debug "typical" --relax --mt "2" -L "xil_defaultlib" -L "unisims_ver" -L "unimacro_ver" -L "secureip" --snapshot "RISC_V_IF_ID_TB_behav" "xil_defaultlib.RISC_V_IF_ID_TB" "xil_defaultlib.glbl" -log "elaborate.log"
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/TempBreakPointFile.txt b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/TempBreakPointFile.txt
deleted file mode 100644
index fdbc612..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/TempBreakPointFile.txt
+++ /dev/null
@@ -1 +0,0 @@
-Breakpoint File Version 1.0
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/.xsim_webtallk.info b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/.xsim_webtallk.info
deleted file mode 100644
index 05d1686..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/.xsim_webtallk.info
+++ /dev/null
@@ -1,5 +0,0 @@
-1605976363
-1605976480
-3
-1
-ee467e506e3e426b91b11db7a6f036e4
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.html b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.html
deleted file mode 100644
index e63d88b..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
Device Usage Statistics Report
-XSIM Usage Report
-
- software_version_and_target_device |
- beta | FALSE |
- build_version | 2405991 |
-
date_generated | Sat Nov 21 18:34:40 2020 |
- os_platform | WIN64 |
-
product_version | XSIM v2018.3 (64-bit) |
- project_id | ee467e506e3e426b91b11db7a6f036e4 |
-
project_iteration | 2 |
- random_id | 601ffe88-8614-41e5-b20b-50cc1ca6fd12 |
-
registration_id | 601ffe88-8614-41e5-b20b-50cc1ca6fd12 |
- route_design | FALSE |
-
target_device | not_applicable |
- target_family | not_applicable |
-
target_package | not_applicable |
- target_speed | not_applicable |
-
tool_flow | xsim_vivado |
-
-
- user_environment |
- cpu_name | Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz |
- cpu_speed | 2808 MHz |
-
os_name | Microsoft Windows 8 or later , 64-bit |
- os_release | major release (build 9200) |
-
system_ram | 8.000 GB |
- total_processors | 1 |
-
-
-
- xsim |
-
-
- command_line_options |
- command=xsim |
-
- |
-
-
- usage |
- iteration=0 |
- runtime=210 ns |
- simulation_memory=6048_KB |
- simulation_time=0.03_sec |
- trace_waveform=true |
-
- |
-
-
-
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.xml b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.xml
deleted file mode 100644
index f6aa74d..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/webtalk/usage_statistics_ext_xsim.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.dbg b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.dbg
deleted file mode 100644
index 56a3def..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.dbg and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.mem b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.mem
deleted file mode 100644
index bb86557..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.mem and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.reloc b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.reloc
deleted file mode 100644
index bce7836..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.reloc and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.rtti b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.rtti
deleted file mode 100644
index 2c73c9c..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.rtti and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.svtype b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.svtype
deleted file mode 100644
index d182fe1..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.svtype and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.type b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.type
deleted file mode 100644
index 14a09a2..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.type and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.xdbg b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.xdbg
deleted file mode 100644
index b981892..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsim.xdbg and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimSettings.ini b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimSettings.ini
deleted file mode 100644
index be10843..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimSettings.ini
+++ /dev/null
@@ -1,41 +0,0 @@
-[General]
-ARRAY_DISPLAY_LIMIT=1024
-RADIX=hex
-TIME_UNIT=ns
-TRACE_LIMIT=65536
-VHDL_ENTITY_SCOPE_FILTER=true
-VHDL_PACKAGE_SCOPE_FILTER=false
-VHDL_BLOCK_SCOPE_FILTER=true
-VHDL_PROCESS_SCOPE_FILTER=false
-VHDL_PROCEDURE_SCOPE_FILTER=false
-VERILOG_MODULE_SCOPE_FILTER=true
-VERILOG_PACKAGE_SCOPE_FILTER=false
-VERILOG_BLOCK_SCOPE_FILTER=false
-VERILOG_TASK_SCOPE_FILTER=false
-VERILOG_PROCESS_SCOPE_FILTER=false
-INPUT_OBJECT_FILTER=true
-OUTPUT_OBJECT_FILTER=true
-INOUT_OBJECT_FILTER=true
-INTERNAL_OBJECT_FILTER=true
-CONSTANT_OBJECT_FILTER=true
-VARIABLE_OBJECT_FILTER=true
-SCOPE_NAME_COLUMN_WIDTH=75
-SCOPE_DESIGN_UNIT_COLUMN_WIDTH=75
-SCOPE_BLOCK_TYPE_COLUMN_WIDTH=75
-OBJECT_NAME_COLUMN_WIDTH=166
-OBJECT_VALUE_COLUMN_WIDTH=75
-OBJECT_DATA_TYPE_COLUMN_WIDTH=75
-PROCESS_NAME_COLUMN_WIDTH=75
-PROCESS_TYPE_COLUMN_WIDTH=75
-FRAME_INDEX_COLUMN_WIDTH=75
-FRAME_NAME_COLUMN_WIDTH=75
-FRAME_FILE_NAME_COLUMN_WIDTH=75
-FRAME_LINE_NUM_COLUMN_WIDTH=166
-LOCAL_NAME_COLUMN_WIDTH=75
-LOCAL_VALUE_COLUMN_WIDTH=75
-INPUT_LOCAL_FILTER=1
-OUTPUT_LOCAL_FILTER=1
-INOUT_LOCAL_FILTER=1
-INTERNAL_LOCAL_FILTER=1
-CONSTANT_LOCAL_FILTER=1
-VARIABLE_LOCAL_FILTER=1
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimcrash.log b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimcrash.log
deleted file mode 100644
index e69de29..0000000
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimk.exe b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimk.exe
deleted file mode 100644
index 59c6335..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimk.exe and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimkernel.log b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimkernel.log
deleted file mode 100644
index 3b04263..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/RISC_V_IF_ID_TB_behav/xsimkernel.log
+++ /dev/null
@@ -1,7 +0,0 @@
-Running: xsim.dir/RISC_V_IF_ID_TB_behav/xsimk.exe -simmode gui -wdb RISC_V_IF_ID_TB_behav.wdb -simrunnum 0 -socket 56344
-Design successfully loaded
-Design Loading Memory Usage: 5248 KB (Peak: 5248 KB)
-Design Loading CPU Usage: 15 ms
-Simulation completed
-Simulation Memory Usage: 6048 KB (Peak: 6048 KB)
-Simulation CPU Usage: 30 ms
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@d.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@d.sdb
deleted file mode 100644
index 75bfc48..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@d.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f.sdb
deleted file mode 100644
index 6c79df1..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f_@i@d_@r@e@g.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f_@i@d_@r@e@g.sdb
deleted file mode 100644
index 3b69602..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@i@f_@i@d_@r@e@g.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@p@c.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@p@c.sdb
deleted file mode 100644
index 9eafb44..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@p@c.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d.sdb
deleted file mode 100644
index 91f7858..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d_@t@b.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d_@t@b.sdb
deleted file mode 100644
index b647b11..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/@r@i@s@c_@v_@i@f_@i@d_@t@b.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/adder.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/adder.sdb
deleted file mode 100644
index 4f4561b..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/adder.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb
deleted file mode 100644
index 6ab7b69..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/glbl.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb
deleted file mode 100644
index 15cabcf..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/imm_gen.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/instruction_memory.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/instruction_memory.sdb
deleted file mode 100644
index 5b894e7..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/instruction_memory.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/mux2_1.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/mux2_1.sdb
deleted file mode 100644
index d00a7a6..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/mux2_1.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/registers.sdb b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/registers.sdb
deleted file mode 100644
index 03dd110..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/registers.sdb and /dev/null differ
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
deleted file mode 100644
index cd5824e..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
+++ /dev/null
@@ -1,16 +0,0 @@
-0.6
-2018.3
-Dec 7 2018
-00:33:28
-D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/glbl.v,1544155481,verilog,,,,glbl,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/ID.v,1605529191,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF.v,,ID,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF.v,1605531235,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF_ID_REG.v,,IF,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF_ID_REG.v,1605531978,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/PC.v,,IF_ID_REG,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/PC.v,1605531852,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v,,PC,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v,1605529967,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/adder.v,,RISC_V_IF_ID,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v,1605531978,verilog,,,,RISC_V_IF_ID_TB,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/adder.v,1605530932,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/imm_gen.v,,adder,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/imm_gen.v,1605383352,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/instruction_memory.v,,imm_gen,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/instruction_memory.v,1605475140,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/mux2_1.v,,instruction_memory,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/mux2_1.v,1605535170,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/registers.v,,mux2_1,,,,,,,,
-D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/registers.v,1605532387,verilog,,D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v,,registers,,,,,,,,
diff --git a/RISC_V.sim/sim_1/behav/xsim/xsim.ini b/RISC_V.sim/sim_1/behav/xsim/xsim.ini
deleted file mode 100644
index e8199b2..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xsim.ini
+++ /dev/null
@@ -1 +0,0 @@
-xil_defaultlib=xsim.dir/xil_defaultlib
diff --git a/RISC_V.sim/sim_1/behav/xsim/xvlog.log b/RISC_V.sim/sim_1/behav/xsim/xvlog.log
deleted file mode 100644
index 02f1fbe..0000000
--- a/RISC_V.sim/sim_1/behav/xsim/xvlog.log
+++ /dev/null
@@ -1,25 +0,0 @@
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/ID.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module ID
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module IF
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/IF_ID_REG.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module IF_ID_REG
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/PC.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module PC
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module RISC_V_IF_ID
-WARNING: [VRFC 10-3676] redeclaration of ansi port 'PC_ID' is not allowed [D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v:44]
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/adder.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module adder
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/imm_gen.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module imm_gen
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/instruction_memory.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module instruction_memory
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/mux2_1.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module mux2_1
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/registers.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module registers
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module RISC_V_IF_ID_TB
-INFO: [VRFC 10-2263] Analyzing Verilog file "D:/VivadoProjects/RISC_V/RISC_V.sim/sim_1/behav/xsim/glbl.v" into library xil_defaultlib
-INFO: [VRFC 10-311] analyzing module glbl
diff --git a/RISC_V.sim/sim_1/behav/xsim/xvlog.pb b/RISC_V.sim/sim_1/behav/xsim/xvlog.pb
deleted file mode 100644
index adec6b4..0000000
Binary files a/RISC_V.sim/sim_1/behav/xsim/xvlog.pb and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/.PC.v.swp b/RISC_V.srcs/sources_1/new/.PC.v.swp
deleted file mode 100644
index 9290d31..0000000
Binary files a/RISC_V.srcs/sources_1/new/.PC.v.swp and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/.adder.v.swp b/RISC_V.srcs/sources_1/new/.adder.v.swp
deleted file mode 100644
index 97e3cce..0000000
Binary files a/RISC_V.srcs/sources_1/new/.adder.v.swp and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/.imm_gen.v.swp b/RISC_V.srcs/sources_1/new/.imm_gen.v.swp
deleted file mode 100644
index e68bcc4..0000000
Binary files a/RISC_V.srcs/sources_1/new/.imm_gen.v.swp and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/.mux2_1.v.swp b/RISC_V.srcs/sources_1/new/.mux2_1.v.swp
deleted file mode 100644
index d79219a..0000000
Binary files a/RISC_V.srcs/sources_1/new/.mux2_1.v.swp and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/.registers.v.swp b/RISC_V.srcs/sources_1/new/.registers.v.swp
deleted file mode 100644
index db7e03f..0000000
Binary files a/RISC_V.srcs/sources_1/new/.registers.v.swp and /dev/null differ
diff --git a/RISC_V.srcs/sources_1/new/ID.v b/RISC_V.srcs/sources_1/new/ID.v
deleted file mode 100644
index 48c73d6..0000000
--- a/RISC_V.srcs/sources_1/new/ID.v
+++ /dev/null
@@ -1,57 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/14/2020 08:22:59 PM
-// Design Name:
-// Module Name: ID
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module ID(input clk,
- input [31:0] PC_ID, INSTRUCTION_ID, //
- input RegWrite_WB, //
- input [31:0] ALU_DATA_WB, //
- input [4:0] RD_WB, //
- output [31:0] IMM_ID, //
- output [31:0] REG_DATA1_ID, REG_DATA2_ID, //
- output reg [2:0] FUNCT3_ID, //
- output reg [6:0] FUNCT7_ID, //
- output reg [6:0] OPCODE_ID, //
- output reg [4:0] RD_ID, //
- output reg [4:0] RS1_ID, //
- output reg [4:0] RS2_ID); //
-
- always @(*) begin
- OPCODE_ID <= INSTRUCTION_ID[6:0];
- RD_ID <= INSTRUCTION_ID[11:7];
- FUNCT3_ID <= INSTRUCTION_ID[14:12];
- RS1_ID <= INSTRUCTION_ID[19:15];
- RS2_ID <= INSTRUCTION_ID[24:20];
- FUNCT7_ID <= INSTRUCTION_ID[31:25];
- end
-
- registers reg0(
- clk,
- RegWrite_WB,
- RS1_ID,
- RS2_ID,
- RD_WB,
- ALU_DATA_WB,
- REG_DATA1_ID,
- REG_DATA2_ID
- );
- imm_gen imm_gen0(INSTRUCTION_ID, IMM_ID);
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/IF.v b/RISC_V.srcs/sources_1/new/IF.v
deleted file mode 100644
index beca38d..0000000
--- a/RISC_V.srcs/sources_1/new/IF.v
+++ /dev/null
@@ -1,36 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/02/2020 02:02:33 PM
-// Design Name:
-// Module Name: IF
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module IF(input clk, reset,
- input PCSrc, PC_write,
- input [31:0] PC_Branch,
- output [31:0] PC_IF, INSTRUCTION_IF);
-
- wire [31:0] PC_4;
- wire [31:0] PC_MUX;
-
- PC pc0(clk, reset, PC_write, PC_MUX, PC_IF);
- instruction_memory instr_mem0(PC_IF[11:2], INSTRUCTION_IF);
- adder adder0(PC_IF, 32'b0100, PC_4);
- mux2_1 mux0(PC_4, PC_Branch, PCSrc, PC_MUX);
-
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/IF_ID_REG.v b/RISC_V.srcs/sources_1/new/IF_ID_REG.v
deleted file mode 100644
index a6ba08b..0000000
--- a/RISC_V.srcs/sources_1/new/IF_ID_REG.v
+++ /dev/null
@@ -1,33 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/14/2020 09:49:56 PM
-// Design Name:
-// Module Name: IF_ID_REG
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module IF_ID_REG(input clk, reset, write,
- input [63:0] in,
- output reg [63:0] out);
-
- always @(posedge clk) begin
- if (write)
- out <= in;
- if (reset)
- out <= 0;
- end
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/PC.v b/RISC_V.srcs/sources_1/new/PC.v
deleted file mode 100644
index 40306e6..0000000
--- a/RISC_V.srcs/sources_1/new/PC.v
+++ /dev/null
@@ -1,34 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/02/2020 12:35:41 PM
-// Design Name:
-// Module Name: PC
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module PC(input clk, res, write,
- input [31:0] in,
- output reg [31:0] out);
-
- always @(posedge clk) begin
- if (write)
- out <= in;
- if (res)
- out <= 32'b0;
- end
-
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v b/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v
deleted file mode 100644
index a73349c..0000000
--- a/RISC_V.srcs/sources_1/new/RISC_V_IF_ID.v
+++ /dev/null
@@ -1,66 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/15/2020 01:26:31 PM
-// Design Name:
-// Module Name: RISC_V_IF_ID
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module RISC_V_IF_ID(input clk, reset,
- input IF_ID_write,
- input PCSrc, PC_write,
- input [31:0] PC_Branch,
- input RegWrite_WB,
- input [31:0] ALU_DATA_WB,
- input [4:0] RD_WB,
- output [31:0] PC_ID,
- output [31:0] INSTRUCTION_ID,
- output [31:0] IMM_ID,
- output [31:0] REG_DATA1_ID,
- output [31:0] REG_DATA2_ID,
- output [2:0] FUNCT3_ID,
- output [6:0] FUNCT7_ID,
- output [6:0] OPCODE_ID,
- output [4:0] RD_ID,
- output [4:0] RS1_ID,
- output [4:0] RS2_ID
- );
-
- wire [31:0] PC_IF, INSTRUCTION_IF;
- wire [31:0] PC_ID, INSTRUCTION_ID;
-
- IF if0(clk, reset, PCSrc, PC_write, PC_Branch, PC_IF, INSTRUCTION_IF);
- IF_ID_REG p0(clk, reset, IF_ID_write, {PC_IF, INSTRUCTION_IF}, {PC_ID, INSTRUCTION_ID});
- ID id0(
- clk,
- PC_ID,
- INSTRUCTION_ID,
- RegWrite_WB,
- ALU_DATA_WB,
- RD_WB,
- IMM_ID,
- REG_DATA1_ID,
- REG_DATA2_ID,
- FUNCT3_ID,
- FUNCT7_ID,
- OPCODE_ID,
- RD_ID,
- RS1_ID,
- RS2_ID
- );
-
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v b/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v
deleted file mode 100644
index dc6a240..0000000
--- a/RISC_V.srcs/sources_1/new/RISC_V_IF_ID_TB.v
+++ /dev/null
@@ -1,57 +0,0 @@
-///////////////////////////////////////TESTBENCH//////////////////////////////////////////////////////////////////
-module RISC_V_IF_ID_TB;
-
- reg clk,reset;
- reg IF_ID_write;
- reg PCSrc,PC_write;
- reg [31:0] PC_Branch;
- reg RegWrite_WB;
- reg [31:0] ALU_DATA_WB;
- reg [4:0] RD_WB;
- wire [31:0] PC_ID;
- wire [31:0] INSTRUCTION_ID;
- wire [31:0] IMM_ID;
- wire [31:0] REG_DATA1_ID,REG_DATA2_ID;
- wire [2:0] FUNCT3_ID;
- wire [6:0] FUNCT7_ID;
- wire [6:0] OPCODE_ID;
- wire [4:0] RD_ID;
- wire [4:0] RS1_ID;
- wire [4:0] RS2_ID;
-
- RISC_V_IF_ID procesor(clk,reset,
- IF_ID_write,
- PCSrc,PC_write,
- PC_Branch,
- RegWrite_WB,
- ALU_DATA_WB,
- RD_WB,
- PC_ID,
- INSTRUCTION_ID,
- IMM_ID,
- REG_DATA1_ID,REG_DATA2_ID,
- FUNCT3_ID,
- FUNCT7_ID,
- OPCODE_ID,
- RD_ID,
- RS1_ID,
- RS2_ID);
-
- always #5 clk=~clk;
-
- initial begin
- #0 clk=1'b0;
- reset=1'b1;
-
- IF_ID_write = 1'b1;
- PCSrc = 1'b0;
- PC_write = 1'b1;
- PC_Branch = 32'b0;
- RegWrite_WB = 1'b0;
- ALU_DATA_WB = 32'b0;
- RD_WB = 5'b0;
-
- #10 reset=1'b0;
- #200 $finish;
- end
-endmodule
\ No newline at end of file
diff --git a/RISC_V.srcs/sources_1/new/imm_gen.v b/RISC_V.srcs/sources_1/new/imm_gen.v
deleted file mode 100644
index 9372a16..0000000
--- a/RISC_V.srcs/sources_1/new/imm_gen.v
+++ /dev/null
@@ -1,35 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/09/2020 02:32:52 PM
-// Design Name:
-// Module Name: imm_gen
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module imm_gen(input [31:0] in, output reg [31:0] out);
-
- always @(*) begin
- casex ({in[14:12], in[6:0]})
- 10'bxxx0000011: out <= {{21{in[31]}}, in[30:20]}; // lw
- 10'bxxx0010011: out <= {{21{in[31]}}, in[30:20]}; // addi, ori
- 10'bxxx0100011: out <= {{21{in[31]}}, in[30:25], in[11:7]}; // sw
- 10'bxxx1100011: out <= {{20{in[31]}}, in[7], in[30:25], in[11:8], 1'b0}; // beq
- default: out <= 32'b0;
- endcase
- end
-
-endmodule
diff --git a/RISC_V.srcs/sources_1/new/registers.v b/RISC_V.srcs/sources_1/new/registers.v
deleted file mode 100644
index e21e054..0000000
--- a/RISC_V.srcs/sources_1/new/registers.v
+++ /dev/null
@@ -1,45 +0,0 @@
-`timescale 1ns / 1ps
-//////////////////////////////////////////////////////////////////////////////////
-// Company:
-// Engineer:
-//
-// Create Date: 11/09/2020 02:10:45 PM
-// Design Name:
-// Module Name: registers
-// Project Name:
-// Target Devices:
-// Tool Versions:
-// Description:
-//
-// Dependencies:
-//
-// Revision:
-// Revision 0.01 - File Created
-// Additional Comments:
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-module registers(input clk, reg_write,
- input [4:0] read_reg1, read_reg2, write_reg,
- input [31:0] write_data,
- output [31:0] read_data1, read_data2);
-
- reg [31:0] REG_FILE [0:31];
- integer i;
-
- initial begin
- for (i = 0; i < 32; i = i + 1) begin
- REG_FILE[i] <= i;
- end
- end
-
- always @(posedge clk) begin
- if (reg_write && write_reg)
- REG_FILE[write_reg] <= write_data;
- end
-
- assign read_data1 = REG_FILE[read_reg1];
- assign read_data2 = REG_FILE[read_reg2];
-
-endmodule
diff --git a/RISC_V.xpr b/RISC_V.xpr
deleted file mode 100644
index 975f789..0000000
--- a/RISC_V.xpr
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- default_dashboard
-
-
-
-
-
-
diff --git a/sim_1/new/code.mem b/sim_1/new/code.mem
new file mode 100644
index 0000000..5c4571c
--- /dev/null
+++ b/sim_1/new/code.mem
@@ -0,0 +1,7 @@
+00008133 //add x2,x1,x0
+00108093 //addi x1,x1,1
+0020F1B3 //and x3,x1,x2
+0010E213 //ori x4,x1,1
+0042A223 //sw x4,4(x5)
+00802603 //lw x12,8(x0)
+04090E63 //beq x18,x0,5c
\ No newline at end of file
diff --git a/sim_1/new/test_riscv.v b/sim_1/new/test_riscv.v
new file mode 100644
index 0000000..03b2465
--- /dev/null
+++ b/sim_1/new/test_riscv.v
@@ -0,0 +1,27 @@
+///////////////////////////////////////TESTBENCH//////////////////////////////////////////////////////////////////
+module RISC_V_TB;
+ reg clk,reset;
+ wire [31:0] PC_EX, ALU_OUT_EX, PC_MEM;
+ wire PCSrc;
+ wire [31:0] DATA_MEMORY_MEM;
+ wire [31:0] ALU_DATA_WB;
+ wire [1:0] forwardA, forwardB;
+ wire pipeline_stall;
+
+ RISC_V_FINAL risc_v(
+ clk, reset,
+
+ PC_EX,ALU_OUT_EX, PC_MEM,
+ PCSrc, DATA_MEMORY_MEM, ALU_DATA_WB,
+ forwardA, forwardB, pipeline_stall
+ );
+
+ always #5 clk=~clk;
+
+ initial begin
+ #0 clk=1'b0;
+ reset=1'b1;
+ #10 reset=1'b0;
+ #105 $finish;
+ end
+endmodule
\ No newline at end of file
diff --git a/sources_1/imports/IF_ID/PC.v b/sources_1/imports/IF_ID/PC.v
new file mode 100644
index 0000000..26d8d87
--- /dev/null
+++ b/sources_1/imports/IF_ID/PC.v
@@ -0,0 +1,14 @@
+/////////////////////////////////////////PC_MODULE///////////////////////////////////////////////////////////////
+module PC(input clk,res,write,
+ input [31:0] in,
+ output reg [31:0] out);
+
+ always@(posedge clk) begin
+ if(res)
+ out<=32'b0;
+ else if(write)
+ out<=in;
+ end
+
+endmodule
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/imports/IF_ID/control_path.v b/sources_1/imports/IF_ID/control_path.v
new file mode 100644
index 0000000..249851b
--- /dev/null
+++ b/sources_1/imports/IF_ID/control_path.v
@@ -0,0 +1,23 @@
+////////////////////////////////////////CONTROL_PATH_MODULE///////////////////////////////////////////////////
+module control_path(input [6:0] opcode,
+ input control_sel,
+ output reg Branch, MemRead,MemtoReg,MemWrite,ALUSrc,RegWrite,
+ output reg [1:0] ALUop);
+
+ always@(opcode) begin
+ if (control_sel)
+ {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b00000000;
+ else begin
+ casex(opcode)
+ 7'b0000000: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b00000000; //nop from ISA
+ 7'b0000011: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b11110000; //lw
+ 7'b0100011: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b10001000; //sw
+ 7'b0110011: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b00100010; //R32-format
+ 7'b0010011: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b10100011; //Register32-Immediate Arithmetic Instructions
+ 7'b1100011: {ALUSrc,MemtoReg,RegWrite,MemRead,MemWrite,Branch,ALUop} <= 8'b00000101; //branch instructions
+ endcase
+ end
+ end
+
+endmodule
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/imports/IF_ID/if_id_pipe.v b/sources_1/imports/IF_ID/if_id_pipe.v
new file mode 100644
index 0000000..709f488
--- /dev/null
+++ b/sources_1/imports/IF_ID/if_id_pipe.v
@@ -0,0 +1,23 @@
+module IF_ID_reg(clk,reset,write,pc_in,instruction_in,pc_out,instruction_out);
+
+ input clk,write,reset;
+ input [31:0] pc_in;
+ input [31:0] instruction_in;
+
+ output reg [31:0] pc_out;
+ output reg [31:0] instruction_out;
+
+ always@(posedge clk) begin
+ if (reset) begin
+ pc_out<=32'b0;
+ instruction_out<=32'b0;
+ end
+ else begin
+ if(write) begin
+ pc_out <= pc_in;
+ instruction_out <= instruction_in;
+ end
+ end
+ end
+
+endmodule
diff --git a/sources_1/imports/IF_ID/imm_gen.v b/sources_1/imports/IF_ID/imm_gen.v
new file mode 100644
index 0000000..c3c06a6
--- /dev/null
+++ b/sources_1/imports/IF_ID/imm_gen.v
@@ -0,0 +1,22 @@
+//////////////////////////////////////////IMM_GEN_MODULE/////////////////////////////////////////////////////
+module imm_gen(input [31:0] in,
+ output reg [31:0] out);
+
+ always@(*) begin
+ casex({in[14:12],in[6:0]})
+ 10'bxxx0000011: out <= {{20{in[31]}},in[31:20]}; //load instructions
+ 10'b0000010011: out <= {{20{in[31]}},in[31:20]}; //addi
+ 10'b1110010011: out <= {{20{in[31]}},in[31:20]}; //andi
+ 10'b1100010011: out <= {{20{in[31]}},in[31:20]}; //ori
+ 10'b1000010011: out <= {{20{in[31]}},in[31:20]}; //xori
+ 10'b0100010011: out <= {{20{in[31]}},in[31:20]}; //slti
+ 10'b0110010011: out <= {{20{in[31]}},in[31:20]}; //sltiu
+ 10'b1010010011: out <= {27'b0,in[24:20]}; //srli,srai
+ 10'b0010010011: out <= {27'b0,in[24:20]}; //slli
+ 10'bxxx0100011: out <= {{20{in[31]}},in[31:25],in[11:7]}; //store instructions
+ 10'bxxx1100011: out <= {{19{in[31]}},in[31],in[7],in[30:25],in[11:8], 1'b0}; //beq,bne,blt,bge,bltu,bgeu
+ default: out <= 32'b0;
+ endcase
+ end
+endmodule
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/imports/IF_ID/instruction_memory.v b/sources_1/imports/IF_ID/instruction_memory.v
new file mode 100644
index 0000000..a72cabc
--- /dev/null
+++ b/sources_1/imports/IF_ID/instruction_memory.v
@@ -0,0 +1,14 @@
+///////////////////////////////////////INSTRUCTION_MEMORY/////////////////////////////////////////////////////
+module instruction_memory(input [9:0] address,
+ output reg [31:0] instruction);
+
+ reg [31:0] codeMemory [0:1023];
+
+ initial $readmemh("code.mem", codeMemory);
+
+ always@(address) begin
+ instruction <= codeMemory[address];
+ end
+
+endmodule
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/imports/IF_ID/registers.v b/sources_1/imports/IF_ID/registers.v
new file mode 100644
index 0000000..bb3b21e
--- /dev/null
+++ b/sources_1/imports/IF_ID/registers.v
@@ -0,0 +1,30 @@
+///////////////////////////////////REGISTER_FILE_MODULE///////////////////////////////////////////////////////
+module registers(input clk,reg_write,
+ input [4:0] read_reg1,read_reg2,write_reg,
+ input [31:0] write_data,
+ output [31:0] read_data1,read_data2);
+
+ reg [31:0] Registers [0:31];
+
+ integer i;
+ initial begin
+ for (i = 0; i < 32; i = i + 1) begin
+ Registers[i] = i;
+ end
+ end
+
+ always@(posedge clk) begin
+ if(reg_write && write_reg)
+ Registers[write_reg] <= write_data;
+ end
+
+ assign read_data1 = (read_reg1 != 5'b0) ? //it is different from x0
+ (((reg_write == 1'b1)&&(read_reg1 == write_reg)) ?
+ write_data : Registers[read_reg1]) : 32'b0;
+
+ assign read_data2 = (read_reg2 != 5'b0) ? //it is different from x0
+ (((reg_write == 1'b1)&&(read_reg2 == write_reg)) ?
+ write_data : Registers[read_reg2]) : 32'b0;
+
+endmodule
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/imports/IF_ID/risc_v.v b/sources_1/imports/IF_ID/risc_v.v
new file mode 100644
index 0000000..d966f24
--- /dev/null
+++ b/sources_1/imports/IF_ID/risc_v.v
@@ -0,0 +1,77 @@
+//////////////////////////////////////////////RISC-V_MODULE///////////////////////////////////////////////////
+module RISC_V_IF_ID(input clk,
+ input reset,
+ input control_sel,
+
+ input IF_ID_write,
+ input PCSrc,PC_write,
+ input [31:0] PC_Branch,
+ input RegWrite_WB,
+ input [31:0] ALU_DATA_WB,
+ input [4:0] RD_WB,
+
+ output [31:0] PC_ID,
+ output [31:0] INSTRUCTION_ID,
+ output [31:0] IMM_ID,
+ output [31:0] REG_DATA1_ID,
+ output [31:0] REG_DATA2_ID,
+
+ output [2:0] FUNCT3_ID,
+ output [6:0] FUNCT7_ID,
+ output [6:0] OPCODE_ID,
+ output [4:0] RD_ID,
+ output [4:0] RS1_ID,
+ output [4:0] RS2_ID,
+
+ output RegWrite_ID,
+ output MemtoReg_ID,
+ output MemRead_ID,
+ output MemWrite_ID,
+ output [1:0] ALUop_ID,
+ output ALUSrc_ID,
+ output Branch_ID
+ );
+
+ //////////////////////////////////////////IF signals////////////////////////////////////////////////////////
+ wire [31:0] PC_IF;
+ wire [31:0] INSTRUCTION_IF;
+
+
+ /////////////////////////////////////IF Module/////////////////////////////////////
+ IF instruction_fetch(clk, reset,
+ PCSrc, PC_write,
+ PC_Branch,
+ PC_IF,INSTRUCTION_IF);
+
+
+ //////////////////////////////////////pipeline registers////////////////////////////////////////////////////
+ IF_ID_reg IF_ID_REGISTER(clk,reset,
+ IF_ID_write,
+ PC_IF,INSTRUCTION_IF,
+ PC_ID,INSTRUCTION_ID);
+
+
+ ////////////////////////////////////////ID Module//////////////////////////////////
+ ID instruction_decode(clk,
+ control_sel,
+ PC_ID,INSTRUCTION_ID,
+ RegWrite_WB,
+ ALU_DATA_WB,
+ RD_WB,
+ IMM_ID,
+ REG_DATA1_ID,REG_DATA2_ID,
+ FUNCT3_ID,
+ FUNCT7_ID,
+ OPCODE_ID,
+ RD_ID,
+ RS1_ID,
+ RS2_ID,
+ RegWrite_ID,
+ MemtoReg_ID,
+ MemRead_ID,
+ MemWrite_ID,
+ ALUop_ID,
+ ALUSrc_ID,
+ Branch_ID);
+endmodule
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sources_1/new/ALU.v b/sources_1/new/ALU.v
new file mode 100644
index 0000000..5ed82ba
--- /dev/null
+++ b/sources_1/new/ALU.v
@@ -0,0 +1,38 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/07/2020 01:33:07 PM
+// Design Name:
+// Module Name: ALU
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+module ALU(input [3:0] ALUinput,
+ input [31:0] ina,inb,
+ output reg zero,
+ output reg [31:0] out);
+
+ always @(ina or inb or ALUinput) begin
+ case(ALUinput)
+ 4'b0010: out = ina + inb;
+ 4'b0110: out = ina - inb;
+ 4'b0000: out = ina & inb;
+ 4'b0001: out = ina | inb;
+ default: out = 32'hFFFFFFFF;
+ endcase
+ zero <= (out == 0);
+ end
+endmodule
+
diff --git a/sources_1/new/ALUcontrol.v b/sources_1/new/ALUcontrol.v
new file mode 100644
index 0000000..5cbfaa8
--- /dev/null
+++ b/sources_1/new/ALUcontrol.v
@@ -0,0 +1,42 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/07/2020 12:38:23 PM
+// Design Name:
+// Module Name: ALUcontrol
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module ALUcontrol(input [1:0] ALUop,
+ input [6:0] funct7,
+ input [2:0] funct3,
+ output reg [3:0] ALUinput);
+
+ always @(ALUop or funct7 or funct3) begin
+ casex({ALUop, funct7, funct3})
+ 12'b00XXXXXXXXXX: ALUinput <= 4'b0010; // ld, sd
+ 12'b01XXXXXXXXXX: ALUinput <= 4'b0110; // beq
+ 12'b100000000000: ALUinput <= 4'b0010; // add
+ 12'b100100000000: ALUinput <= 4'b0110; // sub
+ 12'b100000000111: ALUinput <= 4'b0000; // and
+ 12'b100000000110: ALUinput <= 4'b0001; // or
+ 12'b11xxxxxxx000: ALUinput <= 4'b0010; // addi
+ 12'b11xxxxxxx110: ALUinput <= 4'b0001; // ori
+ default: ALUinput <= 4'b1111;
+ endcase
+ end
+
+endmodule
diff --git a/sources_1/new/ALUop.v b/sources_1/new/ALUop.v
new file mode 100644
index 0000000..ad4387b
--- /dev/null
+++ b/sources_1/new/ALUop.v
@@ -0,0 +1,37 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/07/2020 12:54:36 PM
+// Design Name:
+// Module Name: ALUop
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module ALU(input [3:0] ALUop,
+ input [31:0] ina,inb,
+ output reg zero,
+ output reg [31:0] out);
+
+ always @(ina or inb or ALUop) begin
+ case(ALUop)
+ 4'b0010: out <= ina + inb;
+ 4'b0110: out <= ina - inb;
+ 4'b0000: out <= ina & inb;
+ 4'b0001: out <= ina | inb;
+ endcase
+ zero <= (out == 0);
+ end
+endmodule
diff --git a/sources_1/new/EX.v b/sources_1/new/EX.v
new file mode 100644
index 0000000..8d9c790
--- /dev/null
+++ b/sources_1/new/EX.v
@@ -0,0 +1,61 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/07/2020 01:02:51 PM
+// Design Name:
+// Module Name: EX
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module EX(input [31:0] IMM_EX,
+ input [31:0] REG_DATA1_EX,
+ input [31:0] REG_DATA2_EX,
+ input [31:0] PC_EX,
+ input [2:0] FUNCT3_EX,
+ input [6:0] FUNCT7_EX,
+ input [4:0] RD_EX,
+ input [4:0] RS1_EX,
+ input [4:0] RS2_EX,
+ input RegWrite_EX,
+ input MemtoReg_EX,
+ input MemRead_EX,
+ input MemWrite_EX,
+ input [1:0] ALUop_EX,
+ input ALUSrc_EX,
+ input Branch_EX,
+ input [1:0] forwardA,forwardB,
+
+ input [31:0] ALU_DATA_WB,
+ input [31:0] ALU_OUT_MEM,
+
+ output ZERO_EX,
+ output [31:0] ALU_OUT_EX,
+ output [31:0] PC_Branch_EX,
+ output [31:0] REG_DATA2_EX_FINAL
+ );
+
+ wire [3:0] ALUinput;
+ wire [31:0] ALU_OP_1, ALU_OP_2;
+
+ mux4_1 mux0(REG_DATA1_EX, ALU_DATA_WB, ALU_OUT_MEM, 0, forwardA, ALU_OP_1);
+ mux4_1 mux1(REG_DATA2_EX, ALU_DATA_WB, ALU_OUT_MEM, 0, forwardB, REG_DATA2_EX_FINAL);
+ mux2_1 mux2(REG_DATA2_EX_FINAL, IMM_EX, ALUSrc_EX, ALU_OP_2);
+
+ ALUcontrol control0(ALUop_EX, FUNCT7_EX, FUNCT3_EX, ALUinput);
+ ALU alu0(ALUinput, ALU_OP_1, ALU_OP_2, ZERO_EX, ALU_OUT_EX);
+
+ adder adder0(PC_EX, IMM_EX, PC_Branch_EX);
+endmodule
diff --git a/sources_1/new/EX_MEM_REG.v b/sources_1/new/EX_MEM_REG.v
new file mode 100644
index 0000000..ec79207
--- /dev/null
+++ b/sources_1/new/EX_MEM_REG.v
@@ -0,0 +1,68 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 01/03/2021 01:19:39 PM
+// Design Name:
+// Module Name: EX_MEM_REG
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module EX_MEM_REG(
+ output reg [4:0] RD_MEM,
+ output reg RegWrite_MEM,
+ output reg MemtoReg_MEM,
+ output reg MemRead_MEM,
+ output reg MemWrite_MEM,
+ output reg Branch_MEM,
+ output reg Zero_MEM,
+ output reg [31:0] ALU_OUT_MEM,
+ output reg [31:0] PC_Branch_MEM,
+ output reg [31:0] REG_DATA2_MEM_FINAL,
+
+ input [4:0] RD_EX,
+ input RegWrite_EX,
+ input MemtoReg_EX,
+ input MemRead_EX,
+ input MemWrite_EX,
+ input Branch_EX,
+ input Zero_EX,
+ input [31:0] ALU_OUT_EX,
+ input [31:0] PC_Branch_EX,
+ input [31:0] REG_DATA2_EX_FINAL,
+
+ input clk,
+ input reset
+);
+
+ always @(posedge clk) begin
+ if (reset) begin
+ {RD_MEM, RegWrite_MEM, MemtoReg_MEM, MemRead_MEM, MemWrite_MEM,
+ Branch_MEM, Zero_MEM, ALU_OUT_MEM, PC_Branch_MEM, REG_DATA2_MEM_FINAL} = 107'b0;
+ end
+ else begin
+ RD_MEM = RD_EX;
+ RegWrite_MEM = RegWrite_EX;
+ MemtoReg_MEM = MemtoReg_EX;
+ MemRead_MEM = MemRead_EX;
+ MemWrite_MEM = MemWrite_EX;
+ Branch_MEM = Branch_EX;
+ Zero_MEM = Zero_EX;
+ ALU_OUT_MEM = ALU_OUT_EX;
+ PC_Branch_MEM = PC_Branch_EX;
+ REG_DATA2_MEM_FINAL = REG_DATA2_EX_FINAL;
+ end
+ end
+endmodule
diff --git a/sources_1/new/ID.v b/sources_1/new/ID.v
new file mode 100644
index 0000000..0dfb1eb
--- /dev/null
+++ b/sources_1/new/ID.v
@@ -0,0 +1,43 @@
+module ID(input clk,
+ input control_sel,
+ input [31:0] PC_ID,INSTRUCTION_ID,
+ input RegWrite_WB,
+ input [31:0] ALU_DATA_WB,
+ input [4:0] RD_WB,
+ output [31:0] IMM_ID,
+ output [31:0] REG_DATA1_ID,REG_DATA2_ID,
+ output [2:0] FUNCT3_ID,
+ output [6:0] FUNCT7_ID,
+ output [6:0] OPCODE_ID,
+ output [4:0] RD_ID,
+ output [4:0] RS1_ID,
+ output [4:0] RS2_ID,
+ output RegWrite_ID,MemtoReg_ID,MemRead_ID,MemWrite_ID,
+ output [1:0] ALUop_ID,
+ output ALUSrc_ID,
+ output Branch_ID);
+
+
+ assign FUNCT3_ID = INSTRUCTION_ID[14:12];
+ assign FUNCT7_ID = INSTRUCTION_ID[31:25];
+ assign OPCODE_ID = INSTRUCTION_ID[6:0];
+ assign RD_ID = INSTRUCTION_ID[11:7];
+ assign RS1_ID = INSTRUCTION_ID[19:15];
+ assign RS2_ID = INSTRUCTION_ID[24:20];
+
+ control_path CONTROL_PATH_MODULE(OPCODE_ID,
+ control_sel,
+ Branch_ID,MemRead_ID,MemtoReg_ID,
+ MemWrite_ID,ALUSrc_ID,RegWrite_ID,
+ ALUop_ID);
+
+ registers REGISTER_FILE_MODULE(clk,RegWrite_WB,
+ RS1_ID,
+ RS2_ID,
+ RD_WB,
+ ALU_DATA_WB,
+ REG_DATA1_ID,REG_DATA2_ID);
+
+ imm_gen IMM_GEN_MODULE(INSTRUCTION_ID,IMM_ID);
+
+endmodule
\ No newline at end of file
diff --git a/sources_1/new/ID_EX_REG.v b/sources_1/new/ID_EX_REG.v
new file mode 100644
index 0000000..1603088
--- /dev/null
+++ b/sources_1/new/ID_EX_REG.v
@@ -0,0 +1,105 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 01/03/2021 03:09:26 PM
+// Design Name:
+// Module Name: ID_EX_REG
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module ID_EX_REG(
+ output reg [31:0] PC_EX,
+ output reg [31:0] IMM_EX,
+ output reg [31:0] REG_DATA1_EX,
+ output reg [31:0] REG_DATA2_EX,
+ output reg [2:0] FUNCT3_EX,
+ output reg [6:0] FUNCT7_EX,
+ output reg [6:0] OPCODE_EX,
+ output reg [4:0] RD_EX,
+ output reg [4:0] RS1_EX,
+ output reg [4:0] RS2_EX,
+ output reg RegWrite_EX,
+ output reg MemtoReg_EX,
+ output reg MemRead_EX,
+ output reg MemWrite_EX,
+ output reg [1:0] ALUop_EX,
+ output reg ALUSrc_EX,
+ output reg Branch_EX,
+
+ input [31:0] PC_ID,
+ input [31:0] IMM_ID,
+ input [31:0] REG_DATA1_ID,
+ input [31:0] REG_DATA2_ID,
+ input [2:0] FUNCT3_ID,
+ input [6:0] FUNCT7_ID,
+ input [6:0] OPCODE_ID,
+ input [4:0] RD_ID,
+ input [4:0] RS1_ID,
+ input [4:0] RS2_ID,
+ input RegWrite_ID,
+ input MemtoReg_ID,
+ input MemRead_ID,
+ input MemWrite_ID,
+ input [1:0] ALUop_ID,
+ input ALUSrc_ID,
+ input Branch_ID,
+
+ input clk,
+ input reset
+);
+
+ always @(posedge clk) begin
+ if (reset) begin
+ PC_EX = 0;
+ IMM_EX = 0;
+ REG_DATA1_EX = 0;
+ REG_DATA2_EX = 0;
+ FUNCT3_EX = 0;
+ FUNCT7_EX = 0;
+ OPCODE_EX = 0;
+ RD_EX = 0;
+ RS1_EX = 0;
+ RS2_EX = 0;
+ RegWrite_EX = 0;
+ MemtoReg_EX = 0;
+ MemRead_EX = 0;
+ MemWrite_EX = 0;
+ ALUop_EX = 0;
+ ALUSrc_EX = 0;
+ Branch_EX = 0;
+ end
+ else begin
+ PC_EX = PC_ID;
+ IMM_EX = IMM_ID;
+ REG_DATA1_EX = REG_DATA1_ID;
+ REG_DATA2_EX = REG_DATA2_ID;
+ FUNCT3_EX = FUNCT3_ID;
+ FUNCT7_EX = FUNCT7_ID;
+ OPCODE_EX = OPCODE_ID;
+ RD_EX = RD_ID;
+ RS1_EX = RS1_ID;
+ RS2_EX = RS2_ID;
+ RegWrite_EX = RegWrite_ID;
+ MemtoReg_EX = MemtoReg_ID;
+ MemRead_EX = MemRead_ID;
+ MemWrite_EX = MemWrite_ID;
+ ALUop_EX = ALUop_ID;
+ ALUSrc_EX = ALUSrc_ID;
+ Branch_EX = Branch_ID;
+ end
+ end
+
+endmodule
diff --git a/sources_1/new/IF.v b/sources_1/new/IF.v
new file mode 100644
index 0000000..747b65b
--- /dev/null
+++ b/sources_1/new/IF.v
@@ -0,0 +1,22 @@
+module IF(input clk, reset,
+ input PCSrc, PC_write,
+ input [31:0] PC_Branch,
+ output [31:0] PC_IF,INSTRUCTION_IF);
+
+ wire [9:0] instruction_address = PC_IF[11:2];
+ wire [31:0] PC_MUX;
+ wire [31:0] PC_4_IF;
+
+ PC PC_MODULE(clk,reset,PC_write,PC_MUX,PC_IF);
+
+ instruction_memory INSTRUCTION_MEMORY_MODULE(instruction_address,INSTRUCTION_IF);
+
+ adder ADDER_PC_4_IF(PC_IF,32'b0100,PC_4_IF);
+
+ mux2_1 MUX_PC(PC_4_IF,
+ PC_Branch,
+ PCSrc,
+ PC_MUX);
+
+
+endmodule
diff --git a/sources_1/new/MEM.v b/sources_1/new/MEM.v
new file mode 100644
index 0000000..4f7def3
--- /dev/null
+++ b/sources_1/new/MEM.v
@@ -0,0 +1,57 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 01/03/2021 01:51:54 PM
+// Design Name:
+// Module Name: MEM
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module MEM(
+ input clk,
+ input [4:0] RD_MEM,
+ input RegWrite_MEM,
+ input MemtoReg_MEM,
+ input MemRead_MEM,
+ input MemWrite_MEM,
+ input Branch_MEM,
+
+ input Zero_MEM,
+ input [31:0] ALU_OUT_MEM,
+ input [31:0] PC_Branch_MEM,
+ input [31:0] REG_DATA2_MEM_FINAL,
+
+ output reg PCSrc_IF,
+ output reg [31:0] PC_Branch_IF,
+
+ output [31:0] READ_DATA
+);
+
+ data_memory data_memory0(
+ clk,
+ MemRead_MEM,
+ MemWrite_MEM,
+ ALU_OUT_MEM,
+ REG_DATA2_MEM_FINAL,
+ READ_DATA
+ );
+
+ always @(Zero_MEM or Branch_MEM or PC_Branch_MEM) begin
+ PCSrc_IF = Zero_MEM & Branch_MEM;
+ PC_Branch_IF = PC_Branch_MEM;
+ end
+
+endmodule
diff --git a/sources_1/new/MEM_WB_REG.v b/sources_1/new/MEM_WB_REG.v
new file mode 100644
index 0000000..ba1d896
--- /dev/null
+++ b/sources_1/new/MEM_WB_REG.v
@@ -0,0 +1,50 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 01/03/2021 02:22:35 PM
+// Design Name:
+// Module Name: MEM_WB_REG
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module MEM_WB_REG(
+ output reg MemtoReg_WB,
+ output reg RegWrite_WB,
+ output reg [31:0] READ_DATA_WB,
+ output reg [31:0] ALU_RESULT_WB,
+ output reg [4:0] RD_WB,
+
+ input MemtoReg_MEM,
+ input RegWrite_MEM,
+ input [31:0] READ_DATA_MEM,
+ input [31:0] ALU_RESULT_MEM,
+ input [4:0] RD_MEM,
+
+ input clk,
+ input reset
+);
+ always @(posedge clk) begin
+ if (reset)
+ {MemtoReg_WB, RegWrite_WB, READ_DATA_WB, ALU_RESULT_WB, RD_WB} = 71'b0;
+ else begin
+ MemtoReg_WB = MemtoReg_MEM;
+ RegWrite_WB = RegWrite_MEM;
+ READ_DATA_WB = READ_DATA_MEM;
+ ALU_RESULT_WB = ALU_RESULT_MEM;
+ RD_WB = RD_MEM;
+ end
+ end
+endmodule
diff --git a/sources_1/new/RISC_V_FINAL.v b/sources_1/new/RISC_V_FINAL.v
new file mode 100644
index 0000000..8831c78
--- /dev/null
+++ b/sources_1/new/RISC_V_FINAL.v
@@ -0,0 +1,215 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 01/03/2021 02:45:33 PM
+// Design Name:
+// Module Name: RISC_V_FINAL
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+module RISC_V_FINAL(
+ input clk,
+ input reset,
+
+ output [31:0] PC_EX,
+ output [31:0] ALU_OUT_EX,
+ output [31:0] PC_MEM,
+ output PCSrc,
+ output [31:0] DATA_MEMORY_MEM,
+ output [31:0] ALU_DATA_WB,
+ output [1:0] forwardA, forwardB,
+ output pipeline_stall
+ );
+
+ wire IF_ID_write;
+ wire PC_write;
+
+ wire [31:0] PC_ID;
+ wire [31:0] INSTRUCTION_ID;
+ wire [31:0] IMM_ID;
+ wire [31:0] REG_DATA1_ID;
+ wire [31:0] REG_DATA2_ID;
+ wire [2:0] FUNCT3_ID;
+ wire [6:0] FUNCT7_ID;
+ wire [6:0] OPCODE_ID;
+ wire [4:0] RD_ID;
+ wire [4:0] RS1_ID;
+ wire [4:0] RS2_ID;
+
+ wire RegWrite_ID;
+ wire MemtoReg_ID;
+ wire MemRead_ID;
+ wire MemWrite_ID;
+ wire [1:0] ALUop_ID;
+ wire ALUSrc_ID;
+ wire Branch_ID;
+
+ wire [31:0] IMM_EX;
+ wire [31:0] REG_DATA1_EX;
+ wire [31:0] REG_DATA2_EX;
+ wire [2:0] FUNCT3_EX;
+ wire [6:0] FUNCT7_EX;
+ wire [6:0] OPCODE_EX;
+ wire [4:0] RD_EX;
+ wire [4:0] RS1_EX;
+ wire [4:0] RS2_EX;
+
+ wire RegWrite_EX;
+ wire MemtoReg_EX;
+ wire MemRead_EX;
+ wire MemWrite_EX;
+ wire [1:0] ALUop_EX;
+ wire ALUSrc_EX;
+ wire Branch_EX;
+
+ wire ZERO_EX;
+ wire [31:0] PC_Branch_EX;
+ wire [31:0] REG_DATA2_EX_FINAL;
+
+ wire [4:0] RD_MEM;
+ wire RegWrite_MEM;
+ wire MemtoReg_MEM;
+ wire MemRead_MEM;
+ wire MemWrite_MEM;
+ wire Branch_MEM;
+
+ wire ZERO_MEM;
+ wire [31:0] ALU_OUT_MEM;
+ wire [31:0] PC_Branch_MEM;
+ wire [31:0] REG_DATA2_MEM_FINAL;
+
+ wire [4:0] RD_WB;
+ wire RegWrite_WB;
+ wire MemtoReg_WB;
+ wire [31:0] ALU_OUT_WB;
+ wire [31:0] DATA_MEMORY_WB;
+
+ RISC_V_IF_ID if_id(
+ clk, reset, pipeline_stall,
+ IF_ID_write, PCSrc, PC_write,
+ PC_MEM, RegWrite_WB, ALU_DATA_WB, RD_WB,
+
+ PC_ID, INSTRUCTION_ID, IMM_ID,
+ REG_DATA1_ID, REG_DATA2_ID,
+
+ FUNCT3_ID, FUNCT7_ID, OPCODE_ID,
+ RD_ID, RS1_ID, RS2_ID,
+
+ RegWrite_ID,
+ MemtoReg_ID,
+ MemRead_ID,
+ MemWrite_ID,
+ ALUop_ID,
+ ALUSrc_ID,
+ Branch_ID
+ );
+
+ hazard_detection hazard(RD_EX, RS1_ID, RS2_ID, MemRead_EX, PC_write, IF_ID_write, pipeline_stall);
+
+ ID_EX_REG id_ex_reg(
+ PC_EX, IMM_EX, REG_DATA1_EX,
+ REG_DATA2_EX, FUNCT3_EX, FUNCT7_EX,
+ OPCODE_EX, RD_EX, RS1_EX, RS2_EX,
+
+ RegWrite_EX, MemtoReg_EX,
+ MemRead_EX, MemWrite_EX, ALUop_EX,
+ ALUSrc_EX, Branch_EX,
+
+ PC_ID, IMM_ID, REG_DATA1_ID,
+ REG_DATA2_ID, FUNCT3_ID, FUNCT7_ID,
+ OPCODE_ID, RD_ID, RS1_ID, RS2_ID,
+
+ RegWrite_ID, MemtoReg_ID,
+ MemRead_ID, MemWrite_ID, ALUop_ID,
+ ALUSrc_ID, Branch_ID,
+
+ clk, reset
+ );
+
+ forwarding forward(
+ RS1_EX,
+ RS2_EX,
+ RD_MEM,
+ RD_WB,
+ RegWrite_MEM,
+ RegWrite_WB,
+ forwardA, forwardB
+ );
+
+ EX ex(
+ IMM_EX, REG_DATA1_EX, REG_DATA2_EX,
+ PC_EX, FUNCT3_EX, FUNCT7_EX,
+ RD_EX, RS1_EX, RS2_EX,
+
+ RegWrite_EX, MemtoReg_EX, MemRead_EX,
+ MemWrite_EX, ALUop_EX, ALUSrc_EX,
+ Branch_EX,
+
+ forwardA, forwardB,
+
+ ALU_DATA_WB,
+ ALU_OUT_MEM,
+
+ ZERO_EX,
+ ALU_OUT_EX,
+ PC_Branch_EX,
+ REG_DATA2_EX_FINAL
+ );
+
+ EX_MEM_REG ex_mem_reg(
+ RD_MEM, RegWrite_MEM, MemtoReg_MEM,
+ MemRead_MEM, MemWrite_MEM, Branch_MEM,
+
+ ZERO_MEM, ALU_OUT_MEM, PC_Branch_MEM,
+ REG_DATA2_MEM_FINAL,
+
+ RD_EX, RegWrite_EX, MemtoReg_EX,
+ MemRead_EX, MemWrite_EX, Branch_EX,
+
+ ZERO_EX, ALU_OUT_EX, PC_Branch_EX,
+ REG_DATA2_EX_FINAL,
+
+ clk, reset
+ );
+
+ MEM mem(clk,
+ RD_MEM, RegWrite_MEM, MemtoReg_MEM,
+ MemRead_MEM, MemWrite_MEM, Branch_MEM,
+
+ ZERO_MEM, ALU_OUT_MEM, PC_Branch_MEM,
+ REG_DATA2_MEM_FINAL,
+
+ PCSrc, PC_MEM,
+
+ DATA_MEMORY_MEM
+ );
+
+ MEM_WB_REG mem_wb_reg(
+ MemtoReg_WB, RegWrite_WB, DATA_MEMORY_WB,
+ ALU_OUT_WB, RD_WB,
+
+ MemtoReg_MEM, RegWrite_MEM, DATA_MEMORY_MEM,
+ ALU_OUT_MEM, RD_MEM,
+
+ clk, reset
+ );
+
+ WB wb(
+ MemtoReg_WB, DATA_MEMORY_WB,
+ ALU_OUT_WB,
+
+ ALU_DATA_WB
+ );
+endmodule
diff --git a/sources_1/new/WB.v b/sources_1/new/WB.v
new file mode 100644
index 0000000..58eef70
--- /dev/null
+++ b/sources_1/new/WB.v
@@ -0,0 +1,11 @@
+module WB(
+ input MemtoReg_WB,
+ input [31:0] READ_DATA_WB,
+ input [31:0] ALU_RESULT_WB,
+
+ output [31:0] ALU_DATA_WB
+);
+
+ mux2_1 mux0(ALU_RESULT_WB, READ_DATA_WB, MemtoReg_WB, ALU_DATA_WB);
+
+endmodule
diff --git a/RISC_V.srcs/sources_1/new/adder.v b/sources_1/new/adder.v
similarity index 74%
rename from RISC_V.srcs/sources_1/new/adder.v
rename to sources_1/new/adder.v
index feccb26..1dc51e9 100644
--- a/RISC_V.srcs/sources_1/new/adder.v
+++ b/sources_1/new/adder.v
@@ -3,7 +3,7 @@
// Company:
// Engineer:
//
-// Create Date: 11/02/2020 01:47:57 PM
+// Create Date: 12/14/2020 02:13:52 PM
// Design Name:
// Module Name: adder
// Project Name:
@@ -20,9 +20,6 @@
//////////////////////////////////////////////////////////////////////////////////
-module adder(input [31:0] ina, inb,
- output [31:0] out);
-
- assign out = ina + inb;
-
+module adder(input [31:0] ina, input [31:0] inb, output reg [31:0] out);
+ always @(ina or inb) out = ina + inb;
endmodule
diff --git a/sources_1/new/data_memory.v b/sources_1/new/data_memory.v
new file mode 100644
index 0000000..e75767f
--- /dev/null
+++ b/sources_1/new/data_memory.v
@@ -0,0 +1,49 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/14/2020 02:30:26 PM
+// Design Name:
+// Module Name: data_memory
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module data_memory(input clk,
+ input mem_read,
+ input mem_write,
+ input [31:0] address,
+ input [31:0] write_data,
+ output reg [31:0] read_data
+ );
+
+ reg [31:0] RAM [0:1023];
+ integer i;
+
+ initial begin
+ for (i = 0; i < 1024; i = i + 1)
+ RAM[i] = i;
+ end
+
+ always @(posedge clk) begin
+ if (mem_write)
+ RAM[address] <= write_data;
+ end
+
+ always @* begin
+ if (mem_read)
+ read_data <= RAM[address];
+ end
+
+endmodule
diff --git a/sources_1/new/forwarding.v b/sources_1/new/forwarding.v
new file mode 100644
index 0000000..c0141db
--- /dev/null
+++ b/sources_1/new/forwarding.v
@@ -0,0 +1,46 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/14/2020 03:02:08 PM
+// Design Name:
+// Module Name: forwarding
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module forwarding(input [4:0] rs1,
+ input [4:0] rs2,
+ input [4:0] ex_mem_rd,
+ input [4:0] mem_wb_rd,
+ input ex_mem_regwrite,
+ input mem_wb_regwrite,
+ output reg [1:0] forwardA,forwardB);
+
+ always @(rs1 or rs2 or ex_mem_rd or mem_wb_rd or ex_mem_regwrite or mem_wb_regwrite) begin
+ forwardA <= 2'b00;
+ forwardB <= 2'b00;
+
+ if (ex_mem_regwrite && ex_mem_rd != 0 && ex_mem_rd == rs1)
+ forwardA <= 2'b10;
+ if (ex_mem_regwrite && ex_mem_rd != 0 && ex_mem_rd == rs2)
+ forwardB <= 2'b10;
+
+ if (mem_wb_regwrite && mem_wb_rd != 0 && !(ex_mem_regwrite && ex_mem_rd != 0 && ex_mem_rd == rs1) && mem_wb_rd == rs1)
+ forwardA <= 2'b01;
+ if (mem_wb_regwrite && mem_wb_rd != 0 && !(ex_mem_regwrite && ex_mem_rd != 0 && ex_mem_rd == rs2) && mem_wb_rd == rs2)
+ forwardB <= 2'b01;
+ end
+
+endmodule
diff --git a/sources_1/new/hazard_detection.v b/sources_1/new/hazard_detection.v
new file mode 100644
index 0000000..3890eb0
--- /dev/null
+++ b/sources_1/new/hazard_detection.v
@@ -0,0 +1,38 @@
+`timescale 1ns / 1ps
+//////////////////////////////////////////////////////////////////////////////////
+// Company:
+// Engineer:
+//
+// Create Date: 12/14/2020 02:40:31 PM
+// Design Name:
+// Module Name: hazard_detection
+// Project Name:
+// Target Devices:
+// Tool Versions:
+// Description:
+//
+// Dependencies:
+//
+// Revision:
+// Revision 0.01 - File Created
+// Additional Comments:
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+module hazard_detection(input [4:0] rd,
+ input [4:0] rs1,
+ input [4:0] rs2,
+ input MemRead,
+ output reg PCwrite,
+ output reg IF_IDwrite,
+ output reg control_sel);
+
+ always @(rd or rs1 or rs2 or MemRead) begin
+ if (MemRead && (rd == rs1 || rd == rs2))
+ {PCwrite, IF_IDwrite, control_sel} <= 3'b001;
+ else
+ {PCwrite, IF_IDwrite, control_sel} <= 3'b110;
+ end
+
+endmodule
diff --git a/RISC_V.srcs/sources_1/new/mux2_1.v b/sources_1/new/mux2_1.v
similarity index 79%
rename from RISC_V.srcs/sources_1/new/mux2_1.v
rename to sources_1/new/mux2_1.v
index df144f3..9e7ed93 100644
--- a/RISC_V.srcs/sources_1/new/mux2_1.v
+++ b/sources_1/new/mux2_1.v
@@ -3,7 +3,7 @@
// Company:
// Engineer:
//
-// Create Date: 11/02/2020 12:32:59 PM
+// Create Date: 12/14/2020 02:24:05 PM
// Design Name:
// Module Name: mux2_1
// Project Name:
@@ -21,11 +21,9 @@
module mux2_1(
- input [31:0] ina,
- input [31:0] inb,
+ input [31:0] a, b,
input sel,
output [31:0] out
- );
-
- assign out = sel ? inb : ina;
+);
+ assign out = (sel) ? b : a;
endmodule
diff --git a/RISC_V.srcs/sources_1/new/instruction_memory.v b/sources_1/new/mux4_1.v
similarity index 51%
rename from RISC_V.srcs/sources_1/new/instruction_memory.v
rename to sources_1/new/mux4_1.v
index ba0cf97..11691a9 100644
--- a/RISC_V.srcs/sources_1/new/instruction_memory.v
+++ b/sources_1/new/mux4_1.v
@@ -3,9 +3,9 @@
// Company:
// Engineer:
//
-// Create Date: 11/02/2020 12:42:24 PM
+// Create Date: 12/07/2020 01:25:06 PM
// Design Name:
-// Module Name: instruction_memory
+// Module Name: mux4_1
// Project Name:
// Target Devices:
// Tool Versions:
@@ -20,14 +20,17 @@
//////////////////////////////////////////////////////////////////////////////////
-module instruction_memory(input [9:0] address,
- output reg [31:0] instruction);
-
- reg [31:0] memory[0:6];
-
- initial $readmemh("code.mem", memory);
-
- always @(address)
- instruction <= memory[address];
-
+module mux4_1(input [31:0] a, b, c, d,
+ input [1:0] sel,
+ output reg [31:0] out);
+
+ always @(a or b or c or d or sel) begin
+ case (sel)
+ 2'b00: out <= a;
+ 2'b01: out <= b;
+ 2'b10: out <= c;
+ 2'b11: out <= d;
+ endcase
+ end
+
endmodule