Nội dung: 1. Giởi thiệu tổng quan về FPGA. 2. Sách viết bằng tiếng Việt đầy đủ, dễ đọc, dễ hiểu.
Trang 1Lời giới thiệu
Khai thác, nghiên cứu cơ bản công nghệ mới là bước không thể thiếu trong việc cải tiến, nâng cao, cũng như chế tạo mới các trang thiết bị quân sự và dân sự nhằm đáp ứng việc hiện đại hoá công nghiệp hoá của đất nước Cùng với sự phát triển vượt bậc của nghành công nghệ thông tin, các công nghệ mới về các mạch tích hợp vi điện tử, các mạch tổ hợp logic lập trình được ra đời đã làm cho các sản phẩm quân sự cũng như dân sự ngày càng hoàn thiện và
ưu việt hơn Để tiến một bước xa hơn trong việc cải tiến, chế tạo khí tài quân sự nhằm đáp ứng chiến tranh điện tử hiện đại với tốc độ xử
lý cực kỳ cao, đòi hỏi phải có công nghệ tiên tiến phù hợp với tình hình chung của thế giới
Trên cơ sở phát triển từ các chíp PLA, hiện nay công nghệ na nô
đã được đưa vào để chế tạo các mạch tích hợp lập trình được FPGA
và CPLD, nó đã làm cho mạch tích hợp logic lên đến hàng chục triệu cổng, tốc độ đồng hồ lên đến 500 MHz ứng dụng công nghệ mới vào trong thiết kế chế tạo các thiết bị điện tử lập trình PLIC là một bước cần thiết cho tương lai với một nước đang phát triển như Việt Nam Để đáp ứng được tính bảo mật trong quân sự cũng như tính phản ứng nhanh trong chiến tranh hiện đại cùng với nhu cầu chuyên dụng hoá, tối ưu hoá (thời gian, không gian, giá thành…), tính chủ động trong công việc ngày càng đòi hỏi khắt khe Việc
đưa ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao
Trang 2Công nghệ FPGA (Field Programmable Gate Array) và CPLD
(Complex Programmable Logic Device) đã được các hãng lớn tập trung nghiên cứu và chế tạo, điển hình là Xilinx và Altera Để làm chủ công nghệ mới và tổ chức thiết kế sản xuất công nghệ FPGA của Xilinx cho phép chúng ta tự thiết kế những vi mạch riêng, những
bộ xử lý số riêng dành cho ứng dụng của chúng ta Đặc biệt trong lĩnh vực xử lý tín hiệu số, các mạch tích hợp dùng để nhận dạng âm thanh, hình ảnh, cảm biến với tính mềm dẻo cao và giá thành thấp
Mặc dù công nghệ FPGA đã xuất hiện từ năm 1985, xong đối với nước ta thì nó vẫn còn rất mới Do vậy tìm hiểu, làm chủ về công nghệ FPGA là việc làm hoàn toàn cần thiết Nó không chỉ có ý nghĩa đối với các lĩnh vực Điện tử - Viễn thông, công nghệ thông tin mà nó có ý nghĩa đặc biệt quan trọng trong lĩnh vực an ninh quốc phòng
Xuất phát từ thực tế đòi hỏi cấp bách đó, bộ môn Tự động và
Kỹ thuật tính – Khoa Kỹ thuật điều khiển – Học Viện Kỹ thuật quân
sự đã cho xuất bản cuốn sách “Thiết kế thiết bị điện tử lập trình sử dụng công nghệ FPGA và CPLD”, tài liệu này nằm trong loạt các tài liệu đã được bộ môn ấn hành, bao gồm Cấu trúc máy tính, Cờu trúc
và lập trình cho các hệ xử lý tín hiệu số, cấu trúc và lập trình hệ vi
điều khiển
Tài liệu giới thiệu phương pháp thiết kế CPLD, FPGA cũng như ngôn ngữ lập trình, từ đó đi sâu nghiên cứu các giải pháp có liên quan cũng như các công cụ hỗ trợ thiết kế, sau đó áp dụng để thiết
Trang 3kế, tích hợp vào loại CPLD và FPGA cụ thể Tài liệu được chia thành 4 chương:
- Chương 1: Giới thiệu tổng quan tổ chức phần cứng của
ASIC Giới thiệu tổng quan tổ chức các họ thiết bị cũng như cấu
trúc của chúng (tài liệu giới thiệu cấu trúc ASIC của hãng Xilinx)
- Chương 2: Giải pháp và tổ chức phần mềm đảm bảo Giới
thiệu các phần mềm hỗ trợ thiết kế, ngôn ngữ lập trình
- Chương 3: Ngôn ngữ lập trình VHDL
- Chương 4: Thiết kế ứng dụng cơ bản Chương này được thực
hiện với việc tích hợp các mạch điện tử trên cơ sở sử dụng ngôn ngữ VHDL, để thiết kế bộ điều khiển động cơ bước trên hai họ thiết bị CPLD và FPGA
Cuốn sách được dùng làm giáo trình giảng dạy bậc đại học và sau đại học chuyên ngành điện, điện tử hoặc làm tài liệu tham khảo cho các nghiên cứu sinh và cho những ai quan tâm đến cấu trúc và lập trình ASIC
Cuốn sách được biên soạn bởi PGS TS Nguyễn Tăng Cường và TS Phan Quốc Thắng, ThS Phạm Tuấn Hải, KS Lê Trọng Nghĩa, do PGS TS Nguyễn Tăng Cường chủ biên
Nhân dịp này, tập thể tác giả xin bày tỏ lời cám ơn chân thành nhất đến những người đã có nhiều đóng góp trong quá trình hoàn thành tài liệu, đến các anh chị em Bộ môn Tự động và Kỹ thuật tính thuộc Khoa Kỹ thuật Điều khiển, Học viện Kỹ thuật Quân sự, đặc biệt phải kể đến sự hỗ trợ hiệu quả của TS Đỗ Đình Nghĩa
Do kinh nghiệm và thời gian hạn chế, tài liệu này chắc chắn không thể tránh khỏi những thiếu sót Rất mong nhận được các ý kiến đóng góp và xây dựng của bạn đọc gần xa ý kiến đóng góp xin
Trang 4gửi về địa chỉ: Bộ môn Tự động và Kỹ thuật tính, Khoa Kỹ thuật
Điều khiển, Học viện Kỹ thuật Quân sự, 100 Hoàng Quốc Việt, Hà nội; Điện thoại (04)7542281, email: tcuong@hn.vnn.vn
Hà Nội, Ngày 1 tháng 10 năm
2005
Tập thể tác giả
Trang 5Chương 1 : Giới thiệu tổng quan
tổ chức phần cứng của FPGA vμ CPLD
1.1 Giới thiệu công nghệ và giải pháp của Xilinx
Vào cuối những năm 70, các bảng mạch được thiết kế sẵn cùng với các thiết bị chuẩn logic được ưa chuộng và thịnh hành Sau đó
một số câu hỏi được đưa ra rằng " Điều gì sẽ xảy ra nếu chúng ta
đưa cho những người thiết kế khả năng thực hiện kết nối giữa các thiết bị chuẩn logic khác nhau trong một thiết bị lớn hơn ? " Điều
này cho phép những người thiết kế tích hợp được nhiều thiết bị chuẩn logic hơn vào trong một thiết bị Để có được sự linh hoạt
trong thiết kế, Ron Cline người của hãng SigneticsTM đã đưa ra ý tưởng bao gồm hai sơ đồ cho phép người thiết kế có thể lập trình
được
Hai sơ đồ này cung cấp bất kỳ tổ hợp logic nào của các cổng
"AND" và "OR" mà chúng có thể được dùng chung với một số giới hạn cổng "AND " thông qua các cổng "OR" Cấu trúc này đã trở nên rất mềm dẻo, nhưng tại thời điểm đó lớp đệm hình học 10 àm đã tạo
ra sự giữ chậm giữa đầu vào và đầu ra rất lớn, chính điều này đã làm
Trang 6cho thiết bị hoạt động tương đối chậm Và cấu trúc này được gọi là cấu trúc của PLA (Programmable Logic Array)
Hình 1.1 Cấu trúc của PLA (Programmable Logic Array)
Hãng MMI (Sau đó bị mua bởi hãng AMD TM) đã hợp tác với hãng SigneticsTM và là nơi cung cấp nguồn tài liệu thứ hai cho hệ
thống mảng logic lập trình PLA (Programmable Logic Array)
Nhưng sau khi sản xuất, cấu trúc này đã bị thay đổi và trở thành cấu
trúc logic mảng lập trình được PAL (Programmable Array Logic),
bởi việc cố định một mảng và chỉ cho phép lập trình trên một mảng còn lại Cấu trúc PAL mới này rất khác với cấu trúc của PLA ở chỗ
là một mảng lập trình được bị gắn cố định - mảng các cổng OR
Tuy nhiên, cấu trúc PAL (Programmable Array Logic) này cũng có
lợi là thời gian giữ chậm đường truyền từ đầu vào đến đầu ra ngắn hơn và phần mềm ít phức tạp hơn Tuy nhiên chúng không mềm dẻo
bằng cấu trúc PLA (Programmable Logic Array) Các cấu trúc khác cũng được đưa ra, chẳng hạn như PLD (Programmable Logic Device) - thiết bị logic lập trình được Loại thiết bị này thường được gọi là thiết bị logic lập trình được đơn giản SPLD ( Simple
Trang 7Programmable Logic Device) và tên này được gọi chung cho tất cả
các thiết bị logic lập trình được như : PALs, CPLDs, FPGAs Cấu trúc của PAL (Programmable Array Logic)
Hình 1.2 Cấu trúc của PAL (Programmable Array Logic)
Cấu trúc này có các mắt lưới của các đường nối theo chiều ngang và chiều đứng Tại mỗi điểm giao nhau, chúng được nối với nhau bằng một cầu trì Với sự trợ giúp của các công cụ phần mềm, người thiết kế có thể lựa chọn mối nối, mối nào không được nối thì cầu trì tại điểm đó sẽ bị huỷ đi (Bị nung nóng và thổi đứt) Điều này
được thực hiện bởi một bộ nạp chương trình
Theo hình 1.2 các chân đầu vào được nối vào các đường theo chiều đứng, các đường nằm ngang được nối với các cổng AND -
OR, lần lượt các đường này được nối với các Flip-Flop chuyên dụng
(Chẳng hạn như Flip-Flop loại D, T, RS) Các PLDs (Programmable Logic Device) trong một IC đóng gói đơn có số cổng nhiều hơn 50
lần các thiết bị logic chuyên biệt Điều này nó đã thể hiện một sự tiến bộ rõ rệt, đấy là chưa đề cập đến một số thiết bị cần phải được giản lược hoá để có độ tin cậy cao hơn các thiết bị chuẩn logic
Công nghệ PLD đã phát triển từ những ngày còn rất sớm, chẳng
Trang 8hạn như công ty Xilinx, họ đã đưa ra sản phẩm CMOS với nguồn tiêu thụ siêu thấp dựa trên công nghệ bộ nhớ flash Các PLD flash cho phép khả năng lập trình và xoá bằng điện cho thiết bị nhiều lần
đã trở nên thích hợp hơn so với các chíp thế hệ cũ, các loại chip mà với thời gian xoá chương trình hơn 20 phút bằng tia cực tím
1.1.1 Complex Programmable Logic Devices (CPLDs)
Tạm dịch là các thiết bị logic cho phép lập trình phức hợp, họ thiết bị này là kết quả của việc tăng mật độ của họ SPLDs
(Programmable Logic Device) lên nhiều lần Khái niệm này được
hiểu như sau : tăng một số khối PLD hoặc các macrocell (xin được
để nguyên nghĩa và giải thích ở phần cấu trúc của CPLD) ở trong một thiết bị đơn cùng với các đường nối liền đa năng giữa chúng Các đường nối của các đơn vị logic đơn có thể được thực thi ở trong một khối đơn ( a single block ) Nhiều logic phức tạp yêu cầu cần nhiều khối và sử dụng các đường nối đa năng giữa chúng để tạo nên các kết nối phức tạp hơn
Hình 1.3 Cấu trúc của CPLD
Trang 9Các CPLDs rất thích hợp trong việc diễn tả các cổng logic phức tạp với tốc độ làm việc lớn hơn 200 Mhz ( tương đương 5 ns ) Khuôn mẫu thời gian cho CPLD rất dễ tính toán, bởi thế trước khi bắt đầu thiết kế bạn có thể tính toán các tốc độ từ đầu vào đến đầu ra của mình dựa trên khuôn mẫu này CPLDs đưa ra cách đơn giản nhất để thực hiện một thiết kế, một thiết kế có thể được mô tả bởi các sơ đồ nguyên lý hoặc nhập vào một HDL ( Hardware Description Language - Ngôn ngữ mô tả phần cứng) Đơn giản khi
sử dụng các công cụ phát triển để tối ưu hoá, nạp và mô phỏng thiết
kế Các công cụ thiết kế sẽ tạo ra một file mà file này (chính là một file chương trình) được dùng để đưa thêm các chuẩn logic vào trong một chip CPLD cùng với chức năng mong muốn Chính vì vậy nó cung cấp một chuẩn phần cứng mà cho phép các quá trình xử lý, gỡ rối có thể thực hiện ngay từ khi bắt đầu công việc thiết kế Giả sử nếu bạn cần có một một sự thay đổi về thiết kế, bạn có thể đưa sự thay đổi thiết kế đó vào trong công cụ phát triển CPLD và thực thi trên nó, sau đó bạn có thể kiểm tra được tức thì ngay sau đó bằng một phần mềm mô phỏng CPLD có mức tích hợp rất cao (có nghĩa
là một số lượng lớn các cổng trên một diện tích) và được đóng gói trong một khuôn dạng rất nhỏ Điều này đã đưa ra một giải pháp tuyệt vời cho những người thiết kế cần sản phẩm của mình được
đóng gói nhỏ gọn với diện tích bo mạch bị giới hạn về không gian
Họ Xilinx CoolRunner CPLDs luôn có mặt trong các đóng gói cùng với các chip đời mới Chẳng hạn như chip CP56 CPLD có khoảng cách các chân là 0,5 mm và với kích thước bao nhỏ không đáng kể
Trang 106x6mm và điều này cho phép đưa ra một sản phẩm nhỏ gọn cùng với mức độ tiêu thụ nguồn thấp
1.1.2 Field Programmable Gate Arrays ( FPGAs)
Mảng cổng cho phép lập trình được Năm 1985, công ty Xilinx
đã đưa ra một ý tưởng mới : Đó là sự kết hợp giữa những điều khiển
người dùng, thời gian đưa sản phẩm PLD (Programmable Logic Device) ra thị trường cùng với mật độ tích hợp, giá của các ma trận
cổng Điều này đã cho ra đời thiết bị FPGA và cho đến nay Xilinx vẫn là nhà phân phối số 1 trên toàn thế giới về họ thiết bị này Một FPGA có cấu trúc của các Logic Cell hoặc các Module và các
đường nối (Xem hình 1.4), các đường nối này nằm dưới sự điều khiển của người thiết kế Có nghĩa là bạn có thể thiết kế, lập trình và thay đổi mạch của bạn bất cứ khi nào bạn muốn Với họ FPGA ngày nay khả năng tích hợp của nó đã vượt qua giới hạn 10 triệu cổng ( Họ Xilinx VirtexTM- II và VirtexTM- 4 FPGA hiện đang giữ kỷ lục).Với sự giới thiệu của họ sản phẩm Spartan FPGA hiện nay, Xilinx có thể cạnh tranh về ma trận cổng ở mọi khía cạnh như giá cả, số lượng cổng, số lượng vào ra cũng như hiệu quả về giá thành Giả sử lấy Spartan - IIE FPGA với số lượng 300.000 cổng làm chuẩn của giá thành, nó có thể cho phép thay thế các sản phẩm ứng dụng theo chuẩn chuyên dụng
Có hai loại FPGA cơ bản : Loại SRAM (Static Random Access
Memory) có thể lập trình lại nhiều lần và loại OTP (One - Time Programmable) lập trình một lần
Trang 11Hình 1.4 Cấu trúc của FPGA
Hai loại này khác nhau ở chỗ thực hiện của các logic cell và kỹ thuật tạo sự kết nối giữa chúng trong thiết bị Loại hay đ−ợc dùng hơn cả là loại SRAM, vì nó có thể lập trình đ−ợc nhiều lần Thực tế thì SRAM FPGA đ−ợc nạp cấu hình lại mỗi khi bật nguồn, bởi vì FPGA loại này thực chất là một chíp nhớ theo ý muốn Có một câu
hỏi đặt ra là " Tại sao lại cần một chip PROM nối tiếp hoặc bộ nhớ
hệ thống? " cùng với mỗi SRAM FPGA Xem cấu trúc của hai loại
với hình vẽ 1.5 và 1.6:
Trang 12Hình 1.5 Cấu trúc SRAM FPGA ( SRAM Logic Cell)
- Loại SRAM có thể lập trình lại :
+ SRAM xác định các đường kết nối
+ SRAM xác định đơn vị logic trong bảng LUT ( Look Up Table )
( Mỗi một LUT là một bộ tạo chức năng hay bộ tạo hàm với N
đầu vào và một đầu ra, có thể thực hiện bất cứ chức năng logic nào với N đầu vào của nó N thường nằm giữa 2 và 6, thông thường các LUT có 4 đầu vào )
Hình 1.6 Cấu trúc của OTP FPGA (OTP Logic Cell)
- Loại OTP cho phép lập trình một lần :
+ Các đường nối không được phép nối như dạng cầu chì ( Nối
Trang 13xác định các giá trị của đầu ra, các bit này cũng được dùng để thực thi các kết nối Trong OTP FPGAs sử dụng kết nối giữa các đường theo dạng nối ngược ( Có nghĩa ngược với cầu trì, sự kết nối được tạo ra và không bị nóng chảy trong suốt thời gian nạp chương trình), nhằm tạo ra các kết nối cố định trong chip Hơn nữa, OTP FPGA không cần SPROM nào khác, điều đó có nghĩa là nạp cấu hình vào thẳng FPGA Tuy nhiên mỗi lần thay đổi một thiết kế bạn phải vứt bỏ đi một chip Loại OTP Logic Cell có cấu trúc tương
tự như họ PLD (Programmable Logic Device), bao gồm các cổng và
flip - flop chuyên dụng như Flip-Flop loại D , T , hay RS
1.2 Giới thiệu các họ thiết bị của Xilinx
Xilinx chia sản phẩm của mình ra rất nhiều họ nhưng tài liệu sẽ tập trung chính vào việc giới thiệu hai loại FPGA và CPLD cơ bản, xem hình vẽ (Hình2.1) Đó là lọai thiết bị CoolRunner - XPLA3 CPLD, và Spartan 3 FPGA
Trang 14Hình1.7 Sơ lược các họ thiết bị của Xilinx 1.2.1 Họ Platform FPGAs
Hình 1.7 cho ta thấy được tổng quan các họ sản phẩm chính cuả Xilinx ở đây xin chỉ giới thiệu tổng quan và đưa ra các địa chỉ cần tra cứu về chi tiết kỹ thuật của chúng trên trang Web của hãng Xilinx
Họ Virtex FPGAs : Sản phẩm Virtex-II là hiện thân đầu tiên
của Platform FPGA Nó đã tạo ra một điểm dấu mới trong sự thực thi, cộng thêm hàng loạt các tính năng mới của thiết bị mà từ trước chưa có Đây là thời kỳ mà Xilinx mở rộng tầm chiến lược của mình bằng việc kết hợp với các hãng IBM, Wind River, Conexant,
Trang 15RocketChipsTM, The MathWorks, và các nhà đứng đầu công nghệ khác trên thế giới Platform FPGA đưa ra các đặc tính sau :
- Các giao tiếp vào ra hệ thống làm giảm nhẹ bớt các tiêu chuẩn không cần thiết khác
- XtremeDSP TM dựa trên FPGA, giải pháp cho sự thực hiện DSP chưa từng có (Nhanh gấp 100 lần bộ xử lý DSP hàng đầu)
- Empower ! Kỹ thuật xử lý dành cho xử lý hệ thống đòi hỏi sự
thực hiện cao và mềm dẻo
Với dải mật độ từ 40.000 đến 10 triệu cổng hệ thống , Virtex-II
đưa ra bộ nhớ hệ thống được mở rộng và bộ DSP flash thông qua kết cấu nhúng IP (Lõi sở hữu trí tuệ) Họ Xilinx Virtex là họ đầu tiên của FPGA mà nó đưa ra một triệu cổng hệ thống và được giới thiệu vào năm 1998 Dòng sản phẩm Virtex về cơ bản đã được định nghĩa lại tất cả các đơn vị logic lập trình bởi việc mở rộng các khả năng của FPGA truyền thống để có đặc tính mạnh hơn, nó được dùng cho các thiết kế hệ thống thực thi cao Các thiết bị mới nhất được đưa ra với họ sản phẩm Virtex-E và được công bố năm 1999 với hơn ba triệu cổng hệ thống Virtex-EM giới thiệu năm 2000 và là họ FPGA
đầu tiên được sản xuất với qui trình mạ đồng đã được cải tiến và thêm vào bộ nhớ trong chip để dùng trong các ứng dụng chuyển mạch mạng
Họ Spartan FPGAs :
Họ Spartan FPGA là ý tưởng dùng cho các ứng dụng với số lượng lớn, giá thành thấp, chúng được đưa vào các thiết bị đích nhằm thay thế các chip logic cố định và các sản phẩm chuyên dụng,
Trang 16chẳng hạn như các chip giao tiếp bus Năm thành viên của họ này là Spartan-3 (1.2v), Spartan-IIE (1.8 v), Spartan-II (2.5 v) và SpartanXL (3.3v), Spartan(5v) ở tài liệu này xin giới thiệu họ sản phẩm Spartan-3
- Spartan-3 FPGAs (1.2v, 90nm) : Với họ này, nó không chỉ có giá thành thấp mà còn đựoc tích hợp với một số tính chất mới về cấu trúc, các tính chất này được kết hợp với các đơn vị logic cho phép lập trình Sự kết hợp giữa giá thành thấp với các tính chất mới đã tạo
ra sự thay thế các chip ASIC và các thiết bị chuyên dùng khác Ví dụ một chip Spartan-3 FPGA trong hệ thống đa phương tiện truyền thông trong xe hơi có thể tập hợp được rất nhiều chức năng của hệ thống, bao gồm các lõi IP nhúng, giao tiếp hệ thống khách hàng, DSP và các đơn vị logic khác Nó bao gồm các thành phần chính sau:
+/ Các khối SRL16 ( thanhghi dịch 16 bit) :
* Mỗi khối Logic định cấu hình được (CLB LUT- Configurable Logic Block LookUp Table) làm việc như một thanh ghi dịch nhanh
16 bit (Mỗi CLB có chứa 2 hoặc 4 LUT và 2 hoặc 4 Flip Flop )
* Nối tầng các LUT ( Bộ tạo chức năng ) để tạo nên thanh ghi dịch dài hơn
* Sử dụng các thanh ghi đường ống cho các bộ đệm dành cho Video
và các kết nối không dây
+/ Bộ nhớ RAM chọn có thể được cấp tới 520Kb
* Mỗi LUT làm việc như bộ RAM/ROM đơn cổng hoặc lưỡng cổng
Trang 17* Nối tầng các LUT để tạo bộ nhớ lớn hơn
* Các ứng dụng có thể thay đổi kích thước bộ nhớ một cách mềm dẻo, FIFO, và các bộ đệm
+/ Khối RAM nhúng tới 1.87Mb
* Nhúng tới 104 khối RAM đồng bộ bằng việc nối tầng các khối RAM 18Kb
* Mỗi khối RAM 18Kb coi như một RAM đơn cổng hoặc lưỡng cổng
* Cung cấp các bội số của tỷ số tương quan, chuyển đổi độ rộng dữ liệu, tính chẵn lẻ
* Cung cấp cho các ứng dụng gồm: bộ đệm dữ liệu, FIFO, và các bộ
* Bộ nhân Logic cell : Thực hiện thuật toán thông thường chẳng hạn
Trang 18như Baugh Wooly, Booth, cây Wallance
* Các bộ DCM (Digital Clock Manager - Bộ quản lý đồng hồ số) thực hiện việc quản lý đồng hồ số phức tạp mà không bị ảnh hưởng của các tác nhân kích thích mang tính hệ thống như, nhiệt độ, sự biến thiên điện áp, và các vấn đề khác mà ví dụ điển hình là thường xảy ra với các bộ PLL (Phase Lock Loop - các vòng khoá pha) được tích hợp trong FPGA
đầu cuối mở rộng không còn bị biến đổi
* Các đầu cuối I/O bị loại trừ sự thay đổi theo quá trình như nhiệt
độ, dao động của điện áp
Bảng 1.1 Tổng quan họ Spartan-3 FPGA
Trang 19Các đặc tính và công dụng của chúng được nêu trong bảng 1.2 :
Bảng 1.2 Các đặc tính chính của Spartan-3 Các đặc tính của Spartan -3 Công dụng
Kết cấu và định tuyến FPGA lên
Chế độ thanh ghi dịch ( SRL 16 ) - ý tưởng thanh ghi dịch 16 bit
dành cho các ứng dụng tốc độ cao, hoặc dữ liệu có dạng thô
được lưu trữ trong DSP và các
Trang 20ứng dụng mã hoá, xử lý đường ống nhanh
Các khối nhân 18x18 - Dùng cho việc xử lý DSP tốc độ
cao; Sự sử dụng các bộ nhân kết hợp với kết cấu khung dữ liệu cho phép thực hiện DSP song song siêu nhanh
Tín hiệu đầu cuối (lên tới 622
Mbps) định dạng theo các chuẩn
LVTTL, LVCMOS, GTL, GTL+,
PCI, HSTL-I, II, III, SSTL- I, II
- Cho phép kết nối các chíp đang dùng với các chip, bộ nhớ khác,
và từ các chip đang dùng tới các chuẩn tín hiệu ở mạch phản hồi, loại bớt sự cần nhiều IC chuyển
đổi
Bộ quản lý đồng hồ số ( DCM ) - Loại trừ sự giữ chậm đồng hồ
mức board và on-chip, nhân chia tức thì, có thể giảm được tốc độ
đồng hồ phù hợp ở mức board, giảm số bộ đồng hồ trên bo mạch Có thể điều chỉnh pha
đồng hồ đảm bảo độ chính xác cao
Có các tài nguyên được định
tuyến toàn cục
- Sự phân phối các clock và các tín hiệu khác cùng với các hệ số phân chia đầu ra cao trên toàn
Trang 21- Với họ XC9500 : là họ các thiết bị cho phép lập trình phức tạp với sự thực thi cao, các đặc tính mới, linh hoạt Họ thiết bị này đưa
ra tốc độ dẫn đầu trong nền công nghiệp, nó cung cấp sự linh hoạt trong cấu trúc khoá chân với người dùng Họ sản phẩm này được dùng cho các thiết kế cần tốc độ cao, giá thành thấp
- Họ CoolRunner : Họ thiết bị tiêu thụ nguồn cực kỳ thấp, tạo ra
sự dẫn đầu trong thị trường các thiết bị xách tay Hoạt động trong chế độ chờ ở mức Micro ampe, tiêu thụ nguồn nhỏ nhất khi làm việc, vì vậy nó phù hợp với các ứng dụng mà cần quan tâm nguồn,
Trang 22chẳng hạn như nguồn ắc qui, các ứng dụng xách tay Để quyết định chọn lọai thiết bị nào phù hợp với tiêu chuẩn thiết kế, cần phải xem thêm các thông tin chi tiết về loại thiết bị mà bạn cần, chẳng hạn như : Mật độ cổng, số thanh ghi, số chân vào ra, tốc độ yêu cầu,
đóng gói chân, tiêu thụ nguồn, chức năng mức hệ thống
Họ XC9500 ISP ( Họ này cho phép lập trình mức hệ thống )
Họ XC9500 với sự thực thi cao, giá thành thấp là mục tiêu cho các ứng dụng có nhu cầu phát triển, nâng cấp thiết kế Họ XC9500
có dải mật độ từ 36 đến 288 Macrocell (Xin giải thích ở phần cấu trúc CPLD và FPGA mục 1.3 chương I), làm việc ở điện áp 2.5 Volt (XC9500 XV), 3.3 Volt (XC9500 XL), 5 Volt (XC9500 )
Các thiết bị này cho phép lập trình ở mức hệ thống ISP, điều này cho phép sử dụng lại các thiết kế trong suốt thời gian thử mẫu,
gỡ rối hệ thống, nâng cấp, test trước khi xuất xưởng
Dựa vào các kỹ thuật xử lý tiên tiến, họ XC9500 đưa ra sự bảo hành nhanh (Chỉ cần file chương trình được đóng gói và nạp lại), cho phép khoá chân người dùng, giao tiếp được với chuẩn JTAG Tất cả các họ XC9500 có đặc tính tin cậy tuyệt vời với 10.000 lần nạp xoá và lưu trữ dữ liệu trong vòng 20 năm
- Họ XC9500 5 V : Là một trong số 6 thiết bị dải từ 36 đến 288
Macrocell với các kiểu đóng gói chân đa dạng Các chân vào ra cho phép giao tiếp trực tiếp với hệ thống 3V và 5 V (VccIO - chân giao tiếp người dùng), với các phiên bản mới nó trở nên rất dễ sử dụng với các đóng gói theo kiểu CSP (Chip Scale Package), BGA (Ball Grid Array) và cho phép truy cập đến 192 tín hiệu
Trang 23* Cấu trúc khoá chân linh hoạt :
Cùng với phần mềm fitter đã đưa ra khả năng định tuyến lớn
nhất, mềm dẻo trong thực thi Với cấu trúc có giầu đặc tính, cho phép đưa ra nhiều tích số nhân riêng biệt, có ba bộ đồng hồ toàn cục, có nhiều tích số nhân trên đầu ra hơn các loại CPLD khác
Các tính năng về cấu trúc của loại này rất thích nghi với việc sửa đổi thiết kế trong quá trình thiết kế
* Trợ giúp gỡ rối và phát triển giao tiếp với JTAG IEEE 1149.1: Giao tiếp JTAG của họ XC9500 thông minh hơn bất cứ họ CPLD nào có mặt trên thị trường Nó có các đặc tính chuẩn hỗ trợ kỹ thuật hỏi vòng, lấy mẫu, kiểm tra mở rộng
Hơn nữa nó gồm có các chỉ dẫn quét biên mà các loại CPLD khác không có, nó bao gồm INTEST (dùng cho kiểm tra chức năng của thiết bị ), HIGHZ ( dùng cho kỹ thuật hỏi vòng )
Họ XC9500 5V này đưa ra nhiều chuẩn công nghiệp phát triển
ở thế hệ thứ ba, các công cụ gỡ rối như Corelis , JTAG, Assert Intertech
Các công cụ này cho phép bạn phát triển các véc tơ test vùng biên để phân tích sự ảnh hưởng lẫn nhau, test, gỡ rối lỗi hệ thống
Bảng 1.3 Tổng quan họ XC9500 5V
Trang 24- Họ XC9500XL 3.3 V: Họ XC9500 XL được úng dụng trong
các hệ thống mũi nhọn cần sự phát triển tiếp theo và khả năng nâng cấp thiết kế Họ này đưa ra sự thực thi chưa từng có với độ tin cậy lập trình cao nhất, giá thành thấp nhất Họ XC9500 XL bổ sung mật
độ cao hơn Xilinx FPGA để đưa ra giải pháp logic tổng thể trong môi trường phát triển tích hợp Các đặc tính chính của họ này như sau :
* Điểm mạnh chính :
+/ Giá thành thấp nhất trên mỗi Macrocell
+/ Cấu trúc khoá chân tiên tiến nhất hiện có
+/ Khả năng lập trình cao nhất, giảm sự rủi ro hệ thống +/ Bổ sung cho họ Xilinx 3.3 V FPGA
* Sự thực thi :
+/ Tốc độ truyền tín hiệu giữa chân tới chân 5ns
+/ Tần số hệ thống 222 MHz
* Tính năng cấu trúc mạnh:
Trang 25+/ Có các khối chức năng lên tới 54 đầu vào
+/ Có tới 90 tích số nhân trên mỗi Macrocell
+/ Cho phép định tuyến nhanh thông qua ma trận chuyển mạch CONNECTTM II
+/ Có ba bộ đồng hồ toàn cục và cho phép chuyển đổi vị trí giữa chúng
+/ Có đường OE (Output Enable) trên mỗi đầu ra riêng biệt, cho phép chuyển đổi vị trí
* Độ tin cậy cao nhất
+/ Khả năng chịu được 10.000 chu kỳ nạp xoá
+/ Lưu dữ liệu được 20 năm
+/ Cho phép bỏ qua chế độ lỗi mở khoá ISP
Bảng 1.4 Các họ XC9500 XV và XC9500 XL:
Trang 26Họ CoolRunner Low - Power CPLD:
Có hai thành viên chính trong họ CoolRunner là CoolRunner XPLA3(3.3v) và CoolRunner II (1.8V) ở tài liệu này giới thiệu CoolRunner XPLA (3.3 v)
Họ CoolRunner CPLD là sự kết hợp của sự tiêu thụ nguồn thấp
và tốc độ cao, mật độ cao, số đường vào ra cao trong một chip đơn
Họ CoolRunner 3.3v có mật độ từ 32 đến 512 Macrocell CoolRunner CPLD có nét đặc biệt của kỹ thuật nguồn không, cho phép thiết bị không tiêu thụ nguồn ở chế độ Standby Đặc tính này rất phù hợp với các thiết bị điện tử xách tay, như Laptop PCs, điện thoại di động, các thiết bị cá nhân số Họ CPLD này sử dụng nguồn động ít hơn nhiều khi hoạt động so với CPLD truyền thống Một điều quan trọng hơn cả là chúng dùng cho ứng dụng cần sự thực thi với tốc độ cao, nhậy cảm về nhiệt, chẳng hạn như chuyển mạch của tổng đài, hệ thống mô phỏng
Trang 27Mỗi thành viên của họ CoolRunner XPLA3 có chứa kỹ thuật thiết kế nguồn không mà nó là sự kết hợp nguồn năng lượng thấp và tốc độ cao Với kỹ thuật thiết kế này họ CoolRunner XPLA3 đưa ra tốc độ truyền từ chân tới chân là 5ns Khi được cấp nguồn với dòng nhỏ hơn 100 àA (ở chế độ standby) không cần bit "Powerdown" vì bit này có thể ảnh hưởng xấu đến sự thực hiện của thiết bị Bằng việc thay thế các phương pháp khuyếch đại truyền thống, phương pháp các tích số nhân với một loạt sự nối tầng của các cổng CMOS thuần tuý Nguồn động cũng được thay thế bằng nguồn thấp hơn bất
kỳ loại CPLD nào khác Họ CoolRunner hoàn toàn là loại PLD CMOS, vì vậy chúng sử dụng kỹ thuật xử lý CMOS và kỹ thuật thiết
kế nguồn không CMOS
Bảng 1.5 Các đặc tính của họ CoolRunner:
Cấu trúc hoàn toàn CMOS cùng
với kỹ thuật thiết kế nguồn
không FZP
- Dòng tiêu thụ tổng và dòng ở chế độ STANBY thấp nhất trong
số họ CPLD, vì vậy tuổi thọ của
ắc qui sẽ cao hơn, độ tin cậy tăng, toả nhiệt ít hơn
Trang 28Chuẩn vào ra thay đổi ( Có thể
dao dộng từ 3.3 đến 5V)
- Đơn giản trong thiết kế, có nhiều mức điện áp và dễ chuyển
đổi mức
Hệ thống Bus vào ra thuận tiện - Có điện trở treo ở đầu cuối
Sự chọn lựa clock đa năng - Mềm dẻo trong thiết kế
Có các thanh ghi đầu vào tác
- Quá trình tối ưu hoá mạnh hơn
và dễ điều chỉnh thiết kế, chi phí thấp hơn khi dùng vào các ứng dụng nhỏ
Dải nhiệt độ chuẩn theo công
nghiệp và thương mại
- Có thể sử dụng trong các ứng dụng ở các lĩnh vực khác nhau, như y học
Bảng 1.6 Tổng quan họ CoolRunner :
Trang 29Giải thích ký hiệu CoolRunner CPLD:
1.2.3 Họ Xilinx ứng dụng trong hàng không và vũ trụ
Xilinx là nhà cung cấp hàng đầu các họ PLD với độ tin cậy cao cho thị trường hàng không vũ trụ và quân sự Các thiết bị này, chúng được sử dụng rộng rãi trong các ứng dụng như chiến tranh
Trang 30điện tử, tên lửa dẫn đường, tên lửa hành trình, Radar, truyền thông siêu âm, xử lý tín hiệu, khoa học điện tử hàng không và vệ tinh Họ QproTM với các sản phẩm QML gốm, plastic đưa ra các giải pháp lập trình logic nâng cao cho các thiết kế thế hệ tiếp theo Họ QproTMcũng có các sản phẩm chọn, chịu nhiệt để sử dụng trong vệ tinh và các ứng dụng không gian khác Chẳng hạn như họ XQ4000E/EX thuộc họ FPGA, QPro - XC1700D - PROM , XQ17V6 - PROM, XQ18V04 - Flash PROM được sử dụng trong lĩnh vực quân sự
Địa chỉ tham khảo : (
http://www.dscc.dla.mis/v/va/smd/smdsrch.html )
1.3 Cấu trúc của FPGA và CPLD Xilinx
Với mỗi họ khác nhau cấu trúc cuả chúng khác nhau, tuy nhiên chúng vẫn có những điểm chung, ở tài liệu này xin giới thiệu một họ
cụ thể Với họ của FPGA tác giả xin giới thiệu cấu trúc của IIE FPGA, với họ CPLD xin gới thiệu họ CoolRunner XPLA3
Spartan-1.3.1 Cấu trúc của Spartan-IIE ( 1.8V) FPGA
Họ Spartan-IIE (Lõi 1.8V) của FPGA đưa ra các kỹ thuật FPGA phát triển nhất ngày nay, bao gồm cho phép lập trình với nhiều chuẩn vào ra như LVDS, LVPECL, HSTL, các khối RAM on-chip, các vòng khoá độ giữ chậm cho phép quản lý clock ở mức board và mức chip Hơn nữa họ Spartan-IIE có một ý nghĩa giá trị khác đó là
nó loại bỏ sự cần thiết các sản phẩm tiêu chuẩn chuyên dụng ( ASSP ) với các ứng dụng đơn giản, chẳng hạn như vòng khoá pha, FIFO, các bộ chuyển đổi vào ra, điều khiển Bus hệ thống, các thành phần
Trang 31này đã không thể thiếu để hoàn thiện một thiết kế mà nó đã được dùng trước đây
- Họ Spartan-IIE là đòn bẩy cơ bản cho các tính năng về cấu trúc của Virtex-E để đưa ra những tính năng nổi trội hơn Cấu trúc CLB (Configurable Logic Block - Khối logic cho phép định cấu hình) có chứa RAM được phân phối để thực hiện các chức năng logic cơ bản
- Bốn DLL ( Delay Locked Loop ) vòng khoá độ giữ chậm được
sử dụng cho bộ quản lý đồng hồ và có thể thực hiện clock đối xứng lệch và các phép nhân clock, chia clock Clock đối xứng lệch có thể
được thực hiện bên ngoài (Mức board) hoặc ở bên trong chip ( Mức cơ bản )
- Các khối Block RAM gồm 4Kb cho mỗi khối có thể được sắp xếp độ rộng từ 1 đến 16 bit
- Đặc tính Select I/O cho phép giao tiếp với nhiều chuẩn khác nhau để thực thi trong các vùng kết nối với các chip có chuẩn IO khác nhau, kết nối chip với bộ nhớ, kết nối chip với các giao tiếp
ẩn
Trang 32Hình 1.8 Cấu trúc của Spartan - IIE
- Họ Spartan-IIE FPGA được thực thi với cấu trúc CLB cho phép lập trình linh hoạt, thông dụng, mà các CLB này được bao bởi một vòng các khối I/O lập trình được, các đường nối được kết nối bởi các nguồn tài nguyên định tuyến đa năng Cấu trúc này cũng đưa
ra các chức năng được nâng cao chẳng hạn như khối RAM và các khối điều khiển clock
Trang 33Hình 1.9 Sơ đồ khối của Spartan -IIE
Hình 1.10 Khối Input/Output Spartan -IIE (I/OB)
I/O Block:
- Các đặc tính I/OB của các đầu vào và đầu ra đ−ợc hỗ trợ tới 19 các chuẩn tín hiệu khác nhau, bao gồm LVDS, BLVDS, LVPECL,
Trang 34LVCMOS, HSTL, SSTL và GTL
- Các đầu vào ra tốc độ cao này có khả năng hỗ trợ với tất cả các bộ nhớ hiện đại và giao tiếp bus khác Chúng gồm ba thanh ghi chức năng hoặc là các flip - flop loại D được kích hoạt bằng sườn hoặc là các bộ chốt nhạy mức Hình 1.10
- Mỗi một IOB có một đường CLK được đưa tới ba thanh ghi theo một đường dùng chung và các đường CE cho mỗi thanh ghi
hoàn toàn độc lập xem Hình 1.10
Ngoài các đường CLK, CE, mỗi thanh ghi đều có chung một
đường SET/RESET Với mỗi thanh ghi bạn có thể đặt tín hiệu Set/Reset này như tín hiệu Set đồng bộ, Reset đồng bộ, Preset không
đồng bộ hoặc một tín hiệu xoá (Clear) không đồng bộ
- Trong một số các chuẩn I/O yêu cầu điện áp Vcco hoặc Vref, các điện áp này chúng được nối tới các chân của thiết bị khi thiết kế, các chân này chúng tạo thành từng nhóm của các khối vào ra và chúng được gọi là Bank
- Chính vì vậy, sự hạn chế về các chuẩn vào của một thiết bị sẽ
do các Bank quyết định Tám Bank vào ra được tách theo mỗi cạnh của FPGA và được chia thành hai Bank chính (hình 1.11) Mỗi Bank
có nhiều chân điên áp Vcco và tất cả chúng đều được nối tới cùng một đường điện áp Điện áp này được xác định bởi các chuẩn đầu ra người dùng
Trang 35Hình 1.11 Các Bank chuẩn vào ra I/O của Spartan -IIE
- Một số chuẩn đầu vào mong muốn một điện áp ngưỡng nào đó
mà nó được cung cấp bởi người dùng chẳng hạn như Vref Trường hợp này, các chân I/O người dùng được xắp đặt tự động như các đầu vào cho điện áp lấy mẫu Vref Khoảng một trong 6 các chân vào ra của các Bank đóng vai trò này
- Các chân Vref trong một bank được nối bên trong và vì vậy chỉ một điện áp Vref có thể được sử dụng trong mỗi bank Tất cả các chân Vref trong các bank cần phải được nối với nguồn điện áp bên ngoài để chúng hoạt động đúng
Để có sự trao đổi nhanh giữa các tín hiệu, các chân tín hiệu đầu vào cần phải được cung cấp trước khi nguồn cấp vào chân Vccint và chân Vcco và phải đảm bảo không có đường dẫn dòng ngược từ các chân I/O quay về điện áp nguồn cung cấp Vccint và Vcco (Có nghĩa
là đảm bảo cho thiết bị có thể hoạt động ở một điện áp và giao tiếp ở một điện áp, hai điện áp này có thể khác nhau )
Configurable Logic Blok và Logic Cell:
Trang 36- Các đơn vị cơ bản của CLB (Khối logíc cho phép định cấu hình) thuộc họ thiết bị Spartan-IIE chính là các Logic Cell ( LC -
Xem hình 1.5 và hình 1.6 mục 1.1 chương I ) Mỗi một Logic Cell
bao gồm một bộ tạo chức năng (Hay bộ tạo hàm) gồm 4 đầu vào, phần tử logic nhớ và phần tử lưu trữ (Flip-Flop loại D)
- Đầu ra của bộ tạo chức năng của mỗi Logic Cell điều khiển cả
đầu ra CLB hoặc đầu vào D của Flip-Flop
- Mỗi một CLB có chứa bốn Logic Cell và được tổ chức thành hai Slice tương tự nhau, một slice đơn có dạng như (hình 1.12)
- Thêm vào bốn bộ LC cơ bản, các CLB của Spartan-IIE có chứa phần tử logic mà nó kết hợp với các bộ tạo chức năng để đưa ra các chức năng 5 hoặc 6 đầu vào
Look-Up tables (LUT):
- Các bộ tạo chức năng của Spartan -IIE thực hiện như LUT có bốn đầu vào Để hoạt động như một bộ tạo chức năng, mỗi một LUT
có thể cung cấp một RAM 16x1bit đồng bộ
- Hơn nữa hai LUT trong một Slice có thể được kết hợp để tạo một RAM 16x2 bit hoặc 32x1 bit đồng bộ
Storage Element:
Trang 37Hình 1.12 Cấu trúc Logic Cell hay một Slice đơn trong Spartan
-IIE
- Các phần tử lưu trữ trong slice của Spartan-IIE có thể được xem như một Flip-Flop loại D kích hoạt bằng sườn, hoặc như một bộ chốt nhạy mức Các đầu vào D có thể được điều khiển hoặc bởi bộ tạo chức năng trong slice hoặc trực tiếp từ đầu vào các slice (bỏ qua
bộ tạo chức năng) Thêm vào các đường Clock (CLK) và Clock
Enable (CE) (hình 1.12), mỗi Slice có các tín hiệu set và reset đồng
bộ (SR và BY) Đường SR ép các phần tử lưu trữ về trạng thái khởi tạo, đặc biệt trong trường hợp nhồi cấu hình Đường BY ép phần tử
Trang 38lưu trữ về trạng thái ngược lại Có thể lựa chọn hai đường này để
chúng hoạt động không đồng bộ
Tất cả các tín hiệu điều khiển có thể đảo ngược một cách hoàn toàn độc lập và chúng được chia sẻ bởi hai Flip-Flop trong một Slice
Arithmetic Logic: Bộ dồn kênh F5IN ở trong mỗi Slice được
kết hợp với các đầu ra bộ tạo chức năng được chỉ ra ở hình 1.13
Hình 1.13 Bộ dồn kênh F5 và F6
Sự kết hợp này sẽ đưa ra hoặc một bộ tạo hàm mà nó có thể thực thi bất kỳ 5 đầu vào chức năng nào, hoặc một bộ dồn kênh 4:1 hoặc các chức năng được chọn lựa của chín đầu vào Tương tự, bộ dồn kênh F6 kết hợp các đầu ra của bốn bộ tạo chức năng trong CLB bằng việc chọn một trong hai đầu ra của bộ dồn kênh F5 Điều này cho phép thực thi bất kỳ một hàm 6 đầu vào nào, một bộ dồn kênh 8:1, hoặc chức năng được chọn lựa lên đến 19 đầu vào
Block RAM: Họ Spartan-IIE FPGA hợp nhất một vài bộ nhớ
Trang 39RAM theo khối thành khối lớn hơn (gọi là SelectRAM +), có nghĩa
là cần phải bổ xung thêm các LUT RAM đã được dùng Kiến trúc
bộ nhớ không bền vững này được thực hiện trong các CLB Các khối
bộ nhớ RAM Block chúng được tổ chức theo các cột Hầu hết họ Spartan -IIE có chứa hai cột như nhau, mỗi một cột được bố trí dọc theo chiều đứng Họ XC2S400E có bốn cột RAM khối, mỗi cột này
được kéo dài hết chiều cao của chip Mỗi một khối nhớ chính gồm bốn CLB cao và vì vậy mỗi Spartan-IIE có 8 CLB cao sẽ chứa hai khối nhớ trên mỗi cột và tổng cộng có bốn khối
Delay - locked loop (DLL): Được kết hợp với mỗi bộ đệm đầu
vào clock toàn cục và là một vòng khoá độ giữ chậm số DLL mà nó loại trừ được sự lệch giữa bộ đệm đầu vào clock và các chân đầu vào clock bên trong thiết bị Bộ DLL giám sát toàn bộ clock đầu vào và clock được phân phối, tự động điều chỉnh phần tử giữ chậm clock Hơn nữa độ giữ chậm được hiểu là sườn của clock đưa tới Flip-Flop bên trong, với độ chính xác trong một chu kỳ đồng hồ sau khi chúng
được đưa đến đầu vào Chu trình kín này loại trừ ảnh hưởng độ giữ chậm do phân phối clock bằng việc đảm bảo các sườn của clock đưa
đến các flip-flop bên trong đồng bộ với các sườn clock đến tại các chân vào Để loại trừ sự giữ chậm do phân chia clock, DLL đưa ra tín hiệu điều khiển hiệu chỉnh các khoảng clock khác nhau DLL cung cấp các pha vuông 900
của clock nguồn mà có thể nhân đôi, hoặc chia bởi các hệ số 1.5 , 2, 2.5 , 3, 4 , 5 , 8 hoặc 16 ( Xem hình dưới )
Trang 40Hình 1.14 Vòng giữ chậm DLL
Hình 1.15 Các đặc tính đầu ra của DLL 1.3.2 Cấu trúc của CoolRunner -XPLA3 CPLD
Cấu trúc của XPLA3 mang nét đặc trưng của một thanh ghi ở
đầu vào, nhiều thành phần clock, lập trình qua JTAG, các đường vào
ra dao động 5V và bao gồm một cấu trúc PLA (Programmable Logic Array) đầy đủ Với sự phân phối logic linh hoạt cùng với các đặc