Question about SCML transport
In SobelFilter.cpp line 13,14
set_word_write_callback(rgb_reg, SCML2_CALLBACK(WriteRGB), scml2::NEVER_SYNCING);
set_word_read_callback(result_reg, SCML2_CALLBACK(ReadResult), scml2::NEVER_SYNCING);
It seems that this is a non-blocking operation, but in the call back function, the FIFO operation seems to be a blocking operation(?
bool SobelFilter::WriteRGB(const uint &rgb_data) {
rgb_reg = rgb_data;
word buffer;
buffer.uint = rgb_reg;
i_r.write(buffer.uc[0]);
i_g.write(buffer.uc[1]);
i_b.write(buffer.uc[2]);
return true;
}
bool SobelFilter::ReadResult(uint &result_data) {
result_reg = o_result.read();
result_data = result_reg;
return true;
}