Open zhuanhao-wu opened 2 years ago
https://github.com/intel/systemc-compiler/blob/main/tests/method/test_ff_latch.cpp#L128
Notice that the i__local_3 of the for loop is declared after a hVarAssign, and it should be in front of the process.
i__local_3
hVarAssign
void async_rst_tff() { sc_uint<16> b = 0; async_rst_tff_out = 0x0; async_rst_tff_out2 = 0x0; async_rst_tff_out3 = 0x0; wait(); // 0 while (true) { sc_uint<16> a = async_rst_tff_out.read(); async_rst_tff_out2 = data_in.read() ^ async_rst_tff_out2.read(); for (int i = 0; i< 16; i++) { if (data_in.read()[i]) { a[i] = !async_rst_tff_out.read()[i]; } } async_rst_tff_out = a; for (int i = 0; i< 16; i++) { if (data_in.read()[i]) { b[i] = !async_rst_tff_out3.read()[i]; } } async_rst_tff_out3 = b; wait(); // 1 } } hVarAssign NONAME [ hVarref a_async_rst_tff_thread_1 NOLIST hSigAssignR read [ hVarref async_rst_tff_out NOLIST ] ] hBinop = [ hVarref async_rst_tff_out2 NOLIST hBinop ^ [ hSigAssignR read [ hVarref data_in NOLIST ] hSigAssignR read [ hVarref async_rst_tff_out2 NOLIST ] ] ] hVarAssign NONAME [ hVarref i_async_rst_tff_thread_2 NOLIST hLiteral 0 NOLIST ] hVardecl i__local_3 [ hTypeinfo NONAME [ hType int NOLIST ] ] hForStmt NONAME [ hVarAssign NONAME [ hVarref i__local_3 NOLIST hLiteral 0 NOLIST ...
https://github.com/intel/systemc-compiler/blob/main/tests/method/test_ff_latch.cpp#L128
Notice that the
i__local_3
of the for loop is declared after ahVarAssign
, and it should be in front of the process.