Nghiên cứu thiết kế modul giảng dạy FPGA luận văn thạc sĩ Nghiên cứu thiết kế modul giảng dạy FPGA luận văn thạc sĩ Nghiên cứu thiết kế modul giảng dạy FPGA luận văn thạc sĩ luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1B Ộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 3Lời cam đoan
Tôi xin cam đoan bản luận văn này là kết quả nghiên cứu của bản thân dưới sự hướng dẫn của TS Nguyễn Linh Giang Nếu có gì sai phạm, tôi xin hoàn toàn chịu trách nhiệm
Người làm cam đoan
Bồ Quốc Bảo
Trang 4Mục lục
Lời cam đoan 2
Mục lục 3
Danh mục các hình vẽ 4
Lời nói đầu 6
Chương 1 Tổng quan về ASIC lập trình được 8
1.1 Tổng quan về các công nghệ 8
1.2 Sự ra đời của công nghệ AsiC 9
1.3 Các hãng chính ứng dụng công nghệ ASIC 10
1.4 Các hướng tiếp cận thiết kế ASIC 11
1.5 Đầu vào thiết kế ASIC 14
1.6 Tổng hợp logic 23
1.7 Các công cụ thiết kế và phát triển ASIC 24
Chương 2 Xilinx và sản phẩm FPGA 28
2.1 Giới thiệu về công ty Xilinx 28
2.2 Các dòng sản phẩm chính của Xilinx 29
2.3 Giới thiệu sản phẩm Spartan II của Xillinx 31
2.4 Các chỉ tiêu kỹ thuật chi tiết Spartan II 52
Chương 3 Các ngôn ngữ mô tả phần cứng HDL 56
3.1 VHDL 56
3.2 Ngôn ngữ mô tả phần cứng ABEL 64
3.3 Ngôn ngữ Schematic Editor 70
Chương 4 Thiết kế modul giảng dạy sử dụng FPGA XC2S100 80
4.1 Mục đích và yêu cầu thiết kế 80
4.2 Những yêu cầu về phần mềm và phần cứng khi thiết kế mạch báo chuông 82
4.3 Trình tự thiết kế với FPGA 85
4.4 Trình tự thiết kế các mạch chức năng 86
4.5 Mạch báo chuông 94
Kết luận 97
Tài liệu tham khảo 98
Phụ lục 99
Trang 5Danh mục các hình vẽ
Tên hình
Hình 1.1: Một phần của thiết kế ASIC
Hình 1.2: Sơ đồ khối của PROM
Hình 1.3: Sơ đồ khối của PAL
Hình 1.4: Sơ đồ khối của PLA
Hình 1.5: Cấu trúc chung của một EPLD
Hình 1.6: Cấu trúc của một macrocell
Hình 1.7: Một CPLD của Xilinx
Hình 2.1: Cấu trúc FPGA của Xilinx
Hình 2.2: Cấu trúc chung của FPGA
Hình 2.3: Một CLB điển hình của FPGA dòng Spartan II
Hình 2.4: Sơ đồ khối chức năng của Flip-Flop trong CLB
Hình 2.5: Ghép nối các tín hịêu điều khiển
Hình 2.6: Sơ đồ khối của IOB
Hình 2.7: Sơ đồ khối chức năng IOB
Hình 2.8: OAND2 và OMUX2
Hình 2.9: Sơ đồ khối chung của các kênh kết nối trong CLB
Hình 2.10 Ma trận kết nối trong FPGA
Hình 2.11: Phân bố mạng tổng thể của Spartan
Hình 2.12: Sơ đồ logic của RAM cổng đơn
Hình 2.13: Sơ đồ logic của RAM cổng kép
Hình 2.14: Chi tiết một logic nhớ của Spartan
Hình 2.15: Bộ đệm 4 trạng thái thực hiện một bộ phân kênh
Hình 2.16: Sơ đồ logic quét biên của dòng Spartan
Hình 2.17: Sơ đồ mạch Master Slave
Hình 3.1: Các bước thiết kế VHDL
Trang 6Hình 4.1: Sơ đồ khối mạch báo chuông
Hình 4.2: Hình ảnh thực tế kit XSA-100 Board V1.0
Hình 4.3: Sơ đồ nguyên lý của XSA-100 Board V1.0
Hình 4.4: Trình tự thiết kế với FPGA
Hình 4.5: Mạch đa hài đợi tạo dao động âm tần
Trang 7Lời nói đầu
Cùng với sự phát triển của khoa học kỹ thuật, việc tự động hoá thiết kế các mạch điện tử đóng một vai trò quan trọng trong việc thúc đẩy sự phát triển
kỹ thuật tính toán Từ những năm 50 của thế kỷ trước, quá trình phát triển của
kỹ thuật điện tử đã trải qua nhiều giai đoạn: từ những bóng đèn điện tử đến những bóng bán dẫn, qua những mạch tích hợp nhỏ rồi tới những mạch với độ tích hợp lớn và siêu lớn Những mạch tích hợp loại này có thể chứa hàng triệu linh kiện bán dẫn trên một mạch Ví dụ điển hình là các bộ vi xử lý Việc thiết
kế những mạch có độ tích hợp lớn và siêu lớn không thể thực hiện một cách thủ công, mà phải có sự giúp đỡ của máy tính
Với mục đích không ngừng đáp ứng các nhu cầu của xã hội, hiện nay các môn học về thiết kế hệ thống số đã và đang được đưa vào giảng dạy tại các trường Cao đẳng và Đại học, việc tiếp cận môn học này tương đối khó và trừu tượng, để môn học trực quan và dễ tiếp cận việc thực hành lập trình số là rất cần thiết
Một trong những công nghệ mới được ra đời, có thể thay thế cho các hệ thống số trước đây đòi hỏi rất nhiều thời gian và chi phí cho nghiên cứu và chế tạo, đó là công nghệ ASIC (Application Specific Integrated Circuit) Dẫn đầu trong lĩnh vực này là sản phẩm FPGA (Field Programmable Gate Array) và CPLD (Complex Programmable Logic Devices) của công ty Xilinx Sử dụng FPGA hoặc CPLD thì có thể tối thiểu hóa được nhiều công đoạn thiết kế, lắp ráp vì hầu hết được thực hiện trên máy tính Các ngôn ngữ mô phỏng phần cứng (HDL: Hardware Description Languages) như ABEL, VHDL, Verilog, Schematic cho phép thiết kế và mô phỏng hoạt động của mạch bằng chương trình Các chương trình mô phỏng cho phép xác định lỗi thiết kế một cách dễ dàng và kết quả thực hiện của chương trình là một file bit cấu hình (bitstream)
để nạp (download) vào FPGA và CPLD để nó hoạt động giống như một mạch logic
Trang 8Việc nghiờn cứu và thiết kế cỏc modul thớ nghiệm FPGA để giỳp cỏc em học sinh-sinh viờn núi chung và sinh viờn trường Cao đẳng Cụng nghiệp núi riờng được tiếp cận và sử dụng cụng nghệ mới, đỏp ứng nhu cầu của xó hội khi ra trường là một cụng việc vụ cựng cần thiết và cấp bỏch
Với sự hướng dẫn của TS Nguyễn Linh Giang, trong khuôn khổ luận văn này, tôi mạnh dạn tìm hiểu và nghiên cứu về công nghệ mới của công ty Xilinx Qua nghiên cứu và tìm hiểu về các thiết bị có thể lập trình được của Xilinx, tôi sử dụng chip XC2S100 dòng Spartan II thiết kế một số mạch đơn giản, trên cơ sở những mạch này để thiết kế một modul giảng dạy cho sinh viên trường Cao đẳng Công nghiệp Hà nội – mạch báo chuông cho lớp học Nội dung của luận văn bao gồm 4 chương, trong đó:
Chương 1: Giới thiệu tổng quan về ASIC lập trình được
Chương 2: Giới thiệu về hãng Xilinx và sản phẩm FPGA
Chương 3 Giới thiệu một số ngôn ngữ mô tả phần cứng HDL
Chương 4 Thiết kế modul giảng dạy sử dụng FPGA XC2S100-Spartan II
Do thời gian và khả năng có hạn nên luận văn này sẽ còn nhiều thiếu sót Rất mong được sự góp ý và thông cảm của các thầy giáo, cô giáo
Hà nội, ngày 20 tháng 10 năm 2005
Học viên
Bồ Quốc Bảo
Trang 9Sự phức tạp trong hệ thống tăng lên cho kết quả mạch tích hợp ở các mức cao hơn trong các microchip Có các mức tích hợp như sau:
- SSI (Small Scale Integration), nó chứa nhiều cổng độc lập trên một gói
- Thông thường (General): là các thiết bị phục vụ cho các mục đích thông thường
- ASIC (Application Specific IC): sử dụng trong các chip hiện đại, các bộ
điều khiển nhúng với mục đích thiết kế đáp ứng nhu cầu của người sử dụng
Trang 101.2 Sự ra đời của công nghệ AsiC
Nhằm cải thiện tính linh hoạt của các IC và nâng cao chất lượng ngành công nghiệp sản xuất IC, IEEE đã tổ chức các hội thảo về các IC “theo đơn đặt hàng” CICC (Custom Integrated Circuit Conference) Theo đó, có nhiều kiểu IC dạng
“theo đơn đặt hàng” khác nhau được đưa ra nhằm giải quyết cho nhiều mục đích ứng dụng cụ thể chuyên biệt Từ đây, xuất hiện một thuật ngữ mới và chính thức
được sử dụng đó là: Application - Specific IC, hay viết tắt là ASIC Hiện nay,
IEEE thường xuyên tổ chức định kỳ các hội thảo cấp quốc tế về ASIC, nhằm điều chỉnh và nâng cao các ưu điểm cũng như tính thuận tiện và đưa ra các công nghệ tiên tiến của các hãng sản xuất ASIC khác nhau và phân loại chúng thành nhiều chủng loại IC theo đơn đặt hàng Mặc dù để định nghĩa được chính xác ASIC là rất khó, song chúng ta coi như đó là một thuật ngữ đã được công nhận chính thức trong ngành công nghiệp IC
Định nghĩa tiếng Anh của thuật ngữ ASIC theo IEEE 12/1999 như sau: “ASIC stands for Application Specific Integrated Circuits An ASIC is custom tailored IC that perfoms a specific task for specific application”- tạm dịch là “ASIC là viết tắt của từ Application Specific Integrated Circuits, nghĩa là các mạch tích hợp ứng dụng chuyên biệt” - hoặc ngắn gọn hơn là “IC chuyên dụng” Tuy nhiên, nhiều nhà “ASIC học” vẫn quen gọi là các “IC dùng cho mục đích của khách hàng” hoặc
là các “IC được thiết kế đặc biệt theo yêu cầu của khách hàng”
Ví dụ về các IC không phải là ASIC theo yêu cầu bao gồm các loại sau: các chip nhớ như ROM, DRAM, và SRAM; các bộ phận xử lý, các IC họ TTL và tương đương theo công nghệ SSI, MSI và LSI
Còn các IC thuộc dòng ASIC bao gồm: các chíp dùng trong công nghiệp giải trí; các chíp dùng trong công nghiệp vệ tinh, vũ trụ, các chíp được thiết kế dùng để giao tiếp giữa bộ vi xử lý đối với các CPU của các máy trạm làm việc và các chip chứa bộ vi xử lý bên trong cùng với các phần tử logic khác
Theo quy tắc chung, một IC có thể không phải là ASIC, nhưng đôi khi có những trường hợp ngoại lệ Ví dụ, một IC là chip điều khiển đối với PC và một IC
là chip điều khiển MODEM Cả hai đều là các IC ứng dụng chuyên biệt (giống như ASIC) nhưng cả hai đều có một số điểm khác khi sử dụng vào những hệ thống khác Do vậy, người ta chia họ ASIC thành ba thành viên chính: Cell Based ICs
Trang 11(CBICs), Gate Array và Programmable Logic Devices (PLDs) Lúc đó xuất hiện thêm một thuật ngữ tương đương ASIC là ASSPs (Application Specific Standard Product -các sản phẩm tiêu chuẩn ứng dụng chuyên biệt) Do vậy, khi quyết định chọn IC nào trong số họ ASIC rộng lớn thì rất khó, chủ yếu dựa vào công nghệ chế tạo và khả năng ứng dụng cũng như mục đích sử dụng
1.3 Các hãng chính ứng dụng công nghệ ASIC
Hiện nay, tại các nước có nền công nghiệp điện tử và vi điện tử phát triển cao, việc nghiên cứu và ứng dụng ASIC vào thực tế đã được áp dụng vào đầu thập kỷ
90 Một số hãng chính trên thế giới về công nghệ ASIC như:
IBM: có các sản phẩm Power PC nổi tiếng, mới nhất hiện nay là dòng sản
phẩm Power 4+ tích hợp bên trong hai bộ vi xử lý, tương thích cả 64 bit và 32 bit Ngoài ra, còn có dòng sản phẩm Power PC Gx 32 bit và Power PC G5 64 bit kết hợp với hãng Apple Các sản phẩm của IBM hiện nay cũng dựa trên công nghệ 0.18 àm và 0.13 àm Hiện nay, IBM là hãng đứng đầu thế giới về các sản phẩm ASIC/ PLD
NEC: NEC là hãng đứng thứ hai về lượng sản phẩm ASIC bán ra trên thị
trường thế giới, trong đó có dòng máy chủ gây nên sự kinh ngạc khi kỷ lục về siêu máy tính mạnh nhất thế giới vào thời điểm 11/2003 thuộc về hệ thống Earth Simulator đặt tại YOKOHAMA (Nhật Bản) với các CPU của NEC
Xilinx: hãng này với các sản phẩm truyền thống là Virtex-II, Virtex-II Pro,
Virtex-4 thuộc dòng FPGA mới nhất theo công nghệ 90 nm, và dòng sản phẩm Spartan-3 tích hợp với 5 triệu cổng thuộc họ FPGA Cuối cùng là các sản phẩm PLD điển hình là CoolRunner-II Hiện nay, Xilinx đứng thứ 2 thế giới về các sản phẩm ASIC/PLD Các sản phẩm của Xilinx còn được biết đến với công cụ EDA dành cho thiết kế là phần mềm ISE 6.2i
Altera: hiện nay là hãng đứng thứ 8 trong số các công ty chuyên về ASIC/PLD
và đứng thứ 3 về các sản phẩm FPGA Hãng này có các sản phẩm như: EP20K100TC144-3, EPF8282ALC84-4,…với các phần mềm đi kèm hỗ trợ cho các sản phẩm của các hãng khác là MAX + PLUS II và Quartus 3.0
Ngoài ra còn có một số hãng khác là Agere, Fujitsu, Toshiba
Trang 121.4 Các hướng tiếp cận thiết kế ASIC
Có thể lập trình
Diện tích của ASIC
Điện trở (ohm)
Điện tích (pF)
1.4.2 Đầu vào thiết kế ASIC
Mục đích của đầu vào thiết kế mô tả một hệ thống vi điện tử dựa trên các công cụ của hệ tự động thiết kế điện tử EDA Các hệ thống điện tử được xây dựng dựa trên các thành phần tĩnh, như là các IC TTL Đầu vào thiết kế đối với các hệ thống này chính là công việc vẽ các mạch và tổng hợp dạng giản
đồ Giản đồ thể hiện các thành phần được kết nối với nhau như thế nào, đó chính là liên kết của một ASIC Phần này của quá trình đầu vào thiết kế được gọi là đầu vào giản đồ Một giản đồ mạch mô tả một ASIC giống như là một bản thiết kế cho một công trình xây dựng
Giản đồ mạch là một bản vẽ, là một khuôn dạng đơn giản để chúng ta có thể hiểu và sử dụng, nhưng các máy tính cần làm việc với các phiên bản
ASCII hoặc các tệp nhị phân và chúng ta gọi là các tệp tin netlist (viết tắt là
Trang 13netlist) Đầu ra của công cụ thiết kế giản đồ chính là một netlist có chứa mô tả của tất cả các thành phần trong một bản thiết kế và các đường kết nối của chúng Đầu vào thiết kế là một trong những phần quan trọng nhất của công nghệ ASIC
Đầu vào thiết kế bao gồm các thành phần thiết kế sau:
Thư viện thiết kế ASIC
Thư viện thiết kế các vi mạch ASIC lập trình được (programmable ASIC) Thư viện phần tử logic ASIC lập trình được
Thư viện phần tử vào/ ra ASIC lập trình được
Thư viện phần tử kết nối ASIC lập trình được
Phần mềm thiết kế ASIC lập trình được:
- Đầu vào thiết kế logic mức thấp (Low – level design entry) sử dụng VHDL: Bộ quốc phòng Mỹ (The US Department of Defence-DoD) đã hỗ trợ việc phát triển ngôn ngữ VHDL (VHSIC Hardware Description Laguage) như một phần của chương trình quốc gia VHSIC (Very High Speed IC) vào đầu thập kỷ 80
- Tổng hợp logic (Logic Synthesis): tổng hợp logic cung cấp giữa một tệp HDL (VHDL hoặc Verilog) và một netlist tương tự như cách mà một bộ biên dịch C cung cấp liên kết giữa mã lệnh chương trình C và ngôn ngữ máy
- Mô phỏng (Simulation): các kỹ sư đã quen với các hệ thống mẫu dùng để kiểm tra sản phẩm thiết kế của họ, đó là việc sử dụng một đế thử mạch mẫu, cho phép cắm các IC và các dây dẫn lên Đế thử mạch mẫu chỉ có thể thực hiện được khi xây dựng hệ thống từ một vài IC TTL Tuy nhiên, điều này là phi thực tế đối với thiết kế ASIC Do vậy, hầu hết các kỹ sư thiết kế ASIC đề
sử dụng phương pháp mô phỏng tương đương thay cho mô hình đế thử mạch -Thử nghiệm mức logic (test): các ASIC được thử nghiệm theo hai giai
đoạn trong quá trình sản xuất bằng cách sử dụng các phương pháp thử nghiệm sản xuất
Trang 14trí liên quan của các khối trong ASIC
(đôi khi còn được gọi là sắp xếp chip -
chip planning) Cùng thời điểm này
chúng ta định vị khoảng trống cho
đường xung nhịp, nguồn và quyết định
vị trí của cổng I/O Việc sắp đặt
(Placement) định nghĩa vị trí của các
phần tử logic cùng với sự linh hoạt của các khối và khoảng trống dành cho việc nối các phần tử logic Việc sắp đặt đối với thiết kế ma trận cổng (Gate - array) hoặc phần tử tiêu chuẩn (Standard - cell) bố trí mỗi một phần tử logic vào vị trí trong cùng một hàng Việc lên sơ đồ mặt bằng (floor planning) và sắp đặt phần tử đôi khi có thể sử dụng công cụ CAD (Computer Aided Design) Việc định tuyến (Routing) thực hiện đường kết nối giữa các phần tử logic Việc định tuyến là một vấn đề rất khó và thường được phân chia thành các bước riêng biệt gọi là định tuyến toàn cục và định tuyến cục bộ Định tuyến toàn cục xác định các kết nối giữa các phần tử logic đã đặt chỗ và các khỗi sẽ đặt chỗ ở đâu Còn định tuyến cục bộ là mức định tuyến cụ thể và chi tiết đến từng phần tử
1.4.4 Các công cụ CAD
Để phát triển công cụ CAD cần thiết phải chuyển đổi mỗi một bước trong thiết kế vật lý thành các chủ thể có mục đích và định hướng rõ ràng Nhiệm vụ trong các bước thiết kế vật lý ASIC của các công cụ CAD là:
Phân chia hệ thống (System Partitioning):
Design Entry
Synthesis
System partitioning Floor planning
Placement
Routing
Hình 1.1: Một phần của thiết kế ASIC
Trang 15- Mục đích: phân chia một hệ thống thành một số các ASIC
- Định hướng: tối thiều hoá số lượng các kết nối ngoài giữa các ASIC Giữ cho mỗi ASIC nhỏ hơn kích thước cực đại
- Mục đích: sắp đặt việc kết nối giữa các vùng và vị trí của tất cả các phần
tử logic cùng với các khối linh hoạt
- Định hướng: tối thiểu hóa các vùng ASIC và mật độ kết nối
Định tuyến toàn cục (global routing):
- Mục đích: quyết định vị trí của tất cả các kết nối
- Định hướng: tối thiểu hoá toàn bộ vùng kết nối được sử dụng
Định tuyến chi tiết (detail routing):
- Mục đích: hoàn thành định tuyến tất cả các kết nối trên chip
- Định hướng: tối thiểu hoá tổng số độ dài kết nối được sử dụng
1.5 Đầu vào thiết kế ASIC
1.5.1 Thư viện thiết kế ASIC
Thư viện phần tử là một phần chính trong thiết kế ASIC Đối với các ASIC lập trình được thì các công ty chuyên về PLD, FPGA cung cấp cho chúng ta thư viện các phần tử logic dưới hình thức một bộ kit thiết kế, thông thường chúng ta không có một sự lựa chọn nào và giá thành của nó khoảng vài nghìn
đôla Đối với các MGA và CBIC chúng ta có ba lựa chọn: nhà cung cấp ASIC (công ty xây dựng ASIC cho chúng ta) sẽ cung cấp một thư viện phần tử, hoặc chúng ta có thể mua một thư viện phần tử từ một nhà cung cấp thư viện thứ ba, hoặc chúng ta có thể xây dụng thư viện phần tử của chính mình
Trang 16Tuy nhiên để tạo ra mỗi phần tử trong một thư viện phần tử ASIC phải bao gồm các yếu tố sau:
- Sơ đồ bố trí vật lý
- Mô hình hoạt động
- Mô hình Verilog/VHDL
- Mô hình tính toán thời gian chi tiết
- Chiến lược thử nghiệm phải kiểm tra
FPGA (Field- Programmable Gate Array) Việc phân biệt giữa hai loại ASIC
này chưa được chuẩn hoá Sự khác nhau thực tế chỉ là sự kế thừa của chúng Các PLD bắt đầu từ những thiết bị nhỏ dùng để thay thế một phần của họ IC TTL, và chúng được phát triển tương tự như người “anh em” FPGA của chúng, chỉ khác nhau về công nghệ chế tạo Trong mục này, chúng ta sẽ coi cả hai loại ASIC đều là các ASIC lập trình được
Trang 17Các PROM được sử dụng với mục đích chính là các thiết bị bộ nhớ lưu trữ
cố định các thông tin nhị phân Các quá trình lập trình liên quan đến việc đốt cháy các cầu chì (fuse) Nhưng PROM lại rất lý tưởng cho việc thực hiện logic
mà có ít hơn 10 tín hiệu đầu vào, và cấu trúc bên trong của nó là một tập các cổng AND và OR Các PROM được thiết kế như là các thiết bị logic thường
được biết đến dưới tên PLE (Các thành phần logic lập trinh được- Programable Logic Elements) Do vậy, ta có thể xem các PROM là các mảng AND cố định
và các mảng OR lập trình được Chúng có thể được sử dụng để làm các mạch tích hợp chung trong mô hình tổng của các minterm
PAL
PAL có mảng các phần tử logic AND lập trình được và mảng cố định các phần tử logic OR Các mảng AND được lập trình cung cấp các minterms cho các chức năng logic, mà sau đó nó được tổng lại trong mảng OR
PLA
PLA có các kết nối có thể lập trình được cho cả hai mảng phần tử AND và mảng phần tử OR Đây là loại PLD linh hoạt nhất Nó khá giống với PROM, tuy nhiên PLA không cung cấp đầy đủ giải mã của các biến đầu vào Bộ giải mã được thay thế bằng một mảng các phần tử AND có thể lập trình được để tạo ra các minterm theo yêu cầu Các minterm sau đó được kết nối có chọn lọc
đến phần tử OR để cung cấp tổng cho chức năng logic mong muốn
PAL và PLA đã xuất hiện trong nhiều kiểu thiết bị khác nhau của nhiều nhà sản xuất trong suốt quá trình phát triển của PLD
Programmable AND array
Programmable
OR array
Trang 18b PLD tuần tự
SPLD
SPLD là thiết bị logic có khả năng lập trình được theo kiểu tuần tự Hầu hết các nhà sản xuất đều quen thuộc với kiểu thiết bị này dưới tên gọi EPLD Sơ đồ khối cấu trúc chung của một EPLD được thể hiện trên Hình 1.5 Một khối đầu ra EPLD cơ sở thường bao gồm ba thành phần cơ bản: một mảng logic, một thanh ghi cấu hình được và một bộ đệm I/O cấu hình được Mỗi khối logic trên được gọi là một macrocell Một macrocell bao gồm:
- 1 D Flip-Flop
- Hai bộ ghép kênh:
• Bộ ghép kênh đầu ra có chọn lọc (Output Select): làm việc tuân theo bảng 1
• Bộ ghép kênh đầu vào/phản hồi (Input/Feedback):
machine
lập trình như là đầu vào thay vì đầu ra,còn nếu bộ đệm đầu ra được kích hoạt
đầu ra tổ hợp được coi như là phản hồi
Programmable
‘AND’ & ‘OR’ array
FEEDBACK (Programmable)
INPUT BLOCK
(Contains latches and others
programmable input options)
OUTPUT BLOCK
INPUT
PIN
OUTPUT PIN
Hình 1.5: Cấu trúc chung của một EPLD
Trang 19 CPLD
Khi sự phức tạp trong thiết kế phần cứng tăng lên, thì việc chuyển sang sử dụng các PLD VLSI là một điều tất yếu, nó cho phép các hệ thống số chứa hàng ngàn các cổng logic được thực hiện chỉ trong một IC duy nhất Các PLD VLSI đã mở rộng khái niệm của PLD lên mức cao hơn của sự tích hợp nhằm làm tăng khả năng hoạt động của hệ thống, sử dụng ít không gian của bo mạch, tăng độ tin cậy và giảm được chi phí
INPUT/
FEEDBACK MUX
S 1 S 0
S 1
D CP
SP AR
Trang 20Thiết bị logic phức hợp lập trình được CPLD chính là một sản phẩm của PLD VLSI Ta nghiên cứu một chip CPLD điển hình là XC95108 dòng XC9500 của Xilinx
XC95108 chứa 6 khối chức năng có thể thể cấu hình được (CFB: Configurable Function Blocks) mà mỗi CFB tương đương với 18 macrocells với 36 đầu vào (Input) và 18 đầu ra (Output) Các đầu ra của macrocells đưa ra khỏi chip thông qua các chân vào/ra (I/O pin) nhưng chúng cũng hồi tiếp về một ma trận kết nối tổng thể (global interconnection matrix), Xilinx gọi là ma trận chuyển mạch kết nối nhanh (Fast Connect Switch Matrix) Từng CFB nhận 36 đầu vào hồi tiếp về từ 6x18=108 macrocells đó đưa vào ma trận chuyển mạch Nhiều hàm logic với nhiều mức phức tạp có thể được xây dựng bằng cách lập trình với các hàm logic riêng của từng macrocell trong từng CFB và sau đó kết nối chúng thông qua ma trận chuyển mạch Kết quả là một bản thiết kế có từng chân của CPLD được 1 macrocell điều khiển thực hiện một hàm logic lớn với rất nhiều đầu vào
Configurable Function Block
Configurable Function Block
Configurable Function Block
Configurable Function Block
Configurable Function Block
Trang 21CPLD sử dụng bộ nhớ không mất thông tin (Nonvolative FLASH) dựa trên các phần tử nhớ do đó thiết bị này lưu giữ được chương trình của nó ngay cả khi cắt nguồn
Sau đây là các yêu cầu khác nhau của các loại phần tử Vào / Ra:
- Nguồn đầu ra DC: điều khiển trở kháng tại đầu ra DC hoặc tần số thấp (nhỏ hơn 1 MHz) Ví dụ các loại trở kháng tải như LED (Light Emiter Diole), rơ-le, mô tơ loại nhỏ…
- Nguồn đầu ra AC (Alternative Circuit – nguồn xoay chiều): điều khiển dung kháng tải tốc độ cao ( lớn hơn 1 MHz) Ví dụ dung kháng tải các chip logic khác, bus dữ liệu hoặc bus địa chỉ, cáp ruy băng
Trang 22- Nguồn đầu vào DC (Directive Circuit – nguồn một chiều): ví dụ các nguồn như chuyển mạch, cảm biến, hoặc các chip logic khác
- Nguồn đầu vào AC: ví dụ các nguồn như tín hiệu tốc độ cao (lớn hơn 1 MHz) từ các chip khác
- Nguồn tạo xung nhịp đầu vào: ví dụ là đồng hồ xung nhịp hệ thống hoặc các tín hiệu trên bus đồng bộ
- Nguồn cung cấp đầu vào: chúng ta cần cấp nguồn cho phần tử vào/ra và các phần tử logic bên trong chip, mà điện áp không bị sụt hoặc bị nhiễu Ngoài ra chúng ta có thể cần một nguồn cung cấp riêng biệt để lập trình cho chip
Các phần tử tuỳ chọn đối với các phần tử vào/ra là: sự khác nhau về mức độ của nguồn, tính tương thích với TTL, các đầu vào trực tiếp hoặc phải điều chỉnh
được, các đầu ra trực tiếp phải điều chỉnh được, phối hợp trở kháng, bảo vệ quá
điện áp, điều khiển tốc độ…
1.5.5 Các phần tử ASIC kết nối lập trình được
Tất cả các ASIC đều chứa các phần tử kết nối lập trình được Cấu trúc và sự phức tạp của các phần tử kết nối phần lớn được xác định thông qua công nghệ lập trình và kiến trúc của các phần tử logic cơ bản Chất liệu mà chúng ta dùng để xây dựng các phần tử liên kết nối là hợp kim nhôm, loại hợp kim có thể chịu
được xấp xỉ 50 mW/1 đơn vị diên tích và dung kháng là 0.2 pF/cm Các loại ASIC lập trình được đời đầu tiên được xây dựng sử dụng công nghệ hai lớp kim loại; còn các ASIC hiện nay sử dụng ba lớp kim loại hoặc nhiều hơn
Trang 23Đối với thiết kế bất kỳ ASIC nào, mỗi nhà thiết kế cũng cần có phần mềm
đầu vào thiết kế, thư viện phần tử, và phần mềm thiết kế vật lý Các nhà cung cấp ASIC thường bán các bộ kit thiết kế bao gồm tất cả phần mềm và phần cứng mà một người thiết kế cần đến Rất nhiều bộ kit thiết kế sử dụng phần mềm đầu vào thiết kế, thư viện phần tử và phần mềm thiết kế vật lý Thường thì người thiết kế mua luôn phần mềm đó từ nhà cung cấp ASIC Phần mềm này được gọi là phần mềm OEM (Original Equipment Manufacture) Tất cả các nhà cung cấp ASIC đều có phần mềm thiết kế của riêng mình bởi vì các phần mềm thiết kế như vậy mới có thể phù hợp với các giải thuật tương ứng với kiến trúc của sản phẩm của nhà sản xuất
Giản đồ đầu vào không phải là phương pháp duy nhất đầu vào thiết kế cho các ASIC lập trình được Một số nhà thiết kế mô tả việc điều khiển logic và trạng thái dưới dạng các phương trình logic và giản đồ trạng thái Một giải pháp khác nữa cho thiết kế ASIC là sử dụng một trong số các ngôn ngữ mô tả phần cứng (HDL) dựa trên một số tiêu chuẩn cho trước Có hai dạng ngôn ngữ thông dụng: Thứ nhất là các phần mềm được phát triển từ việc lập trình cho các ASIC loại PLD Đó là ABEL, CUP và PALASM, đó là các ngôn ngữ đơn giản và dễ học Các ngôn ngữ này rất mạnh trong việc mô tả các trạng thái máy và tổ hợp logic Thứ hai là các ngôn ngữ HDL bao gồm VHDL và Verilog, đó là các ngôn ngữ bậc cao hơn và sử dụng phức tạp hơn nhưng chúng có khả năng mô tả hoàn chỉnh các ASIC và cả một hệ thống
Sau khi hoàn thành đầu vào thiết kế và tạo ra một netlist, bước tiếp theo là việc mô phỏng Có hai kiểu mô phỏng thường được sử dụng cho thiết kế ASIC Kiểu mô phỏng đầu tiên là mô phỏng logic theo hoạt động, chức năng,
và mô phỏng thời gian Công cụ này có thể phát hiện bất kỳ lỗi thiết kế nào Người thiết kế cung cấp các tín hiệu đầu vào để mô phỏng và kiểm tra theo yêu cầu Kiểu mô phỏng thứ hai là kiểu thường sử dụng nhất trong thiết kế ASIC, đó là công cụ phân tích – tính toán thời gian Công cụ phân tích - tính toán thời gian là một thiết bị mô phỏng tĩnh và bỏ qua việc cung cấp các tín hiệu đầu vào Thay vào đó công cụ phân tích – tính toán thời gian kiểm tra các giới hạn làm hạn chế tốc độ hoạt động - đó là các đường tín hiệu gây ra độ trễ lớn
Trang 241.6 Tổng hợp logic
Tổng hợp logic cung cấp một liên kết giữa HDL và netlist tương tự như cách một trình biên dịch C cung cấp liên kết giữa mã nguồn C và ngôn ngữ máy Tuy nhiên, việc so sánh như trên chỉ mang tính chất tương đối C được phát triển để sử dụng các trình biên dịch, còn HDL thì không được phát triển
để sử dụng với các công cụ tổng hợp logic Verilog thì được thiết kế như một ngôn ngữ mô phỏng còn VHDL thì được thiết kế như một ngôn ngữ mô tả và dữ liệu Cả Verilog và VHDL đều được phát triển từ đầu thập niên 80, trước khi nó được giới thiệu như một phần mềm thương mại dùng để tổng hợp logic
Do vậy, các ngôn ngữ HDL đó hiện nay được sử dụng vào mục đích không phải như đúng ý đồ ban đầu, nên hiện trạng của nó trong tổng hợp logic gần giống như các bộ biên dịch ngôn ngữ máy tính Do vậy, tổng hợp logic buộc người thiết kế phải sử dụng một tập con của cả Verilog và VHDL Hiện nay, VHDL sử dụng rộng rãi chủ yếu ở châu Âu, còn Verilog được dùng chính ở
Mỹ và Nhật Việc này làm cho tổng hợp logic là một vấn đề rất khó Hiện trạng của các phần mềm tổng hợp giống như việc một người học ngoại ngữ nhưng 5 năm sau mới sử dụng đến
Khi nói đến công cụ tổng hợp logic sử dụng HDL, người ta thường nghĩ nó liên quan đến phần cứng hơn là việc tổng hợp logic sẽ thực hiện trên netlist Theo đánh giá của các chuyên gia “ASIC học” thì phải 5 năm nữa chúng ta mới hoàn thiện được qúa trình tổng hợp logic như mong muốn
Người thiết kế sử dụng đầu vào thiết kế dạng text hoặc đồ họa để tạo ra mô hình hoạt động HDL không bao gồm bất kỳ tham chiếu nào đến các phần tử logic Các sơ đồ trạng thái, các mô tả đường dẫn dữ liệu đồ hoạ, các bảng sự thật, các mẫu RAM/ROM và các giản đồ mức cổng (gate level) có thể sử dụng cùng với mô tả HDL Mỗi khi hoàn thành một mô hình hoạt động HDL, hai thành phần yêu cầu phải xử lý là: một bộ tổng hợp logic (bao gồm phần mềm
và tài liệu đi kèm) và một thư viện phần tử (bao gồm các phần tử logic chẳng hạn như cổng NAND, AND…) được gọi là thư viện nguồn Hầu hết các công
ty phần mềm tổng hợp chỉ cung cấp phần mềm Còn hầu hết các nhà cung cấp ASIC thì chỉ cung cấp các thư viện phần tử
Trang 25Mô hình hoạt động được mô phỏng để kiểm tra việc thiết kế theo tham số
kỹ thuật còn sau đó bộ tổng hợp logic sẽ được sử dụng để tạo ra một netlist, một mô hình cấu trúc chỉ chứa tham chiếu đến các phần tử logic Hiện nay, không có khuôn dạng tiêu chuẩn cho các netlist mà tổng hợp logic tạo ra, nhưng phổ biến nhất hiện nay là khuôn dạng EDIF Một vài công cụ tổng hợp logic cũng có thể tạo ra cấu trúc HDL (như Verilog và VHDL) Sau khi tổng hợp logic, bản thiết kế được thực hiện mô phỏng lại để so sánh với việc mô phỏng hoạt động trước đó Việc xếp lớp đối với bất kỳ ASIC nào đều có thể
được tạo ra từ mô hình cấu trúc sinh ra thông qua quá trình tổng hợp logic
1.7 Các công cụ thiết kế và phát triển ASIC
1.7.1 Tổng quan về quá trình thiết kế và công cụ thiết kế
Khi kích thước và độ phức tạp của các hệ thống số gia tăng, nhiều công cụ thiết kế được trợ giúp bởi máy tính CAD (Computer Aided Design) được đưa vào quá trình thiết kế phần cứng Phương pháp thiết kế trên giấy đã được thay bằng cách thiết kế trên máy vi tính, từ đó các nhà thiết kế có thể kiểm tra thông qua các công cụ tạo ra phần cứng tự động từ các bản thiết kế đó Hỗ trợ mạnh mẽ nhất cho các công cụ thiết kế này là ngôn ngữ mô tả phần cứng HDL Hiện nay, các nhà nghiên cứu đã tìm ra nhiều cách cho phép HDL có thể cải tiến quá trình thiết kế hệ thống số
Qúa trình thiết kế bắt đầu từ ý tưởng thiết kế của người thiết kế phần cứng Lúc này, người thiết kế cần phải tạo ra các định nghĩa cho hành vi của hệ thống theo ý đồ thiết kế Sản phẩm này có thể là ở dạng sơ đồ khối, lưu đồ hoặc chỉ là dạng ngôn ngữ tự nhiên Giai đoạn này ý tưởng thiết kế mới chỉ có
đầu vào và đầu ra, chứ hoàn toàn chưa có một chi tiết nào về phần cứng cũng như kiến trúc của hệ thống
Giai đoạn thứ hai của quá trình thiết kế là việc thiết kế đường dẫn dữ liệu
hệ thống Trong giai đoạn này, người thiết kế chỉ rõ các thanh ghi và phần tử logic cần thiết cho quá trình cài đặt Đây là giai đoạn thiết kế thư viện các phần tử cho hệ thống Các thành phần này có thể được kết nối thông qua bus 2 chiều hoặc một chiều Dựa trên chức năng hoặc hành vi của hệ thống, tiến
Trang 26trình điều khiển hoạt động của dữ liệu giữa các thanh ghi và các phần tử logic thông qua các bus được phát triển Giai đoạn này không cung cấp các đặc
điểm về sự hoạt động của các bộ điều khiển, cách đi dây, kỹ thuật mã hoá… Giai đoạn thứ ba là giai đoạn thiết kế logic, giai đoạn này liên quan đến ứng dụng của các cổng và các mạch cơ bản cho việc cài đặt các thanh ghi dữ liệu, các bus hệ thống, các phần tử logic và phần cứng điều khiển chúng Kết quả của giai
đoạn này chính là một tệp danh sách kết nối (netlist)
Giai đoạn thiết kế tiếp theo là chuyển netlist của gian đoạn trước thành sơ đồ hay là danh sách các transistor Giai đoạn này xét đến cả chế độ tải và thời gian trong quá trình thực hiện hành vi của hệ thống cũng như việc chọn transistor hoặc các phần tử của nó Giai đoạn này bao gồm: tổng hợp logic, ánh xạ công nghệ, floorplanning, placement, routing Giai đoạn này sử dụng công cụ CAD là chủ yếu
Bước cuối cùng của quá trình thiết kế là việc chế tạo Nó sử dụng danh sách các transistor hoặc các đặc tả kỹ thuật để ghi thông tin lên bộ nhớ của thiết bị có thể lập trình được hoặc tạo ra mặt nạ cho việc sản xuất các mạch tích hợp
Nhiều nhà sản xuất đã nghiên cứu, phát triển các công cụ thiết kế và phát triển ASIC cho các họ sản phẩm FPGA, CPLD, các vi mạch Hard-wire, Serial PROM…
- Vi mạch FPGA có cấu trúc giống như một dãy hoặc một ma trận các phần
tử logic Những kết nối kim loại giữa các khối logic có thể được kết nối một cách tuỳ ý bằng cách chuyển mạch có thể lập trình được để tạo thành một mạch theo yêu cầu FPGA có khả năng chứa một số lượng lớn các cổng logic, các thanh ghi
và các mạch I/O tốc độ cao
- Vi mạch CPLD chứa nhiều khối chức năng và khối I/O và có thể liên kết với nhau thông qua ma trận chuyển mạch CPLD là hệ thống tích hợp nhỏ khoảng từ
8000 đến 10000 cổng nhưng tốc độ cao, thiết kế đơn giản
Trong quá trình thiết kế, các ngôn ngữ mô tả phần cứng chính là các công cụ thiết kế nhằm mục đích mô phỏng, tạo mẫu, kiểm tra, thiết kế và làm tài liệu cho một hệ thống số như: ngôn ngữ mô tả hành vi, ngôn ngữ mô tả dòng dữ liệu, sơ
đồ liên kết kết nối Một số loại công cụ HDL như sau:
AHPL: công cụ mô tả dữ liệu
Trang 27CDL (Computer Design Language): ngôn ngữ mô tả dòng dữ liệu phát triển trong quá trình đào tạo
CONLAN (Consensus Language): ngôn ngữ mô tả phân cấp phần cứng
IDL (Interactive Design Language): ngôn ngữ tạo tự động cấu trúc PLA của hãng IBM
ISPS (Intruction Set Proccessor Specification): ngôn ngữ mô tả hành vi mức cao
TEGAS (Test generation and Simulation): hệ thống tạo tín hiệu kiểm tra và mô phỏng các mạch số, đây là ngôn ngữ cấu trúc
Verilog : ngôn ngữ hỗ trợ phân cấp thiết kế
VHDL: ngôn ngữ mô tả phần cứng từ hệ thống đến tận mức cổng hoặc chuyển mạch
1.7.2 Giới thiệu các công cụ và sản phẩm của một số hãng chuyên về ASIC
1.7.2.1 Giới thiệu hãng Xilinx
Các sản phẩm phần mềm và phần cứng của Xillinx sẽ được giới thiệu chi tiết ở chương 3
1.7.2.2 Giới thiệu hãng Actel
Phần mềm Libero v5.0 IDE (Integrated Design Environment) của Actel giới thiệu là phiên bản mới nhất và tốt nhất trong số các công cụ hỗ trợ cho EDA của các hãng Mentor Graphics, Synplicity, SynaptiCAD và các công cụ được phát triển của riêng Actel nhằm mục đích hỗ trợ thiết kế cho các sản phẩm ASIC dòng FPGA hoàn thiện Phần mềm này bao gồm một bộ các gói phần mềm, trong đó
có gói phần mềm Designer v5.0 Designer v 5.0 là gói phần mềm hỗ trợ cho việc chế tạo và hoạt động vật lý cho người thiết kế, bao gồm cả khả năng floorplanning với tính năng ChipPlanner (sắp đặt trên chip) đặc biệt
Libero IDE hỗ trợ cho tất cả các sản phẩm ASIC có mặt trên thị trưòng hiện nay của Actel, và có ba phiên bản chính: Libero Silver, Libero gold, Libero Platinum và một phiên bản dùng thử Libero Platinum Evaluation Tuỳ theo nhu cầu, kinh nghiệm thiết kế cũng như sản phẩm ASIC của người sử dụng cao hay thấp mà chúng ta lựa chọn phiên bản cho phù hợp
Trang 281.7.2.3 Giới thiệu hãng Altera
Phần mềm phát triển MAX+PLUS II cung cấp một môi trường thiết kế hoàn chỉnh đáp ứng đầy đủ các yêu cầu thiết kế cụ thể MAX+PLUS II đảm bảo thiết
kế dễ dàng, xử lý nhanh và lập trình cho các IC PLD một cách trực tiếp
Phần mềm MAX+PLUS II tích hợp đầy đủ các chức năng và độc lập với kiến trúc phần cứng trong việc thiết kế logic với các mạch tổ hợp logic lập trình được của hãng Altera thuộc các họ Classic, ACEX 1K, MAX 3000, MAX 5000, MAX
7000, MAX 9000, Flex 6000, Flex 8000 và Flex 10K MAX+PLUS II cung cấp một phạm vi thiết kế logic đầy đủ bao gồm các thiết kế phân tầng, soạn thảo sơ
đồ thiết kế, tổng hợp logic tối ưu, phân chia thiết kế, mô phỏng thiết kế mức bảng mạch cả về thời gian và chức năng, phân tích chi tiết thời gian, định vị lỗi tự
động, lập trình và kiểm tra các IC MAX+PLUS II cũng có thể sử dụng các tệp thiết kế theo tiêu chuẩn công nghiệp của các phần mềm thiết kế khác như: các tệp kiểu EDIF, VHDL, Verilog, HDL, Orcad, Schematic, Xilinx, Netlist Format
Nó cũng cho phép viết các tệp thiết kế kiểu EDIF, VHDL, Verilog, HDL, VITAL - Compliant để giao tiếp với các phần mềm thiết kế CAE tiêu chuẩn công nghiệp khác
Người thiết kế có thể tích hợp các thiết kế được tạo với các phần mềm thiết kế của Altera như A + PLUS, SAM + PLUS vào các thiết kế của MAX+PLUS II Trình biên dịch bảo đảm rằng các thiết kế trong MAX+PLUS II sẽ được tạo hoàn chỉnh trong các IC một cách hiệu quả nhất
Trang 29Chương 2
Xilinx và sản phẩm FPGA
2.1 Giới thiệu về công ty Xilinx
Công ty Xilinx mang đến sự lựa chọn rộng rãi nhất trong công nghiệp về các thiết bị Logic lập trình được Xilinx là nhà cung cấp lớn nhất thế giới về Logic lập trình được và dẫn đầu thị trường về FPGA Năm 2005 Xilinx được
đánh giá là công ty xếp thứ 2 thế giới, trong đó Xilinx dẫn đầu về thị trường công nghệ cao
Công ty được thành lập năm 1984 dựa trên ý tưởng lớn về sự kết hợp giữa mật độ logic và tính chất đa dạng của các dãy cổng logic Cùng với những thuận lợi về thời gian thâm nhập thị trường và thuận tiện cho sử dụng các chi tiết linh kiện tiêu chuẩn có thể lập trình được Sau một năm Xilinx đã giới thiệu sản phẩm FPGA đầu tiên trên thế giới từ đó thông qua sự kết hợp các cấu trúc và cải tiến quá trình sản xuất công ty đã không ngừng tăng hiệu suất thiết bị, dung lượng, tốc độ, dễ dàng sử dụng trong khi giá thành hạ
Năm 1992 Xilinx đã mở rộng dòng sản phẩm bao gồm CPLD Đối với người sử dụng CPLD là một bổ sung hấp dẫn cho FPGA, phần mềm thiết kế
đơn giản hơn và đồng bộ hóa chuẩn xác hơn
Dẫn đầu thị trường của một trong những giai đoạn phát triển nhanh nhất của công nghiệp bán dẫn Chiến lược của Xilinx là tập trung toàn bộ nguồn lực cho việc tạo ra những IC mới và phát triển phần mềm phát triển hệ thống (Development System Software), cung cấp đa dạng kỹ thuật và mở rộng thị trường Đến nay công ty đã có đại diện và phân phối hơn 30 nước trên thế giới
Trang 30Các đoạn dây kim loại kết nối bên trong có thể nối tuỳ ý theo các chuyển mạch có thể lập trình được để thực hiện những mạng tín hiệu mong muốn giữa các cells
FPGA kết hợp những cổng logic, thanh ghi, và I/O với tốc độ hệ thống nhanh Các dòng sản phẩm của Xilinx có thể lập trình lại được như Static-Memory (SRAM), Field Programmable Gate Arrays bao gồm Virtex, Spartan, XC3000 và XC5000 serries
2.2.2 Các thiết bị logic phức hợp có thể lập trình được (CPLD: Complex Programmable Logic Devices)
CPLD thiết kế phù hợp hơn với tốc độ và sự dự đoán về PAL và thực tế thì CPLD bao gồm PAL như các khối chức năng (FB: Function Blocks) được kết nối
Hình 2.1: Cấu trúc FPGA của Xilinx
Trang 31bên trong thông qua một ma trận chuyển mạch Dòng XC9000 CPLD là đặc trưng cho công nghệ Programmable FLASH và cũng như FPGA, CPLD có thiết
kế cổng JTAG để quét biên kiểm tra logic (Bourdary Scan)
2.2.3 Các sản phẩm phát triển hệ thống (Developmet System Products)
Xilinx đưa ra môi trường phần mềm hoàn chỉnh làm công cụ cho thiết kế logic với các thiết bị logic lập trình được của Xillinx Môi trường này kết hợp công nghệ mạch linh hoạt, dễ sử dụng, giao diện đồ hoạ để trợ giúp người sử dụng thiết kế tốt nhất có thể, người sử dụng có thể lựa chọn trong phạm vi rộng giữa công cụ tự động hoàn toàn và chi tiết trong quá trình tạo sơ đồ bản vẽ Development System cung cấp công cụ cần thiết cho thiết kế như:
Thư viện và giao diện soạn thảo các sơ đồ mạch ưa chuộng, dụng cụ tổng hợp logic và mô phỏng
Quản lý thiết kế/ trình tự thực hiện (Flow engine)
Bộ tạo module (Module generator)
Bên cạnh đó nó cũng tạo ra sự dễ dàng chuyển hướng thiết kế với các công nghệ mới và dùng lại các thiết kế hiện nay trong các ứng dụng mới
Series cơ bản (Foundation Series) cung cấp cho người thiết kế toàn bộ giải pháp cho thiết kế logic lập trình được từ đọc đến sử dụng
Series kết hợp (Alliance Series) mang đến cho người thiết kế sự tích hợp mạng đầy đủ của công cụ thiết kế với sự hiện hành của môi trường EDA (Environment Design Automatic)
Trang 322.2.5 Giải pháp lõi (Core sollutions)
Công nghệ ASIC lõi là công nghệ đưa ra các ASIC có tỷ lệ trí tuệ cao và nó là những ASIC được xây dựng để thực hiện những chức năng xử lý rất phức tạp ASIC lõi đã phát triển hơn một thập kỷ qua và ngày càng phát triển nhờ sự giàu
có về tiềm năng trí tuệ IP (Intellectual Property) và nó luôn sẵn có từ nhiều nguồn Trong thời gian này thì logic lập trình đã không có được mật độ và hiệu suất cần thiết để thích nghi với IP core lớn
Các sản phẩm core được tạo ra từ công nghệ Smart-IP đã mang lại sự linh hoạt trong khi sự duy trì hiệu suất, dự báo độ lớn và số lượng Core sử dụng dụng trong thiết bị của nó Công nghệ Smart-IP kết hợp khả năng bổ sung phần mềm của Xilinx với các đặc trưng duy nhất của kiến trúc FPGA mang lại hiệu suất thích hợp và hiệu quả sử dụng cao
2.3 Giới thiệu sản phẩm Spartan II của Xillinx
2.3.1 Giới thiệu
Dòng Spartan là sản phẩm hàng đầu với giải pháp FPGA mở ra tất cả các yêu cầu cơ bản cho ASIC Những yêu cầu này bao gồm: hiệu suất cao, RAM on-chip, giải pháp lõi (Core Solutions), và giá cả
Bộ nhớ SelectRAM on-chip (trên chip)
Tuân theo đầy đủ chuẩn PCI
Trang 33 Cấu trúc đường nối theo đoạn có công suất thấp
Khả năng đọc lại toàn bộ chương trình kiểm tra và có thể quan sát bên trong
Logic nhớ tốc độ cao chuyên dụng
Khả năng bus 3 trạng thái nội
8 xung clock sai số nhỏ hoặc signal / Networks
Boundary Scan logic tương thích với chuẩn IEEE 1149.1
Vỏ và I/O linh hoạt:
Giá thành nhựa đóng vỏ thấp và sẵn sàng với tất cả các loại mật độ
Khả năng tương thích chân ra với các vỏ thông thường
Có thể lập trình riêng đầu ra, giảm nhiễu
Đơn giản hoá hệ thống định thời với thanh ghi đầu vào
Hệ thống phát triển của Xilinx được ung cấp đầy đủ và mạnh
Tự động hoàn toàn vẽ sơ đồ, bố trí và nối dây
Bộ soạn thảo thiết kế tương tác để tối ưu hoá thiết kế
Các đặc trưng mở rộng
Cấp nguồn 3,3V công suất thấp với các I/O 5V
Công suất đầu vào thấp (Power down)
Hiệu suất cao hơn
Logic nhớ nhanh hơn
Xung nhịp tốc độ cao, linh hoạt trong hệ thống
Khả năng chốt trong các khối logic cấu hình được (Configurable Logic Blocks)
Chốt giữ nhanh đầu vào
Tuỳ chọn mux hoặc tạo hàm 2 đầu vào ở các đầu ra
Dòng ra 12 mA hoặc 24 mA
Tương thích PCI 5V/3,3V
Chế độ cấu hình nhanh (Express)
Trang 342.3.3 Tổng quan về FPGA dòng Spartan II
Các dòng FPGA dòng Spartan II được cài đặt chính qui, linh hoạt, cấu trúc
có thể lập trình được của các khối logic lập trình được (CLBs: Configurable Logic Blocks) được nối với nhau bởi sự phân cấp mạnh của các kênh kết nối linh hoạt và được bao quanh bởi các khối vào, ra lập trình được (IOBs: Input/Output Blocks) như hình 2.2
Các thiết bị dòng Spartan đạt được hiệu suất cao, chi phí vận hành thấp thông qua việc sử dụng được kiến trúc cải tiến và công nghệ bán dẫn Các thiết
bị Spartan II cung cấp hệ thống các tốc độ Clock vượt quá 80 MHz và hiệu quả bên trong trên 150 MHz
2.3.3.1 Mô tả chức năng logic (Logic Functional Description)
FPGA bao gồm 1 mảng các CLB được đặt trong một ma trận của các kênh kết nối Đầu vào và đầu ra của các tín hiệu nhận được thông qua 1 sự thiết lập của các khối IOB xung quanh CLB và các kênh kết nối
CLBs cung cấp giao diện giữa các chân và các đường dây tín hiệu bên trong
Trang 35Các kênh kết nối cung cấp các đường đi để kết nối giữa các đầu vào và đầu
ra của các CLB và các IOB
Chức năng của mỗi khối logic được thực hiện theo yêu cẩu khi đặt cấu hình bởi chương trình các tế bào nhớ tĩnh bên trong Các giá trị lưu trữ trong các tế bào nhớ đó xác định các chức năng logic và kết nối với nhau thực hiện trong FPGA
Các khối logic có thể cấu hình được (CLBs: Configurable Logic Blocks)
Các CLB được sử dụng để thực hiện hầu hết các chức năng logic trong FPGA Nguyên tắc hoạt động của các bộ phận của CLB được trình bày trong sơ
đồ hình 2.3 Có ba bảng Look-up (LUT), được dùng làm các bộ tạo hàm, hai flop và hai nhóm của tín hiệu điều khiển các bộ chọn kênh
Các bộ tạo hàm
Hai bộ nhớ 16x1 của các bảng “look-up” (F-LUT và G-LUT) được dùng để làm các bộ tạo hàm 4 đầu vào, không hạn chế việc thực hiện các chức năng logic của một vài hàm Boole, độc lập với 4 tín hiệu đầu vào (F1-F4 hoặc G1-G4) Sử
Of G1-G4
Of H F,H,H 1
Trang 36dụng bộ nhớ LUT độ trễ truyền dẫn không phụ thuộc và chức năng mà nó thực hiện
thanh ghi (lưu trữ) các đầu ra
của bộ tạo hàm Các flip-flop
xung nhịp (K) và các đầu vào tín
hiệu đầu vào xung nhịp cho phép
EC
Đầu vào xung nhịp
Mỗi flip-flop có thể được
kích bởi sườn dương hoặc sườn
âm của xung nhịp Đường xung
nhịp trong CLB được dùng
chung cho cả hai flip-flop Tuy
vậy, xung nhịp có thể đảo riêng
cho mỗi flip-flop Trong thiết kế
tự động đệm vào một vài bộ đảo
trên đường xung nhịp
Xung nhịp cho phép (enable clock)
Q D
Trang 37Đường xung nhịp cho phép (EC) có mức tích cực cao Đường EC được dùng chung cho cả 2 flip-flop trong một CLB Nếu một trong 2 flip-flop bị huỷ kết nối, tín hiệu EC cấp cho EC mặc định ở trạng thái tích cực, EC không thể đảo trong CLB Xung nhịp cho phép EC được đồng bộ với xung nhịp và phải thoả mãn sự thiết lập và giữ định thời cho thiết bị
Set/Reset
Đường Set/Reset (SR) là đường tín hiệu cận đồng bộ mức tích cực cao điều khiển flip-flop SR có thể đặt cấu hình như set và reset ở mỗi flip-flop Cấu hình tuỳ chọn này xác định trạng thái của flip-flop Nó cũng xác định tác dụng của xung GSR trong trạng thái hoạt động bình thường và tác dụng của xung trên đường SR của CLB Đường SR được dùng chung cho cả 2 flip – flop Nếu SR không dùng riêng cho một flip-flop thì Set/Reset của flip-flop sẽ mặc
định ở trạng thái không tích cực Bên trong CLB, SR không thể bị đảo
Kiểm soát luồng tín hiệu ở CLB
Ngoài các đầu vào H-LUT điều khiển các bộ chọn kênh còn có tín hiệu kiểm soát luồng các bộ chọn kênh, các tín hiệu được chọn là các tín hiệu đưa tới các đầu vào của flip-flop và kết hợp các đầu ra CLB (X và Y)
Các tín hiệu điều khiển
Có 4 tín hiệu điều khiển các bộ chọn kênh trên đầu vào của CLB Các bộ chọn kênh đó cho phép các tín hiệu điều khiển bên trong CLB (H1, DIN, SR
và EC ở hình 2.3 và hình 2.5) được đưa tới từ một vài tín hiệu điều khiển điều khiển chung của 4 đầu vào (C1ữC4 ở hình 2.5) trong CLB
Có 4 tín hiệu điều khiển bên trong là:
EC (Enable Clock)
SR (Asyschronous Set/Reset) hoặc bộ tạo hàm H đầu vào 0
DIN (Direct Input) hoặc bộ tạo hàm H đầu vào 2
H1 bộ phát hàm H đầu vào 1
2.3.3.2 Các khối vào ra (Input/Output Blocks : IOB)
Người sử dụng có thể đặt cấu hình các khối vào ra IOB để tạo giao diện giữa các chân đóng vỏ bên ngoài với chức năng logic bên trong Mỗi IOB điều khiển một chân đóng vỏ và có thể đặt cấu hình cho đầu vào, ra hoặc các tín hiệu hai chiều Hình 2.6 minh hoạ một chức năng đơn giản của IOB
Trang 38Đường dẫn tín hiệu vào IOB:
Tín hiệu vào IOB có thể được đưa vào trực tiếp từ các kênh kết nối (thông qua I1, I2 ở hình 2.6) hoặc từ đầu vào của thanh ghi Đầu vào thanh ghi có thể lập trình như một sườn kích flip-flop hoặc
một mức chốt nhạy Sơ đồ khối đơn giản
của thanh ghi có thể xem ở hình 2.7
Vị trí thanh ghi phải được đặt phù hợp
với ký hiệu trong thư viện Ví dụ, IFD là
đầu vào cơ bản của flip-flop (sườn dương)
và ILD là chốt đầu vào cơ bản Các mức
biến đổi với các xung nhịp đảo cũng có thể
sử dụng Tín hiệu xung nhịp đảo cũng được
trình bày trong hình 2.7 trên đường tín hiệu
CK
Để cho thanh ghi thời gian thiết lập đầu vào ngắn hơn, với việc định thời dương, gắn một bộ NODELAY hoặc đặc tính cho flip-flop
OUTPUT DRIVER Programmable Slew Rate Programmable TTL/CMOS Driver
INPUT BUFFER
D Q CLK
EC
D Q CLK
EC
Package Pad
Programable Pull-Up/
Pull – Down Networt Delay
Trang 39Các đầu vào của Spartan II tương thích với loại TTL và loại CMOS 3,3V Các I/O của Spartan II hoàn toàn ở mức 3,3V
Bảng 2.1: Các chuẩn vào ra của FPGA
Chuẩn
tín hiệu
Ghim nguồn VCC Điều khiển
đầu ra
V IH MAX
V IH MIN
V IH MAX
V IL MIX
V IH MAX
Chốt đầu vào “bắt giữ nhanh”
IOB của Spartan II có một tuỳ chọn bổ sung chốt ở đầu vào Tính năng chốt này được khoá bởi xung nhịp, được sử dụng khi đầu ra flip-flop sớm hơn xung nhịp đầu vào Do đó, hai xung nhịp khác nhau có thể được sử dụng để làm xung nhịp cho hai thành phần đầu vào lưu trữ Tính năng chốt cho phép bắt giữ nhanh dữ liệu vào sau đó đồng bộ với xung nhịp bên trong bởi flip-flop trong IOB hoặc các mạch bộ chốt
Đường dẫn tín hiệu ra IOB
Các tín hiệu ra có thể bị đảo tuỳ ý bên trong IOB và có thể trực tiếp đi qua
bộ đệm ra hoặc được lưu trữ ở một xung kích dương của flip-flop và đưa tới bộ
đệm ra
Ghim Vcc ở Spartan II
Các FPGA Spartan II có một tùy chọn diode ghim nối từ mỗi I/O tới Vcc Khi các diode này thông chúng tạm thời ghi quay lại mức nguồn cung cấp 3,3V Mạch ghi này hoạt động được yêu cầu trong các ứng dụng PCI 3,3V Mạch ghim Vcc là tuỳ chọn mức ảnh hưởng tới tất cả các chân I/O
Các thiết bị Spartan II tương thích với TTL, LVTTL, PCI 3,3V, PCI 5V và tín hiệu LVCMOS Các tiêu chuẩn của các loại được minh hoạ ở bảng 2.1
Trang 40Bộ chọn kênh đầu ra- Bộ tạo hàm 2 đầu vào
Đường ra ở IOB Spartan II bao gồm một bộ chọn kênh bổ sung, bộ này không có ở IOB Spartan Bộ chọn kênh cũng có thể được đặt cấu hình như một
bộ tạo hàm 2 đầu vào, thực hiện một cổng cho qua, cổng AND, cổng OR hoặc cổng XOR với 0, 1, hoặc 2 đầu vào đảo
Khi đặt cấu hình như một bộ chọn kênh thì đặc tính này cho phép 2 tín hiệu ra sử dụng đồng thời giống đệm đầu ra Lựa chọn đầu vào là chân được
sử dụng cho đầu ra xung
Bộ tạo hàm IOB được sử dụng bằng việc sắp đặt các ký hiệu đặc biệt trong thư viện bắt đầu bằng chữ “O” Ví dụ một cổng AND 2 đầu vào trong bộ tạo hàm IOB được gọi bởi OAND2 Sử dụng ký hiệu chân đầu vào có nhãn “F” cho tín hiệu ở đường khẩn Tín hiệu này được đặt trên chân OK- đầu vào IOB với độ trễ nhỏ nhất từ bộ
đầu ra Spartan II có thể lập trình riêng cho đầu ra 12mA hoặc 24mA
Một vài đầu ra thiết bị Spartan 5V được đặt cấu hình trong chế độ TTL có thể được đưa tới các đầu vào của một vài thiết bị điển hình 3,3V
Các bộ Pull-up và Pull-down: có thể lập trình pull-up và pull-down các
điện trở được sử dụng cho các loại chân không dùng để nối với Vcc hoặc Ground để giảm công suất và mật độ tạp âm Có thể cấu hình bộ pull-up điện trở là một bộ p kênh transistor được nối với Vcc
Cấu hình bộ pull-down điện trở là một bộ n kênh transisor được nối với Ground Giá trị của các điện trở đó thường từ 20KΩ - 100KΩ