MỘT CÁCH HỌC HIỆU QUẢ ĐỐI VỚI CÔNG NGHỆ FPGA
Tiếp cận lập trình cho FPGA từ Spartan -3 ! CHƯƠNG I: CÔNG NGHỆ ASIC 1.1. Các hướng tiếp cận thiết kế ASIC 1.1.1. Các công nghệ lập trình thiết kế ASIC Tóm tắt các công nghệ lập trình cho ASIC được trình bày trong bảng dưới đây. Bảng1.1. Các đặc tính công nghệ lập trình thiết kế ASIC Công nghệ lập trình Tính bay hơi Có thể lập trình Diện tích của ASIC Điện trở (ohm) Điện dung (pF) Các phần tử RAM tĩnh Có Trong mạch Lớn 1 - 2K 10 - 20 Lập trình cầu chì nghịch PLICE (PLICE Anti-fuse) Không Không Anti-fuse nhỏ Số tranzitor lớn 300 - 500K 3 - 5 Lập trình cầu chì nghịch ViaLink (ViaLink Anti-fuse) Không Không Anti-fuse nhỏ Số tranzitor lớn 50 - 80K 1 - 3 EPROM Không Ngoài mạch Nhỏ 2 - 4K 10 - 20 EEPROM Không Trong mạch 2xEPROM 2 - 4K 10 - 20 Tiếp cận lập trình cho FPGA từ Spartan -3 " 1.1.2. Thiết kế logic ASIC đầu vào (Logic Design Entry) Mục đích của thiết kế đầu vào là 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 (Electronic-Design Automation). 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 TLL. Thiết kế đầu vào đố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 thiết kế đầu vào được gọi là đầu vào giản đồ, hoặc là bắt 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 mà chúng ta gọi là netlist (đi dây). Đầu ra của công cụ thiết kế giản đồ chính là một file netlist mà 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. Không phải tất cả các thông tin thiết kế có thể chuyển thành giản đồ mạch hoặc netlist, vì không phải tất cả các chức năng của một ASIC đều được mô tả qua thông tin kết nối. Ví dụ, giả sử chúng ta sử dụng một ASIC lập trình được cho một vài chức năng logic ngẫu nhiên. Một phần của ASIC có thể được thiết kế bằng cách sử dụng ngôn ngữ lập trình dạng văn bản. Trong trường hợp này thiết kế đầu vào cũng gồm có cả viết mã nguồn. Vậy điều gì nếu một ASIC trong hệ thống của chúng ta có chứa một PROM (Programmable Memory)? Phải chăng vi mã lệnh là một phần của thiết kế đầu vào? Việc điều hành hệ thống của chúng ta chắc chắn là phụ thuộc vào chương trình chuẩn của PROM. Vì vậy có lẽ mã lệnh PROM phải là một phần của thiết kế đầu vào. Mặt khác không ai coi mã lệnh hệ điều hành đã được nạp vào RAM trên một ASIC là một phần của thiết kế đầu vào. Rõ ràng là có nhiều dạng thiết kế đầu vào khác nhau. Trong mỗi một trường hợp nó rất quan trọng để bảo đảm là bạn hoàn thành chỉ định cho hệ thống - không chỉ là xây dựng cấu trúc chính xác mà còn để bất kỳ ai cũng hiểu được là hệ thống làm việc như thế nào. Thiết kế đầu vào là một trong những phần quan trọng nhất của công nghệ ASIC. Tiếp cận lập trình cho FPGA từ Spartan -3 # Cho đến hiện hay thì hầu hết các thiết kế đầu vào cho ASIC vẫn sử dụng phương pháp giản đồ đầu vào. Do ASIC ngày càng trở nên phức tạp hơn, các phương pháp thiết kế đầu vào khác ngày càng trở nên phổ biến. Các phương pháp thiết kế đầu vào đều có thể sử dụng phương pháp đồ hoạ, chẳng hạn là một giản đồ, hoặc các tệp dạng text dưới dạng ngôn ngữ lập trình. Việc sử dụng ngôn ngữ mô tả phần cứng HDL (Hardware Description Language) cho mục đích thiết kế đầu vào cho phép chúng ta tạo ra các netlist trực tiếp bằng cách tổng hợp logic. Chúng ta sẽ đề cập đến các phương pháp thiết kế đầu vào mức thấp cùng với các ưu điểm cũng như nhược điểm của chúng trong mục 2.3. Thiết kế đầu vào bao gồm các thành phần thiết kế sau: - Thiết kế thư viện ASIC. - Thiết kế thư viện các vi mạch ASIC lập trình được (Programmable ASIC). - Thiết kế phần tử logic ASIC lập trình được. - Thiết kế phần tử vào/ra ASIC lập trình được. - Thiết kế 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: - Thiết kế logic mức thấp đầu vào (low-level design entry) sử dụng VHDL: Bộ Quốc Phòng Mỹ (The U.S. Department of Defence - DoD) đã hỗ trợ việc phát triển ngôn ngữ VHDL (VHSIC Hardware Description Language) 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 liên kết 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ọ, thương thường 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 có thể thực hiện được khi có cho phép xây dựng hệ thống từ một vài IC TTL. Tiếp cận lập trình cho FPGA từ Spartan -3 $ 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 đều 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. 1.1.3. Thiết kế vật lý (Physical Design) Hình 1.1 biểu diễn một phần của sơ đồ thiết kế, đó là các bước thiết kế vật lý đối với một ASIC. Hình 1.1. Một phần của thiết kế ASIC gồm có phân chia hệ thống, lên sơ đồ mặt bằng, sắp xếp các phần tử và các bước định tuyến đường kết nối. Đầu tiên chúng ta áp dụng việc phân chia hệ thống để chia một hệ thống vi điện tử thành các ASIC. Trong phần lên sơ đồ mặt bằng chúng ta sẽ đánh giá kích thước và đặt các vị trí liên quan của các khối trong ASIC (đôi khi còn được gọi là xếp chip - chip planning). Cùng thời điểm này chúng ta định vị khoảng trống cho Tiếp cận lập trình cho FPGA từ Spartan -3 % đường xung nhịp và nguồn và quyết định vị trí của cổng I/O. Việc sắp xếp đị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 xếp đố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 và sắp xếp phần tử đôi khi có thể sử dụng công cụ CAD. Việc định tuyến 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 được 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.1.4. Các công cụ CAD (CAD Tools) Để phát triển một 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 vấn đề có mục đích và định hướng rõ ràng. Mục đích là những gì chúng ta cần phải thực hiện, còn định hướng là cách thực hiện mục đích. Ví dụ trong các bước thiết kế vật lý ASIC thì các mục đích và định hướng như sau: Phân chia hệ thống (System partitioning): - 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. Lên sơ đồ mặt bằng (Floorplanning): - Mục đích: Tính toán kích thước của tất cả các khối và sắp xếp vị trí của chúng. - Định hướng: Bảo đảm sự liên kết cao giữa các khối về mặt tự nhiên càng gần càng tốt. Sắp xếp các phần tử (Placement): - Mục đích: Sắp xếp 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 hoá các vùng ASIC và mật độ kết nối. Tiếp cận lập trình cho FPGA từ Spartan -3 & Đị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 (Detailed 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.2. Thiết kế ASIC đầu vào (design entry) 1.2.1. Thiết kế thư viện ASIC Thư viện phần tử là một phần chính trong thiết kế ASIC. Đối với một ASIC lập trình được thì một công ty chuyên về PLD, FPGA cung cấp cho chúng ta một thư viện các phần tử lôgic dưới hình thức một bộ kit thiết kế, thường là chúng ta không có một sự lựa chọn nào và giá của nó nói chung khoảng vài nghìn đô la. Đối với MGAs và CBICs chúng ta có ba lựa chọn : nhà cung cấp ASIC (công ty sẽ 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ể tự xây dựng thư viện phần tử của chính mình. Sự lựa chọn đầu tiên, đó là sử dụng một thư viện ASIC của nhà cung cấp, yêu cầu chúng ta phải sử dụng một tập các công cụ thiết kế đã được cung cấp bởi nhà cung cấp ASIC để đưa vào và mô phỏng thiết kế của chúng ta. Tức là chúng ta phải mua các công cụ và thư viện phần tử. Một vài nhà cung cấp ASIC (đặc biệt cho MGAs) đã cung cấp các công cụ được phát triển theo yêu cầu. Thư viện của nhà cung cấp ASIC thông thường là một thư viện ảo - các phần tử chỉ là các khối trống rỗng, nhưng nó bao gồm đủ thông tin để bố trí sơ đồ mạch. Sau khi chúng ta hoàn thành việc bố trí sơ đồ mạch, chúng ta đưa ra netlist đến nhà cung cấp ASIC để họ bổ sung vào các phần tử ảo trước khi bắt đầu sản xuất chip cho chúng ta. Các lựa chọn thứ hai và ba yêu cầu chúng ta thực hiện một quyết định mua bán. Nếu chúng ta hoàn thành việc thiết kế một ASIC sử dụng thư viện phần tử mà chúng ta mua, thì chúng ta đã sở hữu việc chế tạo chip được sử dụng để sản xuất Tiếp cận lập trình cho FPGA từ Spartan -3 ' ASIC của chính mình. Những thư viện phần tử như vậy thường đắt (có thể lên đến vài trăm nghìn đô la). Tuy nhiên điều này có nghĩa rằng việc mua một thư viện đắt có thể rẻ về lâu dài nếu chúng ta sản xuất nhiều hơn là các giải pháp khác. Lựa chọn thứ ba sẽ phát triển một thư viện phần tử theo yêu cầu. Nhiều công ty máy tính và công ty điện tử lớn chọn phương án này. Hầu hết thư viện phần tử thiết kế hiện nay vẫn tiếp tục được phát triển theo hình thức “yêu cầu” mặc dù thực tế quá trình phát triển thư viện rất phức tạp và đắt. Tuy 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, kiểm tra - Sơ đồ mạch - Biểu tượng của phần tử - Mô hình tải - Mô hình định tuyến 1.2.2. Các vi mạch ASIC lập trình được Có hai loại ASIC lập trình được: Thiết bị logic lập trình được - PLD (Programmable Logic Device) và Ma trận cổng lập trình được theo hàng - 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. PLDs bắt đầu từ những thiết bị nhỏ dùng để thể thay thế một 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 lại cả hai loại ASICs đều là các ASIC lập trình được. Một ASIC lập trình được chính một chip mà chúng ta, như một người thiết kế hệ thống, có thể tự lập trình. Chúng ta tiến hành thiết kế đầu vào và mô phỏng. Tiếp Tiếp cận lập trình cho FPGA từ Spartan -3 ( theo, một phần mềm đặc biệt tạo ra một chuỗi các bit mô tả thêm mở rộng các kết nối theo yêu cầu để thực hiện thiết kế của chúng ta - gọi là tệp cấu hình. Sau đó, chúng ta kết nối máy tính tới chip và lập trình cho chip đó tuân theo tệp cấu hình. Tuy nhiên công nghệ lập trình có thể có hoặc có thể không lâu dài. Do vậy chúng ta không thể xoá bỏ những lập trình trong các ASIC lập trình được một lần. Vì thế, ngày nay người ta thường sử dụng các loại PLD và FPGA có khả năng lập trình lại được. 1.2.3. Các phần tử logic ASIC lập trình được Tất cả các ASIC (hoặc PLD hoặc FPGAs) đều chứa một phần tử lôgic cơ bản. Đó là ba kiểu phần tử lôgic cơ bản khác nhau: (1) Bộ dồn kênh cơ sở; (2) Bảng sự thật cơ sở; (3) Phần tử logic ma trận lập trình được. Việc lựa chọn giữa các phần tử đó phụ thuộc vào công nghệ lập trình. 1.2.4. Các phần tử vào/ra ASIC lập trình được Tất cả ASICs lập trình được đều chứa một vài kiểu phần tử Vào/Ra (I/O) nào đó. Các phần tử Vào/Ra đó điều khiển mức lôgic tín hiệu vào - ra của chip, nhận và kiểm tra điều kiện của các đầu vào từ bên ngoài, cũng như bảo vệ tĩnh điện cho chip. 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 tại đầu ra DC hoặc tần số thấp (thấp hơn 1 MHz). Ví dụ các loại trở kháng tải như LED, rơ le, mô-tơ loại nhỏ… - Nguồn đầu ra AC: đ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. - Nguồn đầu vào DC: 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 logic 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ộ. Tiếp cận lập trình cho FPGA từ Spartan -3 ) - 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ử lôgic bên trong chip, mà điện áp không bị sụt hoặc nhiễu. Ngoài ra chúng ta có thể cũng cần một nguồn cung cấp riêng biệt để lập trình cho chip. Các tùy chọn đối với 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 được điều chỉnh, các đầu ra trực tiếp hoặc phải được điều chỉnh, phối hợp trở kháng, bảo vệ quá điện áp, điều khiển tốc độ tròn, và quét hạn chế. 1.2.5. Các phần tử ASIC liên kết nối lập trình được Tất cả ASIC đều chứa các phần tử liên 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ử liên 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ử lôgic 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 pFcm -1 . 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. 1.2.6. Phần mềm thiết kế ASIC lập trình được Có năm thành phần cấu thành một ASIC: (1) Công nghệ lập trình, (2) Phần tử lôgic cơ bản, (3) Phần tử Vào/Ra, (4) Phần tử liên kết nối, và (5) Phần mềm thiết kế cho phép chúng ta lập trình ASIC. Phần mềm thiết kế thường là bị ràng buộc gần gũi hơn với kiến trúc PLD và FPGA hơn các kiểu ASICs khác. Đối với bất kỳ ASIC nào thì một nhà thiết kế cũng cần phần mềm thiết kế đầu vào, một thư viện phần tử, và phần mềm thiết kế vật lý. Mỗi một 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ế này sử dụng phần mềm thiết kế đầu vào của một công ty khác. 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 Manufacturer). Tất cả các nhà cung cấp ASIC đều có phần mềm thiết kế vật lý của riêng mình - 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 họ. Tiếp cận lập trình cho FPGA từ Spartan -3 !* Giản đồ đầu vào không phải là phương pháp duy nhất thiết kế đầu vào cho các ASIC lập trình được. Một số nhà thiết kế mô tả việc điều khiển lôgic và trạng thái máy dưới dạng các phương trình lôgic 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 theo một số tiêu chuẩn. 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, CUPL, 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ạng trong việc mô tả các máy trạng thái và tổ hợp lôgic. 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 ASICs và cả một hệ thống. Sau khi hoàn thành thiết kế đầu vào 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 lôgic 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 đầu ra 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à một 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 đường giới hạn mà ở đó làm hạn chế tốc độ hoạt động - các đường tín hiệu gây ra độ trễ lớn. 1.3. Thiết kế logic mức thấp đầu vào (low-level design entry) 1.3.1. Giản đồ đầu vào (Schematic Entry) Giản đồ đầu vào là phương pháp phổ biến nhất của thiết kế đầu vào đối với các ASIC. Các ngôn ngữ HDL đang thay thế cho các giản đồ đầu vào mức cổng thông thường, nhưng các công cụ đồ hoạ mới dựa trên các giản đồ đầu vào ngay nay cũng đang được sử dụng để tạo ra một số lượng lớn các mã nguồn HDL. Các giản đồ mạch được vẽ trên các sheet giản đồ. Kích thước tiêu chuẩn của các sheet giản đồ tuân theo tiêu chuẩn ANSI A-E (chủ yếu dùng ở Mỹ) và ISO A4- A0 (chủ yếu dùng ở châu Âu). Như trên hình 2.2 thể hiện 2 hình giống cái “cái mai” [...]... so với các công nghệ khác Tuy nhiên bù lại cần phải có không gian lớn cho các tranzitor điện thế cao cần để giữ cho dòng và áp cao lúc lập trình Nhược điểm của công nghệ này là qui trình chế tạo chúng cần phải thay đổi so với qui trình chế tạo CMOS 2.1.2.3 Công nghệ lập trình dùng EPROM và EEPROM Công nghệ lập trình dùng EPROM và EEPROM được sử dụng chủ yếu trong các FPGA của Altera Công nghệ này giống... khối logic của FPGA, còn FPGA thông thường có thể hơn 100.000 phần tử lập trình Có thể tùy thuộc vào ứng dụng cụ thể và có các số lượng phần tử lập trình có thể có các đặc tính khác Về mặt chế tạo, các phần tử lập trình nếu có thể chế tạo theo công nghệ CMOS chuẩn là tốt nhất 2.1.2.1 Công nghệ lập trình dùng RAM tĩnh (SRAM) Công nghệ lập trình dùng SRAM được sử dụng trong các FPGA của nhiều công ty như... vào) - Trễ đường kết nối (net dalay) hoặc trễ đường dây (wire delay) là khoảng trễ bên ngoài của một phần tử logic Tiếp cận lập trình cho FPGA từ Spartan -3 25 CHƯƠNG II: GIỚI THỆU MỘT SỐ CÔNG NGHỆ MỚI LIẾN QUAN ĐẾN THIẾT KẾ ASIC HIỆN NAY 2.1 Giới thiệu công nghệ FPGA 2.1.1 Giới thiệu FPGA Như đã giới thiệu trong chương 1 trước về môi trường thiết kế phần cứng, phương pháp để thiết kế mạch và mối quan... của công nghệ này cho phép FPGA có thể tái cấu hình ngay trên mạch rất nhanh và nó có thể được chế tạo bằng công nghệ CMOS chuẩn D©y nèi RAM Cell MUX D©y nèi D©y nèi RAM Cell RAM Cell D©y nèi D©y nèi a Transistor truyÒn dÉn b Cæng transistor RAM Cell D©y nèi c Bé dån kªnh Hình 6.2 Công nghệ lập trình dùng SRAM 2.1.2.2 Công nghệ lập trình dùng cầu chì nghịch (anti-fuse) Công nghệ lập trình dùng cầu chì... cứng trực tuyến: FPGA cho phép có thể thay đổi theo ý muốn cấu trúc của một máy đang hoạt động Ứng dụng thích hợp nhất là những FPGA có chuyển mạch lập trình được 2.1.2 Các loại FPGA và công nghệ lập trình Có nhiều cách thực hiện các phần tử lập trình, các công nghệ lập trình hiện đang được sử dụng là RAM tĩnh, cầu chì ngịch (anti-fuse) EPROM tranzitor và EEPROM tranzitor Mặc dù công nghệ lập trình khác... FPGA là một thiết bị cấu trúc logic có thể được người sử dụng lập trình trực tiếp mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào 2.1.1.1 FPGA là gì? FPGA được công ty Xilinx giới thiệu đầu tiên vào năm 1985 Hiện nay FPGA đã được nhiều công ty phát triển là AcTel, Altera, Plus Logic, AMD,… Giống như MPGA, một FPGA gồm một dãy các phần tử rời rạc có thể được kết nối với nhau theo một... các FPGA này, các kết nối lập trình được làm bằng các 28 Tiếp cận lập trình cho FPGA từ Spartan -3 tranzitor truyền (pass-transistor), các cổng cho phép truyền (pass-gate), hay các bộ dồn kênh (multiplexer), tất cả đều được điều khiển bằng các ô nhớ (cell) SRAM Các chip được thực hiện theo công nghệ SRAM có diện tích khá lớn, bởi vì cần ít nhất 5 tranzitor cho mỗi ô nhớ Ưu điểm chính của công nghệ. .. bằng FPGA và kết quả là giảm diện tích của bo mạch đi đáng kể 4 Chế tạo mẫu: FPGA rất lý tưởng cho các ứng dụng tạo sản phẩm mẫu Giá thành thực hiện thấp, thời gian ngắn chính là ưu điểm rất lớn của FPGA 5 Máy tính dựa trên FPGA: một loại máy tính mới có thể được chế tạo với các FPGA có thể tái lập trình ngay trên mạch FPGA Các máy này có một bo mạch chứa các FPGA với các chân nối với các chip lân cận. .. poly-silic Tiếp cận lập trình cho FPGA từ Spartan -3 29 Hình 2.3 Công nghệ lập trình cầu chì nghịch anti-fuse PLICE của Actel (a) Mặt cắt ngang (b) Cấu trúc các lớp cầu chì nghịch: + Lớp điện môi ONO (Oxy-Nitơ-Oxy) cách điện chiều dày nhỏ hơn 10nm; + Lớp dưới mang điện tích dương; + Lớp trên là Poly-Silic (c) Một cầu chì nghịch nhìn từ phía trên xuống giống như một công tắc Ưu điểm công nghệ cầu chì... cứng được xây dựng dựa trên cộng nghệ FPGA Đây là công nghệ tiên tiến đã được nghiên cứu rất nhiều và có ứng dụng rộng rãi trên thế giới Công nghệ FPGA (Field-Programmable Gate Array) đã xuất hiện như một giải pháp cơ bản cho vấn đề tranh thủ thời gian và chi phí ban đầu thấp Nó cho phép chế tạo ngay và giá thành sản phẩm thấp, tạo nên sức cạnh tranh lớn trên thị trường FPGA là một thiết bị cấu trúc logic . Tiếp cận lập trình cho FPGA từ Spartan -3 ! CHƯƠNG I: CÔNG NGHỆ ASIC 1.1. Các hướng tiếp cận thiết kế ASIC 1.1.1. Các công nghệ lập trình thiết kế ASIC Tóm tắt các công nghệ. như thế nào. Thiết kế đầu vào là một trong những phần quan trọng nhất của công nghệ ASIC. Tiếp cận lập trình cho FPGA từ Spartan -3 # Cho đến hiện hay thì hầu hết các thiết kế đầu vào. Tiếp cận lập trình cho FPGA từ Spartan -3 !( else compare = inb; end endfunction assign outp = compare(a, b); endmodule Hình 1.6. Thiết kế đầu vào bằng tay và sử dụng Verilog Tiếp cận