#include "sysc/kernel/sc_kernel_ids.h"
#include "sysc/kernel/sc_lambda.h"
#include "sysc/kernel/sc_module_name.h"
#include "sysc/kernel/sc_process.h"
#include "sysc/kernel/sc_sensitive.h"
#include "sysc/kernel/sc_time.h"
#include "sysc/kernel/sc_wait.h"
#include "sysc/kernel/sc_wait_cthread.h"
#include "sysc/kernel/sc_process_host.h"
#include "sysc/utils/sc_list.h"
#include "sysc/utils/sc_string.h"
ネームスペース | |
namespace | sc_core |
構成 | |
struct | sc_core::sc_bind_proxy |
class | sc_core::sc_module |
マクロ定義 | |
#define | SC_NEW(x) ::sc_core::sc_module_dynalloc(new x); |
#define | SC_MODULE(user_module_name) struct user_module_name : ::sc_core::sc_module |
#define | SC_CTOR(user_module_name) |
#define | SC_HAS_PROCESS(user_module_name) typedef user_module_name SC_CURRENT_USER_MODULE |
#define | declare_method_process(handle, name, host_tag, func) |
#define | declare_thread_process(handle, name, host_tag, func) |
#define | declare_cthread_process(handle, name, host_tag, func, edge) |
#define | SC_CTHREAD(func, edge) |
#define | SC_METHOD(func) |
#define | SC_THREAD(func) |
型定義 | |
typedef sc_module | sc_core::sc_channel |
typedef sc_module | sc_core::sc_behavior |
関数 | |
sc_module * | sc_core::sc_module_dynalloc (sc_module *module_) |
#define declare_cthread_process | ( | handle, | |||
name, | |||||
host_tag, | |||||
func, | |||||
edge | ) |
値:
{ \ ::sc_core::sc_cthread_process* handle = \ simcontext()->register_cthread_process(name, \ SC_MAKE_FUNC_PTR( host_tag, func ), this ); \ sensitive.operator() ( handle, edge );\ }
#define declare_method_process | ( | handle, | |||
name, | |||||
host_tag, | |||||
func | ) |
値:
{ \ ::sc_core::sc_method_process* handle = \ simcontext()->register_method_process( name, \ SC_MAKE_FUNC_PTR( host_tag, func ), this ); \ sensitive << handle; \ sensitive_pos << handle; \ sensitive_neg << handle; \ }
#define declare_thread_process | ( | handle, | |||
name, | |||||
host_tag, | |||||
func | ) |
値:
{ \ ::sc_core::sc_thread_process* handle = \ simcontext()->register_thread_process( name, \ SC_MAKE_FUNC_PTR( host_tag, func ), this ); \ sensitive << handle; \ sensitive_pos << handle; \ sensitive_neg << handle; \ }
#define SC_CTHREAD | ( | func, | |||
edge | ) |
値:
declare_cthread_process( func ## _handle, \ #func, \ SC_CURRENT_USER_MODULE, \ func, \ edge )
#define SC_CTOR | ( | user_module_name | ) |
値:
typedef user_module_name SC_CURRENT_USER_MODULE; \ user_module_name( ::sc_core::sc_module_name )
#define SC_HAS_PROCESS | ( | user_module_name | ) | typedef user_module_name SC_CURRENT_USER_MODULE |
#define SC_METHOD | ( | func | ) |
値:
declare_method_process( func ## _handle, \ #func, \ SC_CURRENT_USER_MODULE, \ func )
#define SC_MODULE | ( | user_module_name | ) | struct user_module_name : ::sc_core::sc_module |
#define SC_NEW | ( | x | ) | ::sc_core::sc_module_dynalloc(new x); |
#define SC_THREAD | ( | func | ) |
値:
declare_thread_process( func ## _handle, \ #func, \ SC_CURRENT_USER_MODULE, \ func )