Rev 896 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4 | lvd | 1 | | | | | | | | | | | | | | | | | | | | | | | |
2 | 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 |
||
3 | | | | 4 | 4 | 4 | 4 | 3 | 2 | 1 | 0 | 4 | 3 | 2 | 1 | 0 | 0 | 0 | 0 | | | | - number of video cycles left in block |
||
4 | | | r| r| r| r| r| -| -| -| -| | | | | | | | | | | | - cpu requests |
||
5 | | | | z | z | z | z | v | v | v | v | z | v | v | v | v | | | | | | | - cycle type |
||
6 | | | | | | | | | | | | | | | | | | | | | | | |
||
7 | | | | 3 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 4 | 3 | 2 | 1 | 0 | 0 | 0 | 0 | | | | - number of video cycles left in block |
||
8 | | | | | r| | | | | r| r| | | | | | | | | | | | - cpu requests |
||
9 | | | | v | v | z | v | v | | | z | z | v | v | v | v | | | | | | | - cycle type |
||
10 | | | | | | | | | | | | | | | | | | | | | | | |
||
11 | | | | 4 | 4 | 3 | 3 | 3 | 2 | 1 | 0 | 4 | 4 | 3 | 3 | 3 | 2 | 1 | 0 | | | | |
||
12 | | | r| r| | r| r| | r| -| -| r| | r| r| | r| -| -| r| | | |
||
13 | | | | z | z | v | z | z | v | v | v | z | z | v | z | z | v | v | v | z | z | | |
||
14 | | | | | | | | | | | | | | | | | | | | | | | |
||
15 | | | | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | | | | - stall cycles (BW=1) |
||
16 | | | r| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| | | | |
||
17 | | | | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v | v | z | | | |
||
18 | | | | | | | | | | | | | | | | | | | | | | | |
||
19 | |||
20 | rules: |
||
21 | |||
22 | if nexttype=idle and cpureq then next=cpu |
||
23 | if nexttype=idle and no cpureq then next=rfsh |
||
24 | |||
25 | if nexttype=stall then next=video |
||
26 | |||
27 | if nexttype=block then // block is when BW<1, else stall |
||
28 | begin |
||
29 | if cpureq then |
||
30 | begin |
||
31 | if blk_rem==0 or blk_rem!=vid_rem then next=cpu else next=video |
||
32 | end |
||
33 | else // no cpureq |
||
34 | begin |
||
35 | if vid_rem!=0 then next=video else next=rfsh |
||
36 | end |
||
37 | end |
||
38 | |||
39 | |||
40 | // trace blk_rem and vid_rem |
||
41 | |||
42 | if currtype==idle or (currtype==block and blk_rem==0) |
||
43 | begin |
||
44 | if go then nexttype=block, blk_nrem=7 |
||
45 | else nexttype=idle, blk_nrem=0 |
||
46 | |||
47 | if |
||
48 | |||
49 | end |
||
50 | else // currtype==block and blk_rem!=0 |
||
51 | begin |
||
52 | blk_nrem=blk_rem-1 |
||
53 | end |
||
54 | |||
55 | always @(posedge clk) blk_rem<=blk_nrem; |
||
56 | |||
57 |