Jump to content

Search the Community

Showing results for tags 'event'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Accellera Systems Initiative
    • Information
    • Announcements
    • In the News
  • SystemC
    • SystemC Language
    • SystemC AMS (Analog/Mixed-Signal)
    • SystemC TLM (Transaction-level Modeling)
    • SystemC Verification (UVM-SystemC, SCV)
    • SystemC CCI (Configuration, Control & Inspection)
    • SystemC Datatypes
  • UVM (Universal Verification Methodology)
    • UVM 2017 - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
    • UVM 1.2 Public Review
  • Portable Stimulus
    • Portable Stimulus Pre-Release Discussion
    • Portable Stimulus 1.0
  • IP-XACT
    • IP-XACT Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • OCP (Open Core Protocol)
  • UCIS (Unified Coverage Interoperability Standard)
  • Commercial Announcements
    • Announcements

Categories

  • SystemC
  • UVM
  • UCIS
  • IEEE 1735/IP Encryption

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation


Company

Found 5 results

  1. Philipp A Hartmann

    SystemC Evolution Day 2017

    SystemC Evolution Day 2017 Workshop on the evolution of SystemC standards Wednesday, October 18, 2017 Munich, Germany Summary SystemC Evolution Day is a full-day technical workshop on the evolution of SystemC standards to advance the SystemC ecosystem. This is the second event after a successful first edition in May 2016. In several in-depth sessions, current and future standardization topics around SystemC will be discussed in order to accelerate their progress for Accellera and IEEE standard’s inclusion. SystemC Evolution Day is intended as a lean, user-centric, hands-on forum bringing together the experts from the SystemC user community and the Accellera Working Groups to advance SystemC standards in a full-day workshop. Date / Time: October 18, 2017 (day after DVCon Europe 2017) | 10:00am - 6:00pm Location: Technical University of Munich, City Campus | Arcisstraße 21, 80333 Munich, Germany Registration: Required, but free of charge. Register here > Submissions / Questions: Email systemc-evolution-day@lists.accellera.org Organization Team: Philipp A Hartmann, Intel; Oliver Bell, Intel; Martin Barnasconi, NXP; Matthias Bauer, Infineon; Thomas Kruse, Infineon Call for Contributions In the morning, a series of lightning talks are planned, covering concrete, but smaller standardization proposals as well as introducing new standardization needs around SystemC. For each of these short presentations, time for an interactive discussion will be included to gather feedback and support and for identifying the next steps towards standardization. In the afternoon, in-depth topic sessions are planned again, enabling a 90-minute detailed and interactive technical discussion on the most significant ongoing and future topics around SystemC standardization. If you are interested in championing a topic for an afternoon session or presenting your favorite extension to the SystemC community as part of a lightning talk, please send a title and abstract with up-to 100-words (lightning talks) or 400 words (topic session) by end of June to systemc-evolution-day@lists.accellera.org. You will receive a notification of acceptance by September at the latest. Important dates: June 30, 2017 – Proposal abstract submission deadline September 1, 2017 – Notification of acceptance September 15, 2017 – Announcement of the program
  2. I'm developing a performance simulator for a hardware unit. The hardware runs at 1GHz and therefore I define a clock cycle as: sc_time clk(1, SC_NS) In a specific module requests arrive to the input port, triggering a method that places them into a request buffer. At some point requests that are ready for processing are moved out from the request buffer and placed into another buffer. The overall design would look like: void Receive() { auto x = input.read(); buffer_.push_back(x); process_buffer_event_.notify(clk); } void ProcessBuffer() { for (auto it = begin(buffer_); it != end(buffer_); ++it) { if (process_entry(*it)) { // returns true if a request was successfully moved to the second buffer buffer_.erase(it); break; // only one request can be processed per cycle } } if (!buffer_.empty()) process_buffer_event_.notify(clk); } So, ProcessBuffer will trigger either when a new request arrives or when a request is processed and there are still requests in the buffer. However, there is another case when ProcessBuffer should trigger. In the module there are some resources that can be either in use or idle. Whenever a resource becomes idle, ProcessBuffer must immediately trigger (without waiting until the next cycle): void ReleaseResources() { bool any_released = false; for (auto& r : resources_) any_released = r->try_to_release() || any_released; if (any_released) process_buffer_event_.notify(SC_ZERO_TIME); } However, because of this piece of code, ProcessBuffer now may trigger twice in a given cycle (in the same nanosecond). I suspect it is related to using SC_ZERO_TIME, but I'm not really sure. This creates an issue since now two requests might be moved into the second buffer. I suppose I could guard against executing ProcessBuffer twice by doing something like: void ProcessBuffer() { if (sc_time_stamp() == last_time_processed) return; last_time_processed = sc_time_stamp(); for (auto it = begin(buffer_); it != end(buffer_); ++it) { if (process_entry(*it)) { buffer_.erase(it); break; // only one request can be processed per cycle } } if (!buffer_.empty()) process_buffer_event_.notify(clk); } But I was just wondering whether there is some mechanism in SystemC to properly prevent a method from triggering more than once.
  3. *, Is one of these ways to have a sequence wait on an event preferred? If so, why? The following are code snippets from inside a sequence. 1) Create transaction and engage w/ driver, then wait for event. `uvm_create(req) start_item(req); m_state.wait_on_smthg(); // <--- wait here 2) Wait for event, then proceed m_state.wait_on_smthg(); // <--- wait here `uvm_create(req) start_item(req); In this case, the event being waited for is that data of a certain type is available.
  4. Two modules, an input Generator and a Controller. The Generator sends a signal to increase a value in the Controller. The controller contains a loop where it checks if this value is > 0 and in that case do some stuf and reset it to zero.; How should I connect these two modules? Sending an event seemed most intuitional, but it doesnt look like the standard way to do this. I also read about semaphore but I'm not sure how to connect them. (I also want a monitor module to be able to print the value at some points (probably when it is reset))
  5. Hello Everyone, I am a beginner at systemc. I am interested in sc_fifo channel and investigated the OSCI simulator source code. I found sc_fifo has a member function named "data_written_event" and its prototype is like below: virtual const sc_event& data_written_event() const; I want to get a callback/notify when a specific sc_fifo channel is written or read. My solution is: - Preface I used the sc_get_top_level_objects() and get_child_objects() to iterate out all the sc_object. (This is the way I get the sc_fifo object) - Make a callback/sensitive by user code 1. Try to get the written/read event data member of sc_fifo 2. Use the add_static() member function of sc_event to register a written/read event callback for this sc_fifo Is the solution above workable? ---------------------------------------------- - My Test Result 1. Try to get the written/read event data member of sc_fifo ==> Because of the "operator=" is overwritten as private: sc_fifo& operator = ( const sc_fifo<T>& ); I canNOT get the event in user code. ex: sc_event e; e = sc_fifo_obj->data_written_event(); //<-- Error! Of course. 2. add_static() is s private member function of sc_event class and I can neither use it in user code. Can you experts guide me how to do it or give me any hint? Appreciate your feedback. by yaTung
×