-
Notifications
You must be signed in to change notification settings - Fork 16
Assignments
We are going to implement a digital version of the beautiful Pendulum Waves Experiment.
- Extend the LED_blink example to use 8 independent counters for every LED of your Redpitaya-125-14 with independently controllable counter incr but common resetn.
ℹ️ The AXI GPIO IP features only 2 register outputs. For more register outputs please use multiple instances of this IP or replace it by a AXI4 Register Bank IP instance, which has up to 16 independent register inputs/outputs.
-
Extend the LED_blink.ipynb Jupyter Notebook to configure LED frequencies of the type:
f[i] = f0 + i * df
for i=0,1...,7 and where f0 is the base frequency and df the frequency increment.
In this assignment we are going to develop a Pulse-Width Modulation (PWM) module.
- Based on the counter.vhd, create a new VHDL module that has the following ports
| Name | In/Out | Width (bits) | Description |
|---|---|---|---|
| clk | in | 1 | System clock |
| resetn | in | 1 | System reset (active low) |
| incr_i | in | 32 | Internal counter increment per clock cycle |
| duty_cycle_i | in | 32 | Internal counter threshold below (above) which pwm_o = 1 (pwm_o = 0) |
| pwm_o | out | 1 | Pulse-width modulation output |
-
Simulate and validate the new VHDL module (follow the instructions in Behavioral Simulation).
-
Connect the PWM module to the Redpitaya LEDs and verify that you can use it to dim the LED power.
-
Connect the PWM module to the pwm_o ports (requires to uncomment PWM DAC section in redpitaya-125-14.xdc) and verify on an oscilloscope that the you can use PWM in combination with the integrated low-pass filter to generate an analogue output.