Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Hans64 last won the day on April 13 2014

Hans64 had the most liked content!

Profile Information

  • Gender
  • Location
  • Interests
    FPGA VHDL SystemC x86

Recent Profile Visitors

613 profile views

Hans64's Achievements

Advanced Member

Advanced Member (2/2)



  1. Modelsim (and most likely all other commercial simulation) provide a conversion utility to convert VCD to their own format. For Modelsim this is vcd2wlf, convert both files to the wlf format then use Modelsim's filecompare to do the comparison (with all the available bells and whistles which you may need). You can quite easily script this up and add it to a GUI button. Good luck, Hans. www.ht-lab.com
  2. I agree, however I wouldn't underestimate the number of Windows SystemC users. I did do a quick port to Linux (CentOS7) but after some strange build issues I shelved it and will look at it again at a later date. I like Visual Studio as well and use it to build SCBuilder. However, SCBuilder is more aiming to be like a light version of Vivado, it is unlikely somebody will write a Tcl engine or add synthesize capability in a Visual Studio plugin. These are all good point and a static linting tool is on my todo list. Some other feedback I received from the website, the download file is too large. yes, and I am afraid it is only getting larger. I could make installing TDM-GCC-32 and the libraries optional but this will add complications for the GUI. Make source code available, perhaps in the future. Printing is not working, confirmed. "IC button" not working, this is part of the synthesis capability which I will hopefully add this weekend. Word selection is not working, it took me some time to understand this, confirmed. User configurable shortcuts, on my todo list, Crashes frequently on Win8, I do not have access to Win8 but on Win7/10 it seems stable. Linux version in source, perhaps in the future. Emacs editor plugin, perhaps in the future. Thanks for the feedback, Hans www.ht-lab.com
  3. Hi all, I have written a simple Windows SystemC IDE called SCBuilder. http://www.ht-lab.com/scbuilder.htm The basic idea is to have a dedicated SystemC IDE which allows the user to create SystemC/SCV/UVM programs with a minimum of fuss. The user can simply drag and drop files into a project and compile/debug/run the program with a click of a button (thanks to the power of CMake). Other features are a build-in VCD viewer and Tcl scripting capability. The compiler is based on the latest tdm-gcc (gcc 5.1.0). Upcoming features are (basic) synthesis and code coverage, I would appreciate any feedback on this alpha version, Thanks, Hans. www.ht-lab.com
  4. Hi Stephan, I am not sure you have to specify the bit width for real's as the format seems to be fixed to double precision. Also you cannot dump part of a vector so the bit width is redundant. This is what I picked up from the LRM: A real number is dumped using a %.16g printf() format. This preserves the precision of that number by outputting all 53 bits in the mantissa of a 64-bit IEEE Std 754-1985 [b1] double-precision number. Application programs can read a real number using a %g format to scanf(). I might be wrong of couse, you could raise an SR with Mentor to see what they have to say, Good luck, Hans.
  5. Hi Mike, You are correct (I was wrong) for some reason OSCI puts everything under the same (SystemC) scope. You can use your utility or patch OSCI (have not tried it myself): https://github.com/yTakatsukasa/misc/tree/master/systemc-2.3_vcd_hier Regards, Hans.
  6. Hi Mike, The dot notation should work, I would suggest you have a look at your vcd file to see if the hierarchy is recorded, you should see something like: sc_trace(fp,top.u1.signalx,"signalx"); $scope module top $end $scope module u1 $end $var wire 1 ^ signalx $end $upscope $end $upscope $end good luck, Hans.
  7. Hi Jintao, You can change the Modelsim SystemC stacksize by modifying the ScMainStackSize variable in your modelsim.ini file. I believe there is also a SystemC set_stack_size() call you can use. Good luck, Hans. www.ht-lab.com
  8. The easiest way would be to get a SystemC license for your Modelsim. If this is not possible then there are the usual methods for interprocess communication. Probably the easiest method is to use sockets, you could use Tcl (force/when/examine) to modify your VHDL. If you have Modelsim DE then you can use the FLI (VHDL C/C++) interface again with sockets (there are FLI sockets function). If you are under Linux you can try named pipes (I failed to make it work under Windows) and of course you could use simple text files, Good luck! Hans www.ht-lab.com
  9. Hi Martin, This is quite interesting as I am sure a free UVM implementation is not something the Vendors (paying Accellera members) are looking forward to. Interesting project, Regards, Hans www.ht-lab.com
  10. Perhaps a good old union can help you out: union float_int32 { float f; uint32_t i; }; float_int32 fl; fl.f=0.1234; // result fl.i=03dfcb924 Good luck, Hans. www.ht-lab.com
  11. Hi Sachin, For concatenation one of the arguments should be a vector. This will fail as all the arguments are sc_logic. See LRM section 7.2.7 Regards, Hans. www.ht-lab.com
  12. I don't believe there is any elegant solution other than changing your U1.I1 input port to type bool or write a separate clock module. In addition to dakupoto answers you can also: sc_l = static_cast<sc_logic> (bb); bb = sc_l.to_bool(); Resolution between 'X'/'Z' and '0'/'1' will not be the same as in VHDL. Good luck, Hans. http://www.ht-lab.com
  13. ~ is a perfectly legal operator for sc_logic, see the LRM. The problem was the OP was using an implicit method call which confused the compiler. Changing to an explicit .read() method call should fix the problem. Regards, Hans.
  14. Try: void proc() { o.write(~a.read()); } Hans.
  15. Something must be wrong in your setup, do any other SystemC programs work? What is the error message? All bitwise operators (& ! ^ ~) should work for sc_logic. You can also use the logical ! after converting it to boolean (.to_bool()). Hans.
  • Create New...