FPGA = Field Programmable Field Arrays
FPGA is not DSP processor, but add flexibility
ASIC = Application Specific Integrated Circuit
FPGA is used for designing microchip ASIC (i.e. DSP, CPU, TPU)
Please see the video: https://www.youtube.com/watch?v=EVy4KEj9kZg&
The Augustus De Morgan law states that
All digital logic design is created by using..
- AND gate
- OR gate
- NOT inverter
Image from Intel Technology: Architecture All Access: Modern FPGA Architecture
What is a clock?
A clock (or a square wave) is a signal that raises (ON) and falls (OFF) at the set frequency.
The time between raises is called a period and it is constant.
What is a Flip Flop?
A digital flip flop (DFF) is a storage device that can be created by the fore-mentioned gates.
The data IN input is captured only when the clock signal raises and it is stored as output OUT.
The value will not be replaced in OUT until the clock raises again.
What is LUT?
A LUT is a Lookup Table, built with Flip Flops, that allows logic to be programmed.
We create is by populating outputs of the logic functions for some number of input variables into a specific number of memory locations which we call LUT masks.
We set multiplexers to operate using a Truth Table. See image below:
Images from Intel Technology: Architecture All Access: Modern FPGA Architecture t=342s
What is ALM?
An ALM is an Adaptive Logic Module or Configurable Logic Block
which are composed of Adaptive LUT, Full Adders, and DFF.
which are composed of Adaptive LUT, Full Adders, and DFF.
What is Programmable Routing & Interconnect?
This is a programmable one-way wiring between logic blocks.
You buy FPGA for logic, but you pay for routing.
Which programming languages do we use for FPGA?
- Data Parallel C++ using oneAPI
- VHDL
- Verilog
How to Begin a Simple FPGA Design
Please watch the video:
https://www.youtube.com/watch?v=bwoyQ_RnaiA
https://www.youtube.com/watch?v=bwoyQ_RnaiA
Topics to describe in the future
- Oscillator
- Integrator (scaled accumulator)
- low-pass filters
- LSB
- comb filters
- highly modified FIR filter
- self-contained and can work in isolation
- CIC FIlter
- IIR Filter
- Elliptic filter
- Chebyshev Type II filter
- Bessel filter
- Butterworth filter
- Parallel BiQuad IIR FIlter
- TDM Time Division Multiplexing
- Mac filters
- transpose filters
- Fast Furrier Transform FFT
- Jean Baptiste Fourier 1807
- any period signal could be made by adding together a series of pure tones
- square ~= sine() + 1/3 + 1/5 + 1/7 + ...
- ping-pong buffers
- write to one while processing another one
- uses twice as much memory
- Windowing
- FFT, recall DFT
- Single Cycle Butterfly
- RADIX-2 or RADIX-4 butterfly
Datapath vs Post Process
- In datapath
- Each pixel/point delayed by X lines
- Frame buffers
- Line buffers
- filter operations
- Camera pipeline
- image sensor
- image processing
- video processing
- compression
- I/O
- Stored Image - no delays
- Interlaced
- Progressive
Video Formats
- SD 4:3 720x480i (interlaced)
- SD 16:9 960x480p (progressive)
- HD 720p 1280x720p 60fps
- HD 1920x1080p
- YUV - color video on black and white display
- OSD on-screen display
- PIP picture-in-picture
- VDMA - video-specialized version of DMA
- AXI interface in Xilings
- Motion Adaptive Noise Reduction (MANR)
- Xilinx FPGA has hardware acceleration for Object Segmentation for video, but it might be used for range image
- Defective Pixel Correction
- edge-adaptive image correction (not perfect)
- pixel adaptive,
- color correction
- D65 - daylight
- 3x3 matrix correction
- gamma correction
- non-linear image brightness
- LUT
- better contrast
- lens control
- focus
- auto-focus
- passive, looks for edges
- active, emits IR signal to gauge distance in the center of the lense
- auto-exposure
- auto-white balance