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ế
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
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, nhng đô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) nhng 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, nhng 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
-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
này cha đợ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ớ lu 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) Nhng 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
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) nhng 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
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 lu 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 nhng 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ữ nhng 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
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, nhng 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, lu đồ 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 cha 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 nhng 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 trng 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 trng 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 trng 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
I/O Blocks
Block RAMs
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ị lu 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 flip- 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 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 (lu 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 s- et 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
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 lu 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 lu 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 40-
Bộ 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Ω