My understanding to dedicated flags that they are showing status of certain thread all the time regardless the current interface drivers, is it true?
I need to use asynchronous slave FIFO interface with 2-bit address and i will assign a flag for every thread, I'll have 2 input threads and 2 output threads so my expectation is to have the flags showing the status of every thread as follow:
Input threads flags showing the status full/not-full
Output threads flags showing the status empty/not-empty
I saved asynchronous FIFO example as editable project and added the 2 additional flags and configured them as dedicated flags for every thread. The objectives are:
1- I have one control in thread and one control out thread (in from PC, out to PC)
2- I have one data in thread and one data out thread
3- Control in thread has the highest priority as I should serve control transactions sent from PC all the time
4- Dedicating a flag to control in thread should allow me to detict control transactions and i will end any current transaction to execute control transaction
5- Data is streamed from/to internal FPGA FIFOs using in/out data threads.
6- As i am dedicating flags to threads, I shouldn't poll for threads flags as i can have status instantinously regardless the current thread accessed.
7- For examble if internal FPGA FIFO has a packet, I can decide if this packet ready to send by checking out thread flag in the same clock cycle.
8- I understand the latency in updating threads flags after every piece of data pumped in or out threads.
Can any experinced programmer confirm my specs, please?
M.Y. Abdulghany
|