Ởnước ta, do nhu cầu vềcông nghệASIC còn chưa cao trong khi đó việc mua sẵn các DSP đa năng không phải là điều khó khăn. Tình hình sẽhoàn toàn thay đổi trong tương lai khi nhu cầu vềbảo mật, độc lập và tựchủcông nghệ điện tử viễn thông phục vụcông cuộc công nghiệp hoá và hiện đại hoá đất nước tăng lên nhanh chóng. Việc ứng dụng rộng rãi công nghệASIC trong tương lai gần sẽlà một điều có thểdự đoán trước. Do vậy, việc tìm hiểu vềcông nghệASIC đểcó thểlàm chủ các ứng dụng trong công nghiệp là một việc làm hoàn toàn cần thiết. Hơn thếnữa, những hiểu biết sâu sắc vềcác đặc tính kỹthuật trong công nghệASIC không những chỉcó ý nghĩa riêng đối với các lĩnh vực Điện tử Viễn thông, Công nghệ thông tin nói chung mà còn có ý nghĩa đặc biệt quan trọng trong lĩnh vực an ninh, quốc phòng.
Tiếp cận lập trình cho FPGA từ Spartan -3 1 MỞ ĐẦU Trong những năm gần đây, kỹ thuật điện tử đã liên tục có những tiến bộ vượt bậc, đặc biệt là trong những kỹ thuật vi điện tử. Khi kích thước và độ phức tạp của các hệ thống số ngày càng gia tăng, rất nhiều công cụ thiết kế được trợ giúp bởi máy tính đã được đưa vào quá trình thiết kế phần cứng. H ỗ trợ mạnh mẽ cho phương pháp thiết kế này là những ngôn ngữ mô tả phần cứng HDL. Nói đến HDL tức là chúng ta đã đề cập đến công nghệ thiết kế ASIC – hay còn gọi là IC chuyên dụng. Ở nước ta, do nhu cầu về công nghệ ASIC còn chưa cao trong khi đó việc mua sẵn các DSP đa năng không phải là điều khó khăn. Tình hình sẽ hoàn toàn thay đổi trong tương lai khi nhu cầu về bảo mật, độc lập và tự ch ủ công nghệ điện tử - viễn thông phục vụ công cuộc công nghiệp hoá và hiện đại hoá đất nước tăng lên nhanh chóng. Việc ứng dụng rộng rãi công nghệ ASIC trong tương lai gần sẽ là một điều có thể dự đoán trước. Do vậy, việc tìm hiểu về công nghệ ASIC để có thể làm chủ các ứng dụng trong công nghiệp là một việc làm hoàn toàn cần thiết. Hơn thế nữa, nh ững hiểu biết sâu sắc về các đặc tính kỹ thuật trong công nghệ ASIC không những chỉ có ý nghĩa riêng đối với các lĩnh vực Điện tử - Viễn thông, Công nghệ thông tin nói chung mà còn có ý nghĩa đặc biệt quan trọng trong lĩnh vực an ninh, quốc phòng. 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 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. 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,… Ở Việt Nam, trong một số năm gần đây, việc nghiên cứ u về FPGA đã đạt được những thành tựu nhất định đặc biệt trong các lĩnh vực như xử lý tín hiệu Rađa, các Tiếp cận lập trình cho FPGA từ Spartan -3 2 lĩnh vực bảo mật điện thoai Trên một số diễn đàn, người ta đã giới thiệu rất nhiều về FPGA, về công nghệ lập trình Ram tĩnh, cầu trì nghịch. Với những người đã bỏ ra khoảng thời gian không nhỏ để nghiên cứu về lĩnh vực này thì có thể những thông tin đó hoàn toàn đủ để hình dung ra vấn đề, xong những người đang có ý định tìm hiểu thì qu ả thực với những thông tin đó để hiểu ra được thì cũng lại phải mất một khoảng thời gian khá dài. Cuốn sách “ Tiếp cận lập trình cho FPGA từ Spartan -3 ” với mục đích cung cấp những thông tin cần thiết nhất về công nghệ FPGA và đặc biệt cung cấp cho các đối tượng đang có nhu cầu tìm hiểu về công nghệ này có khả năng tiếp cận một cách nhanh chóng với cách thức l ập trình cho một FPGA cụ thể. Cuốn sách bao gồm 5 chương: Chương I: Giới thiệu về công nghệ ASIC Chương II: Giới thiệu một số công nghệ mới liên quan đến thiết kế ASIC hiện nay – Công nghệ FPGA . Chương III: Giới thiệu bo mạch Spartan-3 starter kid board và môi trường lập trình ISE 7.1 Chương IV: Sơ lược về ngôn ngữ VHDL Chương V: Các bài toán thiết kế và giao tiếp Trong đó người đọc có thể đọc lướt qua các chương I và II để tìm kiếm một vài thông tin mong muốn. Chương III đặc biệt phải quan tâm vì đây là một FPGA cụ thể. Chương IV giới thiệu sơ lược về ngôn ngữ VHDL, thực ra về ngôn ngữ VHDL có rất nhiều sách đã đề cập tới. Tuy vậy, chúng ta chỉ cần nắm lượng thông tin ở chương này sau đó đọc kỹ từng bài toán ở chươ ng V sẽ giúp chúng ta có điều kiện hiểu rõ hơn về ngôn ngữ. Chương V sẽ là các bài toán từ dễ đến khó, với 6 bài tập chúng ta hoàn toàn làm chủ đựơc bo mạch, và vì vậy, với các bài toán bất kì chỉ cần căn cứ vào thuật toán là chúng ta hoàn toàn có thể triển khai thực hiện được. Do trình độ còn hạn chế vì vậy không tránh khỏi những khiếm khuyết rất mong nhận được các ý kiến đóng góp từ người đọc. Cu ốn sách này có sử dụng khá nhiều chi tiết từ luận văn cao học của anh Lê Hải Triều – ĐHBK – Hà Nội. Tiếp cận lập trình cho FPGA từ Spartan -3 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 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 Tiếp cận lập trình cho FPGA từ Spartan -3 4 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. 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 Tiếp cận lập trình cho FPGA từ Spartan -3 5 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. 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. Tiếp cận lập trình cho FPGA từ Spartan -3 6 - 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 đườ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 Tiếp cận lập trình cho FPGA từ Spartan -3 7 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. Đị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. Tiếp cận lập trình cho FPGA từ Spartan -3 8 Đị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 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. Tiếp cận lập trình cho FPGA từ Spartan -3 9 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 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. Tiếp cận lập trình cho FPGA từ Spartan -3 10 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ộ. - 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 tùy biến cho phù hợp với một số những ứng dụng chuyên biệt 33 Tiếp cận lập trình cho FPGA từ Spartan -3 Mục đích của chúng ta là có thể tối ưu hóa hiệu quả chương trình nguồn và khả năng hoạt động của một ứng dụng đã cho sao cho bảo đảm các yêu cầu sau: - Hiệu quả hệ thống (giá thành, kích thước chương trình nguồn, khả năng thực hiện, và điện năng tiêu thụ) bảo đảm chấp nhận được cho các hệ thống... thông qua khối logic lập trình được Khi một lệnh như vậy được nạp vào, bộ xử lý không thể giải mã lệnh đó, tiếp theo nó đưa ra một tín hiệu “bẫy” trap bằng việc gửi một 36 Tiếp cận lập trình cho FPGA từ Spartan -3 tín hiệu đến khối logic lập trình được Nếu khối logic lập trình được có thể giải mã lệnh đó, thì sau đó lệnh đó được kích hoạt Nếu lệnh đó chưa được khối logic lập trình được nhận dạng, thì... ngoại vi hoạt động thông qua khối logic lập trình được 35 Tiếp cận lập trình cho FPGA từ Spartan -3 a Kiến trúc bộ giải mã tĩnh (Static decode Architecture) Khối đường dẫn dữ Khối điều khiển starti donei Khối logic lập trình được Bộ chọn/Kết hợp Khối giải mã lệnh lôgic cố định … Bus điều khiển Bus 1 Bus N Các tín hiệu điều kiện và dữ liệu Lôgic cố định Lôgic lập trình Hình 2.6 Kiến trúc giải mã tĩnh... 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... loại FPGA và giới thiệu công nghệ lập trình Có nhiều loại FPGA của các công ty khác nhau, tuy nhiên chúng có thể được chia thành 4 loại chính như sau (xem hình 2.2): - Cấu trúc mảng đối xứng (symmetrical array) - Cấu trúc hàng (row-based) - Cấu trúc PLD phân cấp (hierachical PLD) - Cấu trúc đa cổng (sea-of-gate) Tiếp cận lập trình cho FPGA từ Spartan -3 32 2.2 Giới thiệu phương pháp thiết kế ASIP cho. .. dụng nhiều phần tử hơn 19 Tiếp cận lập trình cho FPGA từ Spartan -3 Bảng1.2 So sánh thiết kế tổng hợp logic ASIC bằng tay và tổng hợp logic sử dụng Verilog theo lý thuyết Trễ đường Số các phần tử logic Số tranzitor Kích thước/ dẫn/ns (1) tiêu chuẩn tiêu chuẩn mils 2 (2) 41.6 1 ,35 9 16,545 21,877 36 .3 1,4 93 11,946 18 ,32 2 Thiết kế bằng tay Thiết kế tổng hợp logic Bảng 1 .3 So sánh thiết kế tổng hợp logic... đ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 Tiếp cận lập trình cho FPGA từ Spartan -3 12 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, đó... tử lập trình đều có chung tính chất chung là có thể cấu hình được trong một trong hai trạng thái ON hoặc OFF Các phần tử lập trình được dùng để thực hiện các kết nối lập trình được giữa các 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. .. PLICE (Programmable Low-Impedance Circuit Element) Nó có cấu trúc hình chữ nhật gồm 3 lớp: lớp dưới cùng chứa silic mang điện tích dương, lớp giữa là một lớp điện môi, lớp trên cùng là poly-silic 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 Tiếp cận lập trình cho FPGA từ Spartan -3 30 (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... năng lượng đủ để các phần tử ở cổng gate 1 nhảy về vị trí cũ cho phép transistor hoạt động bình thường 31 Tiếp cận lập trình cho FPGA từ Spartan -3 Ưu điểm của tranzitor EPROM là chúng có thể tái lập trình mà không cần bộ nhớ bên ngoài Tuy nhiên không giống như SRAM, tranzitor EPROM không thể được lập trình lại ngay trên bo mạch (in-circuit) Phương pháp dùng EEPROM tương tự như công nghệ EPROM, chỉ khác . cận lập trình cho FPGA từ Spartan -3 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. 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. Tiếp cận lập trình cho FPGA từ Spartan -3 10 Tuy nhiên công nghệ lập trình có thể có hoặc có thể không lâu. 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