Chương 1
THÍT Ḱ PH̀N ĆNG
D̀NG FPGA
1
I. GÍI THỊU ĆU TŔC FPGA
1.1. FPGA (Field Programmable Gate Array)
- Là mạch tích hợp có khả năng cấu hình lại
bởi ngừi thiết kế, thực hiện ćc hàm logic
từ cơ bản đến phức tạp.
- FPGA được cấu thành từ ćc bộ phận:
• Ćc khối logic cơ bản lập trình được
(logic block)
• Hệ thống mạch liên kết lập trình được
• Khối vào/ra (IO Pads)
• Phần tử thiết kế sẵn kh́c như DSP
slice, RAM, ROM, nhân vi xử lý..
- Cấu hình FPGA dùng ngôn ngữ mô tả phần
cứng HDL (hardware description
language), mạch nguyên lý (schematic)
Trừng ĐH B́ch Khoa TP.HCM
2
I. GÍI THỊU ĆU TŔC FPGA
1.1. FPGA (Field Programmable Gate Array)
- Cấu trúc LE
(logic element)
của Cyclone IV
(Altera)
- LUT : look
up table
Trừng ĐH B́ch Khoa TP.HCM
3
I. GÍI THỊU ĆU TŔC FPGA
1.1. FPGA (Field Programmable Gate Array)
- Cấu trúc LAB:
(logic array block)
• Chứa 16 LE
• Tín hiệu điều
khiển LAB
• Mạch liên kết
Trừng ĐH B́ch Khoa TP.HCM
4
I. GÍI THỊU ĆU TŔC FPGA
1.1. FPGA (Field Programmable Gate Array)
- Họ Cyclone IV của Altera
Trừng ĐH B́ch Khoa TP.HCM
5
I. GÍI THỊU ĆU TŔC FPGA
1.2. CPLD (Complex Programmable Logic Device)
- Cấu trúc đơn giản hơn FPGA và ít khối logic hơn FPGA
- Bộ nhớ cấu hình trên EEPROM
- Th̀i gian trễ dễ kiểm sót
Trừng ĐH B́ch Khoa TP.HCM
6
I. GÍI THỊU ĆU TŔC FPGA
1.2. CPLD (Complex Programmable Logic Device)
Trừng ĐH B́ch Khoa TP.HCM
7
I. GÍI THỊU ĆU TŔC FPGA
1.2. CPLD (Complex Programmable Logic Device)
The MAX II CPLD has the following features (MAX II Device Handbook):
• Low-cost, low-power CPLD
• Instant-on, non-volatile architecture
• Standby current as low as 25 μA
• Provides fast propagation delay and clock-to-output times
• Provides four global clocks with two clocks available per logic array block
(LAB)
• UFM block up to 8 Kbits for non-volatile storage
• MultiVolt core enabling external supply voltages to the device of either 3.3V,
2.5V or 1.8V
• MultiVolt I/O interface supporting 3.3-V, 2.5-V, 1.8-V, and 1.5-V logic levels
Trừng ĐH B́ch Khoa TP.HCM
8
I. GÍI THỊU ĆU TŔC FPGA
1.2. CPLD (Complex Programmable Logic Device)
- Họ MAX II của Altera
Trừng ĐH B́ch Khoa TP.HCM
9
I. GÍI THỊU ĆU TŔC FPGA
1.3. FPGA của các hãng
ALTERA - FPGA
• SoC FPGA (FPGA + Cortex
A9 Dual-Core 800Mhz)
• Stratix V, Stratix IV
• Arria V, Arria II
• Cyclone V, Cyclone IV
XILINX - FPGA
• Zynq-7000 (FPGA + Cortex
A9 Dual-Core 800Mhz)
• 7 series FPGAs
• Virtex-6, Virtex-5, Virtex-4
• Spartan-6, Spartan-3A, 3E
CPLD
• MAX V, MAX II
CPLD
- CoolRunner II
Trừng ĐH B́ch Khoa TP.HCM
10
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. WR và RD trên 2 chân riêng bi t (kiến trúc Intel)
WR
RD
CS
CS
Hi-Z
Hi-Z
D[7:0]
D[7:0]
Hi-Z
Hi-Z
A[7:0]
A[7:0]
2
3
4
5
6
7
8
9
11
1
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
19
18
17
16
15
14
13
12
2
3
4
5
6
7
8
9
11
1
D1
D2
D3
D4
D5
D6
D7
D8
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
CLK
OE
Trừng ĐH B́ch Khoa TP.HCM
19
18
17
16
15
14
13
12
2
4
6
8
11
13
15
17
1
19
A1
A2
A3
A4
A5
A6
A7
A8
1OE
2OE
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
18
16
14
12
9
7
5
3
2
3
4
5
6
7
8
9
1
19
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
18
17
16
15
14
13
12
11
DIR
G
11
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. WR và RD trên 2 chân riêng bi t (kiến trúc Intel)
WR
RD
CS
CS
Hi-Z
Hi-Z
D[7:0]
D[7:0]
Hi-Z
Hi-Z
A[7:0]
A[7:0]
74574
74573
2
3
4
5
6
7
8
9
11
1
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
19
18
17
16
15
14
13
12
2
3
4
5
6
7
8
9
11
1
D1
D2
D3
D4
D5
D6
D7
D8
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
CLK
OE
Trừng ĐH B́ch Khoa TP.HCM
19
18
17
16
15
14
13
12
74244
2
4
6
8
11
13
15
17
1
19
A1
A2
A3
A4
A5
A6
A7
A8
1OE
2OE
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
74245
18
16
14
12
9
7
5
3
2
3
4
5
6
7
8
9
1
19
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
18
17
16
15
14
13
12
11
DIR
G
12
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. WR và RD trên 2 chân riêng bi t (kiến trúc Intel)
- Sơ đồ kết nối qú trình đọc dữ liệu
74LS245
74LS244
2
4
6
8
11
13
15
17
RD
2
CS
3
1
1
19
A1
A2
A3
A4
A5
A6
A7
A8
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
1OE
2OE
Trừng ĐH B́ch Khoa TP.HCM
2
3
4
5
6
7
8
9
18
16
14
12
9
7
5
3
RD
2
1
CS
3
1
19
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
18
17
16
15
14
13
12
11
DIR
G
13
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. WR và RD trên 2 chân riêng bi t (kiến trúc Intel)
- Sơ đồ kết nối qú trình ghi dữ liệu
74LS574
74LS573
2
3
4
5
6
7
8
9
WR
2
1
CS
3
11
1
D0
D1
D2
D3
D4
D5
D6
D7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
LE
OE
Trừng ĐH B́ch Khoa TP.HCM
19
18
17
16
15
14
13
12
2
3
4
5
6
7
8
9
WR
2
CS
3
1
11
1
D1
D2
D3
D4
D5
D6
D7
D8
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
19
18
17
16
15
14
13
12
CLK
OE
14
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. RD và WR trên 2 chân riêng bi t (kiến trúc Intel)
* Ví dụ 1: Giải mã dùng IC 74138
- Phần cứng 8 đừng địa chỉ A7-A0,
U1
8 đừng dữ liệu D7-D0. Giải mã ćc
1
ngoại vi sau:
2 A
• ADC: 4 kênh 8 bit
3 B
C
• DAC: 2 kênh 8 bit
6
4 G1
• PWM: 6 kênh 8 bit
5 G2A
G2B
• Encoder: 6 kênh 8 bit
• DI: 2 kênh 8 bit
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
74LS138
Trừng ĐH B́ch Khoa TP.HCM
15
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. RD và WR trên 2 chân riêng bi t (kiến trúc Intel)
* Ćc bước thực hiện
- Bức 1: Tính số kênh lớn nhất trong 1 module để x́c định số địa chỉ cần giải
mã cho ćc kênh.
6 kênh -> cần 3 đừng địa chỉ A[2:0]
- Bức 2: Tính số module để x́c định số địa chỉ cần giải mã cho ćc module.
(Không cần ǵn địa chỉ liên tục cho ćc module).
5 module -> cần 3 đừng địa chỉ A[5:3], hoặc A[6:4], hoặc A[7:5]
- Bức 3: Vẽ sơ đồ kết nối module: kết nối địa chỉ giải mã và dữ liệu tới ćc
module, x́c định địa chỉ của từng module.
- Bức 4: Vẽ sơ đồ kết nối kênh: kết nối địa chỉ và dữ liệu của ćc kênh trong
1 module. X́c định địa chỉ của từng kênh trong 1 module
Trừng ĐH B́ch Khoa TP.HCM
16
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. RD và WR trên 2 chân riêng bi t (kiến trúc Intel)
- Sơ đồ kết nối module
CS_ADC: 0x00 – 0x03
CS_DAC: 0x10 – 0x11
CS_PWM: 0x20 – 0x25
CS_ENC: 0x30 – 0x35
CS_DI:
0x40 – 0x41
Trừng ĐH B́ch Khoa TP.HCM
17
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. RD và WR trên 2 chân riêng bi t (kiến trúc Intel)
- Sơ đồ kết nối kênh
CS_DI1: 0x40
CS_DI2: 0x41
Trừng ĐH B́ch Khoa TP.HCM
18
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.1. RD và WR trên 2 chân riêng bi t (kiến trúc Intel)
* Ví dụ 2:
- Phần cứng 8 đừng địa chỉ A7-A0, 8 đừng dữ liệu D7-D0. Giải mã ćc
ngoại vi sau:
U1
• ADC: 16 kênh 8 bit
1
15
• DAC: 2 kênh 8 bit
A
Y
0
2
14
B
Y
1
• PWM: 4 kênh 8 bit
3
13
Y 2 12
C
• Encoder: 4 kênh 8 bit
Y 3 11
6
Y 4 10
4 G1
• DI: 4 kênh 8 bit
Y5 9
5 G2A
G2B
Y6 7
• DO: 2 kênh 8 bit
Y7
• CAP: 6 kênh 8 bit
• SPI: 1 kênh
74LS138
• I2C: 1 kênh
Trừng ĐH B́ch Khoa TP.HCM
19
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.2. Tín hi u WR và RD trên 1 chân (kiến trúc Motorola)
STROBE
STROBE
RD/WR
RD/WR
Hi-Z
D[7:0]
Hi-Z
D[7:0]
Hi-Z
A[7:0]
Hi-Z
A[7:0]
Giản đồ ghi dữ liệu
Giản đồ đọc dữ liệu
- Chuyển đổi Giao tiếp RD/WR trên 1 chân -> Giao tiếp RD, WR trên 2 chân
riêng biệt?
Trừng ĐH B́ch Khoa TP.HCM
20
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.2. Tín hi u WR và RD trên 1 chân (kiến trúc Motorola)
STROBE
D[7..0]
D[7..0]
A[7..0]
A[7..0]
RD/WR
Hi-Z
D[7:0]
Hi-Z
A[7:0]
STROBE
WR/RD
STROBE
CONVERTER
RD
WR
CS
RD/WR
Hi-Z
D[7:0]
Hi-Z
A[7:0]
Trừng ĐH B́ch Khoa TP.HCM
21
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.2. Tín hi u WR và RD trên 1 chân (kiến trúc Motorola)
- Giao tiếp cồng ḿy in LPT chuẩn EPP (Enhanced Parallel Port)
Trừng ĐH B́ch Khoa TP.HCM
22
II. GIẢI MÃ ĐỊA CH PH̀N ĆNG
2.3. Độ rộng dữ li u khác nhau
- Phần cứng 8 đừng địa chỉ A7-A0,
8 đừng dữ liệu D7-D0. Giải mã ćc
ngoại vi sau:
• ADC: 4 kênh 12 bit
• DAC: 4 kênh 12 bit
• PWM: 6 kênh 10 bit
• Encoder: 6 kênh 16 bit
• DI: 2 kênh 8 bit
• DO: 2 kênh 8 bit
U14
31
19
18
9
12
13
14
15
1
2
3
4
5
6
7
8
EA/VP
X1
X2
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
RESET
INT0
INT1
T0
T1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PSEN
ALE/P
TXD
RXD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
17
16
29
30
11
10
AT9C52
Trừng ĐH B́ch Khoa TP.HCM
23
III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM
3.1. Qui trình thực hi n
Trừng ĐH B́ch Khoa TP.HCM
24
III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM
3.1. Qui trình thực hi n
- Tạo 1 project mới: File -> New project wizard.
- Thiết kế dùng sơ đồ nguyên lý: File -> New -> Block Diagram / Schematic
File
- Biên dịch mạch thiết kế: Processing -> Start Compilation
- Ǵn chân tín hiệu vào, tín hiệu ra: Assignments -> Assignment Editor
- Mô phỏng mạch thiết kế: File -> New -> Vector Waveform File
- Lập trình và cấu hình FPGA: Tools -> Programmer
- Kiểm tra mạch
Trừng ĐH B́ch Khoa TP.HCM
25