Blame | Last modification | View Log | Download | RSS feed
| | | | | | | | | | | | | | | | | | | | | |I | I | I | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | I | I | I | - number of cycles left in block| | | 4 | 4 | 4 | 4 | 3 | 2 | 1 | 0 | 4 | 3 | 2 | 1 | 0 | 0 | 0 | 0 | | | | - number of video cycles left in block| | r| r| r| r| r| -| -| -| -| | | | | | | | | | | | - cpu requests| | | z | z | z | z | v | v | v | v | z | v | v | v | v | | | | | | | - cycle type| | | | | | | | | | | | | | | | | | | | | || | | 3 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 4 | 3 | 2 | 1 | 0 | 0 | 0 | 0 | | | | - number of video cycles left in block| | | | r| | | | | r| r| | | | | | | | | | | | - cpu requests| | | v | v | z | v | v | | | z | z | v | v | v | v | | | | | | | - cycle type| | | | | | | | | | | | | | | | | | | | | || | | 4 | 4 | 3 | 3 | 3 | 2 | 1 | 0 | 4 | 4 | 3 | 3 | 3 | 2 | 1 | 0 | | | || | r| r| | r| r| | r| -| -| r| | r| r| | r| -| -| r| | || | | z | z | v | z | z | v | v | v | z | z | v | z | z | v | v | v | z | z | || | | | | | | | | | | | | | | | | | | | | || | | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | | | | - stall cycles (BW=1)| | r| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| | | || | | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v | z | | || | | | | | | | | | | | | | | | | | | | | |rules:if nexttype=idle and cpureq then next=cpuif nexttype=idle and no cpureq then next=rfshif nexttype=stall then next=videoif nexttype=block then // block is when BW<1, else stallbeginif cpureq thenbeginif blk_rem==0 or blk_rem!=vid_rem then next=cpu else next=videoendelse // no cpureqbeginif vid_rem!=0 then next=video else next=rfshendend// trace blk_rem and vid_remif currtype==idle or (currtype==block and blk_rem==0)beginif go then nexttype=block, blk_nrem=7else nexttype=idle, blk_nrem=0ifendelse // currtype==block and blk_rem!=0beginblk_nrem=blk_rem-1endalways @(posedge clk) blk_rem<=blk_nrem;