OpenCores
no use no use 1/1 no use no use
Re: gEDA-user: Assertion based verification using VCD and VHDL
by Unknown on May 2, 2004
Not available!
On Thursday 29 April 2004 12:09 pm, Darryl Dieckman wrote:
Hi,

I am trying to locate an open-source tool chain that I can
use for assertion based verification of a design. I have
read about PSL/Sugar and the Open Verification Library (OVL).
It looks like OVL would allow me to add verification to
a VHDL design which would work great while my design is
in VHDL.

However, my digital design is eventually fabricated as a full
custom VLSI layout. I extract SPICE for the design and run
simulations of the design in SPICE. I then take the raw output
from
the SPICE run and generate a VCD (value change dump) file.
Currently I use something like GTKWave to visually inspect the
digital response of the circuit.
[snip] It sounds like you're tackling two independent issues: functional verification and implementation verification. Functional verification answers the question, "Does my RTL implement the intended function?" Implementation verification answers the question, "Now that I've converted my RTL to a lower level (gates, transistors, post-layout), was the translation performed correctly, i.e. does it meets timing and is it functionally equivalent?" Assertions (PSL, OVL) help answer the first question by allowing the designer to specify system properties such as "If 'req' is high, then 'ack' should be true on the next clock cycle": always (req -> next ack) // PSL The properties are verified using simulation or formal methods. For simulation, a tool converts a property into a state-machine to act as a monitor. During simulation, if the property is violated, the state-machine posts a failure message. Model checking is a formal method to mathematically prove a property will never be violated. Unlike simulation, model checking covers every possible corner. For simulations based property assertions, I only know of one open-source tool chain. Confluence (http://www.launchbird.com) has a tool called ba2cf, when coupled with another open-source tool, ltl2ba, completes the path from temporal properties similar to PSL, to assertion monitor state-machines. Ba2cf is in rough shape, but I have a cleaner version that generates Verilog and SystemC monitors. For formal verification, there is an open-source model checker called NuSMV (http://nusmv.irst.itc.it/). NuSMV is considered a close cousin of Cadence's FormalCheck. The drawback of NuSMV is it doesn't accept HDL as input; you'd have to convert your design by hand. If Confluence is your source code, it can auto-generate VHDL, Verilog, and NuSMV, not to mention C. Implementation verification is a separate topic. Traditionally this has been handled by running RTL test vectors through gate-level simulation to check for functional errors or timing violations. But like with any simulation-based approach, you'll always be left wondering, "Did my test vectors cover everything?". Almost always the answer is no. There are two formal methods to prove correctness of a low-level netlist; they are static timing analysis (STA) and equivalence checking (EC). Unfortunately there are no open-source STA or EC tools. :-( If you can afford STA and EC (I recommend Conformal), you'll never have to run a digital gate-level sim again. -Tom -- Tom Hawkins Launchbird Design Systems, Inc. Home of the Confluence Logic Design Language http://www.launchbird.com/
no use no use 1/1 no use no use
© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.