[QLSOFA_HD] Updated QLSOFA_HD Verification results

This commit is contained in:
Ganesh Gore 2020-12-14 13:38:08 -07:00
parent ffa44ff099
commit 809b070ce2
10 changed files with 2581074 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,851 @@
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 88, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 103, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2007.50 1.10 1822.47 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2007.50 NS **
** REAL TIME : 1.13 S **
** SIM / REAL TIME : 1779.31 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 88, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 103, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2007.50 1.12 1796.09 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2007.50 NS **
** REAL TIME : 1.15 S **
** SIM / REAL TIME : 1741.09 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 88, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 103, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2007.50 1.07 1868.72 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2007.50 NS **
** REAL TIME : 1.11 S **
** SIM / REAL TIME : 1805.91 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 88, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 103, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2007.50 1.14 1765.82 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2007.50 NS **
** REAL TIME : 1.17 S **
** SIM / REAL TIME : 1717.22 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 88, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 103, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2007.50 1.21 1653.56 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2007.50 NS **
** REAL TIME : 1.25 S **
** SIM / REAL TIME : 1601.85 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Test Failed: ConfigChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 89, in ConfigChainTestFull
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ConfigChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 104, in ConfigChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on sb_12__12_
Failed 1 out of 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull FAIL 2012.50 1.25 1615.12 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 2012.50 NS **
** REAL TIME : 1.29 S **
** SIM / REAL TIME : 1554.36 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ConfigChainTestFull
Running test 1/1: ConfigChainTestFull
Starting test: "ConfigChainTestFull"
Description: None
Signal received at sb_12__12_ at 59
Signal received at cbx_12__12_ at 35
Signal received at sb_11__12_ at 68
Signal received at cbx_11__12_ at 35
Signal received at sb_10__12_ at 69
Signal received at cbx_10__12_ at 35
Signal received at sb_9__12_ at 68
Signal received at cbx_9__12_ at 35
Signal received at sb_8__12_ at 68
Signal received at cbx_8__12_ at 35
Signal received at sb_7__12_ at 68
Signal received at cbx_7__12_ at 35
Signal received at sb_6__12_ at 68
Signal received at cbx_6__12_ at 35
Signal received at sb_5__12_ at 68
Signal received at cbx_5__12_ at 35
Signal received at sb_4__12_ at 68
Signal received at cbx_4__12_ at 35
Signal received at sb_3__12_ at 68
Signal received at cbx_3__12_ at 35
Signal received at sb_2__12_ at 68
Signal received at cbx_2__12_ at 35
Signal received at sb_1__12_ at 68
Signal received at cbx_1__12_ at 35
Signal received at sb_0__12_ at 38
Signal received at cby_0__12_ at 3
Signal received at grid_clb_1__12_ at 116
Signal received at cby_1__12_ at 32
Signal received at grid_clb_2__12_ at 116
Signal received at cby_2__12_ at 32
Signal received at grid_clb_3__12_ at 116
Signal received at cby_3__12_ at 32
Signal received at grid_clb_4__12_ at 116
Signal received at cby_4__12_ at 32
Signal received at grid_clb_5__12_ at 116
Signal received at cby_5__12_ at 32
Signal received at grid_clb_6__12_ at 116
Signal received at cby_6__12_ at 32
Signal received at grid_clb_7__12_ at 116
Signal received at cby_7__12_ at 32
Signal received at grid_clb_8__12_ at 116
Signal received at cby_8__12_ at 32
Signal received at grid_clb_9__12_ at 116
Signal received at cby_9__12_ at 32
Signal received at grid_clb_10__12_ at 116
Signal received at cby_10__12_ at 32
Signal received at grid_clb_11__12_ at 116
Signal received at cby_11__12_ at 32
Signal received at grid_clb_12__12_ at 116
Signal received at cby_12__12_ at 35
Signal received at sb_12__11_ at 70
Signal received at cbx_12__11_ at 32
Signal received at sb_11__11_ at 82
Signal received at cbx_11__11_ at 32
Signal received at sb_10__11_ at 83
Signal received at cbx_10__11_ at 32
Signal received at sb_9__11_ at 82
Signal received at cbx_9__11_ at 32
Signal received at sb_8__11_ at 82
Signal received at cbx_8__11_ at 32
Signal received at sb_7__11_ at 82
Signal received at cbx_7__11_ at 32
Signal received at sb_6__11_ at 82
Signal received at cbx_6__11_ at 32
Signal received at sb_5__11_ at 82
Signal received at cbx_5__11_ at 32
Signal received at sb_4__11_ at 82
Signal received at cbx_4__11_ at 32
Signal received at sb_3__11_ at 82
Signal received at cbx_3__11_ at 32
Signal received at sb_2__11_ at 82
Signal received at cbx_2__11_ at 32
Signal received at sb_1__11_ at 82
Signal received at cbx_1__11_ at 32
Signal received at sb_0__11_ at 66
Signal received at cby_0__11_ at 3
Signal received at grid_clb_1__11_ at 116
Signal received at cby_1__11_ at 32
Signal received at grid_clb_2__11_ at 116
Signal received at cby_2__11_ at 32
Signal received at grid_clb_3__11_ at 116
Signal received at cby_3__11_ at 32
Signal received at grid_clb_4__11_ at 116
Signal received at cby_4__11_ at 32
Signal received at grid_clb_5__11_ at 116
Signal received at cby_5__11_ at 32
Signal received at grid_clb_6__11_ at 116
Signal received at cby_6__11_ at 32
Signal received at grid_clb_7__11_ at 116
Signal received at cby_7__11_ at 32
Signal received at grid_clb_8__11_ at 116
Signal received at cby_8__11_ at 32
Signal received at grid_clb_9__11_ at 116
Signal received at cby_9__11_ at 32
Signal received at grid_clb_10__11_ at 116
Signal received at cby_10__11_ at 32
Signal received at grid_clb_11__11_ at 116
Signal received at cby_11__11_ at 32
Signal received at grid_clb_12__11_ at 116
Signal received at cby_12__11_ at 35
Signal received at sb_12__10_ at 70
Signal received at cbx_12__10_ at 32
Signal received at sb_11__10_ at 82
Signal received at cbx_11__10_ at 32
Signal received at sb_10__10_ at 82
Signal received at cbx_10__10_ at 32
Signal received at sb_9__10_ at 82
Signal received at cbx_9__10_ at 32
Signal received at sb_8__10_ at 82
Signal received at cbx_8__10_ at 32
Signal received at sb_7__10_ at 82
Signal received at cbx_7__10_ at 32
Signal received at sb_6__10_ at 82
Signal received at cbx_6__10_ at 32
Signal received at sb_5__10_ at 82
Signal received at cbx_5__10_ at 32
Signal received at sb_4__10_ at 82
Signal received at cbx_4__10_ at 32
Signal received at sb_3__10_ at 82
Signal received at cbx_3__10_ at 32
Signal received at sb_2__10_ at 82
Signal received at cbx_2__10_ at 32
Signal received at sb_1__10_ at 82
Signal received at cbx_1__10_ at 32
Signal received at sb_0__10_ at 66
Signal received at cby_0__10_ at 3
Signal received at grid_clb_1__10_ at 116
Signal received at cby_1__10_ at 32
Signal received at grid_clb_2__10_ at 116
Signal received at cby_2__10_ at 32
Signal received at grid_clb_3__10_ at 116
Signal received at cby_3__10_ at 32
Signal received at grid_clb_4__10_ at 116
Signal received at cby_4__10_ at 32
Signal received at grid_clb_5__10_ at 116
Signal received at cby_5__10_ at 32
Signal received at grid_clb_6__10_ at 116
Signal received at cby_6__10_ at 32
Signal received at grid_clb_7__10_ at 116
Signal received at cby_7__10_ at 32
Signal received at grid_clb_8__10_ at 116
Signal received at cby_8__10_ at 32
Signal received at grid_clb_9__10_ at 116
Signal received at cby_9__10_ at 32
Signal received at grid_clb_10__10_ at 116
Signal received at cby_10__10_ at 32
Signal received at grid_clb_11__10_ at 116
Signal received at cby_11__10_ at 32
Signal received at grid_clb_12__10_ at 116
Signal received at cby_12__10_ at 35
Signal received at sb_12__9_ at 70
Signal received at cbx_12__9_ at 32
Signal received at sb_11__9_ at 82
Signal received at cbx_11__9_ at 32
Signal received at sb_10__9_ at 82
Signal received at cbx_10__9_ at 32
Signal received at sb_9__9_ at 82
Signal received at cbx_9__9_ at 32
Signal received at sb_8__9_ at 82
Signal received at cbx_8__9_ at 32
Signal received at sb_7__9_ at 82
Signal received at cbx_7__9_ at 32
Signal received at sb_6__9_ at 82
Signal received at cbx_6__9_ at 32
Signal received at sb_5__9_ at 82
Signal received at cbx_5__9_ at 32
Signal received at sb_4__9_ at 82
Signal received at cbx_4__9_ at 32
Signal received at sb_3__9_ at 82
Signal received at cbx_3__9_ at 32
Signal received at sb_2__9_ at 82
Signal received at cbx_2__9_ at 32
Signal received at sb_1__9_ at 82
Signal received at cbx_1__9_ at 32
Signal received at sb_0__9_ at 66
Signal received at cby_0__9_ at 3
Signal received at grid_clb_1__9_ at 116
Signal received at cby_1__9_ at 32
Signal received at grid_clb_2__9_ at 116
Signal received at cby_2__9_ at 32
Signal received at grid_clb_3__9_ at 116
Signal received at cby_3__9_ at 32
Signal received at grid_clb_4__9_ at 116
Signal received at cby_4__9_ at 32
Signal received at grid_clb_5__9_ at 116
Signal received at cby_5__9_ at 32
Signal received at grid_clb_6__9_ at 116
Signal received at cby_6__9_ at 32
Signal received at grid_clb_7__9_ at 116
Signal received at cby_7__9_ at 32
Signal received at grid_clb_8__9_ at 116
Signal received at cby_8__9_ at 32
Signal received at grid_clb_9__9_ at 116
Signal received at cby_9__9_ at 32
Signal received at grid_clb_10__9_ at 116
Signal received at cby_10__9_ at 32
Signal received at grid_clb_11__9_ at 116
Signal received at cby_11__9_ at 32
Signal received at grid_clb_12__9_ at 116
Signal received at cby_12__9_ at 35
Signal received at sb_12__8_ at 70
Signal received at cbx_12__8_ at 32
Signal received at sb_11__8_ at 82
Signal received at cbx_11__8_ at 32
Signal received at sb_10__8_ at 82
Signal received at cbx_10__8_ at 32
Signal received at sb_9__8_ at 82
Signal received at cbx_9__8_ at 32
Signal received at sb_8__8_ at 83
Signal received at cbx_8__8_ at 32
Signal received at sb_7__8_ at 82
Signal received at cbx_7__8_ at 32
Signal received at sb_6__8_ at 82
Signal received at cbx_6__8_ at 32
Signal received at sb_5__8_ at 82
Signal received at cbx_5__8_ at 32
Signal received at sb_4__8_ at 82
Signal received at cbx_4__8_ at 32
Signal received at sb_3__8_ at 82
Signal received at cbx_3__8_ at 32
Signal received at sb_2__8_ at 82
Signal received at cbx_2__8_ at 32
Signal received at sb_1__8_ at 82
Signal received at cbx_1__8_ at 32
Signal received at sb_0__8_ at 66
Signal received at cby_0__8_ at 3
Signal received at grid_clb_1__8_ at 116
Signal received at cby_1__8_ at 32
Signal received at grid_clb_2__8_ at 116
Signal received at cby_2__8_ at 32
Signal received at grid_clb_3__8_ at 116
Signal received at cby_3__8_ at 32
Signal received at grid_clb_4__8_ at 116
Signal received at cby_4__8_ at 32
Signal received at grid_clb_5__8_ at 116
Signal received at cby_5__8_ at 32
Signal received at grid_clb_6__8_ at 116
Signal received at cby_6__8_ at 32
Signal received at grid_clb_7__8_ at 116
Signal received at cby_7__8_ at 32
Signal received at grid_clb_8__8_ at 116
Signal received at cby_8__8_ at 32
Signal received at grid_clb_9__8_ at 116
Signal received at cby_9__8_ at 32
Signal received at grid_clb_10__8_ at 116
Signal received at cby_10__8_ at 32
Signal received at grid_clb_11__8_ at 116
Signal received at cby_11__8_ at 32
Signal received at grid_clb_12__8_ at 116
Signal received at cby_12__8_ at 35
Signal received at sb_12__7_ at 70
Signal received at cbx_12__7_ at 32
Signal received at sb_11__7_ at 82
Signal received at cbx_11__7_ at 32
Signal received at sb_10__7_ at 82
Signal received at cbx_10__7_ at 32
Signal received at sb_9__7_ at 82
Signal received at cbx_9__7_ at 32
Signal received at sb_8__7_ at 82
Signal received at cbx_8__7_ at 32
Signal received at sb_7__7_ at 82
Signal received at cbx_7__7_ at 32
Signal received at sb_6__7_ at 82
Signal received at cbx_6__7_ at 32
Signal received at sb_5__7_ at 82
Signal received at cbx_5__7_ at 32
Signal received at sb_4__7_ at 82
Signal received at cbx_4__7_ at 32
Signal received at sb_3__7_ at 82
Signal received at cbx_3__7_ at 32
Signal received at sb_2__7_ at 82
Signal received at cbx_2__7_ at 32
Signal received at sb_1__7_ at 82
Signal received at cbx_1__7_ at 32
Signal received at sb_0__7_ at 66
Signal received at cby_0__7_ at 3
Signal received at grid_clb_1__7_ at 116
Signal received at cby_1__7_ at 32
Signal received at grid_clb_2__7_ at 116
Signal received at cby_2__7_ at 32
Signal received at grid_clb_3__7_ at 116
Signal received at cby_3__7_ at 32
Signal received at grid_clb_4__7_ at 116
Signal received at cby_4__7_ at 32
Signal received at grid_clb_5__7_ at 116
Signal received at cby_5__7_ at 32
Signal received at grid_clb_6__7_ at 116
Signal received at cby_6__7_ at 32
Signal received at grid_clb_7__7_ at 116
Signal received at cby_7__7_ at 32
Signal received at grid_clb_8__7_ at 116
Signal received at cby_8__7_ at 32
Signal received at grid_clb_9__7_ at 116
Signal received at cby_9__7_ at 32
Signal received at grid_clb_10__7_ at 116
Signal received at cby_10__7_ at 32
Signal received at grid_clb_11__7_ at 116
Signal received at cby_11__7_ at 32
Signal received at grid_clb_12__7_ at 116
Signal received at cby_12__7_ at 35
Signal received at sb_12__6_ at 70
Signal received at cbx_12__6_ at 32
Signal received at sb_11__6_ at 82
Signal received at cbx_11__6_ at 32
Signal received at sb_10__6_ at 82
Signal received at cbx_10__6_ at 32
Signal received at sb_9__6_ at 82
Signal received at cbx_9__6_ at 32
Signal received at sb_8__6_ at 82
Signal received at cbx_8__6_ at 32
Signal received at sb_7__6_ at 82
Signal received at cbx_7__6_ at 32
Signal received at sb_6__6_ at 82
Signal received at cbx_6__6_ at 32
Signal received at sb_5__6_ at 82
Signal received at cbx_5__6_ at 32
Signal received at sb_4__6_ at 82
Signal received at cbx_4__6_ at 32
Signal received at sb_3__6_ at 82
Signal received at cbx_3__6_ at 32
Signal received at sb_2__6_ at 82
Signal received at cbx_2__6_ at 32
Signal received at sb_1__6_ at 82
Signal received at cbx_1__6_ at 32
Signal received at sb_0__6_ at 66
Signal received at cby_0__6_ at 3
Signal received at grid_clb_1__6_ at 116
Signal received at cby_1__6_ at 32
Signal received at grid_clb_2__6_ at 116
Signal received at cby_2__6_ at 32
Signal received at grid_clb_3__6_ at 116
Signal received at cby_3__6_ at 32
Signal received at grid_clb_4__6_ at 116
Signal received at cby_4__6_ at 32
Signal received at grid_clb_5__6_ at 116
Signal received at cby_5__6_ at 32
Signal received at grid_clb_6__6_ at 116
Signal received at cby_6__6_ at 32
Signal received at grid_clb_7__6_ at 116
Signal received at cby_7__6_ at 32
Signal received at grid_clb_8__6_ at 116
Signal received at cby_8__6_ at 32
Signal received at grid_clb_9__6_ at 116
Signal received at cby_9__6_ at 32
Signal received at grid_clb_10__6_ at 116
Signal received at cby_10__6_ at 32
Signal received at grid_clb_11__6_ at 116
Signal received at cby_11__6_ at 32
Signal received at grid_clb_12__6_ at 116
Signal received at cby_12__6_ at 35
Signal received at sb_12__5_ at 70
Signal received at cbx_12__5_ at 32
Signal received at sb_11__5_ at 82
Signal received at cbx_11__5_ at 32
Signal received at sb_10__5_ at 82
Signal received at cbx_10__5_ at 32
Signal received at sb_9__5_ at 82
Signal received at cbx_9__5_ at 32
Signal received at sb_8__5_ at 82
Signal received at cbx_8__5_ at 32
Signal received at sb_7__5_ at 82
Signal received at cbx_7__5_ at 32
Signal received at sb_6__5_ at 82
Signal received at cbx_6__5_ at 32
Signal received at sb_5__5_ at 82
Signal received at cbx_5__5_ at 32
Signal received at sb_4__5_ at 82
Signal received at cbx_4__5_ at 32
Signal received at sb_3__5_ at 82
Signal received at cbx_3__5_ at 32
Signal received at sb_2__5_ at 82
Signal received at cbx_2__5_ at 32
Signal received at sb_1__5_ at 82
Signal received at cbx_1__5_ at 32
Signal received at sb_0__5_ at 66
Signal received at cby_0__5_ at 3
Signal received at grid_clb_1__5_ at 116
Signal received at cby_1__5_ at 32
Signal received at grid_clb_2__5_ at 116
Signal received at cby_2__5_ at 32
Signal received at grid_clb_3__5_ at 116
Signal received at cby_3__5_ at 32
Signal received at grid_clb_4__5_ at 116
Signal received at cby_4__5_ at 32
Signal received at grid_clb_5__5_ at 116
Signal received at cby_5__5_ at 32
Signal received at grid_clb_6__5_ at 116
Signal received at cby_6__5_ at 32
Signal received at grid_clb_7__5_ at 116
Signal received at cby_7__5_ at 32
Signal received at grid_clb_8__5_ at 116
Signal received at cby_8__5_ at 32
Signal received at grid_clb_9__5_ at 116
Signal received at cby_9__5_ at 32
Signal received at grid_clb_10__5_ at 116
Signal received at cby_10__5_ at 32
Signal received at grid_clb_11__5_ at 116
Signal received at cby_11__5_ at 32
Signal received at grid_clb_12__5_ at 116
Signal received at cby_12__5_ at 35
Signal received at sb_12__4_ at 70
Signal received at cbx_12__4_ at 32
Signal received at sb_11__4_ at 82
Signal received at cbx_11__4_ at 32
Signal received at sb_10__4_ at 82
Signal received at cbx_10__4_ at 32
Signal received at sb_9__4_ at 82
Signal received at cbx_9__4_ at 32
Signal received at sb_8__4_ at 82
Signal received at cbx_8__4_ at 32
Signal received at sb_7__4_ at 82
Signal received at cbx_7__4_ at 32
Signal received at sb_6__4_ at 82
Signal received at cbx_6__4_ at 32
Signal received at sb_5__4_ at 82
Signal received at cbx_5__4_ at 32
Signal received at sb_4__4_ at 82
Signal received at cbx_4__4_ at 32
Signal received at sb_3__4_ at 82
Signal received at cbx_3__4_ at 32
Signal received at sb_2__4_ at 82
Signal received at cbx_2__4_ at 32
Signal received at sb_1__4_ at 82
Signal received at cbx_1__4_ at 32
Signal received at sb_0__4_ at 66
Signal received at cby_0__4_ at 3
Signal received at grid_clb_1__4_ at 116
Signal received at cby_1__4_ at 32
Signal received at grid_clb_2__4_ at 116
Signal received at cby_2__4_ at 32
Signal received at grid_clb_3__4_ at 116
Signal received at cby_3__4_ at 32
Signal received at grid_clb_4__4_ at 116
Signal received at cby_4__4_ at 32
Signal received at grid_clb_5__4_ at 116
Signal received at cby_5__4_ at 32
Signal received at grid_clb_6__4_ at 116
Signal received at cby_6__4_ at 32
Signal received at grid_clb_7__4_ at 116
Signal received at cby_7__4_ at 32
Signal received at grid_clb_8__4_ at 116
Signal received at cby_8__4_ at 32
Signal received at grid_clb_9__4_ at 116
Signal received at cby_9__4_ at 32
Signal received at grid_clb_10__4_ at 116
Signal received at cby_10__4_ at 32
Signal received at grid_clb_11__4_ at 116
Signal received at cby_11__4_ at 32
Signal received at grid_clb_12__4_ at 116
Signal received at cby_12__4_ at 35
Signal received at sb_12__3_ at 70
Signal received at cbx_12__3_ at 32
Signal received at sb_11__3_ at 82
Signal received at cbx_11__3_ at 32
Signal received at sb_10__3_ at 82
Signal received at cbx_10__3_ at 32
Signal received at sb_9__3_ at 82
Signal received at cbx_9__3_ at 32
Signal received at sb_8__3_ at 82
Signal received at cbx_8__3_ at 32
Signal received at sb_7__3_ at 82
Signal received at cbx_7__3_ at 32
Signal received at sb_6__3_ at 82
Signal received at cbx_6__3_ at 32
Signal received at sb_5__3_ at 82
Signal received at cbx_5__3_ at 32
Signal received at sb_4__3_ at 82
Signal received at cbx_4__3_ at 32
Signal received at sb_3__3_ at 82
Signal received at cbx_3__3_ at 32
Signal received at sb_2__3_ at 82
Signal received at cbx_2__3_ at 32
Signal received at sb_1__3_ at 82
Signal received at cbx_1__3_ at 32
Signal received at sb_0__3_ at 66
Signal received at cby_0__3_ at 3
Signal received at grid_clb_1__3_ at 116
Signal received at cby_1__3_ at 32
Signal received at grid_clb_2__3_ at 116
Signal received at cby_2__3_ at 32
Signal received at grid_clb_3__3_ at 116
Signal received at cby_3__3_ at 32
Signal received at grid_clb_4__3_ at 116
Signal received at cby_4__3_ at 32
Signal received at grid_clb_5__3_ at 116
Signal received at cby_5__3_ at 32
Signal received at grid_clb_6__3_ at 116
Signal received at cby_6__3_ at 32
Signal received at grid_clb_7__3_ at 116
Signal received at cby_7__3_ at 32
Signal received at grid_clb_8__3_ at 116
Signal received at cby_8__3_ at 32
Signal received at grid_clb_9__3_ at 116
Signal received at cby_9__3_ at 32
Signal received at grid_clb_10__3_ at 116
Signal received at cby_10__3_ at 32
Signal received at grid_clb_11__3_ at 116
Signal received at cby_11__3_ at 32
Signal received at grid_clb_12__3_ at 116
Signal received at cby_12__3_ at 35
Signal received at sb_12__2_ at 70
Signal received at cbx_12__2_ at 32
Signal received at sb_11__2_ at 82
Signal received at cbx_11__2_ at 32
Signal received at sb_10__2_ at 82
Signal received at cbx_10__2_ at 32
Signal received at sb_9__2_ at 82
Signal received at cbx_9__2_ at 32
Signal received at sb_8__2_ at 82
Signal received at cbx_8__2_ at 32
Signal received at sb_7__2_ at 82
Signal received at cbx_7__2_ at 32
Signal received at sb_6__2_ at 82
Signal received at cbx_6__2_ at 32
Signal received at sb_5__2_ at 82
Signal received at cbx_5__2_ at 32
Signal received at sb_4__2_ at 82
Signal received at cbx_4__2_ at 32
Signal received at sb_3__2_ at 82
Signal received at cbx_3__2_ at 32
Signal received at sb_2__2_ at 82
Signal received at cbx_2__2_ at 32
Signal received at sb_1__2_ at 82
Signal received at cbx_1__2_ at 32
Signal received at sb_0__2_ at 66
Signal received at cby_0__2_ at 3
Signal received at grid_clb_1__2_ at 116
Signal received at cby_1__2_ at 32
Signal received at grid_clb_2__2_ at 116
Signal received at cby_2__2_ at 32
Signal received at grid_clb_3__2_ at 116
Signal received at cby_3__2_ at 32
Signal received at grid_clb_4__2_ at 116
Signal received at cby_4__2_ at 32
Signal received at grid_clb_5__2_ at 116
Signal received at cby_5__2_ at 32
Signal received at grid_clb_6__2_ at 116
Signal received at cby_6__2_ at 32
Signal received at grid_clb_7__2_ at 116
Signal received at cby_7__2_ at 32
Signal received at grid_clb_8__2_ at 116
Signal received at cby_8__2_ at 32
Signal received at grid_clb_9__2_ at 116
Signal received at cby_9__2_ at 32
Signal received at grid_clb_10__2_ at 116
Signal received at cby_10__2_ at 32
Signal received at grid_clb_11__2_ at 116
Signal received at cby_11__2_ at 32
Signal received at grid_clb_12__2_ at 116
Signal received at cby_12__2_ at 35
Signal received at sb_12__1_ at 70
Signal received at cbx_12__1_ at 32
Signal received at sb_11__1_ at 82
Signal received at cbx_11__1_ at 32
Signal received at sb_10__1_ at 82
Signal received at cbx_10__1_ at 32
Signal received at sb_9__1_ at 82
Signal received at cbx_9__1_ at 32
Signal received at sb_8__1_ at 82
Signal received at cbx_8__1_ at 32
Signal received at sb_7__1_ at 82
Signal received at cbx_7__1_ at 32
Signal received at sb_6__1_ at 82
Signal received at cbx_6__1_ at 32
Signal received at sb_5__1_ at 82
Signal received at cbx_5__1_ at 32
Signal received at sb_4__1_ at 82
Signal received at cbx_4__1_ at 32
Signal received at sb_3__1_ at 82
Signal received at cbx_3__1_ at 32
Signal received at sb_2__1_ at 82
Signal received at cbx_2__1_ at 32
Signal received at sb_1__1_ at 82
Signal received at cbx_1__1_ at 32
Signal received at sb_0__1_ at 66
Signal received at cby_0__1_ at 3
Signal received at grid_clb_1__1_ at 116
Signal received at cby_1__1_ at 32
Signal received at grid_clb_2__1_ at 116
Signal received at cby_2__1_ at 32
Signal received at grid_clb_3__1_ at 116
Signal received at cby_3__1_ at 32
Signal received at grid_clb_4__1_ at 116
Signal received at cby_4__1_ at 32
Signal received at grid_clb_5__1_ at 116
Signal received at cby_5__1_ at 32
Signal received at grid_clb_6__1_ at 116
Signal received at cby_6__1_ at 32
Signal received at grid_clb_7__1_ at 116
Signal received at cby_7__1_ at 32
Signal received at grid_clb_8__1_ at 116
Signal received at cby_8__1_ at 32
Signal received at grid_clb_9__1_ at 116
Signal received at cby_9__1_ at 32
Signal received at grid_clb_10__1_ at 116
Signal received at cby_10__1_ at 32
Signal received at grid_clb_11__1_ at 116
Signal received at cby_11__1_ at 32
Signal received at grid_clb_12__1_ at 116
Signal received at cby_12__1_ at 35
Signal received at sb_12__0_ at 59
Signal received at cbx_12__0_ at 23
Signal received at sb_11__0_ at 68
Signal received at cbx_11__0_ at 23
Signal received at sb_10__0_ at 68
Signal received at cbx_10__0_ at 23
Signal received at sb_9__0_ at 68
Signal received at cbx_9__0_ at 23
Signal received at sb_8__0_ at 68
Signal received at cbx_8__0_ at 23
Signal received at sb_7__0_ at 68
Signal received at cbx_7__0_ at 23
Signal received at sb_6__0_ at 68
Signal received at cbx_6__0_ at 23
Signal received at sb_5__0_ at 68
Signal received at cbx_5__0_ at 23
Signal received at sb_4__0_ at 68
Signal received at cbx_4__0_ at 23
Signal received at sb_3__0_ at 68
Signal received at cbx_3__0_ at 23
Signal received at sb_2__0_ at 68
Signal received at cbx_2__0_ at 23
Signal received at sb_1__0_ at 68
Signal received at cbx_1__0_ at 23
Signal received at sb_0__0_ at 38
Simulation Finished in clocks 39383
Test Passed: ConfigChainTestFull
Passed 1 tests (0 skipped)
***************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
***************************************************************************************************
** fpga_reset_hd_sky_pnr.ConfigChainTestFull PASS 393885.00 82.25 4788.86 **
***************************************************************************************************
*************************************************************************************
** ERRORS : 0 **
*************************************************************************************
** SIM TIME : 393885.00 NS **
** REAL TIME : 82.29 S **
** SIM / REAL TIME : 4786.46 NS/S **
*************************************************************************************
Shutting down...

View File

@ -0,0 +1,22 @@
initial begin
$dumpfile ("ccff_test.vcd");
$dumpvars (1,
io_in[37],
io_in[36],
fpga_core_uut.prog_clk,
fpga_core_uut.Reset,
fpga_core_uut.pReset,
fpga_core_uut.sb_12__12_.ccff_head,
fpga_core_uut.sb_12__12_.ccff_tail,
fpga_core_uut.ccff_head,
fpga_core_uut.ccff_tail
);
end
initial begin
$dumpvars (0,
fpga_core_uut.sb_12__12_,
fpga_core_uut.sb_6__0_
);
end

View File

@ -0,0 +1,23 @@
initial begin
$dumpfile ("scff_test.vcd");
$dumpvars (1,
io_in[37],
io_in[36],
io_in[0],
fpga_core_uut.scff_Wires,
fpga_core_uut.Test_en,
fpga_core_uut.sb_0__12_.SC_IN_TOP,
fpga_core_uut.sb_0__12_.SC_OUT_BOT,
fpga_core_uut.grid_clb_1__12_.SC_IN_TOP,
fpga_core_uut.grid_clb_1__12_.SC_OUT_BOT,
sc_head,
sc_tail
);
end
initial begin
$dumpvars (0,
fpga_core_uut.sb_12__12_);
end

View File

@ -0,0 +1,615 @@
//
//
//
//
//
//
//
//
`timescale 1ns / 1ps
`define FUNCTIONAL 1
`define UNIT_DELAY #0.01
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2b/sky130_fd_sc_hd__and2b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2b/sky130_fd_sc_hd__and2b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2b/sky130_fd_sc_hd__and2b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2b/sky130_fd_sc_hd__and2b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2_0.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and2/sky130_fd_sc_hd__and2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and3/sky130_fd_sc_hd__and3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and3/sky130_fd_sc_hd__and3_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and3/sky130_fd_sc_hd__and3_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and3/sky130_fd_sc_hd__and3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4b/sky130_fd_sc_hd__and4b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4b/sky130_fd_sc_hd__and4b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4b/sky130_fd_sc_hd__and4b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4b/sky130_fd_sc_hd__and4b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4/sky130_fd_sc_hd__and4_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4/sky130_fd_sc_hd__and4_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4/sky130_fd_sc_hd__and4_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/and4/sky130_fd_sc_hd__and4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufbuf/sky130_fd_sc_hd__bufbuf.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s15/sky130_fd_sc_hd__clkdlybuf4s15_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s15/sky130_fd_sc_hd__clkdlybuf4s15_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s15/sky130_fd_sc_hd__clkdlybuf4s15.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s18/sky130_fd_sc_hd__clkdlybuf4s18_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s18/sky130_fd_sc_hd__clkdlybuf4s18_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s18/sky130_fd_sc_hd__clkdlybuf4s18.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s25/sky130_fd_sc_hd__clkdlybuf4s25_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s25/sky130_fd_sc_hd__clkdlybuf4s25_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s25/sky130_fd_sc_hd__clkdlybuf4s25.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap_12.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap_3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap_6.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/decap/sky130_fd_sc_hd__decap.v"
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfrtp/sky130_fd_sc_hd__dfrtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfrtp/sky130_fd_sc_hd__dfrtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfrtp/sky130_fd_sc_hd__dfrtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfrtp/sky130_fd_sc_hd__dfrtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfsbp/sky130_fd_sc_hd__dfsbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfsbp/sky130_fd_sc_hd__dfsbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfsbp/sky130_fd_sc_hd__dfsbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfstp/sky130_fd_sc_hd__dfstp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfstp/sky130_fd_sc_hd__dfstp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfstp/sky130_fd_sc_hd__dfstp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfstp/sky130_fd_sc_hd__dfstp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxbp/sky130_fd_sc_hd__dfxbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxbp/sky130_fd_sc_hd__dfxbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxbp/sky130_fd_sc_hd__dfxbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/diode/sky130_fd_sc_hd__diode_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/diode/sky130_fd_sc_hd__diode.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlclkp/sky130_fd_sc_hd__dlclkp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlclkp/sky130_fd_sc_hd__dlclkp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlclkp/sky130_fd_sc_hd__dlclkp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlclkp/sky130_fd_sc_hd__dlclkp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbn/sky130_fd_sc_hd__dlrbn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbn/sky130_fd_sc_hd__dlrbn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbn/sky130_fd_sc_hd__dlrbn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbp/sky130_fd_sc_hd__dlrbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbp/sky130_fd_sc_hd__dlrbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrbp/sky130_fd_sc_hd__dlrbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtn/sky130_fd_sc_hd__dlrtn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtn/sky130_fd_sc_hd__dlrtn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtn/sky130_fd_sc_hd__dlrtn_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtn/sky130_fd_sc_hd__dlrtn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtp/sky130_fd_sc_hd__dlrtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtp/sky130_fd_sc_hd__dlrtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtp/sky130_fd_sc_hd__dlrtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlrtp/sky130_fd_sc_hd__dlrtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxbn/sky130_fd_sc_hd__dlxbn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxbn/sky130_fd_sc_hd__dlxbn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxbn/sky130_fd_sc_hd__dlxbn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxbp/sky130_fd_sc_hd__dlxbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxbp/sky130_fd_sc_hd__dlxbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtn/sky130_fd_sc_hd__dlxtn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtn/sky130_fd_sc_hd__dlxtn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtn/sky130_fd_sc_hd__dlxtn_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtn/sky130_fd_sc_hd__dlxtn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtp/sky130_fd_sc_hd__dlxtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlxtp/sky130_fd_sc_hd__dlxtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s4s/sky130_fd_sc_hd__dlymetal6s4s_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s4s/sky130_fd_sc_hd__dlymetal6s4s.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ebufn/sky130_fd_sc_hd__ebufn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/edfxbp/sky130_fd_sc_hd__edfxbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/edfxbp/sky130_fd_sc_hd__edfxbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/edfxtp/sky130_fd_sc_hd__edfxtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/edfxtp/sky130_fd_sc_hd__edfxtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn_0.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvn/sky130_fd_sc_hd__einvn.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvp/sky130_fd_sc_hd__einvp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvp/sky130_fd_sc_hd__einvp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvp/sky130_fd_sc_hd__einvp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvp/sky130_fd_sc_hd__einvp_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/einvp/sky130_fd_sc_hd__einvp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fahcin/sky130_fd_sc_hd__fahcin_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fahcin/sky130_fd_sc_hd__fahcin.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fahcon/sky130_fd_sc_hd__fahcon_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fahcon/sky130_fd_sc_hd__fahcon.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fah/sky130_fd_sc_hd__fah_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fah/sky130_fd_sc_hd__fah.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fa/sky130_fd_sc_hd__fa_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fa/sky130_fd_sc_hd__fa_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fa/sky130_fd_sc_hd__fa_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fa/sky130_fd_sc_hd__fa.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fill/sky130_fd_sc_hd__fill_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fill/sky130_fd_sc_hd__fill_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fill/sky130_fd_sc_hd__fill_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fill/sky130_fd_sc_hd__fill_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/fill/sky130_fd_sc_hd__fill.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ha/sky130_fd_sc_hd__ha_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ha/sky130_fd_sc_hd__ha_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ha/sky130_fd_sc_hd__ha_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/ha/sky130_fd_sc_hd__ha.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv.v"
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/macro_sparecell/sky130_fd_sc_hd__macro_sparecell.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/maj3/sky130_fd_sc_hd__maj3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/maj3/sky130_fd_sc_hd__maj3_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/maj3/sky130_fd_sc_hd__maj3_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/maj3/sky130_fd_sc_hd__maj3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2i/sky130_fd_sc_hd__mux2i_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2i/sky130_fd_sc_hd__mux2i_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2i/sky130_fd_sc_hd__mux2i_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2i/sky130_fd_sc_hd__mux2i.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux4/sky130_fd_sc_hd__mux4_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux4/sky130_fd_sc_hd__mux4_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux4/sky130_fd_sc_hd__mux4_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux4/sky130_fd_sc_hd__mux4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2b/sky130_fd_sc_hd__nand2b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2b/sky130_fd_sc_hd__nand2b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2b/sky130_fd_sc_hd__nand2b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2b/sky130_fd_sc_hd__nand2b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2/sky130_fd_sc_hd__nand2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2/sky130_fd_sc_hd__nand2_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2/sky130_fd_sc_hd__nand2_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2/sky130_fd_sc_hd__nand2_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand2/sky130_fd_sc_hd__nand2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand3/sky130_fd_sc_hd__nand3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand3/sky130_fd_sc_hd__nand3_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand3/sky130_fd_sc_hd__nand3_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand3/sky130_fd_sc_hd__nand3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4b/sky130_fd_sc_hd__nand4b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4b/sky130_fd_sc_hd__nand4b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4b/sky130_fd_sc_hd__nand4b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4b/sky130_fd_sc_hd__nand4b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4/sky130_fd_sc_hd__nand4_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4/sky130_fd_sc_hd__nand4_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4/sky130_fd_sc_hd__nand4_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nand4/sky130_fd_sc_hd__nand4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2b/sky130_fd_sc_hd__nor2b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2b/sky130_fd_sc_hd__nor2b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2b/sky130_fd_sc_hd__nor2b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2b/sky130_fd_sc_hd__nor2b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2/sky130_fd_sc_hd__nor2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2/sky130_fd_sc_hd__nor2_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2/sky130_fd_sc_hd__nor2_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2/sky130_fd_sc_hd__nor2_8.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor2/sky130_fd_sc_hd__nor2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor3/sky130_fd_sc_hd__nor3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor3/sky130_fd_sc_hd__nor3_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor3/sky130_fd_sc_hd__nor3_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor3/sky130_fd_sc_hd__nor3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4b/sky130_fd_sc_hd__nor4b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4b/sky130_fd_sc_hd__nor4b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4b/sky130_fd_sc_hd__nor4b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4b/sky130_fd_sc_hd__nor4b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4/sky130_fd_sc_hd__nor4_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4/sky130_fd_sc_hd__nor4_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4/sky130_fd_sc_hd__nor4_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/nor4/sky130_fd_sc_hd__nor4.v"
//
//
//
//
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfrtp/sky130_fd_sc_hd__sdfrtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfrtp/sky130_fd_sc_hd__sdfrtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfrtp/sky130_fd_sc_hd__sdfrtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfrtp/sky130_fd_sc_hd__sdfrtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfsbp/sky130_fd_sc_hd__sdfsbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfsbp/sky130_fd_sc_hd__sdfsbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfsbp/sky130_fd_sc_hd__sdfsbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfstp/sky130_fd_sc_hd__sdfstp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfstp/sky130_fd_sc_hd__sdfstp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfstp/sky130_fd_sc_hd__sdfstp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfstp/sky130_fd_sc_hd__sdfstp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxbp/sky130_fd_sc_hd__sdfxbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxbp/sky130_fd_sc_hd__sdfxbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxbp/sky130_fd_sc_hd__sdfxbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdlclkp/sky130_fd_sc_hd__sdlclkp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdlclkp/sky130_fd_sc_hd__sdlclkp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdlclkp/sky130_fd_sc_hd__sdlclkp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdlclkp/sky130_fd_sc_hd__sdlclkp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxbp/sky130_fd_sc_hd__sedfxbp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxbp/sky130_fd_sc_hd__sedfxbp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxbp/sky130_fd_sc_hd__sedfxbp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxtp/sky130_fd_sc_hd__sedfxtp_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxtp/sky130_fd_sc_hd__sedfxtp_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxtp/sky130_fd_sc_hd__sedfxtp_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sedfxtp/sky130_fd_sc_hd__sedfxtp.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tap/sky130_fd_sc_hd__tap_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tap/sky130_fd_sc_hd__tap_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tap/sky130_fd_sc_hd__tap.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvgnd2/sky130_fd_sc_hd__tapvgnd2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvgnd2/sky130_fd_sc_hd__tapvgnd2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvgnd/sky130_fd_sc_hd__tapvgnd_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvgnd/sky130_fd_sc_hd__tapvgnd.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvpwrvgnd/sky130_fd_sc_hd__tapvpwrvgnd_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/tapvpwrvgnd/sky130_fd_sc_hd__tapvpwrvgnd.v"
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4bb/sky130_fd_sc_hd__or4bb_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4bb/sky130_fd_sc_hd__or4bb_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4bb/sky130_fd_sc_hd__or4bb_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4bb/sky130_fd_sc_hd__or4bb.v"
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3b/sky130_fd_sc_hd__or3b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3b/sky130_fd_sc_hd__or3b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3b/sky130_fd_sc_hd__or3b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3b/sky130_fd_sc_hd__or3b.v"
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2b/sky130_fd_sc_hd__or2b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2b/sky130_fd_sc_hd__or2b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2b/sky130_fd_sc_hd__or2b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2b/sky130_fd_sc_hd__or2b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3/sky130_fd_sc_hd__or3_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3/sky130_fd_sc_hd__or3_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3/sky130_fd_sc_hd__or3_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or3/sky130_fd_sc_hd__or3.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4b/sky130_fd_sc_hd__or4b_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4b/sky130_fd_sc_hd__or4b_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4b/sky130_fd_sc_hd__or4b_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4b/sky130_fd_sc_hd__or4b.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4/sky130_fd_sc_hd__or4_1.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4/sky130_fd_sc_hd__or4_2.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4/sky130_fd_sc_hd__or4_4.v"
`include "/research/ece/lnis/USERS/ggore/PDKs/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or4/sky130_fd_sc_hd__or4.v"

View File

@ -0,0 +1,45 @@
initial begin
$dumpfile ("ccff_test.vcd");
$dumpvars (1, prog_clk_pad,
prog_clk,
ccff_head_pad,
ccff_head,
fpga_core_uut.sb_2__2_.ccff_tail,
fpga_core_uut.cbx_2__2_.ccff_tail,
fpga_core_uut.grid_io_top_2__3_.ccff_tail,
fpga_core_uut.sb_1__2_.ccff_tail,
fpga_core_uut.cbx_1__2_.ccff_tail,
fpga_core_uut.grid_io_top_1__3_.ccff_tail,
fpga_core_uut.sb_0__2_.ccff_tail,
fpga_core_uut.cby_0__2_.ccff_tail,
fpga_core_uut.grid_io_left_0__2_.ccff_tail,
fpga_core_uut.grid_clb_1__2_.ccff_tail,
fpga_core_uut.cby_1__2_.ccff_tail,
fpga_core_uut.grid_clb_2__2_.ccff_tail,
fpga_core_uut.cby_2__2_.ccff_tail,
fpga_core_uut.grid_io_right_3__2_.ccff_tail,
fpga_core_uut.sb_2__1_.ccff_tail,
fpga_core_uut.cbx_2__1_.ccff_tail,
fpga_core_uut.sb_1__1_.ccff_tail,
fpga_core_uut.cbx_1__1_.ccff_tail,
fpga_core_uut.sb_0__1_.ccff_tail,
fpga_core_uut.cby_0__1_.ccff_tail,
fpga_core_uut.grid_io_left_0__1_.ccff_tail,
fpga_core_uut.grid_clb_1__1_.ccff_tail,
fpga_core_uut.cby_1__1_.ccff_tail,
fpga_core_uut.grid_clb_2__1_.ccff_tail,
fpga_core_uut.cby_2__1_.ccff_tail,
fpga_core_uut.grid_io_right_3__1_.ccff_tail,
fpga_core_uut.sb_2__0_.ccff_tail,
fpga_core_uut.cbx_2__0_.ccff_tail,
fpga_core_uut.grid_io_bottom_2__0_.ccff_tail,
fpga_core_uut.sb_1__0_.ccff_tail,
fpga_core_uut.cbx_1__0_.ccff_tail,
fpga_core_uut.grid_io_bottom_1__0_.ccff_tail,
fpga_core_uut.sb_0__0_.ccff_tail,
ccff_tail_pad,
ccff_tail);
end

View File

@ -0,0 +1,95 @@
## = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
## Verification makefile for FPGA1212_RESET_HD_SKY_PNR (Caravel-QLSOFA-HD)
## = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
SHELL=bash
PYTHON_EXEC=python3.8
RERUN = 0
TB = top
OPTIONS =
SIM = modelsim
TEST_FILE = fpga_reset_hd_sky_pnr
.SILENT:
.ONESHELL:
## Copy all the POSTPnR files from realease directory
UpdatePostPnRNetlist:
source ../config.sh
DESIGN_NAME=$${TOP_MODULE:-$${DESIGN_NAME}}
echo "Collecting files $${DESIGN_NAME}"
cp ../pnr/$${DESIGN_NAME}/outputs_icc2/$${DESIGN_NAME}_icv_in_design.pt.v . || \
cp ../$${DESIGN_NAME}/outputs_icc2/$${DESIGN_NAME}_icv_in_design.pt.v . || :
## Create symbolic links and run test
RunPostPnRTest:
source ../config.sh
INCLUDE_POSTPNR=$${INCLUDE_POSTPNR:-include_postpnr}
DESIGN_NAME=$${TOP_MODULE:-$${DESIGN_NAME}}
VerificationFile=$${TEST_FILE:-${TEST_FILE}}
# = = = = = = = = = = = = = = Log Information = = = = = = = = = = = =
echo "DESIGN_NAME = $${DESIGN_NAME}"
echo "VerificationFile = $${DESIGN_NAME}"
echo "INCLUDE_FILE = $${INCLUDE_POSTPNR}"
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
echo $${VerificationFile}
if [ ! -f "./$${VerificationFile}.py" ]; then
echo "Test file not found $${VerificationFile}.py"
fi
echo "Using test file $${VerificationFile}.py"
Tests=`grep -A 1 "^@cocotb.test" ./$${VerificationFile}.py | grep "def" | sed "s/.*def \(.*\)(.*/\1/g"`
select RUN_TB in $${Tests}
do
echo "Running $${RUN_TB} Test"
if [[ -d "$${RUN_TB}_run" ]] && [[ -z "$${RERUN}" ]]; then
echo "Skipping copying source, which will skip the compilations";
cp *_tests.py ./$${RUN_TB}_run;
cd $${RUN_TB}_run; break;
fi
# = = = = = = = = = = = Prepare Netlist = = = = = = = = = = = = = =
# = = = = = = = = = = = Copy python test = = = = = = = = = = = = =
mkdir -p "$${RUN_TB}_run"
cp $${VerificationFile}.py ./$${RUN_TB}_run
cp $${DESIGN_NAME}_icv_in_design.pt.v ./$${RUN_TB}_run/$${DESIGN_NAME}_cocosim.v
TaskDir=`readlink -f ../*_Verilog/TaskConfigCopy`
TaskDir2=`readlink -f ../*_task`
if [ -d "$$TaskDir" ]; then
rm -rf ./$${RUN_TB}_run/TaskConfigCopy && ln -s $${TaskDir} ./$${RUN_TB}_run
elif [ -d "$$TaskDir2" ]; then
TaskDir=`readlink -f ../*_task`
rm -rf ./$${RUN_TB}_run/TaskConfigCopy && ln -s $${TaskDir} ./$${RUN_TB}_run/TaskConfigCopy
else
echo "Task configuration directory not found"
fi
# = = = = = = = = = = = Enter Run Directory = = = = = = = = = = = = =
cd $${RUN_TB}_run
cp ../INIT/$${INCLUDE_POSTPNR}.v ./fabric_netlists_cocosim.v
echo "\`include \"$$(readlink -f $${DESIGN_NAME}_cocosim.v)\"" >> ./fabric_netlists_cocosim.v
# = = = = = = = = = = = Insert Init Signals = = = = = = = = = = = =
if test -f "../INIT/$${RUN_TB}_init.v"; then
echo "Found Initialization file [../INIT/$${RUN_TB}_init.v]"
modLineNo=$$(grep -n "module fpga_top" $${DESIGN_NAME}_cocosim.v | cut -f1 -d:)
echo $${modLineNo}
sed -i "$${modLineNo},\$${/endmodule/d}" $${DESIGN_NAME}_cocosim.v
cat ../INIT/$${RUN_TB}_init.v >> $${DESIGN_NAME}_cocosim.v
printf "\nendmodule" >> $${DESIGN_NAME}_cocosim.v
else
echo "No Initialization file found [../INIT/$${RUN_TB}_init.v]"
fi
# = = = = = = = = Create Makefile to run = = = = = = = = = = = = = =
echo "TOPLEVEL_LANG = verilog" > Makefile
echo "VERILOG_SOURCES = fabric_netlists_cocosim.v" >> Makefile
echo "TOPLEVEL = $${DESIGN_NAME}" >> Makefile
echo "MODULE = $${VerificationFile}" >> Makefile
echo "TESTCASE = $${RUN_TB}" >> Makefile
echo "" >> Makefile
echo "include $(shell cocotb-config --makefiles)/Makefile.sim" >> Makefile
break
done
if [ -z "$$DRY_RUN" ]; then make SIM=$${SIM:-${SIM}}; fi

View File

@ -0,0 +1,368 @@
Found test fpga_reset_hd_sky_pnr.ScanChainTestFull
Running test 1/1: ScanChainTestFull
Starting test: "ScanChainTestFull"
Description: None
Signal received at grid_clb_1__12_ at 8
Signal received at grid_clb_1__11_ at 8
Signal received at grid_clb_1__10_ at 8
Signal received at grid_clb_1__9_ at 8
Signal received at grid_clb_1__8_ at 8
Signal received at grid_clb_1__7_ at 8
Signal received at grid_clb_1__6_ at 8
Signal received at grid_clb_1__5_ at 8
Signal received at grid_clb_1__4_ at 8
Signal received at grid_clb_1__3_ at 8
Signal received at grid_clb_1__2_ at 8
Signal received at grid_clb_1__1_ at 8
Signal received at grid_clb_2__1_ at 8
Signal received at grid_clb_2__2_ at 8
Signal received at grid_clb_2__3_ at 8
Signal received at grid_clb_2__4_ at 8
Signal received at grid_clb_2__5_ at 8
Signal received at grid_clb_2__6_ at 8
Signal received at grid_clb_2__7_ at 8
Signal received at grid_clb_2__8_ at 8
Signal received at grid_clb_2__9_ at 8
Signal received at grid_clb_2__10_ at 8
Signal received at grid_clb_2__11_ at 8
Signal received at grid_clb_2__12_ at 8
Signal received at grid_clb_3__12_ at 8
Signal received at grid_clb_3__11_ at 9
Signal received at grid_clb_3__10_ at 8
Signal received at grid_clb_3__9_ at 8
Signal received at grid_clb_3__8_ at 8
Signal received at grid_clb_3__7_ at 8
Signal received at grid_clb_3__6_ at 8
Signal received at grid_clb_3__5_ at 8
Signal received at grid_clb_3__4_ at 8
Signal received at grid_clb_3__3_ at 8
Signal received at grid_clb_3__2_ at 8
Signal received at grid_clb_3__1_ at 8
Signal received at grid_clb_4__1_ at 8
Signal received at grid_clb_4__2_ at 8
Signal received at grid_clb_4__3_ at 8
Signal received at grid_clb_4__4_ at 8
Signal received at grid_clb_4__5_ at 8
Signal received at grid_clb_4__6_ at 8
Signal received at grid_clb_4__7_ at 8
Signal received at grid_clb_4__8_ at 8
Signal received at grid_clb_4__9_ at 8
Signal received at grid_clb_4__10_ at 8
Signal received at grid_clb_4__11_ at 8
Signal received at grid_clb_4__12_ at 8
Signal received at grid_clb_5__12_ at 8
Signal received at grid_clb_5__11_ at 8
Signal received at grid_clb_5__10_ at 8
Signal received at grid_clb_5__9_ at 8
Signal received at grid_clb_5__8_ at 8
Signal received at grid_clb_5__7_ at 8
Signal received at grid_clb_5__6_ at 8
Signal received at grid_clb_5__5_ at 8
Signal received at grid_clb_5__4_ at 8
Signal received at grid_clb_5__3_ at 8
Signal received at grid_clb_5__2_ at 8
Signal received at grid_clb_5__1_ at 8
Signal received at grid_clb_6__1_ at 8
Signal received at grid_clb_6__2_ at 8
Signal received at grid_clb_6__3_ at 8
Signal received at grid_clb_6__4_ at 8
Signal received at grid_clb_6__5_ at 8
Signal received at grid_clb_6__6_ at 8
Signal received at grid_clb_6__7_ at 8
Signal received at grid_clb_6__8_ at 8
Signal received at grid_clb_6__9_ at 8
Signal received at grid_clb_6__10_ at 8
Signal received at grid_clb_6__11_ at 8
Signal received at grid_clb_6__12_ at 8
Signal received at grid_clb_7__12_ at 8
Signal received at grid_clb_7__11_ at 8
Signal received at grid_clb_7__10_ at 8
Signal received at grid_clb_7__9_ at 8
Signal received at grid_clb_7__8_ at 8
Signal received at grid_clb_7__7_ at 8
Signal received at grid_clb_7__6_ at 8
Signal received at grid_clb_7__5_ at 8
Signal received at grid_clb_7__4_ at 8
Signal received at grid_clb_7__3_ at 8
Signal received at grid_clb_7__2_ at 8
Signal received at grid_clb_7__1_ at 8
Signal received at grid_clb_8__1_ at 8
Signal received at grid_clb_8__2_ at 8
Signal received at grid_clb_8__3_ at 8
Signal received at grid_clb_8__4_ at 8
Signal received at grid_clb_8__5_ at 8
Signal received at grid_clb_8__6_ at 8
Signal received at grid_clb_8__7_ at 8
Signal received at grid_clb_8__8_ at 8
Signal received at grid_clb_8__9_ at 8
Signal received at grid_clb_8__10_ at 8
Signal received at grid_clb_8__11_ at 8
Signal received at grid_clb_8__12_ at 8
Signal received at grid_clb_9__12_ at 8
Signal received at grid_clb_9__11_ at 8
Signal received at grid_clb_9__10_ at 8
Signal received at grid_clb_9__9_ at 8
Signal received at grid_clb_9__8_ at 8
Signal received at grid_clb_9__7_ at 8
Signal received at grid_clb_9__6_ at 8
Signal received at grid_clb_9__5_ at 8
Signal received at grid_clb_9__4_ at 8
Signal received at grid_clb_9__3_ at 8
Signal received at grid_clb_9__2_ at 8
Signal received at grid_clb_9__1_ at 8
Signal received at grid_clb_10__1_ at 8
Signal received at grid_clb_10__2_ at 8
Signal received at grid_clb_10__3_ at 8
Signal received at grid_clb_10__4_ at 8
Signal received at grid_clb_10__5_ at 8
Signal received at grid_clb_10__6_ at 8
Signal received at grid_clb_10__7_ at 8
Signal received at grid_clb_10__8_ at 8
Signal received at grid_clb_10__9_ at 8
Signal received at grid_clb_10__10_ at 8
Signal received at grid_clb_10__11_ at 8
Signal received at grid_clb_10__12_ at 8
Signal received at grid_clb_11__12_ at 8
Signal received at grid_clb_11__11_ at 8
Signal received at grid_clb_11__10_ at 8
Signal received at grid_clb_11__9_ at 8
Signal received at grid_clb_11__8_ at 8
Signal received at grid_clb_11__7_ at 8
Signal received at grid_clb_11__6_ at 8
Signal received at grid_clb_11__5_ at 8
Signal received at grid_clb_11__4_ at 8
Signal received at grid_clb_11__3_ at 8
Signal received at grid_clb_11__2_ at 8
Signal received at grid_clb_11__1_ at 8
Signal received at grid_clb_12__1_ at 8
Signal received at grid_clb_12__2_ at 8
Signal received at grid_clb_12__3_ at 8
Signal received at grid_clb_12__4_ at 8
Signal received at grid_clb_12__5_ at 8
Signal received at grid_clb_12__6_ at 8
Signal received at grid_clb_12__7_ at 8
Signal received at grid_clb_12__8_ at 8
Signal received at grid_clb_12__9_ at 8
Signal received at grid_clb_12__10_ at 8
Signal received at grid_clb_12__11_ at 8
Signal received at grid_clb_12__12_ at 8
Simulation Finished in clocks 1152
Per Grid 8.0
Test Passed: ScanChainTestFull
Passed 1 tests (0 skipped)
*************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
*************************************************************************************************
** fpga_reset_hd_sky_pnr.ScanChainTestFull PASS 11580.00 1.28 9025.04 **
*************************************************************************************************
*************************************************************************************
** ERRORS : 0 **
*************************************************************************************
** SIM TIME : 11580.00 NS **
** REAL TIME : 1.33 S **
** SIM / REAL TIME : 8725.49 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ScanChainTestFull
Running test 1/1: ScanChainTestFull
Starting test: "ScanChainTestFull"
Description: None
Test Failed: ScanChainTestFull (result was TestFailure)
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ScanChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 151, in ScanChainTestFull
await with_timeout(FallingEdge(InstPtr), 50*CLK_PERIOD, 'ns')
File "/home/u1249762/.local/lib/python3.8/site-packages/cocotb/triggers.py", line 830, in with_timeout
raise cocotb.result.SimTimeoutError
cocotb.result.SimTimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/research/ece/lnis/USERS/DARPA_ERI/GF14nm_chip_2019/ICC2_Methodology_Flow/GANESH/FROG_PnR/FPGA1212_RESET_HD_SKY_PNR/Verification/ScanChainTestFull_run/fpga_reset_hd_sky_pnr.py", line 167, in ScanChainTestFull
raise TestFailure(f"Failed to receive signal on {ModuleName}")
cocotb.result.TestFailure: Failed to receive signal on grid_clb_1__12_
Failed 1 out of 1 tests (0 skipped)
*************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
*************************************************************************************************
** fpga_reset_hd_sky_pnr.ScanChainTestFull FAIL 512.50 0.65 783.37 **
*************************************************************************************************
*************************************************************************************
** ERRORS : 1 **
*************************************************************************************
** SIM TIME : 512.50 NS **
** REAL TIME : 0.73 S **
** SIM / REAL TIME : 697.56 NS/S **
*************************************************************************************
Shutting down...
Found test fpga_reset_hd_sky_pnr.ScanChainTestFull
Running test 1/1: ScanChainTestFull
Starting test: "ScanChainTestFull"
Description: None
Signal received at grid_clb_1__12_ at 8
Signal received at grid_clb_1__11_ at 8
Signal received at grid_clb_1__10_ at 8
Signal received at grid_clb_1__9_ at 8
Signal received at grid_clb_1__8_ at 8
Signal received at grid_clb_1__7_ at 8
Signal received at grid_clb_1__6_ at 8
Signal received at grid_clb_1__5_ at 8
Signal received at grid_clb_1__4_ at 8
Signal received at grid_clb_1__3_ at 8
Signal received at grid_clb_1__2_ at 8
Signal received at grid_clb_1__1_ at 8
Signal received at grid_clb_2__1_ at 8
Signal received at grid_clb_2__2_ at 8
Signal received at grid_clb_2__3_ at 8
Signal received at grid_clb_2__4_ at 8
Signal received at grid_clb_2__5_ at 8
Signal received at grid_clb_2__6_ at 8
Signal received at grid_clb_2__7_ at 8
Signal received at grid_clb_2__8_ at 8
Signal received at grid_clb_2__9_ at 8
Signal received at grid_clb_2__10_ at 8
Signal received at grid_clb_2__11_ at 8
Signal received at grid_clb_2__12_ at 8
Signal received at grid_clb_3__12_ at 8
Signal received at grid_clb_3__11_ at 9
Signal received at grid_clb_3__10_ at 8
Signal received at grid_clb_3__9_ at 8
Signal received at grid_clb_3__8_ at 8
Signal received at grid_clb_3__7_ at 8
Signal received at grid_clb_3__6_ at 8
Signal received at grid_clb_3__5_ at 8
Signal received at grid_clb_3__4_ at 8
Signal received at grid_clb_3__3_ at 8
Signal received at grid_clb_3__2_ at 8
Signal received at grid_clb_3__1_ at 8
Signal received at grid_clb_4__1_ at 8
Signal received at grid_clb_4__2_ at 8
Signal received at grid_clb_4__3_ at 8
Signal received at grid_clb_4__4_ at 8
Signal received at grid_clb_4__5_ at 8
Signal received at grid_clb_4__6_ at 8
Signal received at grid_clb_4__7_ at 8
Signal received at grid_clb_4__8_ at 8
Signal received at grid_clb_4__9_ at 8
Signal received at grid_clb_4__10_ at 8
Signal received at grid_clb_4__11_ at 8
Signal received at grid_clb_4__12_ at 8
Signal received at grid_clb_5__12_ at 8
Signal received at grid_clb_5__11_ at 8
Signal received at grid_clb_5__10_ at 8
Signal received at grid_clb_5__9_ at 8
Signal received at grid_clb_5__8_ at 8
Signal received at grid_clb_5__7_ at 8
Signal received at grid_clb_5__6_ at 8
Signal received at grid_clb_5__5_ at 8
Signal received at grid_clb_5__4_ at 8
Signal received at grid_clb_5__3_ at 8
Signal received at grid_clb_5__2_ at 8
Signal received at grid_clb_5__1_ at 8
Signal received at grid_clb_6__1_ at 8
Signal received at grid_clb_6__2_ at 8
Signal received at grid_clb_6__3_ at 8
Signal received at grid_clb_6__4_ at 8
Signal received at grid_clb_6__5_ at 8
Signal received at grid_clb_6__6_ at 8
Signal received at grid_clb_6__7_ at 8
Signal received at grid_clb_6__8_ at 8
Signal received at grid_clb_6__9_ at 8
Signal received at grid_clb_6__10_ at 8
Signal received at grid_clb_6__11_ at 8
Signal received at grid_clb_6__12_ at 8
Signal received at grid_clb_7__12_ at 8
Signal received at grid_clb_7__11_ at 8
Signal received at grid_clb_7__10_ at 8
Signal received at grid_clb_7__9_ at 8
Signal received at grid_clb_7__8_ at 8
Signal received at grid_clb_7__7_ at 8
Signal received at grid_clb_7__6_ at 8
Signal received at grid_clb_7__5_ at 8
Signal received at grid_clb_7__4_ at 8
Signal received at grid_clb_7__3_ at 8
Signal received at grid_clb_7__2_ at 8
Signal received at grid_clb_7__1_ at 8
Signal received at grid_clb_8__1_ at 8
Signal received at grid_clb_8__2_ at 8
Signal received at grid_clb_8__3_ at 8
Signal received at grid_clb_8__4_ at 8
Signal received at grid_clb_8__5_ at 8
Signal received at grid_clb_8__6_ at 8
Signal received at grid_clb_8__7_ at 8
Signal received at grid_clb_8__8_ at 8
Signal received at grid_clb_8__9_ at 8
Signal received at grid_clb_8__10_ at 8
Signal received at grid_clb_8__11_ at 8
Signal received at grid_clb_8__12_ at 8
Signal received at grid_clb_9__12_ at 8
Signal received at grid_clb_9__11_ at 8
Signal received at grid_clb_9__10_ at 8
Signal received at grid_clb_9__9_ at 8
Signal received at grid_clb_9__8_ at 8
Signal received at grid_clb_9__7_ at 8
Signal received at grid_clb_9__6_ at 8
Signal received at grid_clb_9__5_ at 8
Signal received at grid_clb_9__4_ at 8
Signal received at grid_clb_9__3_ at 8
Signal received at grid_clb_9__2_ at 8
Signal received at grid_clb_9__1_ at 8
Signal received at grid_clb_10__1_ at 8
Signal received at grid_clb_10__2_ at 8
Signal received at grid_clb_10__3_ at 8
Signal received at grid_clb_10__4_ at 8
Signal received at grid_clb_10__5_ at 8
Signal received at grid_clb_10__6_ at 8
Signal received at grid_clb_10__7_ at 8
Signal received at grid_clb_10__8_ at 8
Signal received at grid_clb_10__9_ at 8
Signal received at grid_clb_10__10_ at 8
Signal received at grid_clb_10__11_ at 8
Signal received at grid_clb_10__12_ at 8
Signal received at grid_clb_11__12_ at 8
Signal received at grid_clb_11__11_ at 8
Signal received at grid_clb_11__10_ at 8
Signal received at grid_clb_11__9_ at 8
Signal received at grid_clb_11__8_ at 8
Signal received at grid_clb_11__7_ at 8
Signal received at grid_clb_11__6_ at 8
Signal received at grid_clb_11__5_ at 8
Signal received at grid_clb_11__4_ at 8
Signal received at grid_clb_11__3_ at 8
Signal received at grid_clb_11__2_ at 8
Signal received at grid_clb_11__1_ at 8
Signal received at grid_clb_12__1_ at 8
Signal received at grid_clb_12__2_ at 8
Signal received at grid_clb_12__3_ at 8
Signal received at grid_clb_12__4_ at 8
Signal received at grid_clb_12__5_ at 8
Signal received at grid_clb_12__6_ at 8
Signal received at grid_clb_12__7_ at 8
Signal received at grid_clb_12__8_ at 8
Signal received at grid_clb_12__9_ at 8
Signal received at grid_clb_12__10_ at 8
Signal received at grid_clb_12__11_ at 8
Signal received at grid_clb_12__12_ at 8
Simulation Finished in clocks 1152
Per Grid 8.0
Test Passed: ScanChainTestFull
Passed 1 tests (0 skipped)
*************************************************************************************************
** TEST PASS/FAIL SIM TIME(NS) REAL TIME(S) RATIO(NS/S) **
*************************************************************************************************
** fpga_reset_hd_sky_pnr.ScanChainTestFull PASS 11580.00 1.34 8654.48 **
*************************************************************************************************
*************************************************************************************
** ERRORS : 0 **
*************************************************************************************
** SIM TIME : 11580.00 NS **
** REAL TIME : 1.38 S **
** SIM / REAL TIME : 8376.37 NS/S **
*************************************************************************************
Shutting down...

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,349 @@
import random
import os
import sys
import glob
import math
import cocotb
import logging
import filecmp
from logging.handlers import RotatingFileHandler
from collections import OrderedDict
from pprint import pprint
from xml.dom import minidom
from cocotb.binary import BinaryValue
from cocotb.log import SimLogFormatter
from cocotb.clock import Clock
from cocotb import wavedrom
from cocotb.utils import get_sim_time
from cocotb.handle import Force, Release, Deposit
from cocotb.monitors import Monitor
from cocotb.scoreboard import Scoreboard
from cocotb.result import SimTimeoutError, TestFailure, SimTimeoutError, TestSuccess
from cocotb.triggers import FallingEdge, RisingEdge, Timer, ClockCycles, with_timeout, First
root_logger = logging.getLogger()
file_handler = RotatingFileHandler(
"run.log", maxBytes=(5 * 1024 * 1024), backupCount=2)
root_logger.addHandler(file_handler)
# Caravel interface pin mapping
FromPinAlias = {
"prog_clk": "io_in[37]",
"clk": "io_in[36]",
"pReset": "io_in[3]",
"Reset": "io_in[2]",
"test_en": "io_in[0]",
"sc_head": "io_in[26]",
"sc_tail": "io_in[11]",
"ccff_head": "io_in[12]",
"ccff_tail": "io_in[35]",
}
def getFromPinAlias(dut, pinName):
''' Get DUT pin from alias '''
return eval(f"dut.{FromPinAlias[pinName]}")
@cocotb.test()
async def ConfigChainTestFull(dut):
# = = = = = = = Get Design Variable = = = = = = = = = = = = = = = = =
PConf = getConfig()
clk = getFromPinAlias(dut, "clk")
prog_clk = getFromPinAlias(dut, "prog_clk")
test_en = getFromPinAlias(dut, "test_en")
pReset = getFromPinAlias(dut, "pReset")
Reset = getFromPinAlias(dut, "Reset")
ccff_head = getFromPinAlias(dut, "ccff_head")
ccff_tail = getFromPinAlias(dut, "ccff_tail")
PCLK_PERIOD = 10 # in nanoseconds
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
clk <= 0 # Disable prog clock
Reset <= 0 # Disable reset
pReset <= 0 # Reset all configuration FF
pclock = Clock(prog_clk, PCLK_PERIOD*0.5, units="ns")
cocotb.fork(pclock.start()) # Start the clock
# Clock Preamble Ticks 2
await ClockCycles(prog_clk, 2)
await FallingEdge(prog_clk)
pReset <= 1
# Pass 1 bit logic to CCFF chain
ccff_head <= 1
await FallingEdge(prog_clk)
ccff_head <= 0
# Check CCFF_tail of each module in sequence
CCFFChain = filter(lambda x: not "grid_io" in x, CreateCCFFChain())
try:
start_ccff_time = get_sim_time(units='ns')
for ModuleName in CCFFChain:
InstPtr = eval(f"dut.fpga_core_uut.{ModuleName}.ccff_tail")
# Wait for tick
start_time_ns = get_sim_time(units='ns')
await with_timeout(FallingEdge(InstPtr), 200*PCLK_PERIOD, 'ns')
edge_time_ns = get_sim_time(units='ns')
# Verify
CLKTick = math.ceil((edge_time_ns-start_time_ns)/PCLK_PERIOD)
dut._log.info(
f"Signal received at {ModuleName} at {CLKTick}")
if (CLKTick != 8):
TestFailure(
f"Expected 8 ticks on module {ModuleName} received {CLKTick}")
end_ccff_time = get_sim_time(units='ns')
await ClockCycles(prog_clk, 10)
TotalClock = math.ceil((end_ccff_time-start_ccff_time)/PCLK_PERIOD)
dut._log.info(f"Simulation Finished in clocks {TotalClock}")
except SimTimeoutError:
raise TestFailure(f"Failed to receive signal on {ModuleName}")
@cocotb.test()
async def ScanChainTestFull(dut):
# = = = = = = = Get Design Variable = = = = = = = = = = = = = = = = =
PConf = getConfig()
clk = getFromPinAlias(dut, "clk")
prog_clk = getFromPinAlias(dut, "prog_clk")
pReset = getFromPinAlias(dut, "pReset")
Reset = getFromPinAlias(dut, "Reset")
test_en = getFromPinAlias(dut, "test_en")
sc_head = getFromPinAlias(dut, "sc_head")
sc_tail = getFromPinAlias(dut, "sc_tail")
CLK_PERIOD = 10 # in nanoseconds
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
prog_clk <= 0 # Disable prog clock
pReset <= 0 # Disable programming reset
Reset <= 0 # Disable reset
clock = Clock(clk, CLK_PERIOD*0.5, units="ns")
cocotb.fork(clock.start()) # Start the clock
# Clock Preamble Ticks 2
await ClockCycles(clk, 2)
# Setup control signals
await FallingEdge(clk)
test_en <= 1
Reset <= 1
# Pass 1 bit logic to SCFF chain
sc_head <= 1
await FallingEdge(clk)
sc_head <= 0
try:
start_scff_time = get_sim_time(units='ns')
for X in range(1, 1+PConf["FPGA_SIZE_X"]):
Yrange = range(1, 1+PConf["FPGA_SIZE_X"])
Yrange = reversed(Yrange) if (X % 2) else Yrange
for Y in Yrange:
ModuleName = f"grid_clb_{X}__{Y}_"
PinName = "SC_OUT_BOT" if (X % 2) else "SC_OUT_TOP"
InstPtr = eval(f"dut.fpga_core_uut.{ModuleName}.{PinName}")
# Wait for tick
start_time_ns = get_sim_time(units='ns')
await with_timeout(FallingEdge(InstPtr), 50*CLK_PERIOD, 'ns')
edge_time_ns = get_sim_time(units='ns')
# Verify
CLKTick = math.ceil((edge_time_ns-start_time_ns)/CLK_PERIOD)
dut._log.info(
f"Signal received at {ModuleName} at {CLKTick}")
if (CLKTick != 8):
TestFailure(
f"Expected 8 ticks on module {ModuleName} received {CLKTick}")
end_scff_time = get_sim_time(units='ns')
TotalClock = math.ceil((end_scff_time-start_scff_time)/CLK_PERIOD)
await ClockCycles(clk, 10)
dut._log.info(f"Simulation Finished in clocks {TotalClock}")
dut._log.info(f"Per Grid {TotalClock/(PConf['FPGA_SIZE_X']**2)}")
except SimTimeoutError:
raise TestFailure(f"Failed to receive signal on {ModuleName}")
# ###================================================================
# = = = = = = = = = = Utils Functions = = = = = = = = = = = = = = = =
# ###================================================================
def getConfig():
"""
return config.sh varaibles with default values
"""
return {
"TECHNOLOGY": os.environ.get('TECHNOLOGY', 'skywater'),
"PROJ_NAME": os.environ.get('PROJ_NAME', None),
"DESIGN_STYLE": os.environ.get('DESIGN_STYLE', "hier"),
"FPGA_SIZE_X": int(os.environ.get('FPGA_SIZE_X', 0)),
"FPGA_SIZE_Y": int(os.environ.get('FPGA_SIZE_Y', 0)),
}
@cocotb.coroutine
async def ProgramPhase(dut, BitFile, maxCycles=sys.maxsize):
dut.pReset_pad = 0
bitCount = 0
with open(BitFile, "r") as fp:
dut._log.info(f"Bitfile opened : {BitFile}")
while bitCount < maxCycles:
c = fp.read(1)
if not c in ["0", "1"]:
dut._log.info(f"Configured device with {bitCount} bits")
break
bitCount += 1
if (bitCount % 50) == 0:
dut._log.info(f"Writen {bitCount} bits")
dut.ccff_head_pad = int(c)
await FallingEdge(dut.prog_clk_pad)
@cocotb.coroutine
async def AutoConfigure(dut, BitFile, ccPaths, BitstreamLen):
TotalBitsCount = 0
PreviousSync = 0
# Locking Signal
with open(BitFile, "r") as fp:
dut._log.info(f"Bitfile opened {BitFile}")
syncPts = math.ceil(BitstreamLen/4800)
InitialBits = [int(i) for i in list(fp.read(syncPts+1))]
dut._log.info(f"Will make total {syncPts} sync {InitialBits}")
for inst, eachModule in ccPaths.items():
BitsCount = 0
for eachPath in eachModule:
size = eachPath["width"]
BitsCount += size
try:
Stream = fp.read(size)
bits = int(Stream, 2)
except:
dut._log.info(f"Padding Zero")
bits = 0
eachPath["obj"] <= Force(bits)
TotalBitsCount += BitsCount
dut._log.info(f"Configured {inst} with {BitsCount} bits ")
dut.ccff_head_pad <= InitialBits.pop()
await FallingEdge(dut.prog_clk_pad)
# Releasing Signals
PreviousSync = 0
TotalBitsCount = 0
for inst, eachModule in ccPaths.items():
for eachPath in eachModule:
eachPath["obj"] <= Release()
TotalBitsCount += eachPath["width"]
if (TotalBitsCount-PreviousSync) > 4800:
dut.ccff_head_pad <= InitialBits.pop()
await FallingEdge(dut.prog_clk_pad)
PreviousSync = TotalBitsCount
dut._log.info(f"Releasing config of {inst}")
dut.ccff_head_pad <= InitialBits.pop()
await FallingEdge(dut.prog_clk_pad)
dut._log.info(f"Configured {TotalBitsCount} bits")
def SaveConfiguration(CFFPaths, filename, style="default"):
lineW = 0
with open(filename, "w") as fp:
for _, eachModule in CFFPaths.items():
for eachPath in eachModule:
val = eachPath["obj"].value.binstr
if style == 'default':
val = "\n".join(list(val))
fp.write(val+"\n")
elif style == "bitstream":
fp.write(val)
elif style == "detailed":
fp.write(f"{eachPath['name']} {val}\n")
elif style == "adjusted":
for eachC in val:
fp.write(eachC)
lineW += 1
if (lineW == 32):
fp.write("\n")
lineW = 0
def CreateCCFFChain():
CCFFChain = []
mydoc = minidom.parse(
glob.glob("./TaskConfigCopy/*_task/arch/fabric_key.xml")[0])
items = mydoc.getElementsByTagName('key')
for elem in items:
CCFFChain.append(elem.attributes['alias'].value)
return CCFFChain
def returnPaths(Node, PathList):
Nodes = [e for e in Node.childNodes if not isinstance(e, minidom.Text)]
# pprint(Nodes)
for eachN in Nodes:
eachNChild = [
e for e in eachN.childNodes if not isinstance(e, minidom.Text)]
Bitstream = [e for e in eachNChild if e.tagName == "bitstream"]
if Bitstream:
Hier = eachN.getElementsByTagName("hierarchy")[0]
path = [each.attributes["name"].value
for each in Hier.getElementsByTagName("instance")]
path = ".".join(path).replace('fpga_top', 'dut.fpga_core_uut')
bitEles = Bitstream[0].getElementsByTagName("bit")
ports = [path + "." + each.attributes["memory_port"].value.split("[")[0]
for each in bitEles[:1]]
length = len(bitEles)
value = "".join([e.attributes["value"].value for e in bitEles])
PathList.append({
"name": ports[0],
"width": length,
"value": value
})
elif eachN.tagName == "bitstream_block":
returnPaths(eachN, PathList)
def get_modules():
FabricKey = minidom.parse(
glob.glob("./TaskConfigCopy/*_task/arch/fabric_key.xml")[0])
items = FabricKey.getElementsByTagName('key')
return [elem.attributes['alias'].value for elem in items]
def CreateCCFFChainPaths(dut):
BitstreamXML = minidom.parse(
glob.glob("./TESTBENCH/top/fabric_indepenent_bitstream.xml")[0])
ModulesDict = {}
BT_BLocks = BitstreamXML.getElementsByTagName('bitstream_block')
for element in BT_BLocks:
if element.getAttribute('hierarchy_level') == "1":
ModulesDict[element.attributes['name'].value] = element
FabricKey = minidom.parse(
glob.glob("./TaskConfigCopy/*_task/arch/fabric_key.xml")[0])
items = FabricKey.getElementsByTagName('key')
pathList = OrderedDict()
chainLength = 0
for elem in items:
modulePaths = []
moduleLen = 0
inst = elem.attributes['alias'].value
returnPaths(ModulesDict[inst], modulePaths)
for eachEle in modulePaths:
eachEle["obj"] = eval(eachEle["name"])
moduleLen += eachEle["width"]
pathList[inst] = modulePaths
chainLength += moduleLen
return (chainLength, pathList)
if __name__ == "__main__":
CC = CreateCCFFChainPaths(None)
pprint(CC["grid_clb_1__2_"][:5])
pprint(len(CC["grid_clb_1__2_"]))