FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng MPGA, PLD và các mạch tích hợp nhỏ.
1. Các mạch tích hợp ứng dụng đặc biệt: FPGA là một phơng tiện tổng quát nhất để thực hiện các mạch logic số. Chúng đặc biệt thích hợp cho việc thực hiện các ASIC.
2. Thiết kế mạch ngẫu nhiên: mạch logic ngẫu nhiên thờng đợc thực hiện bằng PAL. Nếu tốc độ của mạch không đòi hỏi khắt khe thì mạch có thể thực hiện thay thế bằng FPGA.
3. Thay thế các chíp tích hợp nhỏ cho mạch ngẫu nhiên: các mạch hiện tại trong các sản phẩm thơng mại thờng chứa nhiều chíp SSI. Trong nhiều trờng hợp các chip này SSI này có thể đợc thay thế bằng FPGA, điều này giúp giảm đáng kể diện tích của bo mạch.
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 giống nh thông thờng.
6. Tái cấu hình phần 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.2Ngụn ngữ mụ phỏng phần cứng VHDL 2.2.1 Giới thiệu
VHDL là viết tắt của cụm từ Very High Speed Intergrated Circuit Hardware Description Language – ngụn ngữ mụ phỏng phần cứng cho cỏc mạch tớch hợp tốc độ cao. VHDL là ngụn ngữ mụ phỏng phần cứng được phỏt triển dựng cho chương trỡnh VHSIC ( Very High Speed Intergrated Circuit) của bộ quốc phũng Mỹ. Mục tiờu của việc phỏt triển VHDL là cú được ngụn ngữ mụ phỏng phần cứng tiờu chuẩn và thống nhất cho phộp phỏt triển thử nghiệm cỏc hệ thống số nhanh hơn cũng như cho phộp dờ̃ dàng đưa cỏc hệ thống đú vào ứng dụng trong thực tế. Ngụn ngữ VHDL được ba cụng ty Intermetics, IBM và Texas Intruments bắt đầu nghiờn cứu phỏt triển vào 7/1983. Phiờn bản đầu tiờn được cụng bố vào 8/1985. Sau đú VHDL được đề xuất để tổ chức IEEE xem xột thành một tiờu chuẩn. Năm 1987, đó đưa ra tiờu chuẩn về VHDL – tiờu chuẩn IEEE – 1076 -1987.
VHDL được phỏt triển để giải quyết cỏc khú khăn trong việc phỏt triển, thay đổi và lập tài liệu cho cỏc hệ thống số. Như ta đó biết, một hệ thống số cú rất nhiều tài liệu mụ tả. Để cú thể vận hành bảo trỡ sửa chữa một hệ thống ta cần tỡm hiểu tài liệu đú kỹ kưỡng. Với ngụn ngữ mụ phỏng phần cứng tốt việc xem xột cỏc tài liệu mụ tả trở nờn dờ̃ dàng hơn vỡ bộ tài liệu đú cú thể được thực thi để mụ phỏng hoạt động của hệ thống. Như thế ta cú thể xem xột toàn bộ cỏc phần tử của hệ thống hoạt động trong một mụ hỡnh thống nhất.
Trước khi VHDL ra đời, cú nhiều ngụn ngữ mụ phỏng phần cứng được sử dụng nhưng khụng cú một tiờu chuẩn thống nhất. Cỏc ngụn ngữ mụ phỏng phần cứng đú được phỏt triển để phục vụ cỏc bộ mụ phỏng chạy chỳng. Vỡ cỏc ngụn ngữ mụ phỏng phần cứng đú được cỏc nhà cung cấp thiết bị phỏt triển, nờn mang cỏc đặc trưng gắn với cỏc thiết bị của nhà cung cấp đú và thuộc sở hữu của nhà cung cấp.
Trong khi đú, VHDL được phỏt triển như một ngụn ngữ độc lập khụng gắn với bất kỳ một phương phỏp thiết kế, bộ mụ phỏng hay cụng nghệ phần cứng nào. Người thiết kế cú thể tự do lựa chọn cụng nghệ, phương phỏp thiết kế trong khi vấn sử dụng một ngụn ngữ duy nhất.
2.2.2 VHDL cú một số ưu điểm hơn hẳn cỏc ngụn ngữ mụ phỏng phần cứng khỏc
Thứ nhṍt là tớnh cụng cộng
VHDL được phỏt triển dưới sự bảo trợ của chớnh phủ Mỹ và hiện nay là một tiờu chuẩn của IEEE, VHDL khụng thuộc sở hữu của bất kỳ cỏ nhõn hay tổ chức nào. Do đú VHDL được sự hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp cụng cụ thiết kế mụ phỏng hệ thống. Đõy
là một ưu điểm nổi bật của VHDL, giỳp VHDL trở nờn ngày càng phổ biến.
Khả năng hỗ trợ nhiều cụng nghệ và phương phỏp thiết kế
VHDL cho phộp thiết kế bằng nhiều phương phỏp như phương phỏp thiết kế từ trờn xuống, hay từ dưới lờn dựa vào cỏc thư viện sẵn cú. VHDL cũng hỗ trợ cho nhiều loại cụng cụ xõy dựng mạch như sử dụng cụng nghệ đồng bộ hay khụng đồng bộ, sử dụng ma trận lập trỡnh được hay sử dụng mảng logic ngẫu nhiờn. Như vậy VHDL cú thể phục vụ tốt cho nhiều mục đớch thiết kế khỏc nhau, từ việc thiết kế cỏc phần tử phổ biến đến việc thiết kế cỏc IC ứng dụng đặc biệt.
Tớnh độc lập với cụng nghệ
VHDL hoàn toàn độc lập với cụng nghệ chế tạo phần cứng. Một mụ tả hệ thống dựng VHDL thiết kế ở mức cổng cú thể được chuyển thành cỏc bản tổng hợp mạch khỏc nhau tựy thuộc cụng nghệ chế tạo phần cứng mới ra đời nú cú thể được ỏp dụng ngay cho cỏc hệ thống đó thiết kế. Đõy cũng là một ưu điểm quan trọng của VHDL, nú cho phộp người thiết kế khụng cần quan tõm đến cụng nghệ chế tạo phần cứng mới ra đời.
Khả năng mụ tả mở rộng:
VHDL cho phộp mụ tả hoạt động của phần cứng từ mức hệ thống số cho đến mức cổng. VHDL cú khả năng mụ tả hoạt động của hệ thống trờn nhiều mức nhưng chỉ sử dụng một cỳ phỏp chặt chẽ thống nhất cho mọi mức. Như thế ta cú thể mụ phỏng một bản thiết kế bao gồm cẩ cỏc hệ con được mụ tả ở mức cao và cỏc hệ con được mụ tả chi tiết.
Khả năng trao đổi kết quả
Vỡ VHDL là một tiờu chuẩn được chấp nhận, nờn một mụ hỡnh VHDL cú thể chạy trờn mọi bộ mụ tả đỏp ứng được tiờu chuẩn VHDL. Cỏc kết quả
mụ tả hệ thống cú thể được trao đổi giữa cỏc nhà thiết kế sử dụng cụng cụ thiết kế khỏc nhau nhưng cựng tuõn theo tiờu chuẩn VHDL. Cũng như, một nhúm thiết kế cú thể trao đổi mụ tả mức cao của cỏc hệ thống con trong một hệ thống lớn; trong khi cỏc hệ thống con được thiết kế độc lập.
Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại cỏc thiết kế
VHDL được phỏt triển như một ngụn ngữ lập trỡnh bậc cao, vỡ vậy nú cú thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhúm nhiều người. Bờn trong ngụn ngữ VHDL cú nhiều tớnh năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. Và nú cũng cho phộp dựng lại cỏc phần đó cú sẵn.
2.2.3 Cṍu trúc một mụ hỡnh hệ thống mụ tả bằng VHDL
Phần này sẽ nhằm giới thiệu sơ qua về cấu trỳc khung cơ bản của VHDL khi mụ tả cho một mụ hỡnh thiết kế thực.
Thụng thường một mụ hỡnh VHDL bao gồm ba phần: thực thể (Entity), kiến trỳc (Architecture), gúi (Package) và cỏc cấu hỡnh. Trong một số trường hợp mụ hỡnh cũn cú thờm cỏc mụi trường kiểm tra.
Thực thể (Entity )
Khai bỏo thực thể trong VHDL là cõu lệnh định nghĩa cỏc chỉ tiờu phớa ngoài của một phần tử hay một hệ thống. Cỏc thụng tin cú trong phần khai bỏo thực thể cho phộp kết nối phần tử ( hệ thống) mà thực thể đú đại diện với phần tử ( hệ thống) khỏc. Thực chất việc khai bỏo thực thể chớnh là khai bỏo giao diện của hệ thống với bờn ngoài. Hoạt động thực chất của hệ thống khụng được mụ tả trong khai bỏo thực thể. Cỳ phỏp của khai bỏo thực thể là:
[generic (generic_declaration);] [port (port_declaration);]
{entity_declaration_item{constants, type, signals};} End [entity_name];
• Khai bỏo generic dựng để khai bỏo cỏc hằng mà chỳng cú thể được dựng để điều khiển kiến trỳc và sự hoạt động của thực thể. • Khai bỏo cổng (port) được dựng để khai bỏo cỏc cổng vào, ra
của thực thể.
• Khai bỏo Entity_declaration_item dựng để khai bỏo cỏc hằng, kiểu dữ liệu hoặc tớn hiệu mà nú cú thể được sử dụng trong khi mụ tả hoạt động hoặc cấu trỳc của thực thể.
Dưới đõy là một vớ dụ khai bỏo thực thể cho một cổng NAND ( Hỡnh 1.7).
Hỡnh 2.3 : Khai bỏo thực thể một cổng NAND
Cõu lệnh LIBRARY IEEE và USE IEEE.std_logic_1164.ALL cho phộp thực thể sử dụng cỏc định nghĩa trong thư viện về cỏc tiờu chuẩn của
IEEE. Khai bỏo thực thể bao gồm tờn của thực thể và một tập cỏc cổng và phần chung. Trong đú phần chung GENERIC là cỏc hằng số được truyền cho phần tử ( hệ thống). Phần chung cú thể coi là cỏc tham số định trước của phần tử, chẳng hạn như độ trờ̃. Cỏc cổng là phần giao diện vào ra của phần tử. Cỏc cổng cú thể tương ứng với cỏc chõn IC, hay cỏc đầu nối trờn bảng mạch. Cỏc cổng được khai bỏo là cổng vào, cổng ra, cổng hai chiều hay bộ đệm.
Kiến trúc ( Arrchitecture)
Một khai bỏo thực thể đều phải đi kốm với ớt nhất một kiến trỳc tương ứng. VHDL cho phộp khai bỏo nhiều kiến trỳc cho một thực thể. Một khai bỏo kiến trỳc cú thể bao gồm cỏc khai bỏo về cỏc tớn hiệu bờn trong, cỏc phần tử bờn trong hệ thống hay mụ tả theo mụ hỡnh cấu trỳc. Tuy nhiờn một hệ thống cú thể bao gồm cả mụ tả theo mụ hỡnh hoạt động và mụ tả theo mụ hỡnh cấu trỳc.
•Mụ tả kiến trúc theo mụ hỡnh hoạt động
Mụ hỡnh hoạt động mụ tả cỏc hoạt động của hệ thống dưới dạng cỏc cõu lệnh của ngụn ngữ lập trỡnh bậc cao. Cỏc cõu lệnh đú cú thể là PROCESS, WAIT, IF, CASE, FOR-LOOP... Vớ dụ, kiến trỳc của cổng NAND núi trờn cú thể mụ tả theo mụ hỡnh hoạt động như sau:
ARCHITECTURE behaviour OF nand IS BEGIN
c <= NOT (a AND b) AFTER delay; END behaviour;
Ta thấy kiến trỳc của phần tử NAND cú một lệnh gỏn tớn hiệu mụ tả chức năng của phần tử. Cõu lệnh này được thực thi khi một trong hai cổng a, b thay đổi giỏ trị.Và cõu lệnh gỏn cú độ trờ̃, tức thỡ tớn hiệu ở bờn trỏi sẽ thay đổi tương ứng sau thời gian trờ̃.
•Mụ tả kiến trúc theo mụ hỡnh cṍu trúc
Mụ hỡnh cấu trỳc của một phần tử ( hệ thống) cú thể bao gồm nhiều cấp cấu trỳc bắt đầu từ một cổng logic đơn giản để xõy dựng mụ tả cho một hệ thống hoàn thiện. Thực chất của việc mụ tả theo mụ hỡnh cấu trỳc là mụ tả cỏc phần tử con bờn trong hệ thống và sự kết nối của cỏc phần tử con đú. Như với vớ dụ mụ tả mụ hỡnh cấu trỳc một flip-flop RS gồm hai cổng NAND như sau:
Cỏc gúi (Package)
Mục đớch chớnh của gúi là tập hợp cỏc phần tử cú thể bị chia sẻ bởi hai hay nhiều đơn vị thiết kế ( hay cỏc phần tử cú thể dựng chung được). Nú cú chưa cỏc kiểu dữ liệu, cỏc hằng, cỏc chương trỡnh con để dựng chung giữa cỏc thiết kế.
• Phần khai bỏo gúi
Một khai bỏo gúi được dựng để cất giữ hang loạt cỏc khai bỏo dựng chung, chẳng hạn như cỏc phần tử, cỏc kiểu, cỏc thủ tục, cỏc hàm. Cỏc khai bỏo này cú thể nhập vào đơn vị thiết kế khỏc bởi việc sử dụng một mệnh đề
USE.
• Phần than gúi
Sự khỏc biệt giữa khai bỏo gúi và than gúi cũng giống như sự khỏc nhau giữa khai bỏo của một thực thể và phần than kiến trỳc của nú. Cỳ phỏp của một phần than gúi như sau:
Package body package_name is {package_declaration_item} End[package_name]
Một than gúi được dựng để lưu cỏc định nghĩa của một hàm và thủ tục, mà cỏc hàm và thủ tục này đó được khai bỏo trong phần khai bỏo gúi tương ứng. Vỡ vậy, phần than gúi luụn được kết hợp với phần khai bỏo của chỳng, ngược lại một khai bỏo gúi luụn luụn cú ớt nhất một than gúi kết hợp với nú.
Cṍu hỡnh
Việc khai bỏo cấu hỡnh tương tự như việc liệt kờ cỏc phần của bản thiết kế. Khai bỏo cấu hỡnh thực chất là chỉ ra kiến trỳc nào được gắn với thực thể nào. Như vậy cỏc kiến trỳc khỏc nhau cú thể cựng được gắn với một thực thể. Điều này cho phộp thay đổi bản mụ tả ở thời điểm mụ phỏng hay tổng hợp hệ thống. Việc khai bỏo cấu hỡnh là tựy chọn, cũng cú thể sử dụng cấu hỡnh mặc định do VHDL cung cấp – khi đú kiến trỳc được khai bỏo cuối cựng cho một thực thể sẽ được gắn với thực thể.
Mụi trường kiểm tra
Một trong cỏc nhiệm vụ rất quan trọng là kiểm tra vản mụ tả thiết kế. Kiểm tra một mụ hỡnh VHDL được thực hiện bằng cỏch quỏn sỏt hoạt động của nú trong khi mụ phỏng và cỏc giỏ trị thu được cú thể đem so sỏnh với yờu cầu thiết kế.
Hỡnh 2.4 Sơ đồ tổng quỏt chương trỡnh thử
Thụng thường cỏc bộ mụ phỏng cú cung cấp khả năng kiểm tra, nhưng cũng cú thể xõy dựng một mụi trường kiểm tra VHDL. Mụi trường kiểm tra cú thể hiểu như một mạch kiểm tra ảo. Mụi trường kiểm tra sinh ra cỏc tỏc động lờn bản thiết kế và cho phộp quan sỏt hoặc so sỏnh kết quả hoạt động của bản mụ tả thiết kế. Thụng thường thỡ cỏc bản mụ tả đều cung cấp chương trỡnh thử. Nhưng ta cũng cú thể xõy dựng chương trỡnh thử (testbench). Mạch thử thực chất là sự kết hợp của tổng hợp nhiều thành phần. Nú gồm ba thành phần: mụ hỡnh VHDL đó qua kiểm tra, nguồn dữ liệu và bộ quan sỏt. Hoạt động của mụ hỡnh VHDL được kớch thớch bởi cỏc nguồn dữ liệu và kiểm tra tớnh đỳng đắn thụng qua bộ quan sỏt. Trờn đõy là sơ đồ tổng quỏt của một chương trỡnh thử (Testbench) ( Hỡnh 1.8 ).
Trong đú : DUT : ( device under test) mụ hỡnh VHDL cần kiểm tra Observer: khối quan sỏt kết quả
Data source : nguồn dữ liệu
2.3 MễI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX
Hiện nay trờn thế giới cú nhiều hóng tham gia sản xuất chế tạo FPGA trong đú cú 3 hóng lớn là Altera, Xilinx và Actel. Cỏc FPGA của mỗi hóng cú những đặc điểm về cấu trỳc và tớnh năng kỹ thuật khỏc nhau. Tuy nhiờn cỏc tinh thể FGPA của Xilinx và Altera được đặt ở mức đồng cấp với nhau về tớnh năng kỹ thuật và giỏ cả. Mọi dự ỏn phỏt triển ứng dụng thực tế trờn cơ sở FPGA lấy riờng từ một trong hai hóng này đều cú thể triển khai cú kết quả. Đặc biệt cỏc FPGA của Xilinx cú phần phự hợp hơn trong thực tế hoỏ cỏc dự ỏn tạo lập thiết bị xử lý tớn hiệu và cỏc mạch dịch chuyển nhanh.
Sau đõy là cỏc họ FPGA của Xilinx
Cỏc họ cũ XC3000, XC4000, XC5200 Cụng nghệ cũ 0.5àm, 0.35àm and 0.25àm. Cỏc họ thực thi cao Virtex (0.22àm) Virtex-E, Virtex-EM (0.18àm) Virtex-II, Virtex-II PRO (0.13àm) Virtex-4 (0.09àm)
Họ giỏ thành thṍp
Spartan/XL – derived from XC4000 Spartan-II – derived from Virtex Spartan-IIE – derived from Virtex-E
Spartan-3
Cựng với cỏc thiết bị FPGA hóng Xilinx cũn đưa ra bộ cụng cụ phỏt triển nghiờn cứu, thiết kế và ứng dụng FPGA bao gồm cỏc cụng cụ mụ tả cấu trỳc chức năng bờn trong FPGA, cụng cụ nạp cấu hỡnh thiết kế và lắp rỏp trờn mạch in..v..v...Cỏc cụng cụ này được tớch hợp bờn trong mụi trường phần mềm tớch hợp (ISE).
2.3.1 Mụ tả khỏi quỏt về ISE
ISE (Integrate Software Environment) - mụi trường phần mềm tớch hợp - là một bộ phần mềm thiết kế của Xilinx. ISE cho phộp tạo ra cỏc sản phẩm thiết kế thụng qua việc nhập cỏc thiết kế vào thiết bị chương trỡnh hoỏ của Xilinx.
ISE cho phộp cú thể lựa chọn một hoặc nhiều phương ỏn thiết kế khỏc nhau bao gồm:
- Thiết kế bằng ngụn ngữ mụ tả phần cứng HDL (VHDL,Verilog
HDL, ABEL)
- Thiết kế dưới dạng sơ đồ cổng Logic (Schematic)