Re: about "eisenberg" in VIS

From: Fabio Somenzi (Fabio@colorado.edu)
Date: Thu May 24 2001 - 12:52:56 MDT

  • Next message: Fabio Somenzi: "Re: fairness constraint"

    >>>>> "GQ" == Guang Qu <g_qu@ece.concordia.ca> writes:

     GQ> Hello,
     GQ> We are reading the example of "eisenberg" code for our project of the
     GQ> course-Formal Hardware Verification in Concordia University, but we do
     GQ> not understand what "$NDset(@(posedge clk), 0, 1)" and "$ND(0,1)" do.
     GQ> Are they new system tasks or functions in Verilog? Could you tell us
     GQ> where we can find the related information or give us some explanations
     GQ> about their functions (tasks?)?
     GQ> Thank you!

     GQ> Guang Qu

    The form "$NDset(@(posedge clk), 0, 1)" is an anachronism. The
    recommended form is the other one ($ND(0,1)). Vl2mv actually
    ignores the first argument to NDset, and treats the two forms in the
    same way.

    $ND is a system task understood by Vl2mv and used to specify
    nondetermininstic behavior. It is explained in

    http://vlsi.colorado.edu/~vis/doc/VisUser/vis_user/node3.html#SECTION00300000000000000000

    Look for "Nondeterminism" and also "Hints and Traps."
    The use of $ND is also discussed in

    http://vlsi.colorado.edu/~vis/doc/html/HowToWriteVerilogForVl2mv

    which is acccessible through the VIS FAQ

    http://vlsi.colorado.edu/~vis/doc/html/vis-faq.html

    (Look under "THE $ND SYSTEM TASK VERSUS PRIMARY INPUTS".)

    Fabio



    This archive was generated by hypermail 2b30 : Thu May 24 2001 - 13:02:42 MDT