Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. You’re only allowed to call sc_trace one time for each variable and after that tracing is automatic. So you need to move the sc_trace calls out into the constructor or into end_of_elaboration or somewhere else before simulation starts. You also need to move your local variables in to the class as members.
  3. Today
  4. Hi, I am trying to dump internal signals of an SC_MODULE's processes (SC_THREAD process) in a VCD. SC_MODULE has multiple processes and I need to dump signals from each of those processes in the same VCD. Currently, I am trying with one SC_THREAD process and I see this error when I add sc_trace inside the while loop: Error: (E720) sc_trace_file already initialized: sc_trace() failed: No traces can be added to 'traces.vcd' once trace recording has started. To add tracing of 'A_val', create a new trace file. In file: ../../../src/sysc/tracing/sc_trace_file_base.cpp:
  5. Yesterday
  6. Last week
  7. Is it the case that you see the message "Register __ value read from DUT (__) does not match mirrored value (__) (valid bit mask = __)" and the value shown for "read from DUT" matches your expectations but the value for "mirrored value" does not? In that case, the first step is to make sure you have a uvm_reg_predictor that is working correctly.
  8. I am facing the issue, as am seeing the read data is coming correctly at BUS and same read data is coming at uvm_reg.svh also. But when am initiating the mirror task and read the same register, am getting an mis-match with DUT and mirrored value. Can anyone help me on this!
  9. I'd like to forward what @tudor.timi (and others) mentioned in the session. While I know that https://github.com/accellera/uvm is not an official repository and – I guess – the official repository is sitting behind the the Accellera Membership paywall; a more open approach of the source code might be quite helpful both in the adoption and the testing area. While I know that the latest source can be downloaded and a release note is supplied with the download, in my opinion sometimes a git log/diff would be more helpful for a developer. (And doing a git pull instead of a download and extrac
  10. This is a poll on how users are currently working with the UVM library and exploring what might help migration to the latest version. The poll is divided up due to a limit on the number of questions allowed by polling on this platform.
  11. This is a poll on how users are currently working with the UVM library and exploring what might help migration to the latest version. The poll is divided up due to a limit on the number of questions allowed by polling on this platform.
  12. That uvm_macros.svh fix is the correct fix and is now in https://www.accellera.org/images/downloads/standards/uvm/UVM-18002-2020-11tar.gz
  13. Thank you for your fat reply. I think some uninitialized variables could be the problem. I trying to check this, but this is really hard, because the code is quite big now. Is there a easy way to test such things automatically? Thank you for the links, i will a look at it.
  14. No, you cannot run the SystemC simulator kernel as a Linux kernel module for sevberal reasons: SystemC requires quite some libraries (libc, libqt, ...) that are not available in kernel space You would taint the kernel and open up a security hole large as a gate. You would alos risk the system integrity. SystemC is simply not meant for such things. A proper design would make a distinction between (as little as possibel) code to run in kernel space providing interfaces (devices or shared memory) to interact with and a userspace application which could be the SystemC simulation e.
  15. One reason I've seen in the past quite often are uninitialized local variables being used in the control flow: int a; ... unsigned b = a; ... if(b>0){ ... } else { ... } Although b seems to be initialize it gets its value uninitialized. Hwo would logging effect this? Depending on the configuration the stack being used has different residual values (from previous funcion executions). Therefore 'a' gets different -unitialized- values which are later used to steer the control flow. Therefore my mantra is always: initialize variables upon declaration. In C++11 this becomes quite easy
  16. Dear all, i am designing a network simulator where a lot of messages are flying around. For logging and debugging the states of the modules and the simulation i use the sc_report_handler class. In main.cpp i set the following options: sc_report_handler::set_verbosity_level(verbosity); sc_report_handler::set_log_file_name("out.log"); sc_report_handler::set_actions(SC_INFO, SC_LOG); sc_report_handler::set_actions(SC_WARNING, SC_LOG); verbosity is a variable passed from a configuration file. In my files/modules etc i have usually code like this to print into the log file:
  17. Earlier
  18. This is a open issue with the LRM. https://accellera.mantishub.io/view.php?id=7190
  19. Because of the increasing number of parametrized designs, is there a definition for the behavior of the reduction operators in SystemVerilog if the input vector is just one bit? module reduction #( in_c = 1 ) ( input logic [in_c-1:0] i, output logic o1, o2, o3 ); assign o1 = &i; assign o2 = |i; assign o3 = ^i; endmodule Thanks Thomas
  20. This is due to the difference between the newline symbol in windows and Linux,windows using \r\n, but linux using \n
  21. Matthew Ballance, a member of the Portable Stimulus Working Group and a Product Engineer and Portable Stimulus Technologist with Siemens Digital Industries Software, is the recipient of the 2021 Accellera Technical Excellence Award. The award was established to recognize the outstanding achievements of an individual among Accellera’s working group members and their significant contributions to the development of its standards. For more information, read the full press release here: https://accellera.org/news/press-releases/329-matthew-ballance-to-receive-accellera-systems-initiative-technical-
  22. Hi Galong, I only know of https://github.com/kactus2 but I never used it so I do not know what quality of documentation is generated. There are commercial solutions that do exactly what you ask for. Some of the vendors are mentioned here https://www.accellera.org/community/ip-xact/ecosystem/. Best regards, Erwin
  23. I have a detailed IP Xact model of my design, and I want to generate some documentation, either as internal developer's document or as a datasheet. Is there any easy open-source tool to generate nice-looking documentation from IPXACT? I was thinking of generating some html/word/pdf document with tables describing mainly the registers and fields, like in this example:
  24. Hi, Thanks for your prompt response, follow up query is that systemC simulator we run in userspace (please correct me if I am wrong) of linux, so I am assuming it is a linux process. We have some transports available like netlink socket that allow to pass information from kernel to userspace. so can we use netlink socket in systemC simulators? Second question that is this possible to run systemC simulator as a kernel module in linux kernel not in user space? I mean systemC library can be used directly in kernel of linux? if there is any open example or tutorial for above
  25. If you can avoid global variables at all cost. The will bite you more you think. If you need to have static global variables (e.g. for loggers or memory managers) use the Meyers-SIngleton. Those will be initialized upone first use which usually gives you some control over the live cycle. Another example can be found here: https://github.com/Minres/SystemC-Components/blob/master/incl/tlm/tlm_mm.h
  26. Yes, it is possible. Since SystemC is basically a C++ class library you can you whatever C/C++ allows for.
  27. Hi, I am new to this forum and tried to look for FAQ but did not find answer. If it is not relevant please delete my post and sorry. I have query that is this possible that linux kernel module (like ethernet driver) can communicate with systemC process running on simulator? We need to pass live network traffic to our simulation and need to know is this possible? thanks. Regards Zafir
  28. Actually I found the answer to my question here: https://stackoverflow.com/questions/19227664/whats-the-c-idiom-equivalent-to-the-java-static-block There is a notion of static block that runs prior to all static variables' initializations. This helped solve the issue as I used the static block to set the time resolution.
  1. Load more activity
  • Create New...