blob: 2aecf825a59ffb26ff9f3b1fc390778135d9d643 [file] [log] [blame] [view] [edit]
# MMCME2_ADV tests
## Tests to be run in hardware
Allows to verify MMCME2_ADV functionality in hardware, designed for Basys3 board.
Switches:
- SW0: Reset (active high)
- SW1: PLL PWRDWN port (active high)
- SW2: CLKINSEL. When low CLKIN=100MHz, when high CLLKIN=50MHz.
LEDs:
- LED0: blinks at 23.841Hz / 11.920Hz
- LED1: blinks at 11.920Hz / 5.960Hz
- LED2: blinks at 7.947HZ / 3.9735Hz
- LED3: blinks at 5.960Hz / 2.980Hz
- LED4: blinks at 4.768Hz / 2.384Hz
- LED5: blinks at 3.973Hz / 1.9865Hz
- LED6: MMCM LOCK indicator (lit when locked)
There are 3 test variants:
- `mmcm_int_basys3` - Internal feedback
- `mmcm_int_basys3` - Internal feedback but no COMPENSATION specified in order to test default value in techmapper
- `mmcm_buf_basys3` - Feedback through a BUFG
- `mmcm_ext_basys3` - External feedback. Need to short `JC.1` and `JC.2` on the Basys3 board.
## Random configuration case tests
The test consists of a test design generator `gen_random_case.py` that outputs multiple MMCM configurations. This allows to check whether the bitstream configuration is correct for a vast number of cases. The design template is given in `mmcm_random_case.tpl`. Each case should work in hardware in the same way as the internal feedback variant described above.
To run SymbiFlow for all random configuration cases use the `all_xc7_mmcm_random_case` target.