SystemC-sc_event_queue
点击数:7140 次 录入时间:06-03 08:07:49 整理:http://www.55dianzi.com 电脑-单片机-自动控制
sc_event_queue 与sc_event的共同点是都有notify(…)方法,而不同点是sc_event_queue实际上是一个分层通道,它可以有多个等待触发的通知,这些通知不互相覆盖。sc_event_queue实现的接口sc_event_queue_if定义如下:
- class sc_event_queue_if
- : publIC virtual sc_interface
- {
- public:
- virtual void notify( double , sc_time_unit ) = 0;
- virtual void notify( const sc_time& ) = 0;
- virtual void CANcel_all() = 0;
- };
- class sc_event_queue
- : public sc_event_queue_if , public sc_module
- {
- public:
- sc_event_queue();
- explicit sc_event_queue( sc_module_name );
- ~sc_event_queue();
- virtual const char* kind() const;
- virtual void notify( double , sc_time_unit );
- virtual void notify( const sc_time& );
- virtual void cancel_all();
- virtual const sc_event& default_event() const;
- };
其中cancel_all()取消所有等待的通知。
- sc_event_queue EQ;
- SC_CTOR(Mod)
- {
- SC_THREAD(T);
- SC_METHOD(M);
- sensitive << EQ;
- dont_initialize();
- }
- void T()
- {
- EQ.notify(2, SC_NS); // M在2ns后执行
- EQ.notify(1, SC_NS); // M在1ns后也执行
- EQ.notify(SC_ZERO_TIME); // M在0ns执行
- EQ.notify(1, SC_NS); // M在1ns后再次执行。
- }
本文关键字:暂无联系方式电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制