|
55 | 55 | {
|
56 | 56 | name: cnt_rollover
|
57 | 57 | desc: '''
|
58 |
| - Checking ip operation with random counter values |
| 58 | + Check that the IP works correctly with a range of counter values. |
59 | 59 |
|
60 | 60 | Stimulus:
|
61 |
| - - Program the pre-divider and size registers to unconstraint random values |
62 |
| - - Program the clk_cnt, bit_cnt and rep_cnt to values less than but close to |
63 |
| - predivider and size registers, so that counting would take a reasonable |
64 |
| - number of clock cycles |
65 |
| - - include programming for corner cases |
66 |
| - repeat programming a random number of times |
67 |
| - - Start and stop channels quickly |
68 |
| - - Clear interrupts quickly |
| 61 | + |
| 62 | + When picking a random configuration for a channel, this testpoint wants to see a large |
| 63 | + range of values for prediv (cycles per bit), len (number of bits in the message) and |
| 64 | + reps (number of pattern repetitions). |
| 65 | + |
| 66 | + To avoid the test taking a very long time, the product of the three values can be |
| 67 | + constrained with a bound. |
| 68 | + |
| 69 | + To check for edge cases, the random values described above should be weighted to |
| 70 | + sample the corners more often. |
69 | 71 |
|
70 | 72 | Checking:
|
71 |
| - - Include functional cover point that rollover value is reached and counter is re-enabled: |
72 |
| - - Ensure patterns are correctly generated |
73 |
| - - Ensure interrupts are robust asserted and cleared (e.g. at the high data rate) |
| 73 | + |
| 74 | + - Use the standard monitor/scoreboard to check that the generated patterns are as |
| 75 | + expected. |
| 76 | + |
| 77 | + - Add a functional cover point requiring that the rollover value is reached and then |
| 78 | + the counter is re-enabled. |
74 | 79 | '''
|
75 | 80 | stage: V2
|
76 |
| - tests: ["cnt_rollover"] |
| 81 | + tests: ["pattgen_cnt_rollover"] |
77 | 82 | }
|
78 | 83 | {
|
79 | 84 | name: error
|
|
0 commit comments