Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
 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=cpu
if nexttype=idle and no cpureq then next=rfsh

if nexttype=stall then next=video

if nexttype=block then // block is when BW<1, else stall
begin
        if cpureq then
        begin
                if blk_rem==0 or blk_rem!=vid_rem then next=cpu else next=video
        end
        else // no cpureq
        begin
                if vid_rem!=0 then next=video else next=rfsh
        end
end


// trace blk_rem and vid_rem

if currtype==idle or (currtype==block and blk_rem==0)
begin
        if go then nexttype=block, blk_nrem=7
        else nexttype=idle, blk_nrem=0

        if

end
else // currtype==block and blk_rem!=0
begin
        blk_nrem=blk_rem-1
end

always @(posedge clk) blk_rem<=blk_nrem;