CoAsia SEMI VN REPORT: PHYSICAL DESIGN Author: PHAN VAN MINH THUAN REVISION HISTORY Revision Author Date Description of changes 0.1 Thuan 05/03/2024 Complete lab 0: IC Compiler II GUI 1.1 Thuan 05/03/2024 Complete lab 2: Floorplanning 2.1 Thuan 12/03/2024 Complete lab 3: Placement and optimization 3.1 Thuan 12/03/2024 Complete lab 5: Design setup 4.1 Thuan 17/03/2024 Complete lab 7: Running CTS Student Project, VLSI 2023.1 5.1 Thuan CONFIDENTIAL 25/03/2024 Complete lab 8: Clock Tree Synthesis Complete lab 11:Routing and Post –Route Optimization, Signoff 1 Student Project, VLSI 2023.1 TABLE OF CONTENTS Contents REVISION HISTORY ......................................................................................................................................................0 TABLE OF CONTENTS .................................................................................................................................................2 1. Lab 0: IC COMPLIER GUI ........................................................................................................................................5 1.1. Launch IC Compiler II .....................................................................................................................................5 1.2. Navigating the layout view ...........................................................................................................................5 1.3. Controlling logic and layer visibility .........................................................................................................8 1.4. Layer tab ..............................................................................................................................................................9 1.5. Controlling the view level .......................................................................................................................... 11 1.6. Timing analysis .............................................................................................................................................. 12 2. Lab 2: Floorplaning ............................................................................................................................................... 13 2.1. Initial Floorplanning using the Task Assistant .................................................................................. 13 2.2. Bocking Shaping ............................................................................................................................................ 16 2.3. Macro and Standard Cell Placement ...................................................................................................... 17 2.4. Place the block port ...................................................................................................................................... 18 2.5. Task 6 : Congestion map ............................................................................................................................. 20 2.6. Analyze Macro Placement using DFF .................................................................................................... 21 2.7. Task 8: Register Tracing ............................................................................................................................. 23 2.8. Remove PG Routes:....................................................................................................................................... 26 2.9. Power network synthesis .......................................................................................................................... 27 3. Lab 3: Placement and optimization ................................................................................................................ 27 3.1. Load and check initial design ................................................................................................................... 27 3.2. Task 2: Place and optimize the Design: ................................................................................................ 28 4. Lab 5 : Design setup .............................................................................................................................................. 33 4.1. Directory Structure and Invoking ICC II ............................................................................................... 33 4.2. Setup Variables and Settings .................................................................................................................... 33 4.3. Design Library, Netlist and UPF .............................................................................................................. 35 4.4. Load Floorplan and Scan-DEF .................................................................................................................. 41 4.5. Placement Site and Routing Layer Settings ........................................................................................ 42 5. LAB 6: TIMING SETUP ......................................................................................................................................... 43 5.1. Open the block from lab 5 .......................................................................................................................... 43 5.2. Multi-Corner Multi-Mode Setup .............................................................................................................. 43 5.3. Zero-Interconnect (ZIC) Timing Sanity Check ................................................................................... 47 6. LAB 7: RUNING CTS .............................................................................................................................................. 49 CONFIDENTIAL 2 Student Project, VLSI 2023.1 6.1. Timming QoR summary .............................................................................................................................. 49 6.2. Post-CTS I/O Latency ................................................................................................................................... 52 6.3. Run Comprehensive Clock Tree Checking ........................................................................................... 52 6.4. Option A: Perform Classic CTS: ................................................................................................................ 55 6.5. Option B: Concurrent Clock & Data Flow: ........................................................................................... 58 6.6. Analysis ............................................................................................................................................................. 59 7. Lab 8 : Clock Tree Synthesis .............................................................................................................................. 62 7.1. Load the Design and Analyze the Clocks .............................................................................................. 62 7.2. Clock Tree Balancing ................................................................................................................................... 64 7.3. Define CTS Non-Default Routing Rules: ............................................................................................... 69 7.4. Timing and DRC Constraints..................................................................................................................... 70 7.5. Perform CTS and Analyze the Results ................................................................................................... 75 8. Lab 11: Routing and PostRoute Optimization, Signoff ............................................................................ 77 CONFIDENTIAL 3 Student Project, VLSI 2023.1 CONFIDENTIAL 4 Student Project, VLSI 2023.1 1. Lab 0: IC COMPLIER GUI 1.1. Launch IC Compiler II Commanded and output log files is created in above finger. . cmd file including initialization command during set up. .log file records command and command log after tool set up. .txt file that also contains all output. 1.2. Navigating the layout view Figure 1.1: Layout view Information: Green rectangle: std cell, macros, Pink mess ( vertical and horizontal ) Zoom and pans button [+] or [=] is zoom-in 2x, [-] is zoom-out 2x. Press esc to exit the zoom and pan mode. CONFIDENTIAL 5 Student Project, VLSI 2023.1 Figure 1.2: Hotkeys View hot keys in report.1-Hotkeys Hots-key can be defined by gui_set_hotkeys. Use mouse strokes to pan and zoom CONFIDENTIAL 6 Student Project, VLSI 2023.1 Figure 1.3: Zoom in an area Display overview of view Figure 1.4: Display overview of view CONFIDENTIAL 7 Student Project, VLSI 2023.1 1.3. Controlling logic and layer visibility Preset: floorplan Figure 1.5: View setting Uncheck: route apply CONFIDENTIAL 8 Student Project, VLSI 2023.1 Figure 1.6. Layout after uncheck route 1.4. Layer tab Uncheck “All layer” and then check “Routing”, click green check to apply. In order to understand PG mesh, uncheck M7, M8: Figure 1.7. Layout after uncheck layer tab Tick M7 to view wide horizontal : CONFIDENTIAL 9 Student Project, VLSI 2023.1 Figure 1.8. View wire horizontal Tick M8 to view vertical straps Figure 1.9 View vertical straps Querying and selection objects To obtain a full query. CONFIDENTIAL 10 Figure 1.10. Queying and selection objects Student Project, VLSI 2023.1 1.5. Controlling the view level Outline pattern of hard macros. Hard macros: Block level designs with completed layout,cant configure Macros are SRAMs Figure 1.10. View hard macros Routing blockages: Specific locations where placing of cells are blocked. Hard blockage: : Block std. cell placement completely Soft blockage: Only buffers/inverters can be placed Halo: Similar to Soft Blockage, respect Macro (while other blockages respect location), move along with the macro when moves. CONFIDENTIAL 11 Student Project, VLSI 2023.1 Figure 1.12. Routing Blockages 1.6. Timing analysis Figure 1.13. Timing analysis Include: Scenario, Mode, Conrner, Path Group, Analysis, Endpoint, NVE, WNS Violating paths show up as red bars . In above figure, it is all red bars. Choose “select worst path”, you will see the timing path in the layout view. CONFIDENTIAL 12 Student Project, VLSI 2023.1 Figure 1.14. View Worst Path 2. Lab 2: Floorplaning Invoke ICC II and load the ORCA_TOP Block Select command “echo "hello world"” then run select and view in the shell window. Load the ORCA_TOP Block in the figure: Figure 2.1. View run "echo hello world" 2.1. Initial Floorplanning using the Task Assistant Floorplan Initialization dialog: help us to define size & shape of the chip/block. CONFIDENTIAL 13 Student Project, VLSI 2023.1 Figure 2.2. Floorplanning dialog Select type and orientation in floorplan initialization dialog in order to create shape/size block (Note: Rectangle block is not orientation) In order to L-shape block have sides such as : a=2, b=2, c=1, d=2. Orientation set to “West”. Perform in below figure: Figure 2.3. Side size control is set to Ratio CONFIDENTIAL 14 Student Project, VLSI 2023.1 Uniform spacing value of 20 (space between the core and the die): spacing between core and die: Figure 2.4. Spacing between core and die Finally, I see something like this: (Block’s floorplan after initialization) CONFIDENTIAL 15 Student Project, VLSI 2023.1 Figure 2.5. Initial floorplan 2.2. Bocking Shaping Block Shaping Block Shaping Shape Block Apply After shape_blocks completes: Figure 2.6. Blocking Shaping Visibility of voltage areas. Different regions that operate at different voltages, voltage areas must be shaped Two voltage areas are displayed (PD_RISC_CORE and DEFAULT_VA) in the below figure: CONFIDENTIAL 16 Student Project, VLSI 2023.1 Figure 2.7. View two domain voltage There are four macros inside that voltage area are stacked on top of one another ( cant see) 2.3. Macro and Standard Cell Placement Cell placement using floorplaning placement CONFIDENTIAL 17 Student Project, VLSI 2023.1 Figure 2.8. Macros placement Teachnical floorplanning: Place macros at the edge of the core area Enable pin visibility: (green node) Soft placement blockage (rectangle with blue border between the macos) to reduce congestion and improve routing because increase spacing between macros and macros , macros and std cell. Macros have been flipped so that the sides with common pins face each other with common pins face each other. 2.4. Place the block port Interface between the chip’s core and devices outside of the chip CONFIDENTIAL 18 Student Project, VLSI 2023.1 Figure 2.9. Block port all the block’s ports, the logical representations of the physical pins (at the edge of the die I/O) Zoom in to individual ports to verify that the pins have, indeed, only been placed on layers M3M6 Figure 2.10. View block port Search for the *clk ports/terminals and zoom into their location: CONFIDENTIAL 19 Student Project, VLSI 2023.1 Figure 2.11. zoom in clock port location To see the pin guide, zoom in to the highlighted area as shown below Figure 2.12. Zoom in to the highlighted area Change the width of the *clk ports (the terminal shapes) to 0.1 and the length to 0.4, then rerun pin placement Figure 2.13. rerun pin placement after configure 2.5. Task 6 : Congestion map That macros and standard cells have been placed, check if there are any congestion issues. Global route congestion: Display the heat map: Most over flow is 1, a few overflow are 2 and 3. So, most of location is not congestion Change Bins/from/to CONFIDENTIAL 20 Student Project, VLSI 2023.1 From -2 to 2 have their individual pin and ( greater than 2 and less than -2) are grouped into a combined bin Red portion is badly congestion. Green portion is lesser congestion. Detailed calculation of the overflow for an edge: Figure 2.14. Overflow 2.6. Analyze Macro Placement using DFF Click Data Flow Flylines In the dialog that appears you can configure the tracing behavior of DFF. CONFIDENTIAL 21 Student Project, VLSI 2023.1 Figure 2.15. Compute Data Flow Flylines Now select one macro to see its connections to other macros and ports. Limit the tracing by checking “Number of registers” or “Number of gates” and changing the Min/Max numbers. Figure 2.17. Connected direcly Detailing information about the connection(s). CONFIDENTIAL 22 Student Project, VLSI 2023.1 Figure 2.18.Data Floư Aggregated Flyline Why display Reload R ? When I set max number of registers is 4 ? Figure 2.19. Detail connection about the connection 2.7. Task 8: Register Tracing Select Show flylines to see the flylines between the macro and registers CONFIDENTIAL 23 Student Project, VLSI 2023.1 Figure 2.20. Flylines between the mcro and registers Show more orange lines when apply level 2. Figure 2.21. Flylines with orange lines Display Endpoints and direct end points: CONFIDENTIAL 24 Student Project, VLSI 2023.1 Figure 2.22. View endpoint Fix their location: Figure 2.23. Fix their location a basic PG mesh inserted: CONFIDENTIAL 25 Student Project, VLSI 2023.1 Figure 2.24. PG mesh 2.8. Remove PG Routes: Figure 2.25. Remove PG mesh Change percentage parameters to test different PG mesh configurations: (PG tracks 40% 40%) CONFIDENTIAL 26 Student Project, VLSI 2023.1 Figure 2..26. PG mesh confiuration 2.9. Power network synthesis Source scripts/pns.tcl : review the power mesh, the macro PG connections, and the standard cell rails in the layout view: Figure 2.27. Power mesh The power mesh will have a few issues here and there, which will have to be taken care of for final implementation. 3. Lab 3: Placement and optimization 3.1. Load and check initial design What is the high WNS/TNS/NVE (Worst Negative Slack (Worst path)/Total Negative Slack()) Goals: WNS & TNS >=0 in order to ensure all signals reach their destination promptly and the circuit operates correctly. high WNS/TNS no placement or any optimizations have been performed yet: CONFIDENTIAL 27 Student Project, VLSI 2023.1 Figure 3.1. WNS/TNS 3.2. Task 2: Place and optimize the Design: Q1: Are there any remaining ideals nets? No, There aren’t. Figure 3.2.Report_idea_network Suppose: There are some remaining ideals nets remove them remove_ideal_net command Q2: What is the maximum routing layer set for the block? Max Routing level is M8 CONFIDENTIAL 28 Student Project, VLSI 2023.1 Figure 3.3. Report_ignored_layers Q3: How many scan chains exist in the design? Scan chains : Technique using flip-flop chains to test and debug VLSI circuits. Helps get test data in and out of the chip There are 8 scan chains exist in the design Figure 3.4. Scan Chains Report utilization: CONFIDENTIAL 29 Student Project, VLSI 2023.1 Utiliazation ratio: Usage rate of macros and cells in core area (goals: utiliazation ratio (6070%)) Figure 3.5. Repoet Utilization What is site ‘unit’ value equal 0.4929 ( equal Utilization Ratio) Pre_placement_stage (mega-check) The check options can be modified to suit the need of the designer Running mega-check 'design_mismatch': Verifies that the design matches the physical implementation. Running mega-check 'pre placement stage': Verifies the design before placement and routing. Running atomic-check 'scan_chain': Verifies the scan chain used to test the chip. Running atomic-check 'mv_design': Verifies the multi-view design, ensuring different views are consistent. Running atomic-check 'rp_constraints': Verifies the timing constraints of the design. Running atomic-check 'timing': Verifies the timing of the design, checking for timing violations. CONFIDENTIAL 30 Student Project, VLSI 2023.1 Figure 3.6. Pre - placement check Analyze: High fan-out nets: High_fanout threshold 60: Figure 3.7. Report net_fanout Q4: How many non-clock high fanout nets exist with a fanout larger than 60? See in the Fanout Driver has 10 nets with a fanout larger than 60 : CONFIDENTIAL 31 Student Project, VLSI 2023.1 Figure 3.8. Report net fan-out with thresole value Q5: What command/option is used to include cells for optimization? set_lib_cell_purpose –include optimization command Leakage and dynamic power optimization are not performed by default during place_opt. Logic Restructuring set the application option opt.common.advanced_logic_restructuring_mode to power. Placement and analysis: Q6: What is the app option for optimizing the scan chains and what is its default setting? Figure 3.9. App option and optimization App_options opt.dft.optimize_scan_chain Default value: true CONFIDENTIAL 32 Student Project, VLSI 2023.1 4. Lab 5 : Design setup 4.1. Directory Structure and Invoking ICC II Figure 4.1. rm_setup and ORCA_TOP_constrain 4.2. Setup Variables and Settings Question 1. What is the default value of the search_path application variable? (HINT: printvar sear[TAB] or echo $search_path or get_app_var search_path or report_app_var search_path )? Directory (.) Question 2. Which commands in run5.tcl will use the search_path application variable to locate their specified file(s)? (list just the commands, without their options and arguments) Source : Read_verilog: Load_upf: Read_def: Q3. Which command in run5.tcl uses the user-defined TECH_LIB and REFERENCE_LIBRARY variables? CONFIDENTIAL 33 Student Project, VLSI 2023.1 Tech_lib (technology library): contain the number of metal layer and vias, physical and electical characteristics of each layer and via… Create_lib Q4. From setup.tcl: How many cell reference libraries are being used? Hvt,lvt,rvt cell libraries HVT (High-Vt): Low leakage power, slow speed. LVT (Low-Vt): High leakage power, fast speed. RVT (Regular-Vt): Balanced power and performance. Q5: From setup.tcl: Up to how many cores are enabled for multi-threading? Up to 8 Q6: How many cores are enabled, by default? (1) Tool-defaults done in order to reduce output verbosity Problem in create_lib repair problem Figure 4.2. Problem in create.lib CONFIDENTIAL 34 Student Project, VLSI 2023.1 fix setup.tcl by inserting $TECH_LIB as follow: Figure 4.3. Fix setup.tcl 4.3. Design Library, Netlist and UPF Q7: What is the name of the newly-created design library? ORCA_TOP.dlib Q8: Did the design library show up in the lab56_setup directory? No Read the Verilog: read_verilog -top ORCA_TOP ORCA_TOP.v Q9:What is the name and location of the reference library containing the unresolved references? Fix file setup.tcl: (method 2) CONFIDENTIAL 35 Student Project, VLSI 2023.1 Fix add set_ref_libs (method 1) Run the command : report_ref_libs Contains the physical or layout representation of the ORCA_TOP block. The layout contains all the standard cell and macro instances of the netlist, stacked on top of each other, in the lower-left corner. The blue-green rectangles are the hard macros, and the small purple rectangles in the lower-left corner are the standard cells. The block’s I/O ports are also stacked on top of each other, and show up as a small light-blue square with a Greek-like Phi Φ symbol (actually an O and an I superimposed), just outside of the lower-left corner of the stacked cells CONFIDENTIAL 36 Student Project, VLSI 2023.1 Q10: What is the name (block handle) of the newly-created current block in the design library? ORCA_TOP.dlib:ORCA_TOP.design CONFIDENTIAL 37 Student Project, VLSI 2023.1 UPF file is file format for describing power intent. Contains information about: o Power domains and supply nets o Power gating and retention cells o Voltage levels and level shifters o Clock gating and power state management File ORCA_TOP.upf Three power supply nets/ports: VSS, VDD and VDDH - Two power domains: PD_ORCA_TOP (the top level of the block) and PD_RISC_CORE (contains the RISC_CORE sub-design) CONFIDENTIAL 38 Student Project, VLSI 2023.1 - Level shifters for inputs and outputs of PD_RISC_CORE - Defines the power states of the power nets. Here, the power nets only define an ON-state Figure 4.5. File.upf Load the floorplan generated by ICC II floorplanning: Zoom in: CONFIDENTIAL 39 Student Project, VLSI 2023.1 Improve the visibility of the floorplan: Figure 5.2. Visibility of the floorplan Scale fonts: CONFIDENTIAL 40 Student Project, VLSI 2023.1 4.4. Load Floorplan and Scan-DEF Read the SCAN-DEF file A scan chain is a series of flip-flops (DFFs) connected in a serial manner to create a data path. Question 11. How many scan chains does the design have?(0??? Not create scanchains) CONFIDENTIAL 41 Student Project, VLSI 2023.1 Connect P/G pins 4.5. Placement Site and Routing Layer Settings Comfirm placement site and Y-symmetry: Q12: Does Y-symmetry mean that standard cell can be flipped in the Y-direction (along the X-axis), or flipped in the X direction (along the Y-axis)? Standard cell can be flipped in the X-direction, along the Y-axis Confirm that all metal layers are available for signal routing (none are ignored) CONFIDENTIAL 42 Student Project, VLSI 2023.1 . 4.6.Save the Block Q13. Does the ORCA_TOP.dlib design library exist in the current working directory? No Q14: Does the ORCA_TOP.dlib design library show up now? Yes 5. LAB 6: TIMING SETUP 5.1. Open the block from lab 5 5.2. Multi-Corner Multi-Mode Setup Muti-Corner Multi_Mode equivalent to Mutiple operating conditions Mutiple working mode with multiple scenarios Q1: What are the names of the modes, corners and scenarios that will be created? CONFIDENTIAL 43 Student Project, VLSI 2023.1 Mode: Corners: ss_125c, ss_m40c, ff_125c, ff_m40c Scenarios: fun.ss_125c, func.ss_m40c, func.ff_125c, func.ff_m40c, test.ss_125c, test.ff_125c Mode, corners and scenarios specific constrains Common file contains port names for constraints: Q2:Which scenarios will be active? CONFIDENTIAL 44 Student Project, VLSI 2023.1 ALL scenarios. By default, all scenarios are active when created Q3: Which analysis types will be enabled for the test.ss_125c scenario? Setup timming , DRCs( Max_tran, Max_cap, Min_cap) Leakage Power, Dynamic Power, Cell_em, Signal_em are disabled. Report mode: Current refers to whether this mode is the current mode or not. Default is only true if you didn’t create any modes on your own, in that case ICC II would have single mode named default. Empty is true if you have not applied any constraints to this mode. Generate a pvt report: CONFIDENTIAL 45 Student Project, VLSI 2023.1 Question 4. Which corner(s) have PVT mismatches? PVT mismatch stands for Process, Voltage, and Temperature mismatch. It refers to the variation in electrical parameters of transistors due to: Process variations: During manufacturing, transistors may have different sizes, impurities, and electrical characteristics. Voltage variations: The power supply voltage can fluctuate due to noise or power supply variations. Temperature variations: The chip's operating temperature can change due to the environment or chip activity. CONFIDENTIAL 46 Student Project, VLSI 2023.1 Figure 6.2 PVT mismatch Corner ss_m40c have PVT mismatches. Corner ss_125c don’t have PVT mismatches. Question 5. What is mismatching – process, voltage and/or temperature? In above figure, corner ss_m40c have 18 temperature mismatches. Question 6. What is causing all of the mismatches? (Temperature) Question 7. Has the block been saved? 5.3. Zero-Interconnect (ZIC) Timing Sanity Check This QoR report is very useful to get a high-level summary of the worst negative slack (WNS) timing, as well as the total negative slack (TNS), and the number of violating endpoints (NVE) for each scenario. Worst Negative Slack (WNS): This metric indicates the path in your design with the smallest margin between the required setup and hold times and the actual delay experienced by the signal. Total Negative Slack (TNS): This metric represents the cumulative slack deficit across all paths in your design. A negative TNS suggests that multiple paths could be experiencing timing violations. Number of Violating Endpoints (NVE): This metric indicates the total number of flipflops in your design that are potentially affected by timing violations. CONFIDENTIAL 47 Student Project, VLSI 2023.1 At first glance, when looking at the second, ZIC QoR report, it appears that the design has a serious problem! Two of the three setup timing scenarios have WNS violations of ~2.6 ns! make sure that these large violations are not due to unbuffered high fanout nets (HFNs) the results are the same, the violations are not caused by HFNs. CONFIDENTIAL 48 Student Project, VLSI 2023.1 Question 8. Can you think of a reason why one scenario meets setup ZIC timing, while the others have a huge WNS violation? it was performed for a single mode and corner: The functional mode (func), and the slow-slow process at -40 OC corner (ss_m40c). Timing report for the five worst violating paths: 6. LAB 7: RUNING CTS 6.1. Timming QoR summary Question 1. From a timing stand-point – is the design ready for CTS? What about the hold violations? There should be no setup violations. There are hold violations, which will be addressed during CTS. Generate a clock report: CONFIDENTIAL 49 Student Project, VLSI 2023.1 See in above figure: Question 2. How many master clocks are defined? There are 3 master clocks (SDRAM_CLK, SDRAM_CLK, SYN_2X_CLK) Question 3. How many generated clocks are defined? There are 3 generated clocks are defined. This is SD_DDR_CLK, SD_DDR_CLKn, SYS_CLK Question 4. What type of clock are the remaining clocks? Virtual clock: v_PCI_CLK, v_SDRAM_CLK. Question 5: What is the source of the SD_DDR_CLK clock? Sdram_clk Generate a clock skew report: Question 6. What is smallest/largest Setup Uncertainty? 0.10 (ff*scenarios)/0.30(ss*scenarios) What is smallest/largest Hold Uncertainty? 0.05(ff*scenarios)/0.10(ss*scenarios) Generate a clock groups: Question 7. Which clock groups are mutually exclusive or asynchronous? CONFIDENTIAL 50 Student Project, VLSI 2023.1 -group {SYS_2x_CLK SYS_CLK} -group {PCI_CLK v_PCI_CLK} -group {SDRAM_CLK v_SDRAM_CLK SD_DDR_CLK SD_DDR_CLKn} Generate a clock tree summary report for both modes: Question 8. What is the big difference between the two modes? (Hint: Look at the clock name) Mod test has an additional clk : ate_clk Question 9. How many sinks does SD_DDR_CLK have? Both of mod , SD_DDR_CLK have 0 sink Generate a port report on the start point or source of SD_DDR_CLK: Question 10. Why does SD_DDR_CLK have zero sinks? (Hint: Look at the port direction) Perform these setup steps by sourcing a file: CONFIDENTIAL 51 Student Project, VLSI 2023.1 Question 11. Are the scenarios configured properly for hold fixing? (ff) Control buffers or delay cells: 6.2. Post-CTS I/O Latency configured to update the clock: 6.3. Run Comprehensive Clock Tree Checking Generate a clock tree check report with a summary and detail section: Show have many problem of each problem each category: (Summary section) CONFIDENTIAL 52 Student Project, VLSI 2023.1 Four clocks are listed, related to ports SD_DDR_CLK and SD_DDR_CLKn These two warnings list cells that are used in the clock tree, and are either not enabled for the CTS lib cell purpose (Reference cells) Perform clock tree synthesis and route the clock trees (built_clock and route_clock) Results for the worst corners: CONFIDENTIAL 53 Student Project, VLSI 2023.1 Cell and nets have a dont_touch constrain CONFIDENTIAL 54 Student Project, VLSI 2023.1 6.4. Option A: Perform Classic CTS: Perform clock tree synthesis and route the clock trees: Summary Table for Corner ss_125c CONFIDENTIAL 55 Student Project, VLSI 2023.1 Robustness report: Skew report using the clock timing report: CONFIDENTIAL 56 Student Project, VLSI 2023.1 The reported Skew is the difference between the max and min Latency numbers, plus or minus the clock reconvergence pessimism (CRP). Skew and maximum Latency for the indicated clocks: Clock: SYS_2x_CLK Max_Latency= 0.849, Skew=0.136 Clock: SDRAM_CLK Max_latency: 0.729, Skew: 0.196 CONFIDENTIAL 57 Student Project, VLSI 2023.1 Question 12. Why are the skews reported by report_clock_qor and report_clock_timing different? The report_clock_qor command reports global skew, by default, which is the maximum skew across all sinks in the entire clock domain (the difference between the longest and the shortest insertion delays. the worst-case (Design) WNS/TNS/NVE numbers for setup and hold: Execute post-CTS optimization: Question 13. Are there any setup or hold violations left? Yes , You see in above figure 6.5. Option B: Concurrent Clock & Data Flow: Use the CCD flow to build the clock trees and optimize the logic. worst-case (Design) WNS/TNS/NVE numbers for setup and hold: Clock_opt include: _run_stage clock_opt build_clock, run_stage clock_opt route_clock, _run_stage clock_opt final_opto Design QoR: CONFIDENTIAL 58 Student Project, VLSI 2023.1 When I run Clock_opt, ICC2 tool automatical quit and I check in terminal, result is error:(15/03) I fixed it (18/03) Save block in order to do task 8 : Analysis 6.6. Analysis Synthesized clock tree using the clock abstract graph GUI. shows the latency graph for SYS_2x_CLK: CONFIDENTIAL 59 Student Project, VLSI 2023.1 Clock Tree after inserting buffer/inverter. Clock tree clock: Exp: sdram_clock Exp: sys_2x_clock: CONFIDENTIAL 60 Student Project, VLSI 2023.1 Examine the timing from one of the clocks constrained by v_PCI_CLK: CONFIDENTIAL 61 Student Project, VLSI 2023.1 Q14: Is the network latency on the input v_PCI_CLK propagated? No. A latency number is listed under “clock network delay (ideal)”. This is the auto-updated ideal latency value that ICC II has computed for PCI_CLK, and applied to v_PCI_CLK 7. Lab 8 : Clock Tree Synthesis 7.1. Load the Design and Analyze the Clocks Set SDRAM_CLK generated set true, source: sd_CK, also symbol M, G in front of clocks.. The SD_DDR_CLK and SD_DDR_CLKn clocks are generated from the master clock SDRAM_CLK Perform closer analysis of SDRAM_CLK in func mode: I can see all valid sink input pin and cant see output ports sd_CK and sd_CKn. Generate a clock structure report: Serach sd_CK CONFIDENTIAL 62 Student Project, VLSI 2023.1 Question 1. What balance point exception is set on sd_CK, and why? IMPLICT_IGNORE_PIN perform in below figure: Report clock balance point: Focus (Block Independent, Balance Points): CONFIDENTIAL 63 Student Project, VLSI 2023.1 7.2. Clock Tree Balancing It minimizes clock skew,the variation in arrival times of clock signals across different flip-flops Question 2. How are the S0 (select) pins of the MUXes labeled now? Question 3. How is the sd_CK port labeled now? What does this mean? Sd_CK port is described by BEYOD EXEPTION, port is in the fanout of beyone the BALANE_PIN Report don’t_touch_cell CONFIDENTIAL 64 Student Project, VLSI 2023.1 Report dont_touch: Question 4: What is the source of SYS_CLK generated ? CONFIDENTIAL 65 Student Project, VLSI 2023.1 I_CLOCKING/sys_clk_in_reg/Q. This is a divide-by-2 register, used to divide SYS_2x_CLK and generate SYS_CLK. Instruct CTS to not change the register that is used as the clock divider: Clock Tree Target: Set a skew target of 0.05ns for all the slow (ss) corners, and 0.02ns for the fast (ff) corners. Report clock_tree: CONFIDENTIAL 66 Student Project, VLSI 2023.1 Choose the buffers and/or inverters: Report lib_cell: CONFIDENTIAL 67 Student Project, VLSI 2023.1 Search string “cts”: CONFIDENTIAL 68 Student Project, VLSI 2023.1 7.3. Define CTS Non-Default Routing Rules: Question 5. Which net segment(s) of the clock tree do the two clock routing rules apply to? CTS_NDR_RULE_NAME CTS_LEAF_NDR_RULE_NAME Question 6. What are some key differences between the rules? Report clock_routing_rule: CONFIDENTIAL 69 Student Project, VLSI 2023.1 Verify the rules were applied: The report shows which net segments (net type) the rules apply to (sink overrides all), and the min/max layer constraints for each clock segment. 7.4. Timing and DRC Constraints DRC constraints define the physical design rules that must be followed to ensure the chip can be manufactured correctly and reliably ( minimum width and spacing, metal overlap, gate leghth and width) Timing constraints specify the allowable timing margins for various circuit components and operations( clock frequency, setup times, hold times and so on ) report for the master clock sources: CONFIDENTIAL 70 Student Project, VLSI 2023.1 CONFIDENTIAL 71 Student Project, VLSI 2023.1 Question 7. Are all clock ports constrained by either a Driving Cell or input Transition? Question 8. Why is it important for clock input ports to be constrained by set_driving_cell or set_input_transition? Report_skew: CONFIDENTIAL 72 Student Project, VLSI 2023.1 Change the uncertainty for all clocks in all scenarios: Set_clock_uncertainty 0.1 –setup Set_clock_uncertainty 0.05 -hold Set a max transition for the clocks in func mode only: Report_clock_setting: CONFIDENTIAL 73 Student Project, VLSI 2023.1 See max_transition: CONFIDENTIAL 74 Student Project, VLSI 2023.1 7.5. Perform CTS and Analyze the Results NDR’s routing rule: Report _clock_qor CONFIDENTIAL 75 Student Project, VLSI 2023.1 Global Skew is small Clock tree latancy graph: CONFIDENTIAL 76 Student Project, VLSI 2023.1 8. Lab 11: Routing and PostRoute Optimization, Signoff Question1: Is timing acceptable for routing? There are only a few remaining small timing violations. There are also a few smaller max transition as well as a few max capacitance violations (you will see them with report_constraints -all) Pre-routing Checks Before you route the design it is best to ensure that there are no issues that will prevent the router from doing its job CONFIDENTIAL 77 Student Project, VLSI 2023.1 Question 2. Is the design ready for routing? Check Antenna:to detect and eliminate unwanted antenna structures. Antennas can cause electromagnetic interference (EMI), reduce chip performance, and affect reliability. CONFIDENTIAL 78 Student Project, VLSI 2023.1 route.detail.antenna_fixing_preference: This variable specifies the preferred method for fixing antenna violations during routing. route.detail.antenna_on_iteration: This variable specifies whether antennas are checked and fixed after each iteration of the routing algorithm. route.detail.antenna_verbose_level: This variable specifies the verbosity level of the log information generated when checking and fixing antennas. Question 3. What is the name of the secondary PG pins, and where do they connect to? Crosstalk Prevention Secondary PG Routing Report_Power_domain; CONFIDENTIAL 79 Student Project, VLSI 2023.1 CONFIDENTIAL 80 Student Project, VLSI 2023.1 Question 3. What is the name of the secondary PG pins, and where do they connect to? Routing, DRC Analysis: Question 4. How many detail route iterations are run by default? (Hint: Review the man page for route_auto.): Report qor: CONFIDENTIAL 81 Student Project, VLSI 2023.1 CONFIDENTIAL 82 Student Project, VLSI 2023.1 Question 5. How do you change the default, and how do you force the router to run through all iterations even though the router might not see any improvements You change the default using route_auto -max_detail_route_iterations CONFIDENTIAL 83