Using the Basys 3 board, design a PWM generator with 1 Hz frequency and configurable duty cycle with a precision of 1000. The PWM signal shall be simultaneously output on JB[0] and LED[0]. The frequency of the signal should have an error of less than 1%. The current duty cycle, as a percent, shall be displayed on the seven-segment displays in decimal format with 1 decimal place (e.g. 067.2).

 

The user shall be able to change any digit of the duty cycle using the four pushbuttons:

 

    • A cursor shall be used to indicate which digit is selected by blinking the selected digit at 1Hz

 

    • The left and right button shall select a digit of the number to be changed; the selection should wrap around when the user hits the end.

 

    • The up and down button shall increment or decrement the selected digit by 1; the digit should not wrap below zero or above nine.

 

    • The duty cycle shall be a value between 0% and 100.0%

 

  • All pushbuttons shall have pulsers and should be debounced.