Constraint Verification

Size: px
Start display at page:

Download "Constraint Verification"

Transcription

1 Constraint Verification Constraint verification refers to the verification of the contents of an SDC file to flag situations where the specified constraints are either incorrect, or incomplete, both of which, if not addressed, could result in silicon failure. The key to constraint verification is the ability to flag real issues without swamping an engineer with noise: issues that upon designer review result in no change to the design or constraints. A constraint verification solution plays the role of a devil s advocate, and is effective when it brings to the attention of engineers sophisticated design/constraints issues that are not flagged by other tools in the implementation/verification flow. A constraint verification solution that inundates an engineer with warnings is, in effect, abdicating the role it was asked to perform and telling the engineer that he needs to manually review his constraints. The key to an effective constraint verification solution is the use of powerful formal technology that only flags issues when the collateral provided to the tool (design, architectural input) simply does not support a constraint. A tool that flags issues because the formal engine underlying the verification is unable to deal with design complexity is inherently noisy and so of limited value. Powerful formal technology by itself, however, is insufficient in eliminating noise. Often the support for a constraint such as a false or multi-cycle path is based on the way the design will be used. For example, some registers are expected to be static and programmed to a subset of the possible values. The behavior on the input ports of a design is expected to adhere to a bus protocol. Even the most powerful formal tool is unable to deal with information it is unaware about. It is in these situations that assertions play a hugely important role in reducing the issues that an engineer needs to review. Figure 1: Constraint verification flow. The FishTail constraint verification flow, shown in Figure 1, takes as input the RTL or netlist description of a design along with its associated constraints (in Tcl format). The constraints are first mapped to the design description using Refocus. The constraint mapping process is used to sort out basic issues with the collateral; black-boxed modules, syntax issues with the constraints, constraints that refer to objects that do not exist, setup multi-cycle paths (MCPs) specified without accompanying hold MCPs, etc. Refocus is

2 able to map netlist constraints to RTL, allowing constraint verification to be performed with RTL input (this is preferable for designer review, assertion integration into RTL functional simulation) even when STA signoff constraints need to be verified. Once constraint mapping is clean, engineers proceed with verifying their constraints using Confirm. Confirm is built on a proprietary formal engine that was developed specifically for constraint verification. This engine allows Confirm to scale, perform fast formal verification, without being humbled by complex cones of logic. The formal technology used by Confirm does not synthesize the input RTL, but instead performs verification at a higher-level of the design than traditional formal tools. When false or multi-cycle paths fail formal proof, engineers are not asked to review these failures, or provide architectural input to the tool to get these failures to change to passes. Instead, Confirm generates assertions for failing timing exceptions. Assertions capture the functional behavior of the design that must be satisfied for the exceptions they are associated with to be correct. Since the RTL provided as input to Confirm was not synthesized the generated assertions are compact, refer to RTL nets that a simulator has visibility into, and are easily integrated into any simulator. The assertions check all paths constrained by timing exceptions but do not significantly impact simulation runtime. Next, engineers run their existing regressions for a design with the generated assertions. Once the regression run is complete, engineers run a utility that extracts status on the Confirm generated assertions from their simulation run. This utility reports exceptions whose assertions failed, the paths that are impacted by these failures, and the tests in which the failures occurred. These failures need to be reviewed closely by designers, because the flow is pointing out real-world situations where the specified FP/MCP behavior does not hold. Reviewing a failure simply requires bringing up the simulation waveform and analyzing the failure something engineers are already comfortable with. For assertions that are not covered by existing regressions the flow reports a list of registers that never transitioned. If these registers are truly static then nothing further needs to be done; the impacted exceptions are legitimate because they apply to static startpoints. If these registers are not static, then the flow has pointed out a gap in the existing functional coverage of the design that needs to be addressed by adding new testcases to the regressions. The value of the FishTail constraint verification flow is that by using a powerful proprietary formal engine, coupled with the ability to generate accurate, complete and compact assertions for failing exceptions, engineers only review real issues with their constraints. The flow does not waste designer time reviewing noise and so plays an effective devil s advocate regarding the correctness of their constraints. For example, consider the data we gathered from the verification of timing exceptions using Confirm on a CPU. The SDC had 31 false-paths that applied to 7137 paths on the design (a path is a unique start/end pair). Of these, 25% of the paths were formally proven to be correct and a further 74% were proven using assertion-based verification leaving only 97 failing paths (out of a total of 7137) to be reviewed by the designer. The SDC also had 336 multi-cycle paths that applied to paths on the design. Of these 58% of the paths were formally proven, and a further 39% of the paths were proven using assertion-

3 based verification leaving 460 failing paths (out of a total of 14238) for designer review. These results are not unique to this specific design. Typically, less than 2-3% of the paths constrained by timing exceptions require designer review using Confirm s formal and assertion-based approach to constraint verification. The rest of this document discusses types of constraint related issues that are flagged by the flow issues that other tools do not catch. These issues relate to the verification of: 1) Clock propagation 2) Generated clock waveforms 3) Generated clock alignment 4) Logically exclusive clock groups 5) Physically exclusive clock groups 6) Case analysis 7) False paths 8) Multi-cycle paths 9) Glitches on asynchronous resets Clock-Propagation Verification Figure 2: Verification of clock propagation. For the design shown in Figure 2, assume the following constraints are in place: create_clock period 5.0 CLKA create_clock period 3.0 TCLK create_clock period 10.0 CLKB STA simply establishes whether a clock propagates to a pin or not. Case analysis and disable timing commands are the only reasons for the propagation of a clock along a combinational path to stop. Confirm s constraint verification, on the other hand, establishes not only the pins that a clock propagates to but the condition under which a clock propagates to that pin.

4 For example, in Figure 2, Confirm establishes that for the clock TCLK to propagate to U1/Y, TEST must be 1 (note that there is no case analysis specified on TEST). As the requirement for TCLK to propagate to U3/Y is that TEST must be 0 it is impossible for TCLK to propagate through U1/Y and then also through U3/Y. As a result, the propagation of TCLK will halt at U3/A. Confirm flags this as an issue - the impact of which is that the flop FF2 will not be clocked by TCLK. This issue could be the result of a design bug where instead of an or-gate driving the select line of the clock mux U3, a nor-gate was intended. STA will completely miss this issue and instead indicate that flop FF2 is clocked by TCLK. This provides a false assurance to a design engineer and misses an important bug in the clock-generation logic. If the designer decides that the propagation of TCLK was intentionally stopped at U3/A, then the constraints are missing a set_clock_sense stop_propagation constraint that communicates this to STA. Without this constraint STA results will be pessimistic, potentially reporting timing issues that are not real. Verification of Generated Clock Waveforms Figure 3: Verification of generated clock waveforms. Generated clock definitions specify a periodic waveform on a pin. The complexities associated with the different options used to create a generated clock coupled with design complexities result in the risk that an engineer specifies an incorrect waveform. Such a mistake is serious because it impacts the static timing analysis of all the registers clocked by the generated clock. STA checks that an engineer has correctly specified the edges of the master clock at which a generated clock transitions. For the generated clock specified in Figure 3, STA will not report any issue since it is indeed correct that the generated clock transitions at rising edges of the master clock. STA does not, however, verify that the low-pulse, high-pulse and period of the generated clock is correctly specified and so does not issue any error message for the situation shown in Figure 3. The engineer has specified a divide-by 3 waveform relative to the master clock when, in fact, the logic of

5 the design results in a divide-by 4 generated clock. Confirm flags this issue and proves whether the low-pulse, high-pulse and period on a generated clock are correctly specified based on the clock-division logic. Generated-Clock Alignment Verification In addition to verifying the period and pulse-width on generated clocks Confirm verifies the alignment of generated clocks that are derived from a common master clock. Alignment verification requires checking to see whether the specified separation between rising edges on generated clocks is actually exhibited by the circuit. For example, consider the following clock definitions in a constraint file: create_clock -name mclk -period 10 [get_ports clkin] create_generated_clock -name mclkby2 -master_clock mclk -divide_by 2 - source [get_ports clkin] [get_ports {clkby2}] create_generated_clock -name mclkby4 -master_clock mclk -divide_by 4 - source [get_ports clkin] [get_ports {clkby4}] create_generated_clock -name mclkby8 -master_clock mclk -divide_by 8 - source [get_ports clkin] [get_ports {clkby8}] The waveforms implied by these clock definitions are shown below: Figure 4: Verification of generated clock alignment. The way the waveforms have been specified, mclkby4 is expected to rise along with mclkby2 and mclkby8 is expected to rise along with mclkby4. What, if however, the logic that creates these generated clocks results in the waveform shown on mclkby8. The periods of the generated clocks have been correctly specified, but mclkby8 actually rises when mclkby4 falls, and not when mclkby4 rises. Confirm will flag this issue. The impact of such a mistake can be significant. With the waveforms specified by the user, STA will provide 4 cycles of mclk for a timing path that is launched by mclkby4 and captured by mclkby8. However, after accounting for the correct alignment among the

6 generated clocks there are actually only 2 cycles of mclk available for the path from mclkby4 to mclkby8. The impact of this mistake is the same as specifying an incorrect two cycle MCP between mclkby4 and mclkby8. In addition to checking the waveform specified on the pin on which a generated clock is created, Confirm examines if the clock gating logic that shapes the waveform on a generated clock as it propagates along the clock network, changes the way the clock is aligned relative to the pin on which it is created. If the alignment changes, the issue is flagged because it means that the clock waveform that propagates to the clock pins is inconsistent with the waveform specified on the generated clock definition point. Logically Exclusive Clock Group Verification Figure 5: Logically exclusive clock group verification. For the design shown in Figure 5, assume that the following constraints have been defined: create_clock period 5.0 clk create_generated_clock source clk divide_by 2 genclk set_false_path from clk to genclk Confirm will report that the path between FF3 and FF4 is correctly constrained because the propagation requirement for clk to reach the clock pins on these flops is!sel and the propagation requirement for genclk to reach the same clock pins is sel. As the propagation requirements are exclusive to each other, the two clocks are logically exclusive in the way they propagate to flops FF3 and FF4. Confirm, however, will also report that the path between FF1 and FF2 is incorrectly constrained because both clk and genclk unconditionally reach the clock pins on these flops. For this reason, clocks clk and genclk are not exclusive in the way they propagate to FF1 and FF2.

7 Confirm provides a nuanced assessment of clock crossing issues. Instead of complaining about a clock-to-clock exception simply based on the fact that two clocks share the same master clock, Confirm analyzes the design to establish if the clocks are logically exclusive to each other and only complains if they are not. As a result, a designer only needs to review the real clock crossing issues on a design. Physically Exclusive Clock Group Verification Figure 6: Physically exclusive clock group verification. For the design shown in Figure 6, assume that the following constraints have been defined: create_clock period 5.0 clk create_generated_clock FF1/Q source clk divide_by 2 name genclk1 create_generated_clock FF2/Q source clk divide_by 2 name genclk2 set_clock_group physically_exclusive group genclk1 group genclk2 Confirm establishes that the propagation requirement for the master clock clk to genclk1 is sel. Similarly, the propagation requirement for the master clock clk to genclk2 is!sel. As a result, the condition under which generated clock genclk1 exists on the design is sel and the condition under which genclk2 exists in the design is!sel. As these conditions are exclusive the two generated clocks are physically exclusive when one exists, the other does not. Confirm does not flag any issue with the clock group constraint and the benefit of this is less noise in the warnings reported by the tool - this is key to maintaining the attention span of a seasoned designer. Case Analysis Verification For the design show in Figure 7 assume that the following constraints are in place: set_case_analysis 0 U1/S set_case_analysis 0 U2/S

8 Figure 7: Case analysis verification. STA will flag no issue with these constraints because there is no conflict with the specified constant values when they are propagated forward in the design. Confirm, on the other hand, will establish that the case analysis of 0 on U1/S requires flops FF1 and FF2 to both be high. The case analysis of 0 on U2/S requires flops FF1 and FF2 to both be low. These requirements conflict and so the specified case analysis is cumulatively illegal. On complex designs it is easy to specify case analysis values that are in conflict with each other. These values will be honored without complaint by STA and could easily result in a silicon issue because timing signoff will be performed with the design placed in a bogus state the actual analysis that is meant to take place will never be performed. False Path Verification Figure 8: False path verification For the design show in Figure 8 assume that the following constraints are in place: create_clock period 5.0 CLKA create_clock period 10.0 CLKB set_false_path from FF1/CP to CLKB set_false_path from FF2/CP to CLKA

9 STA will not help establish whether the specified false paths are correct or incorrect. At best STA will tell a designer that the specified paths do apply to real paths on a design. Whether they are meant to apply or not, is not something STA helps address. Confirm verifies these false paths by establishing that the propagation requirement for the path from FF1 to FF3 is!sel and the propagation requirement for FF2 to FF3 is sel. Also, the propagation requirement for clock CLKA to FF3 is!sel and the propagation requirement for clock CLKB to FF3 is sel. Since the propagation requirement of!sel from FF1 to FF3 conflicts with the propagation requirement of sel for CLKB to propagate to FF3 the false-path definition from FF1 to CLKB is correct. Similarly, the false-path definition from FF2 to CLKA is also correct. Confirm will not complain about either of these false paths. In general, as long as the RTL provided to the tool supports the constraint, regardless of the complexity of the logic cones, Confirm will formally prove a timing exception as correct. If the exception fails formal verification an assertion is generated for it and verified using functional simulation. As long as a timing exception is supported by the logic or architecture of the design there is value in verifying it using Confirm. If, however, the only justification for a false or multi-cycle path is to mask the timing on a path, because it does not need to be met, then there is no value in verifying such exceptions using Confirm. An example of such a false path, for example, is one specified from test ports in the functional mode of the design these paths are not really false, but the designer has decided that their timing is irrelevant in the functional mode. Such exceptions can and should be waived up-front from verification. Multi-Cycle Path Verification Figure 9: Multi-cycle path verification For the design show in Figure 9, assume the following constraints are in place: create_clock period 5.0 CLK set_multicycle_path from FF1/CP to FF2/D To prove this multi-cycle path Confirm establishes that for the FF1/Q pin to transition in the current clock cycle valid must be high in the previous clock cycle. Also, for clk to

10 propagate to FF2, valid must be high. The signal valid has a periodic relationship and toggles from high to low every clock cycle. For this reason, if valid is high in the current clock cycle, causing FF1/Q to transition in the next cycle, then valid is also low in the next cycle thereby preventing clk from propagating to FF2. This ensures multi-cycle behavior and the specified multi-cycle path from FF1 to FF2 is correct. MCP verification requires a sequential formal analysis of the design, working back several clock cycles until a multi-cycle property is proven. If Confirm is unable to formally prove an MCP it generates an assertion, such as that shown in Figure 10. module u_mcp97_1 (input bit clk, input logic [15:0] from_reg, input logic [15:0] to_reg, input bit [1:0] v39); wire path_propagation_condition = ( (v39[1:0] == 2'b01) ); property clk) `FT_DISABLE (`FT_TRANSITIONS_AND_NOT_UNKNOWN(from_reg[15:0])) -> ((##0 (!path_propagation_condition)) or (##1 (`FT_NO_TRANSITION_OR_UNKNOWN(to_reg[15:0])))); endproperty mcp97_1: assert property(e_mcp97_1); endmodule bind top u_mcp97_1 sva_u_mcp97_1(.clk(blk3.fast_clk),.from_reg(blk3.sp),.to_reg(blk3.ep),.v39(ucounter.count)); Figure 10: Example assertion for failing MCP. This assertion checks that when the startpoint (from_reg) transitions then, either in that cycle the condition required to propagate the change from the startpoint to the endpoint (path_propagation_condition) should not be true, or in the next cycle the endpoint (to_reg) should not transition. The assertion is bound to the original RTL using bind statements. The assertion file generated by Confirm is a standalone file that is added to the list of files that are compiled by the simulator. Assuming the design has a good regression suite, the validity of the exception can be tested with a high degree of confidence by importing the assertion file into RTL functional simulation. Glitch Verification It is imperative that asynchronous resets are safe from glitches that momentarily reset a sequential element on a design. Approaches that attempt to prove that resets are glitch safe do not work effectively with RTL input and require significant hand-holding to confirm an expected result. Confirm offers a significantly differentiated approach to verifying that asynchronous resets on a design are glitch safe. Confirm identifies all the asynchronous resets on a design and their assertion level (i.e. is the reset active low or active high). Confirm then uses a combination of formal and assertion-based verification

11 to prove that an active low reset cannot glitch low and an active high reset cannot glitch high. Confirm does this by analyzing the cone of logic leading to a reset and identifying the multi-input gates (MIG) in this logic. A MIG is where a glitch could occur and then propagate to the reset pin. If Confirm is able to formally prove that it is impossible for a glitch of the appropriate polarity to occur on the MIG output, or even if the MIG could glitch it is impossible for the glitch to propagate to the reset pin, then the reset pin is safe from a glitch as far as that specific MIG is concerned. If, on the other hand, Confirm cannot rule out the possibility of a glitch at the MIG and the subsequent propagation of the glitch to the reset pin then it writes out an assertion that captures what it would take for a glitch to be generated at the output of the MIG and then propagate to the reset pin. Functional simulation can be used to establish that the assertion never fails. Confirm repeats this approach for each MIG in the cone of logic leading to an asynchronous reset. Figure 11: Glitch verification of asynchronous resets. For example, consider the design in Figure 11, where it is important that the clrz pin not glitch low. The MIGs in the fanin cone of clrz are U13, U33, U243 etc. At some of these cells, U13 and U33 for example, it is trivial to prove that the desired glitch cannot happen (a NAND-gate cannot glitch high, for example, nor can a NOR-gate glitch low). At others, U246, for example, an active low glitch could occur and propagate to the clrz pin depending on how the cone of logic for this signal is driven. Rather than require the user to provide architectural input to formally establish that this is impossible, Confirm generates an assertion that can be checked during functional simulation. The assertion for U246 is shown in Figure 12. The assertion checks if it is possible for the inputs on U246 to transition in a way that a glitch could occur at the output of U246, and if this can happen the assertion further checks that this glitch cannot propagate to clrz.

12 @(posedge clk) (($rose(poken10_1p8) && `FT_IS_HI(pok10_1p8) && $fell(pok10_out_1p8)) ($fell(poken10_1p8) && `FT_IS_HI(pok10_1p8) && $rose(pok10_out_1p8))) -> (!(`FT_IS_HI(reset_tamper_extended.q) && `FT_IS_LO(U240.y) && `FT_IS_LO(U34.y) && `FT_IS_HI(U244.y) && `FT_IS_HI(u245.y))); Figure 12: Example glitch assertion. Confirm s approach to glitch verification does not require an engineer to provide architectural input to nudge the tool along and help it prove that a cone of logic is glitch safe. That s because the objective is not to prove everything formally, only what can be done so conclusively based on design description. For the rest, Confirm generates assertions and functional simulation establishes whether the assertions pass or fail. No delay information is required to prove that a timing endpoint is glitch safe. The validity of our approach holds for any and all circuit delays. The exercise can be repeat once the RTL is synthesized if an engineer is concerned about the impact of synthesis transformations on glitch generation and propagation.

The Formal Verification of Design Constraints by Ajay Daga, CEO, FishTail Design Automation Inc.

The Formal Verification of Design Constraints by Ajay Daga, CEO, FishTail Design Automation Inc. The Formal Verification of Design Constraints by Ajay Daga, CEO, FishTail Design Automation Inc. There are two approaches to the verification of design constraints: formal verification and structural analysis.

More information

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints Chip design is not getting any easier. With increased gate counts, higher clock speeds, smaller chip sizes and

More information

Equivalence Checking for Timing Constraints Subramanyam Sripada March 6, 2014

Equivalence Checking for Timing Constraints Subramanyam Sripada March 6, 2014 Equivalence Checking for Constraints Subramanyam Sripada March 6, 2014 2014 Synopsys. All rights reserved. 1 Agenda Motivation Existing Solutions Multi-pass approach Results Conclusion 2014 Synopsys. All

More information

Comparing Constraint Behavior to Determine Equivalency TAU Sonia Singhal Loa Mize Subramanyam Sripada Szu-Tsung Cheng Cho Moon

Comparing Constraint Behavior to Determine Equivalency TAU Sonia Singhal Loa Mize Subramanyam Sripada Szu-Tsung Cheng Cho Moon Comparing Constraint Behavior to Determine Equivalency TAU 2011 Sonia Singhal Loa Mize Subramanyam Sripada Szu-Tsung Cheng Cho Moon 1 Constraints Communicate design requirements and intent to implementation

More information

TRILOBYTE SYSTEMS. Consistent Timing Constraints with PrimeTime. Steve Golson Trilobyte Systems.

TRILOBYTE SYSTEMS. Consistent Timing Constraints with PrimeTime. Steve Golson Trilobyte Systems. TRILOBYTE SYSTEMS Consistent Timing Constraints with PrimeTime Steve Golson Trilobyte Systems http://www.trilobyte.com 2 Physical implementation Rule #1 Do not change the functionality Rule #2 Meet the

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Agenda: Day Two. Unit 6: Specifying Timing Exceptions DAY 2. I/O Paths and Exceptions. Constraining I/O Interface Paths

Agenda: Day Two. Unit 6: Specifying Timing Exceptions DAY 2. I/O Paths and Exceptions. Constraining I/O Interface Paths Agenda: Day Two 6-1 DAY 2 Unit I/O Paths and Exceptions Lab 5 Constraining I/O Interface Paths 6 7 Introduction to Timing Models (QTM) 8 Performing STA 9 Summary 10 Customer Support 6-1 Unit 6: Unit Objectives

More information

Accelerating CDC Verification Closure on Gate-Level Designs

Accelerating CDC Verification Closure on Gate-Level Designs Accelerating CDC Verification Closure on Gate-Level Designs Anwesha Choudhury, Ashish Hari anwesha_choudhary@mentor.com, ashish_hari@mentor.com Design Verification Technologies Mentor Graphics Abstract:

More information

Timing Constraints Editor User Guide

Timing Constraints Editor User Guide Libero SoC v11.8 SP1 and SP2 NOTE: PDF files are intended to be viewed on the printed page; links and cross-references in this PDF file may point to external files and generate an error when clicked. View

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

Comprehensive and Automated Static Tool Based Strategies for the Detection and Resolution of Reset Domain Crossings

Comprehensive and Automated Static Tool Based Strategies for the Detection and Resolution of Reset Domain Crossings Comprehensive and Automated Static Tool Based Strategies for the Detection and Resolution of Reset Domain Crossings Yossi Mirsky B.Sc, M.Sc, MBA Intel Corporation (joseph.mirsky@intel.com) 9 Hamarpe Street,

More information

Challenges in Verification of Clock Domain Crossings

Challenges in Verification of Clock Domain Crossings Challenges in Verification of Clock Domain Crossings Vishnu C. Vimjam and Al Joseph Real Intent Inc., Sunnyvale, CA, USA Notice of Copyright This material is protected under the copyright laws of the U.S.

More information

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry EE183 LAB TUTORIAL Introduction You will be using several CAD tools to implement your designs in EE183. The purpose of this lab tutorial is to introduce you to the tools that you will be using, Xilinx

More information

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain

More information

Test Scenarios and Coverage

Test Scenarios and Coverage Test Scenarios and Coverage Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in in-charge, AVLSI Design Lab,

More information

ENGR 3410: MP #1 MIPS 32-bit Register File

ENGR 3410: MP #1 MIPS 32-bit Register File ENGR 3410: MP #1 MIPS 32-bit Register File Due: Before class, September 23rd, 2008 1 Introduction The purpose of this machine problem is to create the first large component of our MIPS-style microprocessor

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

SmartTime for Libero SoC v11.5

SmartTime for Libero SoC v11.5 SmartTime for Libero SoC v11.5 User s Guide NOTE: PDF files are intended to be viewed on the printed page; links and cross-references in this PDF file may point to external files and generate an error

More information

A Practical Solution to Fixing Netlist X-Pessimism

A Practical Solution to Fixing Netlist X-Pessimism A Practical Solution to Fixing Netlist X-Pessimism Most functional verification for SoC and FPGA designs is done prior to RTL hand-off to digital synthesis, since gate-level simulations take longer to

More information

Specifying Timing Exceptions

Specifying Timing Exceptions Specifying Timing Exceptions Learning Objectives This lab is intended to give you a better understanding of how static timing analysis works and how timing exceptions are applied properly. After completing

More information

Pipelined MIPS CPU Synthesis and On-Die Representation ECE472 Joseph Crop Stewart Myers

Pipelined MIPS CPU Synthesis and On-Die Representation ECE472 Joseph Crop Stewart Myers Pipelined MIPS CPU Synthesis and On-Die Representation ECE472 Joseph Crop Stewart Myers 2008 Table of Contents Introduction... 3 Steps Taken and Simulation... 3 Pitfalls... 8 Simulated Delay... 9 APPENDIX

More information

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design 1 In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design a fininte state machine in order to produce the desired

More information

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design a fininte state machine in order to produce the desired

More information

ENGR 3410: MP #1 MIPS 32-bit Register File

ENGR 3410: MP #1 MIPS 32-bit Register File ENGR 3410: MP #1 MIPS 32-bit Register File Due: October 12, 2007, 5pm 1 Introduction The purpose of this machine problem is to create the first large component of our MIPS-style microprocessor the register

More information

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

Custom Design Formal Equivalence Checking Based on Symbolic Simulation. Overview. Verification Scope. Create Verilog model. Behavioral Verilog

Custom Design Formal Equivalence Checking Based on Symbolic Simulation. Overview. Verification Scope. Create Verilog model. Behavioral Verilog DATASHEET Custom Design Formal Equivalence Checking Based on Symbolic Simulation High-quality equivalence checking for full-custom designs Overview is an equivalence checker for full custom designs. It

More information

Formal Technology in the Post Silicon lab

Formal Technology in the Post Silicon lab Formal Technology in the Post Silicon lab Real-Life Application Examples Haifa Verification Conference Jamil R. Mazzawi Lawrence Loh Jasper Design Automation Focus of This Presentation Finding bugs in

More information

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven

More information

Logic Verification 13-1

Logic Verification 13-1 Logic Verification 13-1 Verification The goal of verification To ensure 100% correct in functionality and timing Spend 50 ~ 70% of time to verify a design Functional verification Simulation Formal proof

More information

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly! This tutorial will show you how to: Part I: Set up a new project in ISE 14.7 Part II: Implement a function using Schematics Part III: Simulate the schematic circuit using ISim Part IV: Constraint, Synthesize,

More information

3. Formal Equivalence Checking

3. Formal Equivalence Checking 3. Formal Equivalence Checking 1 3. Formal Equivalence Checking Jacob Abraham Department of Electrical and Computer Engineering The University of Texas at Austin Verification of Digital Systems Spring

More information

7.3.3 Same Inputs in Antecedent and Consequent

7.3.3 Same Inputs in Antecedent and Consequent Formal Verification Using Assertions 249 There are some special scenarios in which the user may want to intentionally toggle the reset signal during a session. This may be needed to check conditions such

More information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering VERILOG FUNDAMENTALS HDLs HISTORY HOW FPGA & VERILOG ARE RELATED CODING IN VERILOG HDLs HISTORY HDL HARDWARE DESCRIPTION LANGUAGE

More information

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All

More information

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification PURPOSE: To use Formality and its formal techniques to prove or disprove the functional equivalence of two designs. Formality can be used

More information

Stuart Sutherland, Sutherland HDL, Inc.

Stuart Sutherland, Sutherland HDL, Inc. SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set Ways Design Engineers Can Benefit from the Use of SystemVerilog Assertions Stuart Sutherland, Sutherland HDL,

More information

Behavioral Modeling and Timing Constraints

Behavioral Modeling and Timing Constraints Introduction Behavioral modeling was introduced in Lab 1 as one of three widely used modeling styles. Additional capabilities with respect to testbenches were further introduced in Lab 4. However, there

More information

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam Last (family) name: First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Instructor: Kewal

More information

HOW TO SYNTHESIZE VERILOG CODE USING RTL COMPILER

HOW TO SYNTHESIZE VERILOG CODE USING RTL COMPILER HOW TO SYNTHESIZE VERILOG CODE USING RTL COMPILER This tutorial explains how to synthesize a verilog code using RTL Compiler. In order to do so, let s consider the verilog codes below. CNT_16 Module: 16

More information

Lab 7 (All Sections) Prelab: Introduction to Verilog

Lab 7 (All Sections) Prelab: Introduction to Verilog Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The

More information

Nikhil Gupta. FPGA Challenge Takneek 2012

Nikhil Gupta. FPGA Challenge Takneek 2012 Nikhil Gupta FPGA Challenge Takneek 2012 RECAP FPGA Field Programmable Gate Array Matrix of logic gates Can be configured in any way by the user Codes for FPGA are executed in parallel Configured using

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Courtesy of Rex Min. Used with permission. 1 Key Points from L4 (Sequential Blocks) Classification: Latch: level sensitive (positive latch passes input to output

More information

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

More information

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function. FPGA Logic block of an FPGA can be configured in such a way that it can provide functionality as simple as that of transistor or as complex as that of a microprocessor. It can used to implement different

More information

ENGR 3410: Lab #1 MIPS 32-bit Register File

ENGR 3410: Lab #1 MIPS 32-bit Register File ENGR 3410: Lab #1 MIPS 32-bit Register File Due: October 12, 2005, beginning of class 1 Introduction The purpose of this lab is to create the first large component of our MIPS-style microprocessor the

More information

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0

CSE 591: Advanced Hardware Design and Verification (2012 Spring) LAB #0 Lab 0: Tutorial on Xilinx Project Navigator & ALDEC s Active-HDL Simulator CSE 591: Advanced Hardware Design and Verification Assigned: 01/05/2011 Due: 01/19/2011 Table of Contents 1 Overview... 2 1.1

More information

Lecture 11 Logic Synthesis, Part 2

Lecture 11 Logic Synthesis, Part 2 Lecture 11 Logic Synthesis, Part 2 Xuan Silvia Zhang Washington University in St. Louis http://classes.engineering.wustl.edu/ese461/ Write Synthesizable Code Use meaningful names for signals and variables

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min Key Points from L4 (Sequential Blocks) Classification: Latch: level sensitive (positive latch passes input to output

More information

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger

More information

Multiple Clocks and Timing Exceptions

Multiple Clocks and Timing Exceptions 10 Multiple Clocks and Timing Exceptions Learning Objectives This lab is intended to give you a better understanding of how static timing analysis works and how timing exceptions are properly applied.

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Mark Litterick (Verification Consultant) mark.litterick@verilab.com 2 Introduction Clock

More information

A GENERATION AHEAD SEMINAR SERIES

A GENERATION AHEAD SEMINAR SERIES A GENERATION AHEAD SEMINAR SERIES Constraints &Tcl Scripting Design Methodology Guidelines for Faster Timing Convergence Agenda Vivado Tcl Overview XDC Management Design Methodology for Faster Timing Closure

More information

Qualification of Verification Environments Using Formal Techniques

Qualification of Verification Environments Using Formal Techniques Qualification of Verification Environments Using Formal Techniques Raik Brinkmann DVClub on Verification Qualification April 28 2014 www.onespin-solutions.com Copyright OneSpin Solutions 2014 Copyright

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

Module 4. Design of Embedded Processors. Version 2 EE IIT, Kharagpur 1

Module 4. Design of Embedded Processors. Version 2 EE IIT, Kharagpur 1 Module 4 Design of Embedded Processors Version 2 EE IIT, Kharagpur 1 Lesson 23 Introduction to Hardware Description Languages-III Version 2 EE IIT, Kharagpur 2 Instructional Objectives At the end of the

More information

CAD Technology of the SX-9

CAD Technology of the SX-9 KONNO Yoshihiro, IKAWA Yasuhiro, SAWANO Tomoki KANAMARU Keisuke, ONO Koki, KUMAZAKI Masahito Abstract This paper outlines the design techniques and CAD technology used with the SX-9. The LSI and package

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions Logic Synthesis Overview Design flow Principles of logic synthesis Logic Synthesis with the common tools Conclusions 2 System Design Flow Electronic System Level (ESL) flow System C TLM, Verification,

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Laboratory Exercise 3

Laboratory Exercise 3 Laboratory Exercise 3 Latches, Flip-flops, and egisters The purpose of this exercise is to investigate latches, flip-flops, and registers. Part I Altera FPGAs include flip-flops that are available for

More information

Intel Quartus Prime Standard Edition User Guide

Intel Quartus Prime Standard Edition User Guide Intel Quartus Prime Standard Edition User Guide Timing Analyzer Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. Timing Analysis Introduction...

More information

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and shift registers, which is most useful in conversion between

More information

Beyond Soft IP Quality to Predictable Soft IP Reuse TSMC 2013 Open Innovation Platform Presented at Ecosystem Forum, 2013

Beyond Soft IP Quality to Predictable Soft IP Reuse TSMC 2013 Open Innovation Platform Presented at Ecosystem Forum, 2013 Beyond Soft IP Quality to Predictable Soft IP Reuse TSMC 2013 Open Innovation Platform Presented at Ecosystem Forum, 2013 Agenda Soft IP Quality Establishing a Baseline With TSMC Soft IP Quality What We

More information

ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS)

ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS) ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS) Objective Part A: To become acquainted with Spectre (or HSpice) by simulating an inverter,

More information

Leveraging Formal Verification Throughout the Entire Design Cycle

Leveraging Formal Verification Throughout the Entire Design Cycle Leveraging Formal Verification Throughout the Entire Design Cycle Verification Futures Page 1 2012, Jasper Design Automation Objectives for This Presentation Highlight several areas where formal verification

More information

EECS 151/251A ASIC Lab 6: Power and Timing Verification

EECS 151/251A ASIC Lab 6: Power and Timing Verification EECS 151/251A ASIC Lab 6: Power and Timing Verification Written by Nathan Narevsky (2014,2017) and Brian Zimmer (2014) Modified by John Wright (2015,2016), Ali Moin (2017) and Taehwan Kim (2018) Overview

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min Lecture notes prepared by Professor Anantha Chandrakasan L5: 6.111 Spring 29 Introductory Digital Systems Laboratory

More information

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 28: Synthesis of Language Constructs Synthesis of Nets v An explicitly declared net may be eliminated in synthesis v Primary input and output (ports) are always retained

More information

ELEC 4200 Lab#0 Tutorial

ELEC 4200 Lab#0 Tutorial 1 ELEC 4200 Lab#0 Tutorial Objectives(1) In this Lab exercise, we will design and implement a 2-to-1 multiplexer (MUX), using Xilinx Vivado tools to create a VHDL model of the design, verify the model,

More information

Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design

Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design Lisa Piper Technical Marketing Real Intent Inc., Sunnyvale, CA Comprehensive verification of Finite State

More information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min L5: 6. Spring 27 Introductory igital Systems Laboratory Key Points from L4 (Sequential Blocks) Classification: Latch:

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview Synopsys Synthesis Overview Ben 2006.02.16 ACCESS IC LAB Outline Introduction Setting Design Environment Setting Design Constraints Synthesis Report and Analysis pp. 2 What is Synthesis Synthesis = translation

More information

Designing RGMII Interface with FPGA and HardCopy Devices

Designing RGMII Interface with FPGA and HardCopy Devices Designing RGMII Interface with FPGA and HardCopy Devices November 2007, ver. 1.0 Application Note 477 Introduction The Reduced Gigabit Media Independent Interface (RGMII) is an alternative to the IEEE

More information

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016

ECE 353 Lab 4. MIDI Receiver in Verilog. Professor Daniel Holcomb UMass Amherst Fall 2016 ECE 353 Lab 4 MIDI Receiver in Verilog Professor Daniel Holcomb UMass Amherst Fall 2016 Timeline and Grading for Lab 4 Lectures on 11/15 and 11/17 Due on 12/12 Demos in Duda hall Schedule will be posted

More information

Verilog Nonblocking Assignments with Delays - Myths & Mysteries

Verilog Nonblocking Assignments with Delays - Myths & Mysteries Verilog Nonblocking Assignments with Delays - Myths & Mysteries Clifford E. Cummings, Inc. cliffc@sunburst-design.com www.sunburst-design.com 2 of 67 Agenda IEEE 1364 reference model & event queue Review

More information

LAB 6 Testing the ALU

LAB 6 Testing the ALU Goals LAB 6 Testing the ALU Learn how to write testbenches in Verilog to verify the functionality of the design. Learn to find and resolve problems (bugs) in the design. To Do We will write a Verilog testbench

More information

High-Performance FPGA PLL Analysis with TimeQuest

High-Performance FPGA PLL Analysis with TimeQuest High-Performance FPGA PLL Analysis with TimeQuest August 2007, ver. 1.0 Application Note 471 Introduction f Phase-locked loops (PLLs) provide robust clock management and clock synthesis capabilities for

More information

Is Power State Table Golden?

Is Power State Table Golden? Is Power State Table Golden? Harsha Vardhan #1, Ankush Bagotra #2, Neha Bajaj #3 # Synopsys India Pvt. Ltd Bangalore, India 1 dhv@synopsys.com 2 ankushb@synopsys.com 3 nehab@synopsys.com Abstract: Independent

More information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced FPGA Design Methodologies with Xilinx Vivado Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,

More information

RTL Synthesis using Design Compiler. Dr Basel Halak

RTL Synthesis using Design Compiler. Dr Basel Halak RTL Synthesis using Design Compiler Dr Basel Halak Learning Outcomes: After completing this unit, you should be able to: 1. Set up the DC RTL Synthesis Software and run synthesis tasks 2. Synthesize a

More information

Lecture 2: SML Basics

Lecture 2: SML Basics 15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia

More information

On-Chip Design Verification with Xilinx FPGAs

On-Chip Design Verification with Xilinx FPGAs On-Chip Design Verification with Xilinx FPGAs Application Note 1456 Xilinx Virtex-II Pro devices have redefined FPGAs. The Virtex-II Pro brings with it not only a denser and faster FPGA, but an IBM PPC

More information

Digital VLSI Testing Prof. Santanu Chattopadhyay Department of Electronics and EC Engineering India Institute of Technology, Kharagpur.

Digital VLSI Testing Prof. Santanu Chattopadhyay Department of Electronics and EC Engineering India Institute of Technology, Kharagpur. Digital VLSI Testing Prof. Santanu Chattopadhyay Department of Electronics and EC Engineering India Institute of Technology, Kharagpur Lecture 05 DFT Next we will look into the topic design for testability,

More information

Debugging Inconclusive Assertions and a Case Study

Debugging Inconclusive Assertions and a Case Study Debugging Inconclusive Assertions and a Case Study by Jin Hou Mentor, A Siemens Business INTRODUCTION Formal assertion-based verification uses formal technologies to analyze if a design satisfies a given

More information

Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web:

Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web: Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web: www.vhdl.us Appendix C Xilinx ISE Tutorial (ISE 11.1) This tutorial is based on ISE 11.1 WebPack (free at

More information

Focus On Structural Test: AC Scan

Focus On Structural Test: AC Scan Focus On Structural Test: AC Scan Alfred L. Crouch Chief Scientist Inovys Corporation al.crouch@inovys.com The DFT Equation The Problem What is Driving Modern Test Technology? 300mm Wafers Volume Silicon/Test

More information

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one

More information

Choosing an Intellectual Property Core

Choosing an Intellectual Property Core Choosing an Intellectual Property Core MIPS Technologies, Inc. June 2002 One of the most important product development decisions facing SOC designers today is choosing an intellectual property (IP) core.

More information

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation ECE 4514 Digital Design II Lecture 20: Timing Analysis and Timed Simulation A Tools/Methods Lecture Topics Static and Dynamic Timing Analysis Static Timing Analysis Delay Model Path Delay False Paths Timing

More information

8 Register, Multiplexer and

8 Register, Multiplexer and 8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools This is a tutorial introduction to the process of designing circuits using a set of modern design tools. While the tools we will be using (Altera

More information

ProASIC PLUS Timing Closure in Libero IDE v5.2

ProASIC PLUS Timing Closure in Libero IDE v5.2 Application Note AC205 ProASIC PLUS Timing Closure in Libero IDE v5.2 Introduction This application note discusses the new ProASIC PLUS timing-driven place-and-route (TDPR) flow introduced in Libero Integrated

More information

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event

More information

VLSI Test Technology and Reliability (ET4076)

VLSI Test Technology and Reliability (ET4076) VLSI Test Technology and Reliability (ET4076) Lecture 4(part 2) Testability Measurements (Chapter 6) Said Hamdioui Computer Engineering Lab Delft University of Technology 2009-2010 1 Previous lecture What

More information