Add files to get ready for submission.
diff --git a/gds/decred_hash_macro.gds.gz b/gds/decred_hash_macro.gds.gz
new file mode 100644
index 0000000..13e29f9
--- /dev/null
+++ b/gds/decred_hash_macro.gds.gz
Binary files differ
diff --git a/gds/decred_top.gds.gz b/gds/decred_top.gds.gz
new file mode 100644
index 0000000..0b172a2
--- /dev/null
+++ b/gds/decred_top.gds.gz
Binary files differ
diff --git a/lef/decred_hash_macro.lef b/lef/decred_hash_macro.lef
new file mode 100644
index 0000000..0718252
--- /dev/null
+++ b/lef/decred_hash_macro.lef
@@ -0,0 +1,305 @@
+VERSION 5.7 ;
+ NOWIREEXTENSIONATPIN ON ;
+ DIVIDERCHAR "/" ;
+ BUSBITCHARS "[]" ;
+MACRO decred_hash_macro
+ CLASS BLOCK ;
+ FOREIGN decred_hash_macro ;
+ ORIGIN 0.000 0.000 ;
+ SIZE 1200.000 BY 1000.000 ;
+ PIN CLK
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 655.130 996.000 655.410 1000.000 ;
+ END
+ END CLK
+ PIN DATA_AVAILABLE
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 724.130 0.000 724.410 4.000 ;
+ END
+ END DATA_AVAILABLE
+ PIN DATA_FROM_HASH[0]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 122.450 0.000 122.730 4.000 ;
+ END
+ END DATA_FROM_HASH[0]
+ PIN DATA_FROM_HASH[1]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 2.850 0.000 3.130 4.000 ;
+ END
+ END DATA_FROM_HASH[1]
+ PIN DATA_FROM_HASH[2]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 896.170 996.000 896.450 1000.000 ;
+ END
+ END DATA_FROM_HASH[2]
+ PIN DATA_FROM_HASH[3]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 1084.770 0.000 1085.050 4.000 ;
+ END
+ END DATA_FROM_HASH[3]
+ PIN DATA_FROM_HASH[4]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 194.520 1200.000 195.120 ;
+ END
+ END DATA_FROM_HASH[4]
+ PIN DATA_FROM_HASH[5]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 363.490 0.000 363.770 4.000 ;
+ END
+ END DATA_FROM_HASH[5]
+ PIN DATA_FROM_HASH[6]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 173.970 996.000 174.250 1000.000 ;
+ END
+ END DATA_FROM_HASH[6]
+ PIN DATA_FROM_HASH[7]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 715.400 4.000 716.000 ;
+ END
+ END DATA_FROM_HASH[7]
+ PIN DATA_TO_HASH[0]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 414.090 996.000 414.370 1000.000 ;
+ END
+ END DATA_TO_HASH[0]
+ PIN DATA_TO_HASH[1]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 359.080 4.000 359.680 ;
+ END
+ END DATA_TO_HASH[1]
+ PIN DATA_TO_HASH[2]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 372.680 1200.000 373.280 ;
+ END
+ END DATA_TO_HASH[2]
+ PIN DATA_TO_HASH[3]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 16.360 1200.000 16.960 ;
+ END
+ END DATA_TO_HASH[3]
+ PIN DATA_TO_HASH[4]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 892.200 4.000 892.800 ;
+ END
+ END DATA_TO_HASH[4]
+ PIN DATA_TO_HASH[5]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 242.970 0.000 243.250 4.000 ;
+ END
+ END DATA_TO_HASH[5]
+ PIN DATA_TO_HASH[6]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 1015.770 996.000 1016.050 1000.000 ;
+ END
+ END DATA_TO_HASH[6]
+ PIN DATA_TO_HASH[7]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 294.490 996.000 294.770 1000.000 ;
+ END
+ END DATA_TO_HASH[7]
+ PIN HASH_ADDR[0]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 775.650 996.000 775.930 1000.000 ;
+ END
+ END HASH_ADDR[0]
+ PIN HASH_ADDR[1]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 53.450 996.000 53.730 1000.000 ;
+ END
+ END HASH_ADDR[1]
+ PIN HASH_ADDR[2]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 1136.290 996.000 1136.570 1000.000 ;
+ END
+ END HASH_ADDR[2]
+ PIN HASH_ADDR[3]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 965.170 0.000 965.450 4.000 ;
+ END
+ END HASH_ADDR[3]
+ PIN HASH_ADDR[4]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 180.920 4.000 181.520 ;
+ END
+ END HASH_ADDR[4]
+ PIN HASH_ADDR[5]
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 905.800 1200.000 906.400 ;
+ END
+ END HASH_ADDR[5]
+ PIN HASH_EN
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 484.010 0.000 484.290 4.000 ;
+ END
+ END HASH_EN
+ PIN MACRO_RD_SELECT
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 603.610 0.000 603.890 4.000 ;
+ END
+ END MACRO_RD_SELECT
+ PIN MACRO_WR_SELECT
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 550.840 1200.000 551.440 ;
+ END
+ END MACRO_WR_SELECT
+ PIN THREAD_COUNT[0]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 1196.000 727.640 1200.000 728.240 ;
+ END
+ END THREAD_COUNT[0]
+ PIN THREAD_COUNT[1]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 537.240 4.000 537.840 ;
+ END
+ END THREAD_COUNT[1]
+ PIN THREAD_COUNT[2]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 534.610 996.000 534.890 1000.000 ;
+ END
+ END THREAD_COUNT[2]
+ PIN THREAD_COUNT[3]
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 844.650 0.000 844.930 4.000 ;
+ END
+ END THREAD_COUNT[3]
+ PIN VPWR
+ DIRECTION INPUT ;
+ USE POWER ;
+ PORT
+ LAYER met4 ;
+ RECT 21.040 10.640 22.640 987.600 ;
+ END
+ END VPWR
+ PIN VGND
+ DIRECTION INPUT ;
+ USE GROUND ;
+ PORT
+ LAYER met4 ;
+ RECT 97.840 10.640 99.440 987.600 ;
+ END
+ END VGND
+ OBS
+ LAYER li1 ;
+ RECT 5.520 10.795 1194.160 987.445 ;
+ LAYER met1 ;
+ RECT 3.750 8.540 1194.160 987.600 ;
+ LAYER met2 ;
+ RECT 1.930 995.720 53.170 996.000 ;
+ RECT 54.010 995.720 173.690 996.000 ;
+ RECT 174.530 995.720 294.210 996.000 ;
+ RECT 295.050 995.720 413.810 996.000 ;
+ RECT 414.650 995.720 534.330 996.000 ;
+ RECT 535.170 995.720 654.850 996.000 ;
+ RECT 655.690 995.720 775.370 996.000 ;
+ RECT 776.210 995.720 895.890 996.000 ;
+ RECT 896.730 995.720 1015.490 996.000 ;
+ RECT 1016.330 995.720 1136.010 996.000 ;
+ RECT 1136.850 995.720 1191.300 996.000 ;
+ RECT 1.930 4.280 1191.300 995.720 ;
+ RECT 1.930 4.000 2.570 4.280 ;
+ RECT 3.410 4.000 122.170 4.280 ;
+ RECT 123.010 4.000 242.690 4.280 ;
+ RECT 243.530 4.000 363.210 4.280 ;
+ RECT 364.050 4.000 483.730 4.280 ;
+ RECT 484.570 4.000 603.330 4.280 ;
+ RECT 604.170 4.000 723.850 4.280 ;
+ RECT 724.690 4.000 844.370 4.280 ;
+ RECT 845.210 4.000 964.890 4.280 ;
+ RECT 965.730 4.000 1084.490 4.280 ;
+ RECT 1085.330 4.000 1191.300 4.280 ;
+ LAYER met3 ;
+ RECT 0.270 906.800 1196.000 987.525 ;
+ RECT 0.270 905.400 1195.600 906.800 ;
+ RECT 0.270 893.200 1196.000 905.400 ;
+ RECT 4.400 891.800 1196.000 893.200 ;
+ RECT 0.270 728.640 1196.000 891.800 ;
+ RECT 0.270 727.240 1195.600 728.640 ;
+ RECT 0.270 716.400 1196.000 727.240 ;
+ RECT 4.400 715.000 1196.000 716.400 ;
+ RECT 0.270 551.840 1196.000 715.000 ;
+ RECT 0.270 550.440 1195.600 551.840 ;
+ RECT 0.270 538.240 1196.000 550.440 ;
+ RECT 4.400 536.840 1196.000 538.240 ;
+ RECT 0.270 373.680 1196.000 536.840 ;
+ RECT 0.270 372.280 1195.600 373.680 ;
+ RECT 0.270 360.080 1196.000 372.280 ;
+ RECT 4.400 358.680 1196.000 360.080 ;
+ RECT 0.270 195.520 1196.000 358.680 ;
+ RECT 0.270 194.120 1195.600 195.520 ;
+ RECT 0.270 181.920 1196.000 194.120 ;
+ RECT 4.400 180.520 1196.000 181.920 ;
+ RECT 0.270 17.360 1196.000 180.520 ;
+ RECT 0.270 15.960 1195.600 17.360 ;
+ RECT 0.270 10.715 1196.000 15.960 ;
+ LAYER met4 ;
+ RECT 0.295 10.640 20.640 987.600 ;
+ RECT 23.040 10.640 97.440 987.600 ;
+ RECT 99.840 10.640 1175.465 987.600 ;
+ LAYER met5 ;
+ RECT 326.260 538.100 339.820 539.700 ;
+ END
+END decred_hash_macro
+END LIBRARY
+
diff --git a/lef/decred_top.lef b/lef/decred_top.lef
new file mode 100644
index 0000000..deb284a
--- /dev/null
+++ b/lef/decred_top.lef
@@ -0,0 +1,229 @@
+VERSION 5.7 ;
+ NOWIREEXTENSIONATPIN ON ;
+ DIVIDERCHAR "/" ;
+ BUSBITCHARS "[]" ;
+MACRO decred_top
+ CLASS BLOCK ;
+ FOREIGN decred_top ;
+ ORIGIN 0.000 0.000 ;
+ SIZE 2800.000 BY 3400.000 ;
+ PIN CLK_LED
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 1370.920 4.000 1371.520 ;
+ END
+ END CLK_LED
+ PIN EXT_RESET_N_fromHost
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 2778.490 0.000 2778.770 4.000 ;
+ END
+ END EXT_RESET_N_fromHost
+ PIN EXT_RESET_N_toClient
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 464.690 0.000 464.970 4.000 ;
+ END
+ END EXT_RESET_N_toClient
+ PIN HASH_LED
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 2.850 0.000 3.130 4.000 ;
+ END
+ END HASH_LED
+ PIN ID_fromClient
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 2739.080 4.000 2739.680 ;
+ END
+ END ID_fromClient
+ PIN ID_toHost
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 2796.000 2027.800 2800.000 2028.400 ;
+ END
+ END ID_toHost
+ PIN IRQ_OUT_fromClient
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 2796.890 3396.000 2797.170 3400.000 ;
+ END
+ END IRQ_OUT_fromClient
+ PIN IRQ_OUT_toHost
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 1390.210 0.000 1390.490 4.000 ;
+ END
+ END IRQ_OUT_toHost
+ PIN M1_CLK_IN
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 1852.970 0.000 1853.250 4.000 ;
+ END
+ END M1_CLK_IN
+ PIN M1_CLK_SELECT
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 1409.530 3396.000 1409.810 3400.000 ;
+ END
+ END M1_CLK_SELECT
+ PIN MISO_fromClient
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 2796.000 659.640 2800.000 660.240 ;
+ END
+ END MISO_fromClient
+ PIN MISO_toHost
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 686.840 4.000 687.440 ;
+ END
+ END MISO_toHost
+ PIN MOSI_fromHost
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 2335.050 3396.000 2335.330 3400.000 ;
+ END
+ END MOSI_fromHost
+ PIN MOSI_toClient
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 2796.000 2711.880 2800.000 2712.480 ;
+ END
+ END MOSI_toClient
+ PIN PLL_INPUT
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 1872.290 3396.000 1872.570 3400.000 ;
+ END
+ END PLL_INPUT
+ PIN S1_CLK_IN
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 927.450 0.000 927.730 4.000 ;
+ END
+ END S1_CLK_IN
+ PIN S1_CLK_SELECT
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 21.250 3396.000 21.530 3400.000 ;
+ END
+ END S1_CLK_SELECT
+ PIN SCLK_fromHost
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 946.770 3396.000 947.050 3400.000 ;
+ END
+ END SCLK_fromHost
+ PIN SCLK_toClient
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met3 ;
+ RECT 0.000 2055.000 4.000 2055.600 ;
+ END
+ END SCLK_toClient
+ PIN SCSN_fromHost
+ DIRECTION INPUT ;
+ PORT
+ LAYER met2 ;
+ RECT 2315.730 0.000 2316.010 4.000 ;
+ END
+ END SCSN_fromHost
+ PIN SCSN_toClient
+ DIRECTION OUTPUT TRISTATE ;
+ PORT
+ LAYER met2 ;
+ RECT 484.010 3396.000 484.290 3400.000 ;
+ END
+ END SCSN_toClient
+ PIN SPI_CLK_RESET_N
+ DIRECTION INPUT ;
+ PORT
+ LAYER met3 ;
+ RECT 2796.000 1343.720 2800.000 1344.320 ;
+ END
+ END SPI_CLK_RESET_N
+ PIN VPWR
+ DIRECTION INPUT ;
+ USE POWER ;
+ PORT
+ LAYER met4 ;
+ RECT 328.240 10.640 329.840 36.240 ;
+ END
+ END VPWR
+ PIN VGND
+ DIRECTION INPUT ;
+ USE GROUND ;
+ PORT
+ LAYER met4 ;
+ RECT 405.040 10.640 406.640 36.240 ;
+ END
+ END VGND
+ OBS
+ LAYER li1 ;
+ RECT 5.520 10.795 2794.040 3389.205 ;
+ LAYER met1 ;
+ RECT 2.830 10.640 2797.190 3389.360 ;
+ LAYER met2 ;
+ RECT 2.860 3395.720 20.970 3396.000 ;
+ RECT 21.810 3395.720 483.730 3396.000 ;
+ RECT 484.570 3395.720 946.490 3396.000 ;
+ RECT 947.330 3395.720 1409.250 3396.000 ;
+ RECT 1410.090 3395.720 1872.010 3396.000 ;
+ RECT 1872.850 3395.720 2334.770 3396.000 ;
+ RECT 2335.610 3395.720 2796.610 3396.000 ;
+ RECT 2.860 4.280 2797.160 3395.720 ;
+ RECT 3.410 4.000 464.410 4.280 ;
+ RECT 465.250 4.000 927.170 4.280 ;
+ RECT 928.010 4.000 1389.930 4.280 ;
+ RECT 1390.770 4.000 1852.690 4.280 ;
+ RECT 1853.530 4.000 2315.450 4.280 ;
+ RECT 2316.290 4.000 2778.210 4.280 ;
+ RECT 2779.050 4.000 2797.160 4.280 ;
+ LAYER met3 ;
+ RECT 4.000 2740.080 2796.000 3389.285 ;
+ RECT 4.400 2738.680 2796.000 2740.080 ;
+ RECT 4.000 2712.880 2796.000 2738.680 ;
+ RECT 4.000 2711.480 2795.600 2712.880 ;
+ RECT 4.000 2056.000 2796.000 2711.480 ;
+ RECT 4.400 2054.600 2796.000 2056.000 ;
+ RECT 4.000 2028.800 2796.000 2054.600 ;
+ RECT 4.000 2027.400 2795.600 2028.800 ;
+ RECT 4.000 1371.920 2796.000 2027.400 ;
+ RECT 4.400 1370.520 2796.000 1371.920 ;
+ RECT 4.000 1344.720 2796.000 1370.520 ;
+ RECT 4.000 1343.320 2795.600 1344.720 ;
+ RECT 4.000 687.840 2796.000 1343.320 ;
+ RECT 4.400 686.440 2796.000 687.840 ;
+ RECT 4.000 660.640 2796.000 686.440 ;
+ RECT 4.000 659.240 2795.600 660.640 ;
+ RECT 4.000 10.715 2796.000 659.240 ;
+ LAYER met4 ;
+ RECT 21.040 36.640 2787.440 3389.360 ;
+ RECT 21.040 10.640 327.840 36.640 ;
+ RECT 330.240 10.640 404.640 36.640 ;
+ RECT 407.040 10.640 2787.440 36.640 ;
+ LAYER met5 ;
+ RECT 1132.180 506.300 1145.740 507.900 ;
+ END
+END decred_top
+END LIBRARY
+
diff --git a/openlane/decred_hash_macro/interactive.tcl b/openlane/decred_hash_macro/interactive.tcl
index f5dde0e..d8323f3 100755
--- a/openlane/decred_hash_macro/interactive.tcl
+++ b/openlane/decred_hash_macro/interactive.tcl
@@ -41,6 +41,7 @@
parse_key_args "run_flow" args arg_values $options flags_map $flags -no_consume
prep -design $script_dir -tag decred_hash_macro -overwrite
+ set save_path $script_dir/../..
run_synthesis
run_floorplan
diff --git a/openlane/decred_top/config.tcl b/openlane/decred_top/config.tcl
index f6f7ce5..d36625c 100755
--- a/openlane/decred_top/config.tcl
+++ b/openlane/decred_top/config.tcl
@@ -21,12 +21,12 @@
$script_dir/../../verilog/rtl/decred_top/rtl/src/decred_hash_macro.v"
set ::env(EXTRA_LEFS) "\
- $script_dir/../decred_hash_macro/runs/decred_hash_macro/results/magic/decred_hash_macro.lef \
- $script_dir/../decred_controller/runs/decred_controller/results/magic/decred_controller.lef"
+ $script_dir/../../lef/decred_hash_macro.lef \
+ $script_dir/../../lef/decred_controller.lef"
set ::env(EXTRA_GDS_FILES) "\
- $script_dir/../decred_hash_macro/runs/decred_hash_macro/results/magic/decred_hash_macro.gds \
- $script_dir/../decred_controller/runs/decred_controller/results/magic/decred_controller.gds"
+ $script_dir/../../gds/decred_hash_macro.gds \
+ $script_dir/../../gds/decred_controller.gds"
#set ::env(BASE_SDC_FILE) "$script_dir/decred_top.sdc"
set ::env(MACRO_PLACEMENT_CFG) "$script_dir/macro_placement.cfg"
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index e4f3b7e..29d01c0 100644
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -39,11 +39,11 @@
$script_dir/../../verilog/rtl/decred_top/rtl/src/*.v"
set ::env(EXTRA_LEFS) "\
- $script_dir/../decred_top/runs/decred_top/results/magic/decred_top.lef \
- $script_dir/../decred_hash_macro/runs/decred_hash_macro/results/magic/decred_hash_macro.lef \
- $script_dir/../decred_controller/runs/decred_controller/results/magic/decred_controller.lef"
+ $script_dir/../../lef/decred_top.lef \
+ $script_dir/../../lef/decred_hash_macro.lef \
+ $script_dir/../../lef/decred_controller.lef"
set ::env(EXTRA_GDS_FILES) "\
- $script_dir/../decred_top/runs/decred_top/results/magic/decred_top.gds \
- $script_dir/../decred_hash_macro/runs/decred_hash_macro/results/magic/decred_hash_macro.gds \
- $script_dir/../decred_controller/runs/decred_controller/results/magic/decred_controller.gds"
+ $script_dir/../../gds/decred_top.gds \
+ $script_dir/../../gds/decred_hash_macro.gds \
+ $script_dir/../../gds/decred_controller.gds"