From 23ac6af11ff2de2ecde6fd1339597106823347ec Mon Sep 17 00:00:00 2001 From: tangxifan Date: Sun, 1 Nov 2020 15:45:41 -0700 Subject: [PATCH 01/14] [Arch] Bug fix on the wrong verilog netlist path --- ...scan_chain_skywater130nm_fdhd_cc_openfpga.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index ae31d83..806c518 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -31,7 +31,7 @@ - + @@ -43,7 +43,7 @@ 10e-12 - + @@ -55,7 +55,7 @@ 10e-12 - + @@ -67,7 +67,7 @@ 10e-12 - + @@ -79,7 +79,7 @@ 10e-12 - + @@ -101,7 +101,7 @@ If your standard cell provider does not offer the exact truth table, you can simply swap the inputs as shown in the example below --> - + @@ -148,7 +148,7 @@ - + @@ -174,7 +174,7 @@ - + From bff4fdfdc125e422552328551d63c7ac6c829331 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Mon, 2 Nov 2020 11:27:44 -0700 Subject: [PATCH 02/14] [Arch] Update pin equivalence for the non-LR non-adder k4 arch --- ...n_chain_skywater130nm_fdhd_cc_openfpga.xml | 2 +- ...egister_scan_chain_nonLR_skywater130nm.xml | 126 ++++++++++++------ 2 files changed, 83 insertions(+), 45 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index 806c518..e4b1313 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -174,7 +174,7 @@ - + diff --git a/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_skywater130nm.xml b/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_skywater130nm.xml index 5d865fd..1d28d35 100644 --- a/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_skywater130nm.xml +++ b/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_skywater130nm.xml @@ -78,14 +78,22 @@ - - - - - - - - + + + + + + + + + + + + + + + + @@ -102,8 +110,8 @@ clb.clk clb.regin clb.scin - clb.O[7:0] clb.I0 clb.I1 clb.I2 clb.I3 - clb.regout clb.scout clb.O[15:8] clb.I4 clb.I5 clb.I6 clb.I7 + clb.O[7:0] clb.I0 clb.I0i clb.I1 clb.I1i clb.I2 clb.I2i clb.I3 clb.I3i + clb.regout clb.scout clb.O[15:8] clb.I4 clb.I4i clb.I5 clb.I5i clb.I6 clb.I6i clb.I7 clb.I7i @@ -276,24 +284,28 @@ - + - - - - - - - - + + + + + + + + + + + + + + + + @@ -534,30 +546,56 @@ - - + + + - + + - + + - + + - + + - + + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + From 3f10b49eebecdc820f4d06dd9a4944069fcbc1c9 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Mon, 2 Nov 2020 11:28:29 -0700 Subject: [PATCH 03/14] [PDK] Add standard cell wrapper --- PDK/sc_verilog/std_cell_extract.v | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 PDK/sc_verilog/std_cell_extract.v diff --git a/PDK/sc_verilog/std_cell_extract.v b/PDK/sc_verilog/std_cell_extract.v new file mode 100644 index 0000000..be56f7f --- /dev/null +++ b/PDK/sc_verilog/std_cell_extract.v @@ -0,0 +1,29 @@ +`timescale 1ns/1ps + +// +// +// +// +// +// + +// +// +// + +module GPIO (A, IE, OE, Y, in, out, mem_out); + output A; + output IE; + output OE; + output Y; + input in; + output out; + input mem_out; + + assign A = in; + assign out = Y; + assign IE = mem_out; + sky130_fd_sc_hd__inv_1 ie_oe_inv ( + .A (mem_out), + .Y (OE) ); +endmodule From c26f8a5aacabfbe2e923272fb2513e62a8904233 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Mon, 2 Nov 2020 19:55:40 -0700 Subject: [PATCH 04/14] [Arch] Add architecture files for embedded FPGA IP --- ...dded_io_skywater130nm_fdhd_cc_openfpga.xml | 250 +++++++ ..._chain_nonLR_embedded_io_skywater130nm.xml | 646 ++++++++++++++++++ 2 files changed, 896 insertions(+) create mode 100644 ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml create mode 100644 ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml new file mode 100644 index 0000000..0a43ff1 --- /dev/null +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10e-12 + + + 10e-12 + + + + + + + + + 10e-12 + + + 10e-12 + + + + + + + + + 10e-12 + + + 10e-12 + + + + + + + + + 10e-12 + + + 10e-12 + + + + + + + + + + + + 10e-12 5e-12 + + + 10e-12 5e-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml b/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml new file mode 100644 index 0000000..4a0f049 --- /dev/null +++ b/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gp_inpad.inpad + gp_inpad.inpad + gp_inpad.inpad + gp_inpad.inpad + + + + + + + + + + gp_outpad.outpad + gp_outpad.outpad + gp_outpad.outpad + gp_outpad.outpad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + clb.clk + clb.regin clb.scin + clb.O[7:0] clb.I0 clb.I0i clb.I1 clb.I1i clb.I2 clb.I2i clb.I3 clb.I3i + clb.regout clb.scout clb.O[15:8] clb.I4 clb.I4i clb.I5 clb.I5i clb.I6 clb.I6i clb.I7 clb.I7i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 1 + 1 + + + + 1 1 1 + 1 1 + + + + 1 1 1 1 1 + 1 1 1 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 235e-12 + 235e-12 + 235e-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 261e-12 + 261e-12 + 261e-12 + 261e-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 0958d9c50f505b9112d3bed05862330a7fe730e5 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Mon, 2 Nov 2020 20:09:35 -0700 Subject: [PATCH 05/14] [Script] Add openfpga task run for embedded architecture --- .../generate_fabric/config/task_template.conf | 37 +++++++++++++++++++ .../generate_sdc/config/task_template.conf | 36 ++++++++++++++++++ .../config/task_template.conf | 37 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_fabric/config/task_template.conf create mode 100644 SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_sdc/config/task_template.conf create mode 100644 SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_testbench/config/task_template.conf diff --git a/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_fabric/config/task_template.conf b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_fabric/config/task_template.conf new file mode 100644 index 0000000..b02676b --- /dev/null +++ b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_fabric/config/task_template.conf @@ -0,0 +1,37 @@ +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# Configuration file for running experiments +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs +# Each job execute fpga_flow script on combination of architecture & benchmark +# timeout_each_job is timeout for each job +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +[GENERAL] +run_engine=openfpga_shell +power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml +power_analysis = true +spice_output=false +verilog_output=true +timeout_each_job = 1*60 +fpga_flow=yosys_vpr + +[OpenFPGA_SHELL] +openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_fabric_example_script.openfpga +openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml +openfpga_vpr_device_layout=2x2 +openfpga_vpr_route_chan_width=40 +openfpga_verilog_output_dir=${SKYWATER_OPENFPGA_HOME}/HDL/k4_non_adder_embedded_io_FPGA_2x2_fdhd_cc +openfpga_sdc_output_dir=${SKYWATER_OPENFPGA_HOME}/SDC/k4_non_adder_embedded_io_FPGA_2x2_fdhd_cc + +[ARCHITECTURES] +arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml + +[BENCHMARKS] +bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v + +[SYNTHESIS_PARAM] +bench0_top = and2 + +[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH] +#end_flow_with_test= diff --git a/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_sdc/config/task_template.conf b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_sdc/config/task_template.conf new file mode 100644 index 0000000..9d1bbfa --- /dev/null +++ b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_sdc/config/task_template.conf @@ -0,0 +1,36 @@ +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# Configuration file for running experiments +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs +# Each job execute fpga_flow script on combination of architecture & benchmark +# timeout_each_job is timeout for each job +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +[GENERAL] +run_engine=openfpga_shell +power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml +power_analysis = true +spice_output=false +verilog_output=true +timeout_each_job = 1*60 +fpga_flow=yosys_vpr + +[OpenFPGA_SHELL] +openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_sdc_example_script.openfpga +openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml +openfpga_vpr_device_layout=2x2 +openfpga_vpr_route_chan_width=40 +openfpga_sdc_output_dir=${SKYWATER_OPENFPGA_HOME}/SDC/k4_non_adder_embedded_io_FPGA_2x2_fdhd_cc + +[ARCHITECTURES] +arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml + +[BENCHMARKS] +bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v + +[SYNTHESIS_PARAM] +bench0_top = and2 + +[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH] +#end_flow_with_test= diff --git a/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_testbench/config/task_template.conf b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_testbench/config/task_template.conf new file mode 100644 index 0000000..ecb57ea --- /dev/null +++ b/SCRIPT/skywater_openfpga_task/k4_non_adder_embedded_io_cc_fdhd_2x2/generate_testbench/config/task_template.conf @@ -0,0 +1,37 @@ +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# Configuration file for running experiments +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs +# Each job execute fpga_flow script on combination of architecture & benchmark +# timeout_each_job is timeout for each job +# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +[GENERAL] +run_engine=openfpga_shell +power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml +power_analysis = true +spice_output=false +verilog_output=true +timeout_each_job = 1*60 +fpga_flow=yosys_vpr + +[OpenFPGA_SHELL] +openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_testbench_example_script.openfpga +openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml +openfpga_vpr_device_layout=2x2 +openfpga_vpr_route_chan_width=40 +openfpga_verilog_output_dir=${SKYWATER_OPENFPGA_HOME}/TESTBENCH/k4_non_adder_embedded_io_FPGA_2x2_fdhd_cc +openfpga_fabric_verilog_netlist=${SKYWATER_OPENFPGA_HOME}/HDL/k4_non_adder_embedded_io_FPGA_2x2_fdhd_cc/SRC/fabric_netlists.v + +[ARCHITECTURES] +arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_embedded_io_skywater130nm.xml + +[BENCHMARKS] +bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v + +[SYNTHESIS_PARAM] +bench0_top = and2 + +[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH] +#end_flow_with_test= From b67896a225e1b11c2bcec72170dcfd4900be91b3 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:05:20 -0700 Subject: [PATCH 06/14] [HDL] Add embedded I/O HDL wrapper using the high density cells --- PDK/sc_verilog/std_cell_extract.v | 37 ++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/PDK/sc_verilog/std_cell_extract.v b/PDK/sc_verilog/std_cell_extract.v index be56f7f..5267d22 100644 --- a/PDK/sc_verilog/std_cell_extract.v +++ b/PDK/sc_verilog/std_cell_extract.v @@ -1,16 +1,5 @@ `timescale 1ns/1ps -// -// -// -// -// -// - -// -// -// - module GPIO (A, IE, OE, Y, in, out, mem_out); output A; output IE; @@ -27,3 +16,29 @@ module GPIO (A, IE, OE, Y, in, out, mem_out); .A (mem_out), .Y (OE) ); endmodule + +//----------------------------------------------------- +// Function : A minimum input pad +//----------------------------------------------------- +module GPIN ( + inout A, // External PAD signal + output Y // Data input +); + // Assume a 4x buf is enough to drive the global routing + sky130_fd_sc_hd__buf_4 in_buf ( + .A (A), + .X (Y) ); +endmodule + +//----------------------------------------------------- +// Function : A minimum output pad +//----------------------------------------------------- +module GPOUT ( + inout Y, // External PAD signal + input A // Data output +); + // Assume a 4x buf is enough to drive the block outside FPGA + sky130_fd_sc_hd__buf_4 in_buf ( + .A (A), + .X (Y) ); +endmodule From 40ca8dfbe32effe75cc63f5f774edbbe32d419d2 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:14:47 -0700 Subject: [PATCH 07/14] [Arch] Update architecture files to use the wrapper files --- ..._scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml | 4 ++-- ..._N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml index 0a43ff1..5810d79 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml @@ -183,14 +183,14 @@ - + - + diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index e4b1313..16707e5 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -184,7 +184,7 @@ - + From b5c781f555c700267dd67e38e649df654c4a0be3 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:17:22 -0700 Subject: [PATCH 08/14] [Arch] Patch the HDL netlist name to differetiate between cell types --- ..._scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml | 4 ++-- ..._N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml index 5810d79..9e99389 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml @@ -183,14 +183,14 @@ - + - + diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index 16707e5..9cd985a 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -184,7 +184,7 @@ - + From 12881d7a311d0da0e7594be2a41b34710cda40ad Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:19:43 -0700 Subject: [PATCH 09/14] [HDL] Move verilog wrapper to HDL directory --- PDK/sc_verilog/std_cell_extract.v => HDL/common/digital_io_hd.v | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename PDK/sc_verilog/std_cell_extract.v => HDL/common/digital_io_hd.v (100%) diff --git a/PDK/sc_verilog/std_cell_extract.v b/HDL/common/digital_io_hd.v similarity index 100% rename from PDK/sc_verilog/std_cell_extract.v rename to HDL/common/digital_io_hd.v From 8702073354c35fa4917f38630f377297a93a3290 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:23:33 -0700 Subject: [PATCH 10/14] [Doc] Add readme for HDL directory --- HDL/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 HDL/README.md diff --git a/HDL/README.md b/HDL/README.md new file mode 100644 index 0000000..3ec3d31 --- /dev/null +++ b/HDL/README.md @@ -0,0 +1,4 @@ +# Skywater PDK +This directory contains the HDL netlists for FPGA fabrics that are automatically generated by OpenFPGA. +It also includes necessary wrappers to enable the netlist generation. +The custom netlists are place in the `common` directory. From a46d1bd49248ca9b1f9eecb411dfc8045d2fdd2e Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:27:06 -0700 Subject: [PATCH 11/14] [Doc] Add README to SDC and Testbench directories --- SDC/README.md | 5 +++++ TESTBENCH/README.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 SDC/README.md create mode 100644 TESTBENCH/README.md diff --git a/SDC/README.md b/SDC/README.md new file mode 100644 index 0000000..d4fa921 --- /dev/null +++ b/SDC/README.md @@ -0,0 +1,5 @@ +# Skywater PDK +This directory contains the design constraints for FPGA fabrics that are automatically generated by OpenFPGA or tuned for a specific FPGA fabric. +Please keep this directory clean and organize as follows: +- Each set of design constraints should be placed in a separated directory +- READMD is the only file allowed in the directory, others should be sub-directories. diff --git a/TESTBENCH/README.md b/TESTBENCH/README.md new file mode 100644 index 0000000..5b27814 --- /dev/null +++ b/TESTBENCH/README.md @@ -0,0 +1,5 @@ +# Skywater PDK +This directory contains the testbenches for FPGA fabrics that are automatically generated by OpenFPGA or tuned for a specific FPGA fabric. +Please keep this directory clean and organize as follows: +- Each testbench should be placed in a separated directory +- READMD is the only file allowed in the directory, others should be sub-directories. From 533a6ab90f09168daa781ef1ad27d90c1a34f9af Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:53:16 -0700 Subject: [PATCH 12/14] [Arch] Use an exact fit scan-chain flip-flop in the architectures --- ...can_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml index 9e99389..5e1045d 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml @@ -148,7 +148,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -228,7 +228,7 @@ - + From 48d8f8b664b5d9e8f07a5cd100108d72366acc98 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:54:30 -0700 Subject: [PATCH 13/14] [Arch] Same patch on the scff on another arch --- ..._N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index 9cd985a..590c34d 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -148,7 +148,7 @@ - + @@ -233,7 +233,7 @@ - + From 1264054caba03f6497c43c8fe19ccb42530d8e7f Mon Sep 17 00:00:00 2001 From: tangxifan Date: Tue, 3 Nov 2020 09:57:25 -0700 Subject: [PATCH 14/14] [Arch] Bug fix in netlist path --- ...er_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml | 2 +- ...ac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml index 5e1045d..186a4d1 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_embedded_io_skywater130nm_fdhd_cc_openfpga.xml @@ -148,7 +148,7 @@ - + diff --git a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml index 590c34d..6242733 100644 --- a/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml +++ b/ARCH/openfpga_arch_template/k4_frac_N8_register_scan_chain_skywater130nm_fdhd_cc_openfpga.xml @@ -148,7 +148,7 @@ - +