| # 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. |