VSD 2019 Read parasitics with hierarchy delimiters using openSTA contest

VSD 2019 Read parasitics with hierarchy delimiters using openSTA contest

Problem Statement – Participants are expected to develop a work-around or fix read_parasitics source code of openSTA tool which will be able to read name-mapping/namespace/hierarchical delimiters related industry-grade spef’s

Inputs given for code development and testing:

  • A test-case with post-layout RTL netlist, industry grade SPEF, constraints in SDC format and run file to execute openSTA
  • Industry grade 180nm PDK’s (standard cells, memories, pads) LIB format

Expected output from this contest:

A code or bug fix with using existing open-source placement tool openSTA which will read any industry grade parasitics

An explanation of the problem statement with an example is below:

After reading parasitics, we get below opensta warning

opensta warning:

Warning: /home/anaghavsd/Desktop/work/to_kunal/mkSoc_wrapper.post_route.spef.max, line 1757581 net U1/lv_result__h66626\[5\] not found.

But when debugged more in SPEF file we see below:

Inside SPEF File:

*2233 U1/lv_result__h66626\[5\]

**Line no. 1757581** 78 *143:55 *2233:13 0.1392269

*D_NET *2233 4.270612

*CONN

*I *2234:Z O *L 0.0 *D dl03d1 *C 664.895 5310.3

*I *2235:A1 I *L 4.929 *C 668.2 5299.12

*N *2233:3 *C 664.28 5312.0

*N *2233:4 *C 664.28 5312.0

*N *2233:5 *C 664.28 5310.84

*N *2233:6 *C 664.28 5310.84

*N *2233:7 *C 666.52 5310.84

*N *2233:8 *C 666.52 5310.84

*N *2233:9 *C 666.52 5300.28

*N *2233:10 *C 666.52 5300.28

*N *2233:11 *C 668.2 5300.28

*N *2233:12 *C 668.2 5300.28

*N *2233:13 *C 668.2 5299.12

*CAP

1 *2234:Z 0.06939172

2 *2235:A1 0.0

3 *2233:3 0.1211474

4 *2233:4 0.06939172

5 *2233:5 0.2014812

6 *2233:6 0.1211474

7 *2233:7 0.2014812

8 *2233:8 0.6075613

9 *2233:9 0.2244984

10 *2233:10 0.6075613

11 *2233:11 0.2244984

12 *2233:12 0.101769

13 *2233:13 0.101769

14 *2233:12 *143:55 0.1392269

15 *2233:13 *143:55 0.1392269

16 *2233:8 *650420:9 0.4570534

17 *2233:10 *650420:9 0.4570534

18 *2233:8 *650438:264 0.0314983

19 *2233:10 *650438:264 0.0314983

20 *2233:10 *650438:263 0.03416146

21 *2233:10 *650438:265 0.09252438

22 *2233:3 *650438:264 0.1183352

*RES

1 *2233:3 *2233:4 6.000001

2 *2233:5 *2233:6 6.000001

3 *2233:7 *2233:8 6.000001

4 *2233:9 *2233:10 6.000001

5 *2233:11 *2233:12 6.000001

6 *2233:13 *2235:A1 6.000001

7 *2233:4 *2234:Z 0.1885714

8 *2233:6 *2233:3 0.4400001

9 *2233:10 *2233:8 3.125714

10 *2233:13 *2233:12 0.4400001

11 *2233:5 *2233:7 0.7485715

12 *2233:9 *2233:11 0.5885715

Opensta timing reports

After loading the verilog, when we use the below commands, we do see the net. So where is the net not found?

% get_nets U1/lv_result__h66626\[5\]

_60ace52700000000_p_Net

%  report_checks -digits 4 -fields {capacitance transition_time input_pins nets fanout} -no_line_splits -path_delay max  -through [get_nets U1/lv_result__h66626\[5\] ]

Startpoint: U1/dma_dma_ccr_5_reg_16_ (rising edge-triggered flip-flop clocked by CLK)

Endpoint: U1/dma_rg_cpa_5_reg_5_ (rising edge-triggered flip-flop clocked by CLK)

Path Group: CLK

Path Type: max

Fanout        Cap       Slew      Delay       Time   Description

———————————————————————————————

0.0000     0.0000   clock CLK (rise edge)

6.7393     6.7393   clock network delay (propagated)

0.3830     0.0000     6.7393 ^ U1/dma_dma_ccr_5_reg_16_/CP (sdnrb1)

0.0788     0.5712     7.3104 v U1/dma_dma_ccr_5_reg_16_/Q (sdnrb1)

1     0.0063                                    U1/MUX_dma_m_xactor_f_rd_addr_enq_1__VAL_6_22 (net)

0.0788     0.0001     7.3106 v U1/U7585/I (buffd3)

0.0839     0.2168     7.5274 v U1/U7585/Z (buffd3)

1     0.0081                                    U1/n744 (net)

0.0839     0.0002     7.5276 v U1/U78812/I (bufbd4)

0.0707     0.1681     7.6956 v U1/U78812/Z (bufbd4)

1     0.0090                                    U1/n83296 (net)

0.0707     0.0002     7.6958 v U1/U78466/I (buffd7)

0.0697     0.1758     7.8716 v U1/U78466/Z (buffd7)

2     0.0150                                    U1/n82946 (net)

0.0697     0.0003     7.8719 v U1/U54722/I (bufbd3)

0.0805     0.1445     8.0164 v U1/U54722/Z (bufbd3)

2     0.0209                                    U1/n58764 (net)

0.0805     0.0004     8.0169 v U1/U96990/I (buffd1)

0.3433     0.3475     8.3643 v U1/U96990/Z (buffd1)

7     0.0577                                    U1/n102366 (net)

0.3433     0.0016     8.3660 v U1/DP_OP_3952J2_127_2298/U167/I (buffd1)

0.0853     0.2665     8.6325 v U1/DP_OP_3952J2_127_2298/U167/Z (buffd1)

1     0.0048                                    U1/DP_OP_3952J2_127_2298/n248 (net)

0.0853     0.0001     8.6326 v U1/DP_OP_3952J2_127_2298/U279/I (dl01d2)

0.1525     0.5225     9.1551 v U1/DP_OP_3952J2_127_2298/U279/Z (dl01d2)

1     0.0057                                    U1/DP_OP_3952J2_127_2298/n142 (net)

0.1525     0.0001     9.1552 v U1/DP_OP_3952J2_127_2298/U280/I (dl01d2)

0.1497     0.5333     9.6885 v U1/DP_OP_3952J2_127_2298/U280/Z (dl01d2)

1     0.0052                                    U1/DP_OP_3952J2_127_2298/n143 (net)

0.1497     0.0001     9.6886 v U1/DP_OP_3952J2_127_2298/U755/A2 (nr02d0)

0.8731     0.4852    10.1737 ^ U1/DP_OP_3952J2_127_2298/U755/ZN (nr02d0)

1     0.0149                                    U1/DP_OP_3952J2_127_2298/n671 (net)

0.8731     0.0004    10.1742 ^ U1/DP_OP_3952J2_127_2298/U119/I (dl01d1)

0.2248     0.7421    10.9163 ^ U1/DP_OP_3952J2_127_2298/U119/Z (dl01d1)

2     0.0121                                    U1/DP_OP_3952J2_127_2298/n138 (net)

0.2248     0.0004    10.9167 ^ U1/DP_OP_3952J2_127_2298/U649/A2 (an12d1)

0.3693     0.2971    11.2137 ^ U1/DP_OP_3952J2_127_2298/U649/Z (an12d1)

2     0.0300                                    U1/DP_OP_3952J2_127_2298/n669 (net)

0.3694     0.0013    11.2150 ^ U1/DP_OP_3952J2_127_2298/U643/A2 (nd02d0)

0.3339     0.2181    11.4331 v U1/DP_OP_3952J2_127_2298/U643/ZN (nd02d0)

3     0.0128                                    U1/DP_OP_3952J2_127_2298/n673 (net)

0.3339     0.0002    11.4333 v U1/DP_OP_3952J2_127_2298/U555/I (inv0d1)

0.1413     0.1331    11.5664 ^ U1/DP_OP_3952J2_127_2298/U555/ZN (inv0d1)

1     0.0054                                    U1/DP_OP_3952J2_127_2298/n678 (net)

0.1413     0.0001    11.5665 ^ U1/DP_OP_3952J2_127_2298/U658/B2 (aoi21d1)

0.1942     0.1247    11.6912 v U1/DP_OP_3952J2_127_2298/U658/ZN (aoi21d1)

2     0.0133                                    U1/DP_OP_3952J2_127_2298/n686 (net)

0.1942     0.0003    11.6915 v U1/DP_OP_3952J2_127_2298/U667/B1 (oai21d1)

0.8122     0.4559    12.1474 ^ U1/DP_OP_3952J2_127_2298/U667/ZN (oai21d1)

2     0.0200                                    U1/DP_OP_3952J2_127_2298/n710 (net)

0.8122     0.0009    12.1483 ^ U1/DP_OP_3952J2_127_2298/U684/B1 (aoi21d2)

0.1328     0.3757    12.5240 v U1/DP_OP_3952J2_127_2298/U684/ZN (aoi21d2)

2     0.0327                                    U1/DP_OP_3952J2_127_2298/n758 (net)

0.1328     0.0013    12.5253 v U1/DP_OP_3952J2_127_2298/U685/I (inv0d2)

0.1592     0.1115    12.6369 ^ U1/DP_OP_3952J2_127_2298/U685/ZN (inv0d2)

3     0.0225                                    U1/DP_OP_3952J2_127_2298/n730 (net)

0.1592     0.0005    12.6374 ^ U1/DP_OP_3952J2_127_2298/U690/A1 (xn02d1)

0.1289     0.2710    12.9085 v U1/DP_OP_3952J2_127_2298/U690/ZN (xn02d1)

1     0.0084                                    U1/DP_OP_3952J2_127_2298/n32 (net)

0.1289     0.0002    12.9086 v U1/DP_OP_3952J2_127_2298/U23/I (buffd1)

0.0917     0.2155    13.1242 v U1/DP_OP_3952J2_127_2298/U23/Z (buffd1)

1     0.0060                                    U1/DP_OP_3952J2_127_2298/n231 (net)

0.0917     0.0001    13.1243 v U1/DP_OP_3952J2_127_2298/U124/I (dl03d1)

0.3833     2.3981    15.5224 v U1/DP_OP_3952J2_127_2298/U124/Z (dl03d1)

1     0.0030                                    **U1/lv_result__h66626[5]** (net)

0.3833     0.0000    15.5224 v U1/U26534/A1 (aor22d1)

0.1082     0.2456    15.7680 v U1/U26534/Z (aor22d1)

1     0.0073                                    U1/n5537 (net)

0.1082     0.0002    15.7681 v U1/dma_rg_cpa_5_reg_5__U3/I0 (mx02d4)

0.1199     0.3415    16.1096 v U1/dma_rg_cpa_5_reg_5__U3/Z (mx02d4)

1     0.0074                                    U1/n23827 (net)

0.1199     0.0001    16.1098 v U1/U78973/I (dl03d1)

0.4280     2.4393    18.5490 v U1/U78973/Z (dl03d1)

1     0.0049                                    U1/n83458 (net)

0.4280     0.0000    18.5490 v U1/U119807/I (bufbd4)

0.0775     0.2558    18.8048 v U1/U119807/Z (bufbd4)

1     0.0118                                    U1/n119222 (net)

0.0775     0.0002    18.8050 v U1/U119809/I (buffd2)

0.0611     0.1311    18.9362 v U1/U119809/Z (buffd2)

1     0.0053                                    U1/n119224 (net)

0.0611     0.0001    18.9363 v U1/U119808/I (buffd3)

0.0733     0.2024    19.1387 v U1/U119808/Z (buffd3)

1     0.0033                                    U1/n119223 (net)

0.0733     0.0001    19.1388 v U1/dma_rg_cpa_5_reg_5_/D (sdnrb1)

19.1388   data arrival time

20.0000    20.0000   clock CLK (rise edge)

6.7002    26.7002   clock network delay (propagated)

-0.9000    25.8002   clock uncertainty

0.0000    25.8002   clock reconvergence pessimism

25.8002 ^ U1/dma_rg_cpa_5_reg_5_/CP (sdnrb1)

-0.4036    25.3966   library setup time

25.3966   data required time

———————————————————————————————

25.3966   data required time

-19.1388   data arrival time

———————————————————————————————

6.2578   slack (MET)

Steps to run testcase

  1. Download
  2. tar -xvzf testcase.tar.gz
  3. cd testcase
  4. sta -f mkSoc_wrapper.post_route.osu.cmd

Testcase:

https://1drv.ms/u/s!Ai4WW_jutenggas652Vq2moOnyRA-g

You can check some of below nets
% get_nets U1/qspi1$slave_rdata[63]
_e0bebf0700000000_p_Net
% get_nets U1/qspi1/v__h15039[17]
_f06ed30700000000_p_Net

Terms and condition:

  1. You are free to use the source code of existing (and only) opensource tools like openSTA, openTimer.
  2. Each line of your code needs to be open-sourced and documented

Registration for Ethical RISC-V IoT Workshop

Welcome to Ethical RISC-V IoT Workshop

The “Ethical RISC-V IoT Workshop” at IIIT Bangalore, organized in collaboration with VSD, is a structured, educational competition aimed at exploring real-world challenges in IoT and embedded systems. Participants progress through three stages: building an application, injecting and managing faults, and enhancing application security. The event spans from May 9 to June 15, 2024, culminating in a showcase of top innovations and an award ceremony. This hands-on hackathon emphasizes learning, testing, and securing applications in a collaborative and competitive environment.

Rules :
  1. Only for Indian Student whose college is registered under VTU
  2. Only team of 2 members can Register
  3. Use only VSDSquadron Mini resources for product development
Awards :
  1. Prize money for final 10 Team
  2. 3 Winner team’s Product will be evaluated for Incubation
  3. 7 consolation prizes
  4. Completion Certificate to final round qualifier
  5. Chance to build a Proud Secured RISC-V Platform for India

Date for Registration : 9th May - 22nd May, 2024
Hackathon Inauguration : 23rd May 2024

VSDSquadron (Educational Board)

VSDSquadron, a cutting-edge development board based on the RISC-V architecture that is fully open-source. This board presents an exceptional opportunity for individuals to learn about RISC-V and VLSI chip design utilizing only open-source tools, starting from the RTL and extending all the way to the GDSII. The possibilities for learning and advancement with this technology are limitless.

Furthermore, the RISC-V chips on these boards should be open for VLSI chip design learning, allowing you to explore PNR, standard cells, and layout design. And guess what? vsdsquadron is the perfect solution for all your needs! With its comprehensive documentation and scalable labs, thousands of students can learn and grow together.

VSD HDP (Hardware Design Program) Duration-10 Week

With VSD Hardware Design Program (VSD-HDP),  you have the opportunity to push the boundaries of what exist in open source and establish the new benchmark for tomorrow.

It will leverage your degree in Electrical or Computer Engineering to work with

  • Programmable logic
  • Analog/ digital IP
  • RISC-V
  • Architecture & microprocessors
  • ASICs and SoCs on high-density digital or RF circuit cards
  • Gain hands-on knowledge during design validation and system integration.

Sounds exciting to just get started with expert mentors, doesn’t it? But we are looking for the next generation of learners, inventors, rebels, risk takers, and pioneers.

“Spend your summer working in the future !!”

Outcomes of VSD Online Research IP Design Internship Program

  1. Job opportunities in Semiconductor Industry
  2. Research work can be submitted to VLSI International journals
  3. Participate in Semiconductor International Conference with Internship Research Work
  4. Paper Publications in IEEE Conference and SIG groups
  5. Tape out opportunity and IP Royalty
  6. Interact with world class Semiconductor designer and researchers
  7. Academic professions where more research projects are encouraged.
  8. All the above research and publication work will help colleges and institutes to improve accreditation levels.

Know More Information

VSD – Intelligent Assessment Technology (VSD-IAT)

VSD – Intelligent Assessment Technology (VSD-IAT) is expertly built training platform and is suited for designer requirements. Semiconductor companies understand the value of training automation and Engineer performance enhancement, and do not need to be convinced of the impact of a virtual platform for learning. VSD trainings are quick, relevant, and easy to access from any device at any time zone.

VSD Intern Webinars

VSD Interns made it happen !!

VSD is working towards creating innovative talent pool who are ready to develop design and products for the new tech world. VSD believes in “Learning by doing principle” , and always prepare the student to apply the knowledge learned in the workshops, webinars and courses. We always push our students to work on new designs, test it and work continuously till it becomes the best performing design. Any student who enrolls to VSD community starts working with small design and grows with us and develops a tapeout level design with complete honesty and dedication towards the Work !!

Check out VSD Interns Achievement!

VSDOpen Online Conference

Welcome to the World’s only online conference in Semiconductor Industry VSDOpen Conference. With enormous support and global presence of audience from different segments of industrial lobby and academia made a highly successful event. Evolution is change in the genetic makeup of a population over time, online conference is one kind evaluation everyone adapt soon. 

  • VSDOpen 2022 is an online conference to share open-source research with the community and promote  hardware design mostly done by the student community.
  • VSDOpen 2022 is based on the theme “How to lower the cost to learn, build, and tapeout chips ?”  , which will provide a platform to community to build stronger designs and strengthen the future of Chip design.
  • VSDOpen is envisioned to create a community based revolution in semiconductor hardware technology.
  • The open source attitude is required to bring out the talent and innovation from the community who are in remote part of world and have least access to the technologies.  And now Google support will help to bring the vision to execution by VSD team

VSD Online Course by Kunal Ghosh

VSD offers online course in complete spectrum of vlsi backend flow from RTL design, synthesis and Verification, SoC planning and design, Sign-off analysis, IP Design, CAD/EDA automation and basic UNIX/IT, Introduction to latest technology – RISC-V, Machine intelligence in EDA/CAD, VLSI Interview FAQ’s.

Current Reach – As of 2021, VSD and its partners have released 41 online VLSI courses and was successfully able to teach  ~35900 Unique students around 151 countries in 47 different languages, through its unique info-graphical and technology mediated learning methods.

Enquiry Form