📄 tan_noc_worm_mesh_arbiter.pr.c
字号:
req_pk_num++;
if((op_intrpt_type() == OPC_INTRPT_STAT) && (op_intrpt_stat() == FIFO_mid)) {
flag_mid = op_stat_read(FIFO_mid);
isoccupy_mid = 1;
req_mid++;
if(flag_mid > 2) {
dest_address_mid = flag_mid - 3;
flag_mid = 1;
}
if(isoccupy == 0) {
isoccupy = 1;
priority = 1;
}
}
else if((op_intrpt_type() == OPC_INTRPT_STAT) && (op_intrpt_stat() == FIFO_east)) {
flag_east = op_stat_read(FIFO_east);
isoccupy_east = 1;
req_east++;
if(flag_east > 2) {
dest_address_east = flag_east - 3;
flag_east = 1;
}
if(isoccupy == 0) {
isoccupy = 1;
priority = 2;
}
}
else if((op_intrpt_type() == OPC_INTRPT_STAT) && (op_intrpt_stat() == FIFO_south)) {
flag_east = op_stat_read(FIFO_south);
isoccupy_south = 1;
req_south++;
if(flag_south > 2) {
dest_address_south = flag_south - 3;
flag_south = 1;
}
if(isoccupy == 0) {
isoccupy = 1;
priority = 3;
}
}
else if((op_intrpt_type() == OPC_INTRPT_STAT) && (op_intrpt_stat() == FIFO_west)) {
flag_west = op_stat_read(FIFO_west);
isoccupy_west = 1;
req_west++;
if(flag_west > 2) {
dest_address_west = flag_west - 3;
flag_west = 1;
}
if(isoccupy == 0) {
isoccupy = 1;
priority = 4;
}
}
else if((op_intrpt_type() == OPC_INTRPT_STAT) && (op_intrpt_stat() == FIFO_north)){
flag_north = op_stat_read(FIFO_north);
isoccupy_north = 1;
req_north++;
if(flag_north > 2) {
dest_address_north = flag_north - 3;
flag_north = 1;
}
if(isoccupy == 0) {
isoccupy = 1;
priority = 5;
}
}
}
FSM_PROFILE_SECTION_OUT (state11_enter_exec)
/** state (arbiter_start_1) exit executives **/
FSM_STATE_EXIT_FORCED (11, "arbiter_start_1", "tan_noc_worm_mesh_arbiter [arbiter_start_1 exit execs]")
/** state (arbiter_start_1) transition processing **/
FSM_TRANSIT_FORCE (7, state7_enter_exec, ;, "default", "", "arbiter_start_1", "wait")
/*---------------------------------------------------------*/
}
FSM_EXIT (0,"tan_noc_worm_mesh_arbiter")
}
}
void
tan_noc_worm_mesh_arbiter_diag (OP_SIM_CONTEXT_ARG_OPT)
{
/* No Diagnostic Block */
}
void
tan_noc_worm_mesh_arbiter_terminate (OP_SIM_CONTEXT_ARG_OPT)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = __LINE__;
#endif
FIN_MT (tan_noc_worm_mesh_arbiter_terminate ())
/* No Termination Block */
Vos_Poolmem_Dealloc_MT (OP_SIM_CONTEXT_THREAD_INDEX_COMMA pr_state_ptr);
FOUT
}
/* Undefine shortcuts to state variables to avoid */
/* syntax error in direct access to fields of */
/* local variable prs_ptr in tan_noc_worm_mesh_arbiter_svar function. */
#undef next_fifo_full
#undef crossbar_busy
#undef t_flag
#undef req_pk_num
#undef wait
#undef priority
#undef mid_allow
#undef east_allow
#undef south_allow
#undef west_allow
#undef north_allow
#undef flag_mid
#undef flag_east
#undef flag_south
#undef flag_west
#undef flag_north
#undef dest_address_mid
#undef dest_address_east
#undef dest_address_south
#undef dest_address_west
#undef dest_address_north
#undef isoccupy
#undef isoccupy_mid
#undef isoccupy_east
#undef isoccupy_south
#undef isoccupy_west
#undef isoccupy_north
#undef req_east
#undef req_mid
#undef req_south
#undef req_west
#undef req_north
#undef FIN_PREAMBLE_DEC
#undef FIN_PREAMBLE_CODE
#define FIN_PREAMBLE_DEC
#define FIN_PREAMBLE_CODE
VosT_Obtype
tan_noc_worm_mesh_arbiter_init (int * init_block_ptr)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = 0;
#endif
VosT_Obtype obtype = OPC_NIL;
FIN_MT (tan_noc_worm_mesh_arbiter_init (init_block_ptr))
obtype = Vos_Define_Object_Prstate ("proc state vars (tan_noc_worm_mesh_arbiter)",
sizeof (tan_noc_worm_mesh_arbiter_state));
*init_block_ptr = 0;
FRET (obtype)
}
VosT_Address
tan_noc_worm_mesh_arbiter_alloc (VOS_THREAD_INDEX_ARG_COMMA VosT_Obtype obtype, int init_block)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = 0;
#endif
tan_noc_worm_mesh_arbiter_state * ptr;
FIN_MT (tan_noc_worm_mesh_arbiter_alloc (obtype))
ptr = (tan_noc_worm_mesh_arbiter_state *)Vos_Alloc_Object_MT (VOS_THREAD_INDEX_COMMA obtype);
if (ptr != OPC_NIL)
ptr->_op_current_block = init_block;
FRET ((VosT_Address)ptr)
}
void
tan_noc_worm_mesh_arbiter_svar (void * gen_ptr, const char * var_name, void ** var_p_ptr)
{
tan_noc_worm_mesh_arbiter_state *prs_ptr;
FIN_MT (tan_noc_worm_mesh_arbiter_svar (gen_ptr, var_name, var_p_ptr))
if (var_name == OPC_NIL)
{
*var_p_ptr = (void *)OPC_NIL;
FOUT
}
prs_ptr = (tan_noc_worm_mesh_arbiter_state *)gen_ptr;
if (strcmp ("next_fifo_full" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->next_fifo_full);
FOUT
}
if (strcmp ("crossbar_busy" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->crossbar_busy);
FOUT
}
if (strcmp ("t_flag" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->t_flag);
FOUT
}
if (strcmp ("req_pk_num" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_pk_num);
FOUT
}
if (strcmp ("wait" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->wait);
FOUT
}
if (strcmp ("priority" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->priority);
FOUT
}
if (strcmp ("mid_allow" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->mid_allow);
FOUT
}
if (strcmp ("east_allow" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->east_allow);
FOUT
}
if (strcmp ("south_allow" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->south_allow);
FOUT
}
if (strcmp ("west_allow" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->west_allow);
FOUT
}
if (strcmp ("north_allow" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->north_allow);
FOUT
}
if (strcmp ("flag_mid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->flag_mid);
FOUT
}
if (strcmp ("flag_east" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->flag_east);
FOUT
}
if (strcmp ("flag_south" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->flag_south);
FOUT
}
if (strcmp ("flag_west" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->flag_west);
FOUT
}
if (strcmp ("flag_north" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->flag_north);
FOUT
}
if (strcmp ("dest_address_mid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dest_address_mid);
FOUT
}
if (strcmp ("dest_address_east" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dest_address_east);
FOUT
}
if (strcmp ("dest_address_south" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dest_address_south);
FOUT
}
if (strcmp ("dest_address_west" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dest_address_west);
FOUT
}
if (strcmp ("dest_address_north" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dest_address_north);
FOUT
}
if (strcmp ("isoccupy" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy);
FOUT
}
if (strcmp ("isoccupy_mid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy_mid);
FOUT
}
if (strcmp ("isoccupy_east" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy_east);
FOUT
}
if (strcmp ("isoccupy_south" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy_south);
FOUT
}
if (strcmp ("isoccupy_west" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy_west);
FOUT
}
if (strcmp ("isoccupy_north" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->isoccupy_north);
FOUT
}
if (strcmp ("req_east" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_east);
FOUT
}
if (strcmp ("req_mid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_mid);
FOUT
}
if (strcmp ("req_south" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_south);
FOUT
}
if (strcmp ("req_west" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_west);
FOUT
}
if (strcmp ("req_north" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->req_north);
FOUT
}
*var_p_ptr = (void *)OPC_NIL;
FOUT
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -