Effective RTL coding rules to avoid Simulation Shoot-thru Udit Kumar 1, Bhanu Prakash 1, Olivier Florent 1, Paras Mal Jain 2, Anshu Malani 2, Shaker Sarwary.

Slides:



Advertisements
Similar presentations
Digital System Design-II (CSEB312)
Advertisements

FSM and Efficient Synthesizable FSM Design using Verilog
//HDL Example 8-2 // //RTL description of design example (Fig.8-9) module Example_RTL (S,CLK,Clr,E,F,A);
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Synchronous Sequential Logic
Combinational Logic.
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
Give qualifications of instructors: DAP
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
2/9/20031 ECE 551: Digital System Design & Synthesis Lecture Set 4 4.1: Verilog – Procedural Assignments &Scheduling Semantics 4.2: Verilog – More Behavioral.
Slide 1 7. Verilog: Combinational always statements. VHDL: Combinational Processes: To avoid (I.E. DO NOT What in your HDL code?) Cases that generate Synthesis.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics High-level synthesis. Architectures for low power. GALS design.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Register-transfer Design n Basics of register-transfer design: –data paths and controllers.
DAC IP Track Submission CDC aware power reduction for Soft IPs Ritesh Agarwal (Freescale™) Amit Goldie (Atrenta) Freescale Semiconductor Confidential.
Finite State Machine Chapter 10 RTL Hardware Design by P. Chu.
Assume array size is 256 (mult: 4ns, add: 2ns)
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Useful Things to Know Norm. Administrative Midterm Grading Finished –Stats on course homepage –Pickup after this lab lec. –Regrade requests within 1wk.
Digital System Design by Verilog University of Maryland ENEE408C.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Verilog HDL (Behavioral Modeling) Bilal Saqib. Behavioral Modeling.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
CSE241 RTL Performance.1Kahng & Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 2.5: Performance Coding.
مرتضي صاحب الزماني  The registers are master-slave flip-flops (a.k.a. edge-triggered) –At the beginning of each cycle, propagate values from primary inputs.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Timing control in verilog Module 3.1 Delays in Verilog.
Overview Logistics Last lecture Today HW5 due today
Advanced FPGA Based System Design Lecture-9 & 10 VHDL Sequential Code By: Dr Imtiaz Hussain 1.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
1 H ardware D escription L anguages Modeling Digital Systems.
Chapter 4: Behavioral Modeling Digital System Designs and Practices Using Verilog HDL and 2008~2010, John Wiley 4-1 Ders – 4: Davranışsal Modelleme.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
1 CSE-308 Digital System Design (DSD) N-W.F.P. University of Engineering & Technology, Peshawar.
Module 1.2 Introduction to Verilog
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
CHAPTER 8 Developing Hard Macros The topics are: Overview Hard macro design issues Hard macro design process Physical design for hard macros Block integration.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
ECE-C662 Lecture 2 Prawat Nagvajara
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Introduction to ASIC flow and Verilog HDL
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
M.Mohajjel. Objectives Learn How to write synthesizable Verilog code Common mistakes and how to avoid them What is synthesized for what we code Digital.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project Design of Datapath Controllers Speaker: Shao-Wei Feng Adviser:
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Overview Logistics Last lecture Today HW5 due today
Supplement on Verilog FF circuit examples
Class Exercise 1B.
ASIC Design Methodology
Last Lecture Talked about combinational logic always statements. e.g.,
HDL simulation and Synthesis (Marks16)
Verilog Introduction Fall
B e h a v i o r a l to R T L Coding
Topics Modeling with hardware description languages (HDLs).
‘if-else’ & ‘case’ Statements
Timing issues.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Topics Modeling with hardware description languages (HDLs).
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Register-Transfer Level Components in Verilog
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Presentation transcript:

Effective RTL coding rules to avoid Simulation Shoot-thru Udit Kumar 1, Bhanu Prakash 1, Olivier Florent 1, Paras Mal Jain 2, Anshu Malani 2, Shaker Sarwary 2 1 STMicroelectronics 2 Atrenta Inc.

Name, Affiliation and Author NameAffiliation Udit Bhanu Olivier Paras Mal JainAtrenta Anshu MalaniAtrenta Shaker SarwaryAtrenta

Abstract RTL simulations do not consider timing in all aspects and therefore, the results produced by simulation may differ from silicon behavior. Simulation can miss design bugs due to limitations in simulator. These differences are due to incorrect estimation of propagation time between clock and data paths causing data to propagate earlier than in silicon. This problem is known as shoot-thru. We faced a silicon failure which prompted us to understand how shoot-thru situations occur during simulation, identify these situations with higher accuracy of analysis and fix them with minimal impact using simple RTL coding rules. We teamed up with Atrenta to automate efficiently the check of those coding rules.

What is Shoot-thru? When any signal jumps over an extra register within one clock cycle.  E.g. Input “din” crosses 2 register within one clock cycle. 4 In silicon => gate delay In simulator => events Shoot-thru: (events in data path ) <= (events in clock path) Shoot-thru: (events in data path ) <= (events in clock path) clk dint din dout cint D D

How Simulation Shoot-thru occurs? 5 dint din dout clkcint D D dint 0>1 cint 0>1 dout 0>1 Consequence : “dout” same as “din” within single clock clk 0>1 Reason : Extra Delta delay in Clock Path clk cint din dint dout

Will Verilog coding rules help? 6 // Input data sampling (posedge clk, negedge rst_n) begin if (rst_n==1’b0) dint <= din; else dint <= din; end // Capture data on divided clock (posedge cint, negedge rst_n) begin if (rst_n==1’b0) dout <= 1’b0; else dout <= dint; end // Sequentioal clock generation (posedge clk, negedge rst_n) begin if (rst_n==1’b0) cint <= 1’b0; else cint <= !cint; end blocking assignment in combination blocks and non-blocking in sequential  Not, always safe…. dout clkcint din dint D D cdiv Non-blocking assignments consume delta delay Extra Delta-delay in Clock Path

Case 1: Verification can miss Shoot-thru 7 User specification was to transfer “din” to “dout” in 1 cycle Extra flop was a mistake but not caught by RTL verification. din dout clk cint dint D D Silicon fails as “din” will be captured at “dout” in 2 cycles => one cycle extra delay vs. Specification If Simulation has shoot-thru => “din” will be captured at “dout” in 1 cycle => All tests pass as per user specification Existence of One extra flop causes silicon failure.

Case 2: Verification can miss Shoot-thru 8 User specification was to transfer “din” to “dout” in 2 cycle However, shoot-thru may cause simulation failure User fixes it by adding an extra flop Simulation Fails din dout clk D D Silicon Fails din dout clk D D D Simulation Passes after rtl changes din dout clk D D D New Flop

Potential Gap in design flow Verification Gate Level Simulation can detect shoot-thru N/l Simulation Pros: Verification at gate level represents Silicon. Cons: Huge data base and run time. Pros: Verification at gate level represents Silicon. Cons: Huge data base and run time. Functional Design Verification Synthesis Physical design HDL Gates Silicon Functional Specification Equivalence check

By using an improved simulator?  NO, as root cause of problem is that RTL Simulation has no notion of timing delay & Hold checks. 10 By doing Gate level simulation?  Yes but it is very costly. By using robust RTL coding rules?  Yes! this is easy and efficient (see subsequent slides) So, How to detect shoot-thru issues?

Rule 1 - Force scheduling of data 11 din dout clkcint dint D D This adds an extra delay in data path dint<= din after 1 ns; VHDL dint <= #1 din ; Verilog Force physical time delay in Sequential data assignments Signal is delayed in ‘physical time’, instead of ‘delta’ time.

Rule 2 - No ‘physical delay’ in clock path Delay on clock paths competes with delay on Data path Clock vs Data scheduling still un-reliable 12 din dout clkcint dint D D Rule1 + Rule2 ensures no risk of shoot-thru i.e data is updated after clock after 1ns No unwanted delay on clock path

Automation with SpyGlass RTL checker 13 din dout clkcint D D If delta delay is different between launch and capture flop, add delay on launch flop Rule 1 – Reports missing needed delay in data path Rule 2 – Reports extra delay (Physical) present in clock path din dout clkcint dint D D Easy to identify shoot-thru prone RTL

Checker catches Real Silicon Issues 14 din dout tck D D logic Missing delay at source din dout tck D D clkD Extra delay in clock divider Missing delay was causing silicon failure Unintentional delay in clock path found on another chip  User specified physical delay on source flop - Still problem occurred due to physical delay specified on clock path Buffer, Clock gating etc.

Conclusion Simulators create events and schedule them, but with no notion of timing checks across data and clock events Shoot-thru impacts RTL Simulation and may cause false simulation behavior, masking the real issues Simple RTL coding rules can prevent the problem to occur  Possibly add physical delays on data path to force scheduling  Avoid physical delays on clock path Spyglass RTL checker can help you to efficiently check those rules and removes need of costly gate level simulations. Next Steps  Extend the SpyGlass checks to ensure that every output interface is having delayed assignment 15