Self-Checking Testbenches
上一篇 /
下一篇 2006-07-18 13:27:57 / 天气: 晴朗
/ 心情: 高兴
/ 个人分类:Writing Testbenches
Preparation
- It is necessary during the verification planning
stage, to identify all of the failure modes that must be checked for
and how they can be detected.
- The requirement of the self-checking mechanism must be
specified and reviewed to ensure that a potential failure will not go
undetected.
An Important block
- The largest, most complex component of the testbenches
is the self-checking structure, which require the most authoring an
maintenance effort, and aslo the most critical portion as it is
responsible for declaring the functional correctness of the design.It will emoday a duplication of the specified functionality of the desin under verification.
- It is unique to every design andand can not be described in a generic fashion.
Hardcoded Responds
- To hardcode a response in a testbench requires a known
configuration and a known input stream. It is therefore ONLY applicable
to directed testcases.
- If a hardcoded response strategy is used, it will be necessary to replicate the response checking in each testbench.
- Drawback,
errors can slip through easily. It is assumed that the other functions
operate correctly and hat any problem would be caught by the testcase
targeting those functions.
Data Tagging
- The tag informatin is used by the output monitor to
quickly search the scoreboard to confirm correctness of the received
object.
Reference Model- Reference model is rearly exist.
- It is the typical approach used for general purpose and digital signal processor.
- Basically, feed the same input to the RTL model and Reference
model and compare the output put is the genearal way. Error is allowed
in some cases with acceptable level. E.g in some DSP verification, 100%
data match is difficult in some case.
- There are two ways,External output comparisonandExternal input generation.
From my experience, If the expected output is not 100% match, then
enternal output comparison is required. Otherwise external input
generation with internal data comparison is a better choice.My comments:Remember
in T**P, some block were verified by using the external input
generation with internal data comparison, e.g o*_s****age, and some
block were verified by the police of external comparison first and
internal comparison later. e.g c*_f***er. In any case, internal
comparison is the final choice.
- Normally the reference is written by C, C++, Matlab etc, the model is golden by definition.
Transfer Function- A transfer
function is used to reproduce any data transformation performed by the
design to determine which output value to expect.
- The difference betweentransfer functionandreference model
- Transfer function does not exist a priori
- It's not golden by definition
- Does not have low level interfaces.
Scoreboarding- Sometimes,
scoreboarding is the entire self-checking structure, including the xfer
function or reference model. the expected data storage mechanism and
the output comparison function.
- The data received by the output monitor is compared against the data in the scoreboard. e.g (result data and reference data).
- Each scoreboard is designed to meet the needs of the self-checking requirements.
- The self-checking structure of a testbench may be composed of by one or more scoreboard.
- The scoreboardhas tobe efficient, both in terms of runtime and storage. It is about
designing a suitable data structure that will meet the self-checking
requirements of design.
Integration with the Transaction Layer- The self-checking structure must be accessible from almost every component of the testbench.
- The configuration generator needs to pass the device configuration descriptor it.
- The stimulus generators need to forward generated input data to it.
- The
bus-functional models need to inform the self-checking structure of any
unexpected events that occurred during the data transmission.
- Output monitor nust indicate that new output data has been received to verify its correctness.
- Encapsulate the self-checking structure as a single object.
- Make the self-checking structure a global instance.
- Extend each component with a reference to the scoreboard instance.
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
Testbench
self-check