Jump to content


  • Content Count

  • Joined

  • Last visited

About kaiserhaz

  • Rank
  • Birthday 06/19/1991

Profile Information

  • Gender
  • Location
    Kuala Lumpur
  • Interests
    Formal verification, functional verification, SystemC in general

Recent Profile Visitors

537 profile views
  1. My bad, seems to me like I should have used a proper variable rather than calling it directly like I did. I declared an sc_time var called delay and initialised it to SC_ZERO_TIME and used that in the b_transport call. That did the job. Btw to answer your question, it didn't solve the problem.
  2. Hello, I'm trying to compile a design with a TLM2 socket (simple_initiator_socket) in ModelSim (sccom). So far, the compiler returns an error saying that there is no function called b_transport. Yet I have this same design working in the PoC SC simulator, so I'm guessing that ModelSim is doing things differently than the PoC. However ModelSim does point out an alternative, which was to use blocking_transport_if's version. I believe this was the one used all along in the PoC, and it should be the same in ModelSim. Any ideas? Here are the designs: Initiator /** * RTL-t
  3. Kartik, you are right in fact. I had used a wait() in an SC_METHOD, but it wasn't in that module that I showed. It was due to the use of a mutex lock() statement in an SC_METHOD. Thanks.
  4. Hello, No, I am sure that it was from an SC_THREAD. SC_THREAD( mem_constr_module_thread ); ... void mem_constr_module_thread() { ... if(mem_c0->m_t0->r_nw.read() == SC_LOGIC_1) { write(); wait(_mem_write_access_time, MEM_TIME_UNIT); // This one is ok } else { wait(_mem_read_access_time, MEM_TIME_UNIT); // This one triggers the error } ... } _mem_[read|write]_access_time and MEM_TIME_UNIT are constants defined elsewhere. I keep thinking that might be a bad pointer from elsewhere. But I can't think of anything.
  5. Hello, I was doing a simulation and I keep getting a runtime error exception (MSVC). I traced the error to a wait() statement. What could be the cause? Thank you,
  6. I did set it previously. I found out the problem by the way. I set simulation duration to be exactly the same as that of the b_transport, therefore somehow the simulation ends after the call to wait. Maybe I need more training in writing adaptor-type transactors? Kinda getting tedious trying to interface RTL and TLM
  7. Hello, I used b_transport in of my TL models to exchange data from a transactor to a memory. It was a read/write/reset operation kinda thing. Data from memory is transferred to another module attached to the transactor. What I noticed was at the end of my b_transport call, the simulation ends directly, without returning to the transactor thread in order to affect the obtained data from memory (in case of a read operation, for example) to the port connecting the transactor and the other module. Why is this? Code for reference: memory // TLM-2 blocking transport method virt
  8. Wouldn't you need to use the bind() method for binding? Not sure about binding ports during construction.
  9. Shoot, I knew something felt wrong It's supposed to be sc_bv<32> instead of sc_bit<32>. My bad.
  10. Hello, As far as I know, in SystemC one would model a register (or memory) as a an array, be it unidimensional or multidimensional. It's not worth the effort of actually using 'real hardware' registers and memory-mapped addresses (correct me if I'm wrong). The whole point of using SystemC to model systems is to be able to describe functionality and not worry about implementation too much. In your case, the control register could be represented as an sc_bit<32> or sc_lv<32>, as do other registers: /** registers.h **/ sc_bit<32> control_register // ADC control reg sc_bit&
  11. @Matteo Thanks. I'll have a look at that. @Ruchir In your opinion, would the many 'if's affect the performance? I was specifically concerned with that because at almost each loop, there are a minimum of 4 conditions to test. In hardware terms, I'd have to use comparator blocks, and I'd rather save cost than using 4 of them.
  12. I did a bit of reading on the subject of profiling in MSVC. Turns out for VS2010 Professional, there are no tools available Though they did mention a standalone tool. I'm checking that out at the moment. Are there other alternatives?
  13. I don't really know how to in MSVC. Is there a tool that I can use?
  14. Hello, I've recently completed a design but I'm not convinced that it is an optimal one. How would you modify this to give optimal speed? EDIT: I've attached it in a file. vga_controller_edit.txt
  • Create New...