• 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. printf in IUS6.01

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 64
  • Views 15119
  • 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

printf in IUS6.01

archive
archive over 18 years ago

I'm using a beta version of 6.01 and find that printf in a DPI'd C function no longer prints to the ncverilog log file, it only prints to the screen.  (In 5.83 it printed to both.)

Does anyone know how to get printf to print to the log file in 6.01?

Thanks,

Dave F.
LSI Logic


Originally posted in cdnusers.org by dfechser
  • Cancel
  • archive
    archive over 18 years ago

    use io_printf, which is a VPI function. io_printf prints to the ncsim.log/ncverilog.log file.


    Originally posted in cdnusers.org by tmackett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Isn't VPI a PLI and therefore slow? If printf doesn't work after 5.83 are there plans to make a DPI equivalent that will?


    Originally posted in cdnusers.org by dfechser
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Any print function requires a call to the operating system, which is by its very nature slow. So I would expect that the difference between printf, io_printf and vpi_printf would be miniscule if there is any difference at all. Of course, buffering the output helps, but even so, as soon as you put any kind of printf in your code, pure speed is no longer an option.

    I don't know for sure, but I would suspect that io_printf and vpi_printf (and any potential dpi_printf) all use the same underlying code. If the 6.1 beta code was printing to the log file, it must have been using that code too. After all, it's the only way it would even know about the existence of the log file.


    Originally posted in cdnusers.org by TAM
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    True, in general VPI/PLI calls are slower. BUT - printf has no knowledge of any simulator, but io_printf does. In general io_printf is fairly fast and I'd doubt if you'd really notice much performance hit other than writing to the external screen and the simulator's screen/log. Don't hold your breath for any dpi_printf (that's not an official statement).


    Originally posted in cdnusers.org by tmackett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Posted By tmackett on 3/12/2007 10:19 AM
    use io_printf, which is a VPI function. io_printf prints to the ncsim.log/ncverilog.log file.

    So, would I be correct in saying that any existing C code using printf's needs to be modified to ensure that messages go to the simulation log?
    If I want to use my C function as part of a UNIX command line program and as a DPI shared object, I need to create some sort of #define macro to use "printf" for command line and "io_printf" for DPI.   Is there any better method of doing this?

    Stuart


    Originally posted in cdnusers.org by g60stu
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    That the only way I know to get the DPI output to be incorporated into the ncsim.log file, since io_printf() understands a simulator and printf() does not.


    Originally posted in cdnusers.org by tmackett
    • 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