Subject: Re: Assertion Minutes 3/28/02
From: Adam Krolnik (krolnik@lsil.com)
Date: Tue Apr 02 2002 - 09:13:19 PST
Hi Harry;
I'm confused by your justification below:
> Vote 6:
> For $inset/$member, which matching semantics should be used?
> a) exact match ($inset)
> b) use casex semantics ($insetx)
> c) use casez semantics ($insetz)
>
:Only (a) -- X should be thrown out of the language (RTL) due to
:its optimistic behavior in RTL simulation (most respins
:due to initialization bugs are a result of X-state optimism).
:People should not be crafting their RTL to trap X's just
The use is for a don't care comparison. Here's one example (a slightly
wide window may be helpful:)
// Two sources may not write to the same address (R2 in this example.)
//expect:Reg2WriteCollision (atmost1(
...
// setof({isu_adr_lsu0_ldst_ex[3:0],pip_we_gpr_lsu0_ld_ex[3:0],
//
pip_we_guard_load0_ex},9'b0010_???1_0,
//
9'b0000_?1??_0),
// setof({isu_adr_lsu1_ldst_ex[3:0],pip_we_gpr_lsu1_ld_ex[3:0],
//
pip_we_guard_load1_ex},9'b0010_???1_0,
//
9'b0000_?1??_0)))
//msg=("Two ports writing to register 2. <Own:ISU,PIP>");
Rather than rewrite part of a case statement of a specification
incorrectly into
an equation with the don't care bits suppressed, the use of the don't
care
comparison here provides for much simpler expression.
Adam
This archive was generated by hypermail 2b28 : Tue Apr 02 2002 - 09:15:45 PST