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