You are on page 1of 35

ĐHBK Tp HCM - Khoa Đ-ĐT

BMĐT
Môn học: Xử lý tín hiệu số với FPGA
GVPT: Nguyễn Lý Thiên Trường
Email: truongnguyen@hcmut.edu.vn
203-B3

Chương 1
Giới thiệu
Xử lý tín hiệu số với FPGA
 Mục tiêu môn học
 Giới thiệu tổng quan về FPGA.
 SV có thể sử dụng ngôn ngữ Verilog cho việc thiết kế mạch số trên FPGA.
 Giới thiệu một số phương pháp để thiết kế các hệ thống VLSI cho một số ứng
dụng xử lý tín hiệu số điển hình.
 SV có khả năng vận dụng một số kỹ thuật thiết kế kiến ​trúc và thuật toán cấp cao
cho phép tối ưu hóa thuật toán, kiến ​trúc mạch số.
 Đánh giá môn học
 Kiểm tra tại lớp: 30%
 Kiểm tra giữa kỳ: 20%
 Thi cuối kỳ: 50%
 Giáo trình
 Keshab K. Parhi, VLSI Digital Signal Processing Systems – Design and
Implementation, Wiely, 1999.
 Sách tham khảo
 U. Meyer-Baese , Digital Signal Processing with Field Programmable Gate Arrays
 Pong P. Chu, FPGA Prototyping By Verilog Examples: Xilinx Spartan-3 Version
2
Sách tham khảo

3
Phần mềm

4
Phần mềm

5
Topics
1. Introduction
2. Digital circuit design with Verilog
3. Iteration Bound
4. Pipelining and Parallel Processing
5. Retiming
6. Unfolding
7. Folding
8. Systolic Architecture Design
9. Algorithmic Strength Reduction in Filters and Transforms
10. Bit-Level Arithmetic Architectures

6
Nội dung

1. Giới thiệu nội dung môn học


2. Tổng quan Tự đọc thêm
trong slide bài giảng
3. Phương pháp luận thiết kế
4. FPGA (Field-Programmable Gate Array)
5. HDL

7
DE10 Standard Development Kit

8
Board Comparisons

9
FPGA internal structure
(or CLB)

10
FPGA internal structure
(or CLB)

in1

in2
out

11
FPGA internal structure
(or CLB)

in1

in2
out

12
FPGA internal structure

(SB)
 A state-of-the-art FPGA contains thousands of configurable logic blocks (CLBs)
 Each CLB will have several basic logic elements (LE) consisting of a look-up table
(LUT) for implementing combinational logic and a memory element known as a flip-flop
(FF)
 The wires connecting the various CLBs can be programmed as well through a series of
switching boxes (SB) in the routing channels
 A high-level description language such as VHDL or Verilog is used to describe how an 13
FPGA internal structure

14
Look Up Table (LUT)
 A look up table is basically a binary truth table.
 It has a set of input bits, and the LUT mechanism maps these
to a set of output bits.

e.g. F(0102) = 12

Any guess as to what


Boolean function this
LUT is configured for?

15
Look Up Table (LUT)
 A look up table is basically a binary truth table.
 It has a set of input bits, and the LUT mechanism maps these
to a set of output bits.

e.g. F(0102) = 12

ANSWER:
It’s simply an XOR of all the
inputs

16
Programmable Interconnect to CLB I/O as:
LUT or MUXes
Programming lines CLB
Programmable
interconnect

A Programmable
logic blocks

Inputs B LUT
or
C MUX

... CLB
A
B LUT Hopefully you can now
or
C MUX easily see how the
D programming is going
to happen…

17
Programmable Interconnect:
Switch Blocks

CLB
Programmable
interconnect

Programmable
logic blocks

The switch block is an efficient


particularly for implementing
the routing at junctions in
Example Switch Block configurations: between PLBs, it allows for
various configurations that the
comparatively simpler
multiplexer doesn’t provide*.
left-top , Bottom- bottom-top ,
all * Although of course multiple MUXes
right-bottom (right,left) right-left
could mimic this behaviour.

18
ASIC/FPGA Design Flow

19
20
21
22
23
FPGA Design Flow

24
FPGA Design Flow
Design Design and RTL Coding
Specification - Behavioral or Structural Description of Design
- Writing VHDL (or Verilog), deciding i/o, formulating tests

RTL Simulation
- Functional Simulation
- Verify Logic Model & Data Flow
- View model-specified timing
M512
LE Synthesis
- Translate Design into Device Specific Primitives
M4K I/O - Optimization to Meet Required Area & Performance Constraints

Place and Route (PAR)


- Map primitives to specific locations inside
FPGA with reference to area & performance
constraints
- Specify routing resources to use

……

25
FPGA Design Flow
Place and
Route (PAR)

tclk
Timing Analysis
- Verify performance specifications
- Static timing analysis

Gate Level Simulation


- Timing simulation
- Verify design will work on target platform

Program and test on hardware


- Generate bit file
- Program target device
- Activate the system
26
FPGA Design Flow - HDL description

27
FPGA Design Flow – Logic Synthesis

(Register Transfer Level (RTL) view)

https://www.semiconvn.com/home/hoc-thiet-ke-vi-mach/bai-hc-vi-mch/8192-quy-trinh-thiet-ke-fpga-tong-quat.html 28
FPGA Design Flow - Mapping

29
FPGA Design Flow - Place & Route

CLB CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

CLB CLB CLB CLB

30
FPGA Design Flow - Placement

31
FPGA Design Flow - Routing

32
FPGA Design Flow - Configuration

PGA
F

33
FPGA Design Flow:
Where is most time spent?
Every development project is different. In my own experience,
most of the time is probably spent…
!
Eish Design and RTL Coding
- Behavioral or Structural Description of Design
- Writing HDL, deciding i/o, formulating tests
tclk Timing Analysis
Engineer’s - Verify performance specifications
time - Static timing analysis

Eish!
Place and Route (PAR)
- Map primitives inside FPGA
- Specify routing resources to use

PC’s time

34
Performance Metrics of a Digital Chip
 Cost
 NRE (fixed) costs - design effort
 RE (variable) costs - cost of parts, assembly, test
 Speed
 Delay (ns)
 Power Dissipation
 Energy to Perform a Function

 Energy per bit (nJ/b)


 Reliability
 Noise immunity Noise margin
 Scalability Larger Designs
 Time-to-Market
Non-recurring engineering (NRE) = Kỹ thuật không định kỳ (NRE) đề cập đến chi phí một lần
để nghiên cứu, thiết kế, phát triển và thử nghiệm một sản phẩm mới hoặc cải tiến sản phẩm. 35

You might also like