II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel)
* Cá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á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ác module.
(Không cần gán địa chỉ liên tục cho cá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á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ác kênh trong
1 module. Xác định địa chỉ của từng kênh trong 1 module
26 trang |
Chia sẻ: thanhle95 | Lượt xem: 649 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Điều khiển nhúng - Chương 1: Thiết kế phần cứng dùng FPGA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1THIẾT KẾ PHẦN CỨNG
DÙNG FPGA
Chương 1
2I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
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ác hàm logic
từ cơ bản đến phức tạp.
- FPGA được cấu thành từ các bộ phận:
• Cá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)
3I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
1.1. FPGA (Field Programmable Gate Array)
- Cấu trúc LE
(logic element)
của Cyclone IV
(Altera)
- LUT : look
up table
4I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
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
5I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
1.1. FPGA (Field Programmable Gate Array)
- Họ Cyclone IV của Altera
6I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
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 soát
7I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
1.2. CPLD (Complex Programmable Logic Device)
8I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
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
9I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
1.2. CPLD (Complex Programmable Logic Device)
- HọMAX II của Altera
10
I. GIỚI THIỆU CẤU TRÚC FPGA
Trường ĐH Bách Khoa TP.HCM
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
CPLD
• MAX V, MAX II
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
- CoolRunner II
11
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel)
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D1
D2
D3
D4
D5
D6
D7
D8
CLK
OE
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
2
4
6
8
1
18
16
14
12
11
13
15
17
9
7
5
3
19
A1
A2
A3
A4
1OE
Y1
Y2
Y3
Y4
A5
A6
A7
A8
Y5
Y6
Y7
Y8
2OE
2
3
4
5
6
7
8
9
19
1
18
17
16
15
14
13
12
11
A0
A1
A2
A3
A4
A5
A6
A7
G
DIR
B0
B1
B2
B3
B4
B5
B6
B7
12
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel)
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D1
D2
D3
D4
D5
D6
D7
D8
CLK
OE
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
2
4
6
8
1
18
16
14
12
11
13
15
17
9
7
5
3
19
A1
A2
A3
A4
1OE
Y1
Y2
Y3
Y4
A5
A6
A7
A8
Y5
Y6
Y7
Y8
2OE
2
3
4
5
6
7
8
9
19
1
18
17
16
15
14
13
12
11
A0
A1
A2
A3
A4
A5
A6
A7
G
DIR
B0
B1
B2
B3
B4
B5
B6
B7
74573 74574 74244 74245
13
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel)
- Sơ đồ kết nối quá trình đọc dữ liệu
74LS244
2
4
6
8
1
18
16
14
12
11
13
15
17
9
7
5
3
19
A1
A2
A3
A4
1OE
Y1
Y2
Y3
Y4
A5
A6
A7
A8
Y5
Y6
Y7
Y8
2OE
1
2
3CS
RD
1
2
3CS
RD
74LS245
2
3
4
5
6
7
8
9
19
1
18
17
16
15
14
13
12
11
A0
A1
A2
A3
A4
A5
A6
A7
G
DIR
B0
B1
B2
B3
B4
B5
B6
B7
14
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.1. WR và RD trên 2 chân riêng biệt (kiến trúc Intel)
- Sơ đồ kết nối quá trình ghi dữ liệu
1
2
3
74LS573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7WR
CS
1
2
3
74LS574
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D1
D2
D3
D4
D5
D6
D7
D8
CLK
OE
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
CS
WR
15
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
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,
8 đường dữ liệu D7-D0. Giải mã các
ngoại vi sau:
• ADC: 4 kênh 8 bit
• DAC: 2 kênh 8 bit
• PWM: 6 kênh 8 bit
• Encoder: 6 kênh 8 bit
• DI: 2 kênh 8 bit
U1
74LS138
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
16
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.1. RD và WR trên 2 chân riêng biệt (kiến trúc Intel)
* Cá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á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ác module.
(Không cần gán địa chỉ liên tục cho cá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á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ác kênh trong
1 module. Xác định địa chỉ của từng kênh trong 1 module
17
Trường ĐH Bách Khoa TP.HCM
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
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
18
Trường ĐH Bách Khoa TP.HCM
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
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
19
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
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ác
ngoại vi sau:
• ADC: 16 kênh 8 bit
• DAC: 2 kênh 8 bit
• PWM: 4 kênh 8 bit
• Encoder: 4 kênh 8 bit
• DI: 4 kênh 8 bit
• DO: 2 kênh 8 bit
• CAP: 6 kênh 8 bit
• SPI: 1 kênh
• I2C: 1 kênh
U1
74LS138
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
20
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola)
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?
21
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola)
D[7..0]
A[7..0]
STROBE
WR/RD
D[7..0]
A[7..0]
RD
WR
CS
22
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
2.2. Tín hiệu WR và RD trên 1 chân (kiến trúc Motorola)
- Giao tiếp cồng máy in LPT chuẩn EPP (Enhanced Parallel Port)
23
II. GIẢI MÃ ĐỊA CHỈ PHẦN CỨNG
Trường ĐH Bách Khoa TP.HCM
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á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
AT9C52
31
19
18
9
12
13
14
15
1
2
3
4
5
6
7
8
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
17
16
29
30
11
10
EA/VP
X1
X2
RESET
INT0
INT1
T0
T1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PSEN
ALE/P
TXD
RXD
24
III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM
Trường ĐH Bách Khoa TP.HCM
3.1. Qui trình thực hiện
25
III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM
Trường ĐH Bách Khoa TP.HCM
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
- Gá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
26
III. SỬ DỤNG QUARTUS/ BLOCK DIAGRAM
Trường ĐH Bách Khoa TP.HCM
3.2. Liên kết các khối
- Tạo 1 filet mới: File -> New -> Block Diagram / Schematic File
- Đóng gói file thành 1 khối (module): File -> Create/Update -> Create
Symbol File for Current File
- Sử dụng khối vừa tạo trong 1 Schematic File khác: Double Click -> Libraries