• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. explenation on the verilog_wire() method

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 67
  • Views 13972
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

explenation on the verilog_wire() method

archive
archive over 15 years ago

hi all

i am looking for a simple explantion on the verilog_wire() method , i didn't understand much from the man page of this method in the cdnshelp so i will be happy to get more information here.

best regards Eyal.

  • Cancel
  • Semadar
    Semadar over 15 years ago

    Hi Eyal,

    I'm not sure where you looked in the docs so I'm not sure what exactly you don't understand.

    I'll try to explain.

    To drive Verilog wires you should do the following:

    1. Define and bind a simple external out or inout port to drive the Verilog wire.

    2. Set either verilog_wire() to TRUE or driver() to TRUE.
    If neither verilog_wire() nor driver() is set to TRUE, Specman assumes that the Verilog object is a register.
    The main difference between verilog_wire() and driver() is this:

    verilog_wire() merges all of the ports that have this attribute into a single Verilog driver.
    driver() creates a separate driver for each port.


    Here is an example:

    verilog definition:

    wire [31:0] data_bus;

    in e:

    data : inout simple_port of uint is instance;
    keep bind(data, external);
    keep data.hdl_path() == "data_bus";
    keep data.declared_range() == "[31:0]";-- for bus, specify range
    keep data.verilog_wire() == TRUE; -- to drive a Verilog wire

    Hope this clarifies. 

    Semadar

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sgor
    sgor over 15 years ago

    I guess if you want to drive any verilog wire from e, you need to define verilog_wire() to TRUE. If it is not defined, Specman simply “deposits” a value on he wire at the end of the time-step, overwriting values driven by the imulator at that time. Deposited values can be changed by the simulator at he next simulation time-step by any other HDL/e drivers.

    This option is a must for non-cadence simulator. For cadence simulator, it is required only when verilog wire is driven by HDL as well as e. For cadence simulator, if verilog wire is driven only by e, verilog_wire() is optional.

    Thanks,
    Sandeep
    http://digitalverification.blogspot.com

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information