Thursday, April 1, 2010

Design for Verification

Messaging is a nice concept of displaying useful information during simulation. These
messages can be used to convey wide range of severity levels.

Considerations for implementing messaging
------------------------------------------------
Identify the level of message in terms of severity
Controllability of the message
Timestamp of the message
Message Identification

Different kind of severity levels
------------------------------------------
INFO: Message is simply an information
WARNING: Something unusual happen but no need to stop simulation
ERROR: Indicates that something is wrong and you need to debug and find out
the root cause and fix it
FATAL: Displayed when there is a serious issue. Simulation will immediately
terminate after displaying this message

What is BFM?
-------------------
Provides visibility into its communication processes at each level of abstraction
Visibility into all configurable parameters
Commanded to perform specified sequence of commands

Consideration for designing BFM
-------------------------------------------
Map the hierarchy of protocol or functionality into BFM
Provide a built-in self check capability
Specify all the key variables in one single file
Ensure all configurable variables must have defaults
Must provide a provision to filter the messages
All the inputs to the tasks/commands within the BFM should be checked for legal
ranges.
Must provide a provision for message ID

Typical flow for designing BFM
------------------------------
Specify the abstraction level at which the BFM is planned to be used
Specify user level configuration parameters
Specify the hierarchy of commands when they are functionally dependent on
hierarchical fashion
Specify the commands that user will be able to call within the BFM
Specify the details of the message that BFM should convey
Specify the interface ports that the BFM use to interact with the DFT
Make sure to display the value of parameters before the simulation starts
Provide a provision to log the BFM messages into a file or standard output
Provide a checking mechanism to check the legal range of all the parameters and
input value

Main functions of a bus monitor
=--------------------------------------
Protocol checking
*****************
Violation of protocol
Monitoring for X and Z values on signals
Design latencies between critical signals
Monitor timing violations such as setup and hold

Transaction logging
*******************
Log the message with severity level, ID, and description
Provide the option to display them as standard output or in a file