Professional Documents
Culture Documents
Quá trình hình thành và phát triển của các thiết bị logic
10/05/2022 4
3.1. Tổng quan về ASIC/ASIP
1.2 Phân loại
IC đặt hàng toàn bộ (Full Custom đi sâu tới mức thiết kế transistor)
IC theo cơ sở cell chuẩn IC theo cơ sở ma trận cổng
Gate Array
Array of prefabricated gates
“place” and route
Higher density, faster time-to-market
Does not integrate as well with full-custom
Standard Cell
A library of pre-designed cell
Place and route
Lower density, higher complexity
Integrate great with full-custom
3.1. Tổng quan về ASIC/ASIP
1.3 Quá trình thiết kế ASIC
1) Đặc tả thiết kế và thiết kế bằng ngôn ngữ mô tả phần cứng
2) Tổng hợp logic dùng HDL và các công cụ tổng hợp khác để mô tả
các thành phần và các kết nối của chúng
3) Chia hệ thống thành các khối nhỏ hợp lý.
4) Giả lập để kiểm tra chức năng mạch.
5) Sắp xếp các khối xử lý, các cell
6) Định vị các khối xử lý, các cell
7) Định tuyến, tạo kết nối, đi dây giữa các cell và các khối.
8) Trích mạch, tính giá trị điện trở, điện dung của các kết nối.
9) Kiểm tra, giả lập chức năng lại khi tính tới cả Rs, Cs trong các kết
nối.
10/05/2022 8
3.1. Tổng quan về ASIC/ASIP
1.3 Quá trình thiết kế ASIC
10/05/2022 9
3.2. Tổng quan FPGA
2.1 Giới thiệu
10/05/2022 10
3.2. Tổng quan FPGA
(Xilinx.com) Field-Programmable Gate Arrays (FPGAs) are
semiconductor devices that are based around a matrix of configurable
logic blocks (CLBs) connected via programmable interconnects. FPGAs
can be reprogrammed to desired application or functionality
requirements after manufacturing.
- Công nghệ IC lập trình mới nhất và tiên
tiến nhất hiện nay.
- Quá trình tái cấu trúc IC có thể được
thực hiện bởi người dùng cuối
- Công nghệ cho phép hiện thực hóa các
thiết kế số với chi phí và thời gian hợp lý
- Công nghệ đủ mạnh để đáp ứng đa số các
ứng dụng cơ bản, thay thế các chip ASIC
chuyên dụng
- Công nghệ cho phép mở ra các giải pháp
kỹ thuật mới cho các hệ xử lý truyền thống,
thay thế bằng các hệ có khả năng tái cấu
hình mềm dẻo.
10/05/2022 11
3.2. Tổng quan FPGA
2.1 Giới thiệu
10/05/2022 12
3.2. Tổng quan FPGA
2.2 Quá trình phát triển
FPGA ra đời vào những năm 1980 và bắt đầu phát triển
rực rỡ từ thập kỷ trước
Là khoảng nối giữa các thiết bị logic có thể lập trình được
đơn giản và ASIC bán chuyên biệt
PLDs ASICs
SPLDs
The Gate Arrays
GAP
CPLDs Structured ASICs*
Standard Cell
Full Custom
Programmable
a & c
OR array
&
!b & !c
&
SPLDs CPLDs a !a b !b c !c
l
Predefined AND array w x y
w = (a & c) | (!b & !c)
x = (a & b & c) | (!b & !c)
PROMs PLAs PALs GALs etc.
y = (a & b & c)
10/05/2022 14
3.2. Tổng quan FPGA
2.2 Quá trình phát triển
PROM
Mask-Programmable Chip: chỉ do duy nhất nhà sản xuất lập trình
Field-Programmable Chip: do người sử dụng cuối cùng lập trình.
Erasable Programmable Read-Only Memory (EPROM)
Electrically Erasable Programmable Read-Only Memory EEPROM): có thể xoá
và lập trình lại được nhiều lần
PLA (Programmable Logic Array): khả chuyển, linh hoạt và mềm dẻo
hơn, dùng được với các thiết kế có độ phức tạp cao hơn.
PAL/GAL (Programmable Array Logic/Generic Array Logic): linh hoạt
cao, nhanh và rẻ hơn so với PLA.
3.2. Tổng quan FPGA
2.2 Quá trình phát triển
Integration Very high (Up to 2 Millions gates) Small, medium (~max 1024 Macroclls)
(a) mặt cắt chéo (b) mô hình (c) mỗi antifuse ứng với 1 tiếp điểm
3.2. Tổng quan FPGA
2.5 Các công nghệ chế tạo FPGA
Công nghệ Metal-Metal Antifuse
Điểm kết nối giờ đây không dựa vào sự khuyếch tán nữa mà thực
sự là các dây dẫn kim loại.
Điện trở antifuse giảm, chỉ cỡ chục Ω.
(a) mặt cắt chéo (b) mô hình (c) mỗi antifuse ứng với 1 tiếp điểm
5.2. Tổng quan FPGA
2.5 Các công nghệ chế tạo FPGA
Công nghệ EPROM / EEPROM (Altera)
Giống như cách thức làm việc với bộ nhớ EPROM.
Ưu điểm: có thể lập trình lại mà không cần bộ nhớ ngoài lưu trữ
cấu hình
3.2. Tổng quan FPGA
2.6 Lựa chọn FPGA phù hợp với thiết kế
1) Đưa ra ý tưởng về một bản thiết kế logic glue, từ đó ước lượng
được số lượng các CLB cần thiết cho thiết kế, chọn một thiết bị
phù hợp như 3S400, 2S300...
2) Dự kiến số lượng các chân I/O cần thiết.
3) Điện áp hoạt động. Các FPGA mới sử dụng mức điện áp thấp
LVTTL, LVCMOS, đòi hỏi phải chuyển đổi điện áp để tương thích
với điện áp TTL, cung cấp một hoặc nhiều vùng sử dụng đồng thời
đa mức điện áp.
4) Tốc độ FPGA
5) Tối ưu hoá thiết kế theo hướng ưu tiên tốc độ hay số phần tử logic
6) Khả năng tài chính.
3.2. Tổng quan FPGA
3.2.7. Thị trường FPGA
Công ty Kiến trúc Kiểu khối logic CN lập trình
SW CLB SW CLB SW
3.4. Quá trình lập trình FPGA
Virtex-4:
2004, 1.2 V, 90nm
Virtex-II Pro /X
2002, 1.5 V, 130nm
400 MHz
• Mỗi slice gồm hai Function generator 4 đầu vào, cờ logic, các cổng
logic số học, bộ dồn kênh rộng và hai phần tử cất giữ (register)
Slice
VD: Spartan-3E
3.5. FPGA của Xilinx
3.5.2. Sơ đồ khối FPGA của Xilinx
Chức năng của LUT (Look Up Table)
x1
x2
y
x3 LUT
x1
0
x2
0
x3
0
x4
0
y
1
x4
x1
0
x2
0
x3
0
x4
0
y
0 LUT là các phần tử chủ
0 0 0 1 1 0 0 0 1 1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
yếu để thực thi logic
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1 Mỗi bảng LUT có thể
0 1 1 0 1 0 1 1 0 0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
thực hiện một hàm logic
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0 bốn đầu vào bất kỳ
1 0 1 1 1 1 0 1 1 0
1 1 0 0 0 1 1 0 0 1
1 1 0 1 0 1 1 0 1 1
x1 x2 x3 x4
1 1 1 0 0 1 1 1 0 0
1 1 1 1 0 1 1 1 1 0
x1 x2
y
3.5. FPGA của Xilinx
3.5.2. Sơ đồ khối FPGA của Xilinx
Phân bố LUT trên một slice
3.5. FPGA của Xilinx
3.5.2. Sơ đồ khối FPGA của Xilinx
X5 X4 X3 X2 X1 Y
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 0
0 0 0 1 1 0
0 0 1 0 0 1
0 0 1 0 1 1
0 0 1 1 0 0
0 0 1 1 1 0 LUT
0 1 0 0 0 1
0 1 0 0 1 0
0 1 0 1 0 0
0 1 0 1 1 1 OUT
0 1 1 0 0 1
0 1 1 0 1 1
0 1 1 1 0 1
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 1 0
1 0 0 1 0 0
1 0 0 1 1 0
1 0 1 0 0 0
1 0 1 0 1 0
1 0 1 1 0 0
1 0 1 1 1 1
1 1 0 0 0 0
1 1 0 0 1 1
LUT
1 1 0 1 0 0
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 0 1 1
BX nBX
BX
1
0
Một thành phần CLB có thể thực hiện một hàm bất kỳ có 5 đầu
vào
Hàm logic được phân chia giữa hai bảng LUT
5.5. FPGA của Xilinx
5.5.2. Sơ đồ khối FPGA của Xilinx
RAM phân bố RAM16X1S
D
WE
CLB LUT có thể định cấu hình =
WCLK
LUT A0 O
A1
Ghi đồng bộ
LUT
or RAM16X2S
D0
D1
WE
đồng bộ
or
A0 SPO
LUT
A1
A2
A3
DPRA0 DPO
DPRA1
DPRA2
DPRA3
3.5. FPGA của Xilinx
3.5.2. Sơ đồ khối FPGA của Xilinx LUT
Thanh ghi dịch IN
CE
D
CE
Q
CLK
Mỗi LUT có thể được định cấu hình
như thanh ghi dịch D
CE
Q
16 chu kỳ
Có thể lập trình theo dạng đường ống
Xếp chồng để có chu kỳ giữ chậm
D Q
lớn hơn CE
Three-State D Q
FF Enable EC
Three-State
Clock SR Control
Set/Reset
Output D Q
FF Enable EC
Output Path
SR
Direct Input
FF Enable
Input Path
Registered Q D
Input EC
SR
Cấu trúc của khối vào/ra cơ sở
VD: Spartan-3E
3.5. FPGA của Xilinx
3.5.2. Sơ đồ khối FPGA của Xilinx
Tài nguyên kết nối
PSM PSM
Ma trận chuyển
mạch có khả năng
CLB CLB CLB lập trình
PSM PSM
61
10/05/2022
3.6. Thực hiện thiết kế FPGA
Một số công cụ thực hiện thiết kế FPGA
63
10/05/2022
3.6. Thực hiện thiết kế FPGA
64
3.6. Thực hiện thiết kế FPGA
65
3.6.1. Thiết kế FPGA với Altium Designer
Phân tích bài toán thiết kế để xác định hàm logic đầu ra
và các biến logic đầu vào
Từ bài toán ta xác định 4 biến đầu vào là: chìa khóa, trạng thái cửa
xe, đèn xe và dây an toàn, hàm đầu ra là trạng thái chuông báo
Quy ước các trạng thái của các biến logic như sau:
Phân tích bài toán thiết kế để xác định hàm logic đầu ra
và các biến logic đầu vào
Từ bài toán ta xác định 4 biến đầu vào là: chìa khóa, trạng thái cửa
xe, đèn xe và dây an toàn, hàm đầu ra là trạng thái chuông báo
Quy ước các trạng thái của các biến logic như sau:
Nhập đường dẫn lưu trữ, tên và thực thể cao nhất của project mới
3.6.2. Thiết kế FPGA với Quatus II
Bước 1: Tạo mới project
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---------------------------------
entity BT1 is
port (a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
F : out std_logic
);
end BT1;
----------------------------------------------- 109
3.6.2. Thiết kế FPGA với Quatus II
Bước 2: Tạo File VHDL
-----------------------------------------------
architecture dataflow of BT1 is begin
F <= ((not a) and (not b) and c and (not d))
or ((not a) and (not b) and c and d)
or ((not a) and b and c and (not d))
or((not a) and b and c and d)
or (a and (not b) and (not c) and (not d))
or (a and(not b) and c and (not d))
or (a and b and (not c) and (not d))
or (a and b and (not c) and d)
or (a and b and c and (not d))
or (a and b and c and d);
end dataflow;
110
3.6.2. Thiết kế FPGA với Quatus II
Bước 2: Tạo File VHDL
121
3.6.2. Thiết kế FPGA với Quatus II
122
3.6.2. Thiết kế FPGA với Quatus II
Bước 1: Tạo các file VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
entity CHIA_1ENA1HZ is
Port ( CKHT: in STD_LOGIC;
ENA1HZ: out STD_LOGIC);
end CHIA_1ENA1HZ;
Tổng hợp thông tin sau khi tạo project (add 3 file có sẵn)
3.6.2. Thiết kế FPGA với Quatus II
Bước 3: Biên dịch chương trình
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---------------------------------
entity BT1 is
port (a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
F : out std_logic
);
end BT1;
----------------------------------------------- 141
3.6.2. Thiết kế FPGA với Quatus II
Bước 2: Tạo mã nguồn VHDL
-----------------------------------------------
architecture dataflow of BT1 is begin
F <= ((not a) and (not b) and c and (not d))
or ((not a) and (not b) and c and d)
or ((not a) and b and c and (not d))
or((not a) and b and c and d)
or (a and (not b) and (not c) and (not d))
or (a and(not b) and c and (not d))
or (a and b and (not c) and (not d))
or (a and b and (not c) and d)
or (a and b and c and (not d))
or (a and b and c and d);
end dataflow;
142
5.6.2. Thiết kế FPGA với Xilinx ISE
Bước 3: Bổ xung mã nguồn VHDL vào project
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 3: Bổ xung mã nguồn VHDL vào project
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 4: Kiểm tra mã nguồn VHDL
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 5: Tổng hợp thiết kế
5.6.2. Thiết kế FPGA với Xilinx ISE
Bước 5: Tổng hợp thiết kế Đọc kết quả tổng hợp
3.6.2. Thiết kế FPGA với Xilinx ISE
Sơ đồ RTL
5.6.2. Thiết kế FPGA với Xilinx ISE
Sơ đồ công nghệ
3.6.2. Thiết kế FPGA với Xilinx ISE
Mapping
Translate
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 9: Hiện thực hóa thiết kế
Routing
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 10: Tạo cấu hình FPGA: file bitstream
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 11: Nạp cấu hình FPGA: file bitstream
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 11: Nạp cấu hình FPGA: file bitstream
3.6.2. Thiết kế FPGA với Xilinx ISE
Bước 11: Nạp cấu hình FPGA: file bitstream