Introduction to Cadence Opus Digital HDL design Physical Knowledgeable Synthesis (synthesis and place-and-route) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory PKS and Silicon Ensemble PKS SE-PKS PKS Synthesis, Placement Clock Tree Generation Silicon Ensemble DEF HDL Floorplanning DEF HDL Floorplanning refinement Post Clock Tree Optimization Global Routing and Optimization SI Analysis and Repair Delay Calculation DEF WDB SPF Final Routing Parasitic Extraction WRoute ECO DEF HDL In-Place Optimization Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Verification Physical synthesis design flow Productivity: RTL/Gate Source Synthesis Library Time-to-market: Integration of synthesis, placement, global routing eliminates iterations. Quality of results: The PKS engine performs orders of magnitude more tradeoffs than possible manually. Physical Library (LEF) TCL Command Interface PKS BuildGates Extreme Physical Optimization Placement-driven Scan synth Cadence Opus course Clock Tree Synthesis Global routing Postroute opt. & SI repair Global Routed Database Predictability: Silicon Ensemble placement and global routing inside, used by final router provides superior correlation. Crosstalk prevention Final Routing Parasitic Extraction Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Common Timing Engine (CTE) Greater than 1 million gate RTL synthesis and greater than 5 million gate optimization means even the largest designs can be done using a flat methodology. Timing Constraints Physical Constraints SPEF D/RSPF Silicon Ensemble® PKS optimization place-and-route Main features • Chip-level synthesis higher quality of results (QOR) and higher productivity • Automatic time budgeting • Automatic architecture selection • Automatic operator merging • Full, incremental accurate timing analysis • Productive design analysis and debug • Enhanced component library • Easy to use interface • One-pass test and clock-tree synthesis • Inside placement and global routing • Faster run times and larger design capacity 4 Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Chip-level synthesis • With its high capacity and high performance, the PKS tool enables chip-level synthesis. • Chip-level synthesis yields better quality of results (QOR). – Full path visibility – Optimal path constraints – Constant propagation Block level Overconstrained—bad area Underconstrained—bad timing Chip level Focus on complete critical path Optimal timing and area Cadence Opus course Block-level optimization Block-level optimization Chip-level optimization Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Chip-level synthesis • Fewer constraints – Chip-level constraints are easier to specify than block level. – I/O timing is well known. • Greater automation – Eliminates budgeting iterations. – Spends CPU cycles rather than human cycles. • 1M gate leading-edge graphics chip, top-down synthesis: – 12.5 hrs, 2.7 GB Cadence Opus course BuildGates chip-level synthesis Chip I/O Constraint a b c d e f g Versus Block-level synthesis a b c d e f g • Block constraints • Multiple block synthesis scripts • Chip assembly script Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Automatic time budgeting • Automates bottom-up synthesis • Enables design methodologies that require a bottomup approach. • Automatically computes lower-level constraints from top constraints. • Slack allocation is based on logic compressibility. • High capacity reduces the number of partitions. Cadence Opus course Constraint application a b Automatic generation c d e h f i g j k l m n Block i Block h 6 ns block target 10 ns chip target Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory 4 ns block target Automatic architecture selection • On-the-fly component generation • Context-driven Operand width • constant input influences architecture • Timing-driven – Faster for critical – Smaller area for offcritical path a b c + Z Ripple Non-booth Clk Ripple d Cadence Opus course + * d a b c Clk CLA Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory + Z * Booth + CLA Automatic operator merging • Merging sum-of-products, product-of-products, productof-sums • Relational operators merged • Automatic carry-save inferencing – Applicable to product-of-sum, multiple fan-out signal, etc – Takes care of both signed and unsigned arithmetic • Integrated with logic synthesis B A C Carry Propagate Adder Z A B C Faster and smaller implementation ! Cadence Opus course D Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Z D Full incremental timing analysis • Only individual gate is retimed. • Demand-driven algorithm performs only necessary updates. D Q D Q CLK CLK retime critical path! stale data okay unchanged D Q CLK U1 D Q CLK • Much larger design capacity and less memory usage. • Converging synthesis results. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Productive analysis and debug •Analysis features – – – – – Highlight worst paths, endpoints Highlight cones of logic Critical path analysis Timing histograms Cross-correlation between reports and RTL – Accurate timing displayed on schematic •Easy design exploration – Design hierarchy viewer – Interactive cell swap with incremental retime •Ease of customization – TCL shell command window – HTML-based help Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Enhanced component library • All library components are generated on the fly. • Nearly hand-crafted quality components. • Additional High-Quality Components – N-stage pipelined multiplier – Multiply-accumulate – Vector adder – Comparators – Generalized sum of products – Rounding – Programmable incrementer /decrementer Cadence Opus course – Programmable adder /subtractor – Divider – Shift registers – Rotate left/right – Universal multiplexer – Overflow detection – …. Many more…. Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Easy to use • PKS Synthesis is easy to use and has the following advantages: – Has an easy to use graphical interface. – Uses the easy to learn Tcl language and extensions. – Allows running batch scripts. – Uses an intuitive constraint manager. – Allows interrupt-reconstrain-restart synthesis. – Has comprehensive reports. 13 Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory One-pass test synthesis • • • • • • • • • • • Top-down and bottom-up scan insertion Verilog/VHDL (RTL and/or structural netlists) Multiple clock domains (on separate chains) Multiple balanced scan chains Scan/Nonscan register reporting Single-pass test synthesis Full register scan Multiple scan styles DFT rule checking Test mode setup Shared I/O for test pins Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Physical hierarchy in PKS • Hierarchical optimization enabled by: – Read hierarchical floorplan – Cluster creation and import (PDEF 3.0) – Soft blocks or regions – Push/pull of floorplan information – Timing model extraction – Hierarchical Steiner routing and stitching – Block growing enhancements Cadence Opus course Floorplanner (First Encounter, ASIC vendor, etc.) RTL/Gate Source Constraints Hierarchical Floorplan PKS Hierarchical Optimization and Timing Closure Place & Route (Routing, extraction, etc.) Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory True global routing • Router models congestion exactly. – – – – Resource availability Placement and routing obstructions Preplaced cells, fillers, spare cells Prerouted power, clock spines Example • 10 paths to route • 7 paths are timing critical • 5 paths through congested area • Router models detailed hardblock routing obstructions. – Routes over complex hard-block obstructions. – Routes to internal hard-block pins. Cadence Opus course • Which paths will be detoured? • Will detoured paths be re-optimized? • Will P&R detour the same paths? Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory The PKS solution: RTL to GDSII • Gives immediate feedback on RTL • Provides RTL designers the physical timing results after synthesis • Achieves one-pass timing closure • Uses placement and global routing to calculate interconnect delays • Brings physical information forward into synthesis • Produces a placement and global routed database to be forward-annotated into P&R • Makes post-final route optimization Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Available Documentation • Documentation is available in HTML and PDF formats. – Includes the complete documentation set (User Guides, Command Reference and Application Notes). Netscape is shipped with all Cadence synthesis tools • Subscribe to http://sourcelink.cadence.com for best online help with Cadence tools. • There is a text help feature for pks_shell. At the pks_shell prompt, enter: help <command_name> or help <error_code> • Start the GUI with -cdsdocd on to access the online documentation. (CDSD must be installed) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Prerequisites to start PKS • Set the Unix environment variables (This solution is site specific!) setenv CDS_INST_DIR /soft/opus/spr40 setenv CDS_INSTALL_DIR /soft/opus/spr40 setenv PATH $CDS_INST_DIR/tools/bin:$CDS_INST_DIR/tools/dfII/bin: $CDS_INST_DIR/BuildGates/v04.00-s015/bin:$PATH setenv LD_LIBRARY_PATH $CDS_INST_DIR/tools/lib:$LD_LIBRARY_PATH • Set Cadence license environment variable setenv CDS_LIC_FILE license_file • Check the special licenses! ENVISIA_PKS ENVISIA_SE_SI_place_route ENVISIA_Utility Clock_Tree_Generation Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Coffee break Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Getting Started with synthesis In the next few pages, you will become familiar with the basic commands and acronyms needed to perform a simple synthesis run. The case studies that follows lets you experiment with the software. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory PKS synthesis flow • • • • • • • • • Read the technology library Parse or read the Verilog or VHDL files Build a control data flow graph (CDFG) Build a netlist of generic gates from the CDFG Define the timing constraints Check the constraints and netlist Optimize the generic netlist to a target technology Analyze the design and verify timing goals Write out files for place and route and backannotation Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Login into the workstation Login: cadence Password: cadence Guest user with full rights Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Start up Ambit PKS Middle click at an empty place of the screen and the Engineering Tools popup window opens. Make a left click on the OPUS Envisia PKS This solution is site specific! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Start up Ambit PKS Click on the OK The PKS graphical user interface opens. main window browser command shell window Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Library files Ambit Database File (ADB) The ambit database file is used to snapshot the design project into a database file. The next time to open an existing design, the .adb file can be loaded so that no previous command needs to be repeat. Timing Library File (ALF, TLF, CTLF) The ALF, TLF or CTLF file is a timing library for the standard cells. A timing library includes all of the timing information associated with a particular manufacturing process. Only a single timing library is required by the SP&R flow, but it is possible to use a mixture of timing libraries. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Library files Standard Delay File (SDF) After a generic netlist is generated, Standard Delay Format (SDF) data can also be loaded to include physical design constraints. In addition, timing information is conventionally stored in a SDF file. Individual net RC and design SDF timing information is annotated to the design within the synthesis software to provide an accurate timing and design rule violation view of the design. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the technology library Left click on the File Open... Select the correct Ambit library/Timing library from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the Verilog/VHDL files Read in the source Verilog/VHDL files from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Build the generic structure Left click on the Commands Build Generic... Leave the settings default and click on OK Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory View the generic structure Click on the Modules tab on the center-left window Any of the modules can be opened with left double-click Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Define ideal clock Click on the Constraints tab on the center-right window Right click on the Constraints tab window and select New Ideal Clock Enter master in the name and 10.0 in the period field Click OK Click on the Trail Time and enter 5.0 Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Bind clock port to ideal clock Right click in the right half of the Constraints window under the Clock Pin and select New Port Clock Set master as the Ideal clock Set clock as the Port clock Set the early rise time to 0.1 (ns) Set the early fall time to 5.2 (ns) Click on OK Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Check the worst path delay Click on the Schematic tab on the center-right window Use the right mouse button to bring up the menu. Select Worst Path Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Set the target technology Left click on the Commands Set Target Technology... Select the correct technology Click on OK Left click on the Commands Set Operating Parameter… Select the correct Voltage Process Temperature Click on OK Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Optimize to a target technology Click on the Modules tab on the center-left window Right click on the top module; bring up menu and select Set Current Module Right click on the top module again and select Set Top Timing Module Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Optimize to a target technology Left click on the Commands Optimize… Leave the settings default and click on OK If the technology library enables switch on Minimize Area Time Budget Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Optimization flow and commands Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Analyze the design Left click on the Reports Timing… Choose the required settings and click on the first icon Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Analyze the design 2 ns 2.7 ns Leading edge Clock signal Tperiod = 4.7 ns 2.3 ns Early (Setup time) Ia 2.3 ns Late (Hold time) Ib 0.05 ns Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Trailing edge Analyze the design Left click on the Reports Area… Choose the required settings and click on the first icon Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Check the worst path delay Click on the Schematic tab on the center-right window Right click on the Schematic window; bring up the menu. Select Worst Path Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Check the slack path histogram Left click on the Reports Path Histogram Choose the required settings and click on the first icon Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Highlight the fanout cone Right click on one of the gates; bring up the menu Select Fanout Cone Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Write out files Left click on the File Save Save ADB database file to the correct path Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Write out files Click on the shell command window Write out the generated verilog RTL file by the command write_verilog -hier cpu_rtl.v Write out the calculated delays by the command write_sdf -delimiter . -precision 4 cpu.sdf Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Break! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case Study I Arithmetical Logical Unit (ALU) The center core of a central processing unit, performs a set of arithmetic and logic micro operations Generate a behavior Verilog description of ALU Sel[4:0] Sel[1:0] A[7:0] B[7:0] Sel[2] Logic Unit Logic Unit [7:0] MUX ALU_noShift[7:0] Arith Unit [7:0] Carryin Cadence Opus course Sel[4:3] Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Shifter Case study I Arithmetical Logical Unit (ALU) It has n encoded inputs for selecting which operation to perform S4 0 0 0 0 0 0 0 0 S3 0 0 0 0 0 0 0 0 S2 0 0 0 0 0 0 0 0 S1 0 0 0 0 1 1 1 1 S0 0 0 1 1 0 0 1 1 Cin 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Cadence Opus course Operation Y <= A Y <= A + 1 Y <= A + B Y <= A +B + 1 Y <= A + Bbar Y <= A + Bbar + 1 Y <= A - 1 Y <= A Function Transfer A Increment A Addition Add with carry A plus 1's complement of B Subtraction Decrement A Transfer A 0 0 0 0 Y <= A and B Y <= A or B Y <= A xor B Y <= Abar AND OR XOR Complement A Logic Unit Logic Unit Logic Unit Logic Unit 0 0 0 0 Y <= A Y <= shl A Y <= shr A Y <= 0 Transfer A Shift left A Shift right A Transfer 0's Shifter Unit Shifter Unit Shifter Unit Shifter Unit Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Implementation block Arithmetic Unit Arithmetic Unit Arithmetic Unit Arithmetic Unit Arithmetic Unit Arithmetic Unit Arithmetic Unit Arithmetic Unit Case study I You can find the verilog sources in the lab1 directory. The technology and timing library are in the lib directory under your PKS home directory. In this exercise you have to do these steps: • • • • • • • Load database (.alf and .v) files Build generic netlist (or use pks_generic.tcl script) Set the constraints (or use pks_constraints.tcl script) Optimize the design Check worst path, timings, area, fan-in and fan-out… Generate reports into the reports directory Write out files (.adb, .sdf, rtl_verilog, …) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case Study II Central Processor Unit (CPU) The design of a processor is a complex scenario. Multimillion instruction processors (MIPS), complex instruction set processors (CISC), reduced instruction set processors (RISC) are all models that are used in different applications. The HDL description you will be working with is a simple processor that does 4 simple mathematical functions. The circuit implements addition, incrementing, complementing and XOR. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case Study II The schematic of CPU Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case Study II The operation of the CPU The CPU begins to operate on the positive edge of the reset. At all positive edge of the clock signal the operation state of the CPU changes. There are 8 states of the operation / cycle period On reset signal the counter of the CPU resets, and set pcout (address of instructions) to 00h – this is the address of the first instruction. The value of the PC register is incremented per each cycle The ALU executes an instruction (which one is determined by opcode) when ena is enabled. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case study II You can find the verilog sources in the lab2 directory. The technology and timing library are in the lib directory under your PKS home directory. In this exercise you have to do these steps: • • • • • • • Load database (.alf and .v) files Build generic netlist (or use pks_generic.tcl script) Set the constraints (or use pks_constraints.tcl script) Optimize the design Check worst path, timings, area, fan-in and fan-out… Generate reports into the reports directory Write out files (.adb, .sdf, rtl_verilog, …) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Break! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Getting Started with place-and-route In the next few pages, you will become familiar with the basic commands and acronyms needed to generate a simple layout. The case study that follows lets you experiment with the software. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory PKS Place-and-Route Flow • • • • • • • • • Read the technology library Read the physical library file Read the ADB database file Initialize the floorplan area Place standard cells and macros Generate the clock tree Verify timing goals have been met Generate and optimize routing Write out files for backannotation Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Library files Timing Library File (ALF, TLF, CTLF) The ALF, TLF or CTLF file is a timing library for the standard cells. A timing library includes all of the timing information associated with a particular manufacturing process. Only a single timing library is required by the SP&R flow, but it is possible to use a mixture of timing libraries. Physical Library File (LEF) A Library Exchange Format (LEF) file is an ASCII file that contains library information for a class of designs: •Library data in ASCII format •Wire unit parasitic information •Detailed cell size and pin location •Routing level information •Macro cell definitions Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Library files Physical Design Exchange Library File (DEF and PDEF) The DEF file contains physical design data such as placement and bounding box data, routing grids, power grids, pre-routes and rows. DEF can also include additional information such as routing grids, power grids, pre-routes, and rows. This physical data is an optional input that would typically be available if this were a redesign of an existing device. If the initial DEF file is not available, then an initial floorplan can be performed in PKS using the set_floorplan_parameters. This command has many options that can be set. It is also possible to assign input pins to the left side of the die and output pins to right side of die or to any other combinations. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the technology library Left click on the File Open... Select the correct Ambit library/Timing library from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the physical library Click on the PKS tab in the center-right window Left click on the the first PKS menu icon Select the correct Library exchange file from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the ADB database Left click on the File Open... Select the correct ADB database from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Read the constraints from TCL file Left click on the File Open... Select the correct TCL source script file from the path. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Initialize the floorplan Click on the PKS tab in the center-right window Right click on the PKS window and select Define Floorplan If physical library enables switch on Abut row pairs and Flip alternate row Click on OK Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Initialize the floorplan Right click in the window under the PKS tab. Select Port Placement.. Set the Side to be either top, bottom, left or right by right click on the side column. The Index value of each ports regenerates automatically Click on Close Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generated floorplan view Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Place standard cells Right click in the window under the PKS tab. Select Place cluster… Switch Timing driven and Congestion driven on if technology library enables it Click on OK Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Placed floorplan view Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Highlight module parts Click on the Modules tab in the center-left window Right click on any of the modules; bring up the menu Select Highlight Physical Instance Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Highlight instance airlines Middle click on any of the instances on the PKS tab in the center-right window Right click on the one of the selected instance name on the Cluster tab in the center-left window and select Selection Airline Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Highlight Steiner tree Middle click on any of the instances on the PKS tab in the center-right window Right click on the one of the selected instance name on the Cluster tab in the center-left window and select Selection Airline Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generate clock tree Enter on the shell command window in the bottom: set_global instance_generator "ctpks_%d“ set_global net_generator "ctpks_net_CLK_%d" set_clock_tree_constraints -pin [find –port clock] -min_delay 2.0 -max_delay 2.5 –max_skew 0.3 -max_leaf_transition 1.0 do_uniquely_instantiate set_clock_root -clock master clock do_build_clock_tree -noplace -pin [find -port clock] Generate timing reports report_clock_tree -pin [find -port clock] report_clock_tree_violations -pin [find -port clock] Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generate clock tree Click on the Modules tab in the center-left window Double click on the top module (cpu) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Place clock tree Enter on the shell command window in the bottom: do_place -eco Click on the Cluster tab in the center-left window Right click on the window and select Select by Name… and enter ctpks_* to the Selection Entry field Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Optimize clock tree Enter on the shell command window in the bottom: do_xform_optimize_slack –pks do_xform_ipo Click on the Cluster tab in the center-left window Right click on the window; select Select by Name… and enter ctpks_* to the Selection Entry field do Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generate global routing Enter on the shell command window in the bottom: do_route -timing_driven Click on the PKS tab in the center-right window Right click on the PKS window and select Routing Congestion.. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Optimize global routing Enter on the shell command window in the bottom: do_xform_ipo do_route -timing_driven {do_route -output_db_name cpu_groute.wdb} Generate report report_timing -nworst 1 -max_points 10 Check the critical slack times (must be positive) ! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Write out files Click on the shell command window Write out the generated verilog RTL file by the command write_verilog -hier cpu_ctpks_rtl.v Write out the ambit database file by the command write_adb cpu_ctpks.adb Write out the physical description file by the command write_def cpu_ctpks.def Write out the calculated delays by the command write_sdf -delimiter . -precision 4 cpu_ctpks.sdf Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Coffee break Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Advanced synthesis tools In the next few pages, you will become familiar with the test and data-path synthesis. The case studies that follows lets you experiment with the software. Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Test synthesis overview • Provides the capability of detecting manufacturing defects in sequential circuits • Serialize input test vectors and expected output patterns through shift register(s) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory PKS test synthesis flow • • • • • • • • • • • Read the technology library Parse or read the Verilog or VHDL files Build a control data flow graph (CDFG) Build a netlist of generic gates from the CDFG Define the timing constraints Check the constraints and netlist Generate scan path(s) Optimize the generic netlist to a target technology Display scan path(s) Analyze the design and verify timing goals Write out files for place and route and backannotation Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Scan path generation flow RTL MBIST, Test Boundary Scan, TAP Controller Circuit Insertion Scan or nonscan gates RTL+ Test Circuit Scan DEF file BuildGates Order file ATPG I/F File Scan inserted, gate-level netlist Silicon Ensemble Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Scan path styles Multiplexed flip-flop style Clocked scan style Clocked LSDD style Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Scan path example Circuit without scan path Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Scan path example Circuit with scan path Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generate scan path(s) After building generic click on the shell command window and write the followings Define the name and logical level of the scan mode selection port set_scan_mode scan_enable 1 Generate scan path reports (Must do these reports! ) report_dft_assertions //report existing assertions at this point check_dft_rules report_dft_registers //report details of chainable registers Define the scan path styles (depends on the technology library) set_scan_style {muxscan | clocked_scan | clocked_lsdd} set_test_scan_clock clock Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Generate scan path(s) Define the name of the scan_in and the scan_out ports set_scan_data -clock clock test_in test_out Define some global environment variables set_global dft_scan_avoid_control_buffering true set_global dft_scan_path_connect chain Define the number (= 4) and length (= 100) of the paths set_max_scan_chain_length 100 set_number_of_scan_chains 4 Optimize the design do_optimize Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Display Scan path(s) In the command window type command display_scan_chains Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Datapath synthesis overview After reading in the RTL code, datapath synthesis identifies all of the datapath operators in the design, and partitions the datapath portions from the control logic. Datapath synthesis looks at how the (datapath and non-datapath) operators interact with each other in the design, and identifies all datapath partitions. Control path, basic datapath Verilog/VHDL Control Datapath synthesis makes each partition as large as possible, so long as there are no nondatapath operators in any datapath partition.Budapest University of Technology & Economy Cadence Opus course Department of Electron Devices, CAD Laboratory Datapath * * + - BuildGates Extreme or PKS Design implementation Place and route PKS datapath synthesis flow • • • • • • • • • • Read the technology library Parse or read the Verilog or VHDL files Set datapath global environment variables Build a control data flow graph (CDFG) Build a netlist of generic gates from the CDFG Define the timing constraints Check the constraints and netlist Optimize the generic netlist to a target technology Analyze the design and verify timing goals Write out files for place and route and backannotation Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Datapath synthesis Before building generic netlist click on the shell command window and set the followings global environment variables Switch on datapath synthesis set_global aware_implementation_selection true Select the adder architecture set_global aware_adder_architecture {fcla|csel|cla|csum|ripple} fcla csel cla csum ripple – Fast carry look ahead adder (highest speed; largest area) – Carry select adder (higher speed; large area) – Carry look ahead adder (high speed; medium area) – Conditional sum adder (medium speed; small area) – Ripple carry adder (low speed; smallest area) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Datapath synthesis Select the multiplier architecture set_global aware_multiplier_architecture {booth|non_booth} booth non-booth – Booth-encoded multiplier – Regular multiplier Select the architecture style set_global aware_merge_operator {false|true} set_global aware_carrysave_inferencing {true|false} Create generic netlist do_build_generic Load the constraints and generate reports report_resources -hier Optimize the design do_optimize {-restructure_aware} Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Datapath synthesis There is one synthesis directive that affects architecture of individual arithmetic operators: // ambit synthesis key_command { = “ list of parameters “ } ; Examples assign y = a * /* ambit synthesis architecture = “booth,cla” */ b +c; assign y= a * b // ambit synthesis merge_boundary; assign y= a + b // ambit synthesis architecture = “ripple”; Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Break! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case study III (CPU) You can find the verilog sources in the lab3 directory. The technology and timing library are in the lib directory under your PKS home directory. In this exercise you have to do these steps: • Load the technology library and recently saved database (.alf, .lef, .adb) • Load and run the pks_constraints.tcl to set the constraints • Generate floorplan • Place standard cells • Generate reports, check slack times, area, … • Generate clock_tree • Optimize clock_tree • Generate global route • Write outputs (.adb, .def, .sdf, .gcf, .wdb, new verilog RTL) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Case study IV (CPU) You can find the verilog sources in the lab4 directory. The technology and timing library are in the lib directory under your PKS home directory. In this exercise you have to do these steps: • • • • • • • • • Load database (.alf and .v) files Set datapath global environment variables Build generic netlist (or use pks_generic.tcl script) Set the constraints (or use pks_constraints.tcl script) Generate scan path(s) Optimize the design Display scan path(s) Generate datapath and timing reports Write out files (.adb, .sdf, rtl_verilog, …) Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory Full Break! Cadence Opus course Budapest University of Technology & Economy Department of Electron Devices, CAD Laboratory