@@ -99,9 +99,32 @@ when its value (derivative) esceeds a threshold values defined
...
@@ -99,9 +99,32 @@ when its value (derivative) esceeds a threshold values defined
by the user in runtime and, stores the amplitude value in another
by the user in runtime and, stores the amplitude value in another
FIFO (Comblock In) to be read afterwards.
FIFO (Comblock In) to be read afterwards.
The DPP_0 block have the following Ports:
| Port | Type | Definition |
| ---- | ---- | ---------- |
| clk_i | Input | Clock Input |
| rst_i | Input | Reset Input |
| ena_i | Input | DPP_0 Enable signal |
| ADC_data_i | Input | Data Input |
| threshold_high_i | Input | Detection Threshold value |
| op_mode_i | Input | Operation Mode* |
| data_o | Output | Data Output |
| fir_wr_en_mux_out | Output | FIFO Write Enable/ Data Valid|
The four operation modes are the following:
| Operation Mode | Description |
| -------------- | ----------- |
| "00" | Amplitude acquisition |
| "01" | Input signal |
| "10" | Long FIR continuous output |
| "11" | Derivative FIR continuous output |
## Procedure
## Procedure
### Prepare the Project
1. Generate the project in Vivado for the Zedboard using the information given in the previous section.
1. Generate the project in Vivado for the Zedboard using the information given in the previous section.
2. Create a Block Design
2. Create a Block Design
3. Include the Processing System
3. Include the Processing System
...
@@ -116,16 +139,10 @@ FIFO (Comblock In) to be read afterwards.
...
@@ -116,16 +139,10 @@ FIFO (Comblock In) to be read afterwards.
Open the HDL files and try to understand its behavior.
Open the HDL files and try to understand its behavior.
6. Insert the **DPP_module_top_0.vhd** in the block design, making right click on it and selecting the option `Add Module to the Block Design`

### Simulate the DPP to understand its behaviour.
7. Once the DPP module is inserted in the bd, connect the signals as in the next figure:
6. Generate a testbench/feeder for the DPP design

**Note:** Try to undesrtand the purpose of each connection. Can the design be simplified?
8. Generate a testbench/feeder for the DPP design
1. Add all the files under `<easy_dpp_git_path>/dpp_0/simul` to the **"Simulation sources"**.
1. Add all the files under `<easy_dpp_git_path>/dpp_0/simul` to the **"Simulation sources"**.


...
@@ -136,16 +153,38 @@ FIFO (Comblock In) to be read afterwards.
...
@@ -136,16 +153,38 @@ FIFO (Comblock In) to be read afterwards.
2. In the **"Project Manager"** make click on `Run Simulation -> Run Behavioral Simulation`
2. In the **"Project Manager"** make click on `Run Simulation -> Run Behavioral Simulation`.
3. Run the Simulation for at least 10 uS.

**Note:** You can change the waveform style by **right clicking** the signal (e.g. data_in), and selecting the option `Waveform style -> Analog`, adjust your settings to improve the visualization in: `Waveform style -> Analog Settings` and change the **Interpolation style** to **Hold**.

3. Modify the DPP's parameters and see the change in the behaviour (op_mode_i, threshold_i, etc..)
4. Modify the DPP's parameters and see the change in the behaviour (op_mode_i, threshold_i, etc..).
4. Change the threshold values until you have only 5 pulses to be written in the FIFO.
5. Explore the different operation modes
```--Input Parameters, Modify Here
9. Connect the signals of the DPP in the block design in order to be able to control it with the Comblock.
ena <= '1';
10. Generate bitstream, export it and open the SDK