Visible to Intel only — GUID: jbr1446659725070
Ixiasoft
Answers to Top FAQs
1. Intel® Hyperflex™ FPGA Architecture Introduction
2. Intel® Hyperflex™ Architecture RTL Design Guidelines
3. Compiling Intel® Hyperflex™ Architecture Designs
4. Design Example Walk-Through
5. Retiming Restrictions and Workarounds
6. Optimization Example
7. Intel® Hyperflex™ Architecture Porting Guidelines
8. Appendices
9. Intel® Hyperflex™ Architecture High-Performance Design Handbook Archive
10. Intel® Hyperflex™ Architecture High-Performance Design Handbook Revision History
2.4.2.1. High-Speed Clock Domains
2.4.2.2. Restructuring Loops
2.4.2.3. Control Signal Backpressure
2.4.2.4. Flow Control with FIFO Status Signals
2.4.2.5. Flow Control with Skid Buffers
2.4.2.6. Read-Modify-Write Memory
2.4.2.7. Counters and Accumulators
2.4.2.8. State Machines
2.4.2.9. Memory
2.4.2.10. DSP Blocks
2.4.2.11. General Logic
2.4.2.12. Modulus and Division
2.4.2.13. Resets
2.4.2.14. Hardware Re-use
2.4.2.15. Algorithmic Requirements
2.4.2.16. FIFOs
2.4.2.17. Ternary Adders
5.2.1. Insufficient Registers
5.2.2. Short Path/Long Path
5.2.3. Fast Forward Limit
5.2.4. Loops
5.2.5. One Critical Chain per Clock Domain
5.2.6. Critical Chains in Related Clock Groups
5.2.7. Complex Critical Chains
5.2.8. Extend to locatable node
5.2.9. Domain Boundary Entry and Domain Boundary Exit
5.2.10. Critical Chains with Dual Clock Memories
5.2.11. Critical Chain Bits and Buses
5.2.12. Delay Lines
Visible to Intel only — GUID: jbr1446659725070
Ixiasoft
4.1. Median Filter Design Example
The Median filter is a non-linear filter that removes impulsive noise from an image. These filters require the highest performance. The design requirement is to perform real time image processing on a factory floor.2
Figure 97. Before and After Images Processed with Median Filtering
Median Filter Design Example Files
The Median filter design example .zip file contains the following directories under the Median_filter_design_example_<version> directory:
File Name | Description |
---|---|
Base | Contains the original version of the design and project files. |
Final | Contains the final version of the design and project files with all RTL optimizations in place. |
fpga-median.ORIGINAL | Contains the original OpenSource version of the Median filter and the associated research paper. |
Step_1 | Incremental RTL design changes and project files for Fast Forward optimization step 1. |
Step_2 | Incremental RTL design changes and project files for Fast Forward optimization step 2. |
This walk-through covers the following steps:
- Step 1: Compile the Base Design
Follow these steps to compile the base design of the median project: - Step 2: Add Pipeline Stages and Remove Asynchronous Resets
This first optimization step adds five levels of pipeline registers in the design locations that Fast Forward suggests, and removes the asynchronous resets present in a design module. Adding additional pipeline stages at the interconnect between the ALMs eliminates some of the long routing delays. This optimization step increases fMAX performance to the level that Fast Forward estimates. - Step 3: Add More Pipeline Stages and Remove All Asynchronous Resets
The Fast Forward Timing Closure Recommendations suggest further changes that you can make to enable additional optimization during retiming. The Optimizations Analyzed tab reports the specific registers in the analysis for you to modify. The report indicates that state_machine.v still contains asynchronous resets that limit optimization. Follow these steps to remove remaining asynchronous resets in state_machine.v, and add more pipeline stages: - Step 4: Optimize Short Path and Long Path Conditions
After removing asynchronous registers and adding pipeline stages, the Fast Forward Details report suggests that short path and long path conditions limit further optimization. In this example, the longest path limits the fMAX for this specific clock domain. To increase the performance, follow these steps to reduce the length of the longest path for this clock domain.
2 The paper An FPGA-Based Implementation for Median Filtering Meeting the Real-Time Requirements of Automated Visual Inspection Systems first presented this design at the 10th Mediterranean Conference on Control and Automation, Lisbon, Portugal, 2002. The design is publicly available under GNU General Public License that the Free Software Foundation publishes.