Ngày nay ngành công nghệ chế tạo phần cứng luôn có những đột phá không ngừng. Từ các mạch điện đơn giản đến các mạch số, mạch tích hợp, kiến trúc mạch trở nên ngày một phức tạp hơn. Nhờ những ưu điểm hơn hẳn so với các phương pháp phân tích, mô hình hoá, thiết kế mạch số kiểu truyền thống mà phương pháp thiết kế mạch sử dụng các ngôn ngữ mô tả phần cứng (HDL Hardware Description Languages) đang trở thành một phương pháp thiết kế các hệ thống điện tử số phổ biến trên toàn thế giới. Chính vì lý do đó mà tôi lựa chọn đề tài “Thiết kế mạch xử lý tín hiệu sử dụng VHDL” làm đồ án tốt nghiệp. Nội dung của đồ án gồm 3 chương:Chương 1: Tổng quan về thiết bị logic khả trình.Chương 2: Ngôn ngữ mô tả phần cứng.Chương 3: Thiết kế một số bộ mã sử dụng VHDL ứng dụng trong viễn thông.Trong khuôn khổ phạm vi của đồ án tôi xin giới thiệu một loại ngôn ngữ mô tả phần cứng đó là VHDL (Very high speed intergrated circuit Hardware Description Language), loại ngôn ngữ chủ yếu được sử dụng để mô tả phần cứng trong công nghệ CPLD, FPGA, ASIC,…Mục tiêu của đồ án là nghiên cứu, thiết kế một số bộ mã ứng dụng trong viễn thông trên nền tảng các thiết bị logic khả trình sử dụng VHDL. Một số bộ mã được ứng dụng nhiều trong viễn thông như mã Hamming, mã Manchester hay mã HDB3,…Đây là những loại mã đã được phát triển và cho thấy vai trò to lớn trong viễn thông. Chính vì thế mà trong đồ án tôi sẽ đi sâu tìm hiểu nguyên tắc của từng loại mã và trên cơ sở đó thiết kế chúng bằng ngôn ngữ VHDL.
Trang 1LỜI NÓI ĐẦU
Cùng với sự tiến bộ của khoa học và công nghệ, các thiết bị điện tửđang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quảcao trong hầu hết các lĩnh vực kinh tế, kỹ thuật cũng như đời sống xã hội.Vấn đề xử lý tín hiệu trong các thiết bị điện tử hiện đại đều dựa trên cơ
sở nguyên lý số Bởi vậy việc hiểu sâu sắc về điện tử số là điều không thểthiếu được đối với kỹ sư điện tử ngày nay Nhu cầu hiểu biết về kỹ thuật sốkhông phải chỉ riêng đối với các kỹ sư điện tử mà còn đối với nhiều cán bộ
kỹ thuật chuyên ngành khác có sử dụng các thiết bị điện tử
Ngày nay ngành công nghệ chế tạo phần cứng luôn có những đột phákhông ngừng Từ các mạch điện đơn giản đến các mạch số, mạch tích hợp,kiến trúc mạch trở nên ngày một phức tạp hơn Nhờ những ưu điểm hơnhẳn so với các phương pháp phân tích, mô hình hoá, thiết kế mạch số kiểutruyền thống mà phương pháp thiết kế mạch sử dụng các ngôn ngữ mô tảphần cứng (HDL - Hardware Description Languages) đang trở thành mộtphương pháp thiết kế các hệ thống điện tử số phổ biến trên toàn thế giới
Chính vì lý do đó mà tôi lựa chọn đề tài “Thiết kế mạch xử lý tín hiệu sử dụng VHDL” làm đồ án tốt nghiệp Nội dung của đồ án gồm 3 chương:
Chương 1: Tổng quan về thiết bị logic khả trình
Chương 2: Ngôn ngữ mô tả phần cứng
Chương 3: Thiết kế một số bộ mã sử dụng VHDL ứng dụng trong viễnthông
Trong khuôn khổ phạm vi của đồ án tôi xin giới thiệu một loại ngônngữ mô tả phần cứng đó là VHDL (Very high speed intergrated circuitHardware Description Language), loại ngôn ngữ chủ yếu được sử dụng để
mô tả phần cứng trong công nghệ CPLD, FPGA, ASIC,…
Trang 2Mục tiêu của đồ án là nghiên cứu, thiết kế một số bộ mã ứng dụngtrong viễn thông trên nền tảng các thiết bị logic khả trình sử dụng VHDL.Một số bộ mã được ứng dụng nhiều trong viễn thông như mã Hamming,
mã Manchester hay mã HDB3,…Đây là những loại mã đã được phát triển
và cho thấy vai trò to lớn trong viễn thông Chính vì thế mà trong đồ án tôi
sẽ đi sâu tìm hiểu nguyên tắc của từng loại mã và trên cơ sở đó thiết kếchúng bằng ngôn ngữ VHDL
Đây là một lĩnh vực rất rộng và đa dạng nên chắc chắn không tránhkhỏi các sai sót Tôi kính mong nhận được sự đóng góp, nhận xét quý báucủa các thầy, các bạn và những ai quan tâm tới lĩnh vực này
Trang 3CHƯƠNG 1 TỔNG QUAN VỀ THIẾT BỊ LOGIC KHẢ TRÌNH
1.1 GIỚI THIỆU CHUNG
Các mạch kỹ thuật số tổ hợp và tuần tự đã được phát triển từ lâu Theotruyền thống, thiết kế số là quá trình thiết kế và đạt được các mạch điệntheo phương pháp thủ công bằng cách sử dụng các công cụ nhập sơ đồmạch Quá trình này có nhiều bất lợi, đã và đang được nhanh chóng thaythế bằng các phương pháp mới Các mạch tích hợp (IC - Integrated Circuit)
số rất đa dạng từ thực hiện các phép tính kỹ thuật số căn bản đến các chứcnăng phức tạp như: bộ ghép kênh, bộ tách kênh, bộ cộng, bộ so sánh, bộ mãhoá, bộ giải mã, bộ đếm,…Các IC số này có chức năng cố định, tức là mỗi
IC thực hiện một chức năng riêng biệt Những linh kiện này được sản xuấtvới một số lượng lớn để đáp ứng nhu cầu ứng dụng rất đa dạng và phongphú Để thiết kế một mạch điện, nhà thiết kế có thể chọn từ các IC có sẵnphù hợp nhất cho mạch điện Phần thiết kế này có thể được chỉnh sửa đểđáp ứng các yêu cầu chuyên biệt của những linh kiện này
Ưu điểm của phương pháp này là:
+ Chi phí phát triển thấp
+ Vận hành nhanh xung quanh bản thiết kế
+ Tương đối dễ thử nghiệm các mạch
Nhược điểm:
+ Các yêu cầu về kích thước trong bảng mạch lớn
+ Yêu cầu về điện lớn
+ Thiếu tính bảo mật do các bảng mạch có thể bị sao chép
+ Các yêu cầu về chi phí bổ sung, khoảng trống, điện,…cần thiết để
Trang 4chỉnh sửa bản thiết kế hoặc trình bày các tính năng khác lớn.
Những người thiết kế hệ thống luôn phải tranh đua tạo nên càng nhanhcàng tốt các sản phẩm có giá thành hợp lý trong môi trường cạnh tranh cao
Để đạt được điều này, những người thiết kế đã và đang hướng đến việc sửdụng hệ phương pháp thiết kế từ trên - xuống bao gồm cả việc sử dụngngôn ngữ mô tả phần cứng và phần mềm tổng hợp, cùng với quá trình môphỏng Sản phẩm có thể là một thiết bị điện tử nào đó chứa các mạch tíchhợp ứng dụng chuyên biệt (ASIC - Aplication Specific IC) hoặc dải cổnglập trình được dạng trường (FPGA - Field Programmable Gate Array).Trong những năm gần đây, nhiều người thiết kế đã chấp nhận hệ phươngpháp thiết kế từ trên - xuống cho dù hệ phương pháp này làm cho họ xa rờiviệc thiết kế mức logic và mức transistor để đến với lập trình trừu tượng
Để khắc phục những nhược điểm của thiết kế bằng cách sử dụng các IC
có chức năng cố định, ASIC đã được phát triển Các ASIC đã được thiết kế
để đáp ứng các yêu cầu chuyên biệt của một mạch và được giới thiệu bởimột nhà sản xuất IC Các thiết kế này quá phức tạp không thể thực hiệnbằng cách sử dụng các IC chức năng cố định được
Ưu điểm của phương pháp này là:
+ Giảm thiểu được kích thước thông qua việc sử dụng mức tích hợpcao
+ Giảm thiểu được yêu cầu về điện, về chỗ
+ Nếu được sản xuất theo một quy mô lớn thì chi phí giảm đáng kể.+ Việc thiết kế được thực thi dưới dạng này thì hoàn toàn không thể saochép được
Nhược điểm:
+ Chi phí phát triển ban đầu có thể cực kỳ lớn
+ Các phương pháp thử nghiệm phải được phát triển và điều này làmgia tăng chi phí và công sức
Trang 5Có một phương pháp khác có các ưu điểm của hai phương pháp trên là
sử dụng các thiết bị logic khả trình (PLD - Programmable Logic Device).Một thiết bị logic có thể lập trình là một IC mà người dùng có thể cấu hình
để chúng có khả năng thực thi các chức năng logic như mong muốn Đây làmột vi mạch tích hợp mật độ lớn (LSI - Large Scale Integrated) có chứamột cấu trúc “bình thường” và cho phép nhà thiết kế tạo tuỳ biến cho nó đểdùng cho bất kỳ ứng dụng đặc biệt nào, tức là nó có thể được người dùnglập trình để thực hiện chức năng cần thiết cho ứng dụng của họ
Các PLD có các ưu điểm sau:
+ Chu kỳ thiết kế ngắn
+ Chi phí phát triển thấp
+ Giảm thiểu được yêu cầu khoảng trống trên bảng mạch
+ Giảm thiểu được yêu cầu về điện
+ Bảo đảm tính bảo mật của thiết kế
+ Mạch được kết chặt lại
+ Tốc độ đảo mạch nhanh hơn
+ Mật độ tích hợp cao
+ Chi phí sản xuất với số lượng lớn thấp
PLD cũng cho phép nhà thiết kế có nhiều phương tiện linh động hơn đểthí nghiệm với các bản thiết kế bởi vì chúng có thể được lập trình lại trongvài giây
Với nhiều ưu điểm như vậy nên hiện nay có một số lượng lớn các PLDđược các nhà sản xuất IC tạo ra với nhiều tính năng đa dạng và nhiều tuỳchọn có sẵn để nhà thiết kế mạch có thể sử dụng một cách phổ biến Cấutrúc và các tính năng đa dạng khác của các PLD như bộ nhớ chỉ đọc (ROM
- Read Only Memory), các mảng logic lập trình (PLA - ProgrammableLogic Array), logic mảng có thể lập trình (PAL - Programmable ArrayLogic), thiết bị logic có thể lập trình đơn giản (SPLD - Simplex PLD) và
Trang 6các FPGA sẽ được đề cập.
Việc đưa vào các ngôn ngữ mô tả phần cứng chuẩn công nghiệp vàcông cụ tổng hợp thương mại có sẵn đã giúp củng cố hệ phương pháp thiết
kế mang tính cách mạng này Một số thuận lợi là:
+ Khả năng sản xuất tăng dẫn đến các chu kỳ phát triển với nhiều đặctrưng hơn của sản phẩm sẽ ngắn hơn và làm giảm thời gian đưa ra thịtrường
+ Giảm các chi phí kỹ thuật không lặp lại
+ Cho phép tái sử dụng thiết kế
+ Tăng tính linh động đối với những thay đổi thiết kế
+ Thăm dò nhanh hơn các kiến trúc thay thế
+ Thăm dò nhanh hơn các thư viện công nghệ thay thế
+ Cho phép sử dụng phần mềm tổng hợp để rà soát một cách nhanhchóng khoảng diện tích thiết kế và định thời, tự động tạo các mạch điện khảkiểm tra
+ Kiểm tra, xác minh thiết kế tốt hơn và dễ dàng hơn
1.2 THIẾT BỊ LOGIC KHẢ TRÌNH
Các vi mạch chuẩn bán sẵn trên thị trường thường có chức năng cố định
do những nhà sản xuất định nghĩa Trái ngược với các linh kiện trên, ASIC
và FPGA đều là những loại vi mạch mà chức năng của chúng không được
ấn định bởi nhà sản xuất Chức năng của ASIC và FPGA sẽ được địnhnghĩa bởi người thiết kế cho từng ứng dụng cụ thể Trong trường hợp tổngquát, ASIC sẽ yêu cầu quá trình chế tạo sau cùng để tạo ra chức năng theoyêu cầu của khách hàng, còn FPGA thì không
ASIC là linh kiện được sản xuất chưa hoàn chỉnh bởi nhà cung cấpASIC ở dạng tổng quát Quá trình chế tạo ban đầu này rất phức tạp, mấtnhiều thời gian và là phần đắt tiền trong toàn bộ quá trình sản xuất Kết quảcủa quá trình chế tạo ban đầu sẽ là những vi mạch silic có các dải transistor
Trang 7chưa nối với nhau.
Quá trình chế tạo sau cùng là quá trình kết nối các transistor với nhau,
sẽ được hoàn tất khi người thiết kế vi mạch có một thiết kế cụ thể và ngườinày muốn thực hiện điều này trong vài tuần và gọi đây là thời gian làm thayđổi hoàn toàn Có hai loại linh kiện ASIC, đó là dải cổng và cell chuẩn.Dải cổng gồm hai loại là dải cổng được chia kênh hay có kênh và dảicổng không có kênh Dải cổng có kênh được sản xuất với một hoặc vàihàng cell cơ bản ngang qua vi mạch silic Một cell cơ bản bao gồm một sốtransistor Các kênh giữa những hàng cell cơ bản được sử dụng để liên kếtnối các cell cơ bản trong thời gian của quá trình sản xuất sau cùng theo yêucầu của khách hàng Dải cổng không có kênh được sản xuất với rất nhiềucell cơ bản ngang qua vi mạch silic và không có các kênh chuyên dụng choviệc liên kết nối Các dải cổng chứa từ vài ngàn cổng tương đương đến vàitrăm ngàn cổng tương đương hoặc hơn Thư viện cell do những nhà cungcấp dải cổng hỗ trợ sẽ bao gồm: các cổng logic cơ bản, thanh ghi, macrocứng và macro mềm Các macro cứng và macro mềm thường có độ phứctạp của mạch tích hợp mật độ trung bình (MSI - Medium Scale Integrated)
và LSI, chẳng hạn như mạch ghép kênh, mạch so sánh và mạch đếm.Macro cứng được định nghĩa bởi nhà sản xuất dưới dạng các mẫu cell cơbản Các macro mềm được đặc trưng hoá bởi người thiết kế, thí dụ bằngcách chỉ ra độ rộng của một mạch đếm cụ thể
Các linh kiện cell chuẩn không có khái niệm về cell cơ bản và không cóthành phần nào được sản xuất trước trên vi mạch silic Nhà sản xuất tạo racác mặt nạ tuỳ thuộc khách hàng cho từng giai đoạn của quá trình sản xuất
vi mạch, có nghĩa là silic được tận dụng hiệu quả hơn nhiều so với các dảicổng Nhà sản xuất cung cấp các thư viện macro cứng và macro mềm chứanhững phần tử mà có độ phức tạp của LSI và tích hợp mật độ rất lớn (VLSI
- Very Large Scale Integrated), chẳng hạn như bộ điều khiển, bộ vi xử lí,
Trang 8đơn vị logic và số học (ALU - Arithmetic and Logic Unit) Ngoài ra, thưviện macro mềm còn chứa nhiều mạch chức năng như bộ nhớ truy nhậpngẫu nhiên (RAM - Random Access Memory) mà ta không thể thực hiệnmột cách có hiệu quả trong các linh kiện dải cổng; mạch chức năng ROMthường được thực hiện hiệu quả hơn trong các mẫu cell cơ bản.
Vi mạch lập trình PLD là loại cấu kiện điện tử có nhiều ưu điểm vàhiện nay đang được phát triển rất mạnh
1.2.1 Thiết bị logic khả trình đơn giản
Đây là loại thiết bị số có nhiều ưu điểm và cũng đã được phát triển rấtmạnh Về nguyên lý, chúng có cấu tạo rất giống với bộ nhớ chỉ đọc lậptrình được (PROM - Programmble Read Only Memory) Việc lập trình choSPLD có thể được thực hiện bằng các công nghệ khác nhau, dựa trên cơ sởthực hiện các kết nối bằng cách sử dụng cầu chì hoặc chuyển mạch MộtSPLD, được tạo thành bằng một số mảng cổng AND, OR, XOR hoặc cảcác Triger, có thể thực hiện nhiều hàm Boolean khác nhau
Các SPLD đều có cấu tạo dựa trên một trong hai dạng cấu trúc chính:mảng logic khả trình PLA và logic mảng khả trình PAL
Mảng PLA Mảng PAL
Các đầu vào Các đầu vào
Các đầu ra
Hình 1.1 So sánh giữa PLA và PAL
Các đầu ra
Trang 9Thành phần cơ bản của PLA là một mảng AND và một mảng OR lậptrình được Mỗi mảng AND, OR gồm các hàng và các cột liên kết vớinhau Tại mỗi điểm giao giữa hàng và cột, có một cầu chì Khi cầu chìđóng, tại điểm đó có kết nối giữa hàng và cột; khi cầu chì ngắt, tại đókhông có kết nối Việc đóng ngắt cầu chì được thực hiện bằng phần mềm(do lập trình viên hoặc sử dụng công cụ lập trình trên hệ thống) Cấu trúcPLA tạo ra sự tổ hợp tùy ý giữa các cổng AND và OR, mật độ logic caonhưng tốc độ chậm, số lượng cầu chì lớn
PAL dùng để mô tả một họ thiết bị logic có khả năng lập trình để thựchiện các các cổng logic trong mạch số được giới thiệu bởi MonolithicMemories Inc (MMI) vào năm 1978 PAL bao gồm có lõi PROM cộngthêm cổng logic đầu ra
Các thiết bị logic mảng chung (GAL - Generic Array Logic) là mộtkiểu PAL cấu hình khác GAL được giới thiệu bởi Lattice Semiconductorvào năm 1985 GAL là một loại vi mạch lập trình được có thể thay thế chocác vi mạch 74xx và 40xx Thiết bị này có các tính chất giống như PAL,nhưng có thể xóa và lập trình lại Do đó chúng ta có thể thay đổi thiết kếmột cách linh hoạt và mềm dẻo, mật độ tích hợp của vi mạch cao hơn.Ngoài ra GAL còn giúp cho chúng ta thu gọn kích thước của bản mạchthiết kế, tăng khả năng giữ bản quyền GAL có thể lập trình bởi bộ nạptương thích hoặc nạp trực tiếp trên mạch điện Một dạng tương tự GAL làPEEL (Programmable Electrically Erasable Logic) đã được phát triển bởiInternational CMOS Technology (ICT) Corporation Hiện nay GAL phổbiến đó là GAL16V8 và GAL20V8
1.2.2 Thiết bị logic khả trình phức hợp
Thiết bị logic khả trình phức hợp (CPLD - Complex PLD) có mật độlogic cao hơn so với các PLD đơn giản như đã xét ở trên CPLD bao gồmnhiều mạch logic, mỗi mạch có thể coi là một SPLD Trong một mạch đơn
Trang 10chỉ thực hiện các chức năng logic đơn giản Các chức năng logic phức tạphơn cần số lượng khối nhiều hơn, sử dụng ma trận liên kết chung giữa cáckhối để tạo kết nối CPLD thường dùng để điều khiển ghép cổng phức hợp
ở tốc độ rất cao
Hình 1.2 Kiến trúc của CPLD
CPLD có cấu trúc đồng nhất gồm nhiều khối chức năng được kết nối
với nhau thông qua một ma trận kết nối trung tâm Mỗi khối chức năng
gồm có một khối logic - gồm các cổng logic AND và OR sắp xếp giốngPLA hoặc PAL, cho phép thực hiện các hàm logic tổ hợp và nhiều khốiMacrocell (MC) có chứa tài nguyên là các Triger cho phép xây dựng cácthanh ghi và mạch tuần tự Phần lõi bên trong của CPLD được nối ra bênngoài thông qua các khối vào ra (I/O - Input/Output) cho phép thiết lậpchức năng cho các chân IC có chức năng vào hoặc ra hoặc vừa là chân vàovừa là chân ra, ngoài ra còn có thể thiết lập các chân I/O này làm việc ở cácmức logic khác nhau, có điện trở kéo lên hoặc kéo xuống
Với cấu trúc đồng nhất, giá thành rẻ, tính năng khá mạnh, dễ sử dụng,CPLD đã và đang được sử dụng rất rộng rãi trong thực tế, giúp cho nhà sảnxuất phát triển nhanh sản phẩm của mình với giá thành rẻ Đặc biệt hiện
Trang 11nay các hãng đã phát triển các họ CPLD với tính năng rất mạnh, công suấttiêu thụ thấp, chúng đang được sử dụng rất nhiều để phát triển các sảnphẩm điện tử, viễn thông, công nghệ thông tin, nhất là trong các thiết bịcầm tay, di động,…
Trong thực tế có rất nhiều loại CPLD khác nhau, của các hãng khácnhau, và đã được phát triển với nhiều chủng loại, thế hệ CPLD khác nhau.Cấu tạo, dung lượng, tính năng, đặc điểm, ứng dụng,…của mỗi loại CPLDcũng rất khác nhau Trong đồ án không đi sâu trình bày cấu tạo cụ thể củacác họ CPLD, mà chỉ trình bày kiến trúc chung đơn giản nhất của CPLD.Khi sử dụng cụ thể loại CPLD nào, người thiết kế nên tham khảo các tàiliệu khác, nhất là tham khảo các tài liệu kỹ thuật được cung cấp kèm theolinh kiện do các hãng đưa ra Các hãng nổi tiếng trên thế giới đang sở hữu,phát triển, cung cấp các loại linh kiện CPLD là Xilinx, Altera, Actel,…
1.2.3 Mảng cổng lập trình được dạng trường
FPGA là linh kiện được sản xuất hoàn chỉnh nhưng vẫn duy trì tính độclập với thiết kế Mỗi nhà sản xuất FPGA đều được đăng ký độc quyền cáckiến trúc FPGA của mình
Hình 1.3 Kiến trúc chung của FPGA
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Phần tửlogic
Khốivào/ra
Khốivào/ra
Trang 12Tuy nhiên, những kiến trúc này sẽ bao gồm một số khối logic lập trìnhđược và những khối này được nối với nhau bằng các ma trận chuyển mạchlập trình được Để cấu hình một linh kiện cho một chức năng cụ thể, những
ma trận chuyển mạch này được lập trình để định tuyến các tín hiệu giữanhiều khối logic riêng rẽ FPGA có cấu trúc và hoạt động phức tạp hơnCPLD Nó có thể thực hiện những chức năng phức tạp ưu việt hơn CPLD.Năm 1985, công ty Xilinx đưa ra ý tưởng hoàn toàn mới, đó là kết hợp thờigian hoàn thành sản phẩm và khả năng điều khiển được của PLD với mật
độ và ưu thế về chi phí của GateArray; từ đó, FPGA ra đời Hiện nay,Xilinx vẫn là nhà sản xuất vi mạch FPGA số một trên thế giới
Cấu trúc FPGA đơn giản gồm các tế bào logic, các khối cách đều nhau,liên kết nhờ các đường kết nối có thể thay đổi được theo yêu cầu của ngườithiết kế Nghĩa là người thiết kế có quyền thiết kế, lập trình và thay đổimạch điện Hiện nay, FPGA có mật độ khá cao, lên tới hàng trăm tỷ cổng
và cấu trúc cũng đa dạng, phức tạp hơn Nhiều chức năng phức tạp đã đượctích hợp sẵn để tăng hiệu quả sử dụng FPGA Ví dụ như ngoài những khối
tế bào logic, nhiều họ FPGA đã được tích hợp thêm các khối chức năngnhư các bộ nhân cứng, khối nhớ, thậm chí cả một bộ vi xử lí mạnh,…Ví dụcấu trúc bên trong của một tế bào logic trên hình 1.4
Có hai loại FPGA cơ bản: loại lập trình lại được, dựa trên công nghệ bộnhớ tĩnh truy nhập ngẫu nhiên (SRAM - Static Random Access Memory)
và loại lập trình một lần (OTP - One Time Programmable)
• Loại lập trình lại được:
Trang 13Hình 1.4 Cấu trúc của logic cell đơn giản
Hai dạng này khác nhau về quy trình thực hiện tế bào logic và cơ chếđược sử dụng để tạo kết nối trong thiết bị
Vi mạch FPGA lập trình một lần sử dụng phương pháp bẻ cầu chì (kếtnối được tạo ra bằng cách đóng cầu chì) để tạo kết nối tạm thời trong vimạch, do đó không cần SPROM hoặc các phương tiện khác để nạp chươngtrình vào FPGA Tuy nhiên, mỗi lần thay đổi thiết kế, phải bỏ hoàn toàn vimạch cũ đi Tế bào logic OTP tương tự như PLD với các cổng và cácTriger định trước
Dạng FPGA quan trọng hơn và được dùng phổ biến hơn cả là dạng lậptrình lại được, dựa trên SRAM Trên thực tế, FPGA SRAM được lập trìnhlại mỗi khi bật nguồn, vì FPGA là dạng vi mạch nhớ tạm thời Do đó, mỗi
vi mạch FPGA đều cần có một bộ nhớ PROM nối tiếp hoặc một bộ nhớ hệthống Trong tế bào logic SRAM, thay vì các cổng thông thường, người ta
sử dụng bảng ánh xạ Bảng này xác định các giá trị đầu ra dựa trên các giátrị đầu vào, sử dụng để xây dựng các hàm logic tổ hợp Các ô nhớ SRAMcũng được sử dụng để điều khiển kết nối
Trang 141.2.4 So sánh giữa CPLD và FPGA
- Cấu trúc theo mảng các hạng tích - Cấu trúc dựa vào LUT
- Mảng kết nối trung tâm - Ma trận kết nối 2 chiều X-Y
- Cấu hình được lưu lại khi mất
điện và không đổi trong quá trình
hoạt động
- Cấu hình nạp vào SRAM, khi mấtđiện sẽ không còn, cần có bộ nhớcấu hình PROM, cấu hình có thểđược nạp động trong quá trình hoạtđộng
- Cấu trúc đồng nhất - Cấu trúc không đồng nhất
- Nhiều tài nguyên: Vòng khoá phatrễ (DLL - Delay Locked Loop), bộnhớ, các bộ nhân,
- Ứng dụng: mã hoá và giải mã
logic, các máy trạng thái hay các
giao diện bus chuẩn (SPI, I2C,
SMBus ), ưu điểm nổi bật khi
thiết kế các mạch logic nhiều đầu
vào
- Ứng dụng: Giao diện các thànhphần ngoại vi (PCI - PeripheralComponent Interface), giao tiếp nốitiếp tốc độ cao và các bộ vi xử lýnhúng, ưu thế nổi bật khi thiết kếphức tạp, cần nhiều tài nguyên
1.3 QUY TRÌNH THIẾT KẾ CHO CPLD/FPGA
Trong thực tế có rất nhiều hãng điện tử trên thế giới cung cấp các sảnphẩm PLD và bộ công cụ phần mềm thiết kế đi kèm Mỗi họ CPLD, FPGAcủa các hãng có những quy trình thiết kế khác nhau dành cho chúng, tuynhiên về cơ bản chúng vẫn có quy trình thiết kế chung nhất định
Không mất tính tổng quát, để tiếp cận dễ dàng hơn, phần tiếp theo sẽtrình bày quy trình thiết kế cho CPLD/FPGA được lấy ví dụ, cụ thể hoá cho
Trang 15CPLD/FPGA của hãng Xilinx - Hãng cung cấp sản phẩm PLD số một thếgiới hiện nay - sử dụng bộ công cụ phần mềm thiết kế ISE (IntegratedSoftware Environment).
1.3.1 Yêu cầu chung khi thiết kế với CPLD/FPGA
1.3.1.1 Chọn vi mạch CPLD hoặc FPGA phù hợp
Khi phát triển các hệ thống số sử dụng CPLD/FPGA, bước đầu tiên cầnđược thực hiện là phân tích bài toán, lựa chọn vi mạch CPLD hoặc FPGAphù hợp Việc chọn được vi mạch, công nghệ phù hợp nhất cho các tiêuchuẩn thiết kế, được tiến hành theo các yêu cầu sau:
+ Mật độ: là mật độ logic dự tính, đặc trưng bởi khái niệm "số lượng
cổng"
+ Số lượng thanh ghi: Phải tính được số thanh ghi cần cho bộ đếm, máy
trạng thái, thanh ghi và bộ chốt Số lượng macrocell trong vi mạch tối thiểuphải bằng số thanh ghi cần có
+ Số lượng chân vào/ra: Xác định vi mạch cần bao nhiêu đầu vào, đầura
+ Yêu cầu về tốc độ: Tuyến tổ hợp nhanh nhất sẽ xác định t pd (trễ
truyền trong vi mạch, tính theo ns)
+ Đóng vỏ: Phải xác định vi mạch cần gọn nhất hay chỉ sử dụng dạng
gói phẳng vuông (QFP - Quad Flat Pack) thông thường Hoặc vi mạch thiết
kế thuộc dạng có lắp chân cắm, trong trường hợp này là giá mang vi mạchchân bằng chất dẻo (PLCC - Plastic Leaded Chip Carrier)
+ Công suất thấp: Phải xác định sản phẩm sẽ sử dụng nguồn pin hay
năng lượng mặt trời, thiết kế có yêu cầu công suất tiêu thụ thấp hay không,vấn đề tổn hao nhiệt có quan trọng hay không
+ Chức năng cấp hệ thống: Phải xác định bo mạch có bao gồm nhiều vi
mạch đa mức điện áp hay không, giữa các vi mạch có phải chuyển mức haykhông, có yêu cầu sửa dạng xung đồng bộ hay không, có yêu cầu giao tiếp
Trang 16giữa bộ nhớ và bộ vi xử lí hay không.
1.3.1.2 Chọn giải pháp cấu hình cho CPLD/FPGA
Lập trình ngay trên hệ thống
Các CPLD và FPGA của các hãng nói chung, của Xilinx nói riêng cóthể được lập trình ngay trên hệ thống thông qua giao thức JTAG (Joint TestAdvisory Group) đã được tích hợp sẵn trong IC Người thiết kế sử dụngcáp nạp để nạp cấu hình cho CPLD hoặc FPGA Xilinx đưa ra một sốchuẩn cáp nạp như sau:
+ MultiLINX: Cáp nạp dựa trên chuẩn giao tiếp nối tiếp USB hoặcRS232, cáp nạp này có tốc độ truyền trong dải rộng và giao diện có điện ápđiều chỉnh được để phù hợp với việc giao tiếp với các hệ thống và các chânI/O hoạt động ở các mức điện áp khác nhau 5VDC; 3,3VDC; 2,5VDC
+ Parallel Cable IV: Cáp nạp sử dụng cổng giao tiếp song song của
máy tính, được phát triển để thay thế cho chuẩn cáp nạp Parallel Cable III
và cho phép tăng tốc độ lên hơn 10 lần và hỗ trợ cho tất các các vi mạch sửdụng mức điện áp I/O từ 5VDC xuống 1,5VDC Hiện nay chuẩn cáp nạpnày được dùng phổ biến hơn cả
Lập trình bên ngoài
Các CPLD và FPGA của Xilinx cũng có thể được lập trình bên ngoàibởi bộ lập trình vi mạch HW130 của Xilinx cũng như các bộ lập trình củacác nhà phát triển khác Điều này cũng thuận tiện cho việc sử dụng các vimạch được lập trình trước trong thời gian sản xuất
Cấu hình của CPLD được nạp vào FLASH nên khi mất điện cấu hìnhkhông bị mất đi, trong khi đó cấu hình khi hoạt động của FPGA được ghivào SRAM nên sẽ mất đi khi mất điện, vì vậy khi sử dụng FPGA cần kếthợp với PROM lưu cấu hình phù hợp, mỗi khi bật nguồn, cấu hình sẽ nạp
tự động từ PROM vào FPGA Có thể sử dụng PROM nối tiếp hoặc songsong, tuy nhiên thì loại PROM nối tiếp hay được sử dụng hơn cả Khi thiết
Trang 17kế cần chọn loại PROM có dung lượng phù hợp với mật độ của các loạiFPGA khác nhau.
1.3.1.3 Chọn công cụ phần mềm phù hợp
Xilinx đã cung cấp các công cụ thiết kế điện tử hoàn chỉnh, cho phépthực hiện thiết kế trên các thiết bị logic khả trình của Xilinx Các công cụnày kết hợp công nghệ tiên tiến với giao diện đồ họa linh hoạt, dễ sử dụng
để người thiết kế có được thiết kế tối ưu Bộ công cụ phần mềm hiện đangđược sử dụng rộng rãi là ISE Hiện nay có rất nhiều phiên bản khác nhaucủa ISE được Xilinx cung cấp nhưng phiên bản được sử dụng trong đồ án
là Xilinx ISE 7.1i
Ngoài ra Xilinx còn phát triển các bộ công cụ phần mềm tiện ích khácnhư System Generator hỗ trợ cho các thiết kế bộ xử lí tín hiệu số (DSP -Digital Signal Processor) hay bo mạch phát triển nhúng (EDK - EmbblededDevelopment Kit) hỗ trợ cho các thiết kế nhúng ISE được dùng kết hợpvới phần mềm mô phỏng ModelSim của Mentor Graphics phiên bản XEđược phát triển riêng hỗ trợ cho các họ CPLD/FPGA của Xilinx Đây là cácphần mềm hỗ trợ rất đắc lực cho quá trình thiết kế
1.3.2 Lưu đồ thiết kế cho CPLD của Xilinx
Trang 18Quá trình thiết kế cho CPLD chủ yếu là thực hiện trên các công cụ phầnmềm, lưu đồ thiết kế chung cho CPLD (Ví dụ sử dụng phần mềm ISE) nhưhình vẽ 1.5 Các bước cụ thể như sau:
Trang 19nguyên lý Sử dụng HDL Dưới dạng sơ đồ
Chức năng mô phỏng của ModelSim XE
Dùng công cụ tổng hợp của Xilinx
như XST
Biên dịch Phân bố bản thiết kế vào vi mạch Định vị và định tuyến kết nối
Phân tích định thời tĩnh Sử dụng ModelXim XE
Tải chương trình
Hình 1.5 Lưu đồ thiết kế cho CPLD
- Nhập thiết kế sử dụng HDL Người thiết kế có thể sử dụng chươngtrình soạn thảo để thực hiện việc mô tả toàn bộ bản thiết kế của mình dướidạng HDL nào đó mà công cụ thiết kế có thể tổng hợp được Có rất nhiềuphương pháp mô tả, mức độ trừu tượng khác nhau khi thiết kế, mỗi cách
mô tả khác nhau có thể tạo ra một cấu trúc mạch khác nhau trong CPLDmặc dù chúng có cùng chức năng
Do đó người thiết kế cần thực hiện phân tích bài toán, tìm hiểu tàinguyên, cấu trúc của CPLD, yêu cầu về thời gian thiết kế để sử dụng kiểu
mô tả
- Nhập thiết kế dưới dạng sơ đồ Công cụ thiết kế còn cho phép nhập
Trang 20thiết kế vào dưới dạng sơ đồ mà điển hình là đồ hình trạng thái.
Việc nhập thiết kế rất linh hoạt, có thể sử dụng cả ba cách trên để thựchiện các phần khác nhau của thiết kế
+ Kiểm tra, mô phỏng thiết kế
Thực hiện kiểm tra, mô phỏng chức năng hoạt động của thiết kế HDL
đã tạo ra ở trên Các công cụ thiết kế đều hỗ trợ việc mô phỏng chức năngcủa bản thiết kế HDL theo mô hình hoạt động, mức độ mô phỏng này độclập với loại CPLD đã được lựa chọn Bước này có thể không cần phải thựchiện trong khi thiết kế
+ Tổng hợp thiết kế
Sau khi hoàn thành mô phỏng thiết kế, bước tổng hợp tiếp theo cónhiệm vụ chuyển thiết kế dưới dạng file văn bản HDL thành dạng filenetlist, thực hiện mô tả mạch thực ở mức thấp dưới dạng cổng logic và kếtnối giữa chúng với nhau Có thể sử dụng các công cụ tổng hợp của cáchãng khác nhau
- Biên dịch
Bước này nhằm thực hiện kiểm tra thiết kế và đảm bảo netlist phù hợpvới kiến trúc đã chọn, kiểm tra file ràng buộc của người sử dụng để pháthiện các lỗi mâu thuẫn với tham số của vi mạch đã chọn Biên dịch thườngbao gồm các quá trình: tối ưu hoá, biên dịch thành các thành phần vật lýcủa thiết bị, kiểm tra ràng buộc thiết kế
- Phân bố bản thiết kế vào vi mạch
Trang 21Tạo bản phân bố thiết kế tới các tài nguyên cụ thể trong CPLD Nếuthiết kế quá lớn so với thiết bị được chọn, quy trình này không thể hoànthành nhiệm vụ của mình Quá trình phân bố bản thiết kế vào vi mạch cócác tham số ràng buộc của thiết kế, ví dụ như tham số tốc độ, thời gian củathiết kế, và đôi khi quyết định gắn thêm các thành phần logic để đáp ứngcác yêu cầu về thời gian Phân bố bản thiết kế vào vi mạch có khả năngthay đổi thiết kế xung quanh các bảng ánh xạ để tạo khả năng thực hiện tốtnhất cho thiết kế Quy trình này được thực hiện hoàn toàn tự động và cầnrất ít tác động đầu vào từ người sử dụng
- Định vị và định tuyến kết nối
Định vị là quá trình lựa chọn vị trí phù hợp của mỗi khối chức năngtrong thiết kế và đưa các cổng logic của phần đó vào các khối logic hay cácmodul cụ thể trong CPLD trên cơ sở tối ưu việc kết nối và đảm bảo cácràng buộc về thời gian Định tuyến là quá trình tạo liên kết vật lý giữa cáckhối logic Hầu hết các nhà sản xuất cung cấp công cụ định vị và địnhtuyến kết nối tự động cho người sử dụng Ngoài công cụ tự động, ngườithiết kế có thể tự định vị và định tuyến kết nối trong khi thiết kế
+ Mô phỏng có tham số thời gian
Sau bước định vị và định tuyến kết nối, người thiết kế có thể thực hiện
mô phỏng thiết kế ở mức cổng logic đã được định vị và định tuyến trênCPLD, phần mềm sử dụng file cấu hình đã được tạo ra và kết hợp với thưviện về mô hình thời gian của các họ CPLD để thực hiên mô phỏng hoạtđộng của thiết kế mà có tính đến các tham số thời gian trễ, thời gian thiếtlập,…của các cổng logic trong CPLD Bước này rất quan trọng với nhữngthiết kế phức tạp, tốc độ lớn
+ Cấu hình
Gọi chương trình điều khiển việc nạp cấu hình, kết nối thiết bị nạp đếnCPLD và nạp file cấu hình cho CPLD Với CPLD của hãng Xilinx, quá
Trang 22trình lập trình có thể thực hiện ngay trong hệ thống nhờ công cụ JTAGhoặc sử dụng bộ lập trình thiết bị chuyên dùng Khả năng lập trình trên hệthống là ưu điểm của CPLD, cho phép hàn trực tiếp thiết bị lên bo mạch
1.3.3 Lưu đồ thiết kế cho FPGA của Xilinx
Lưu đồ thiết kế cho FPGA cũng tương tự như lưu đồ thiết kế choCPLD, chỉ khác ở bước cuối cùng - bước Cấu hình cho FPGA Ở bước này,đối với FPGA có thêm bước “tạo file bit” tạo ra file "bitstream" để nạp vào
bộ nhớ cấu hình trong FPGA, thường là bộ nhớ tạm thời như SRAM Cácthiết bị SRAM mất toàn bộ thông tin mỗi khi ngắt nguồn, do đó khi cầnthiết phải nạp dòng bit cấu hình này vào trong PROM Mỗi khi thiết bịđược bật nguồn, file cấu hình từ PROM sẽ được nạp tự động vào bộ nhớSRAM của FPGA và FPGA hoạt động theo cấu hình đã được nạp
Cấu hình Tạo file bit Tải chương trình
Hình 1.6 Lưu đồ thiết kế cho FPGA
1.4 CÁC HÃNG SẢN XUẤT
1.4.1 Giới thiệu hãng Xilinx
1.4.1.1 Giới thiệu phần mềm ISE
Phần mềm ISE là môi trường thiết kế hoàn hảo của Xilinx, nó trợ giúpngười thiết kế hầu hết các công cụ cần thiết nhất để có thể hoàn thành một
đề án thiết kế nhanh và hiệu quả nhất ISE tích hợp các công nghệ tiên tiếnnhất mạng lại tính linh hoạt, giao diện người dùng đồ hoạ (GUI - GraphicUser Interface)
Bộ sản phẩm ISE bao gồm các gói phần mềm:
a ISE WebPACK: Đây là gói sản phẩm dùng để phát triển hệ thống
Trang 23một cách dễ dàng nhất vì nó là môi trường thiết kế trực tuyến trên Web vàđược hỗ trợ trực tiếp từ Xilinx ISE WebPACK cho phép người dùng hoànthành bản thiết kế nhanh chóng nhờ sự kết hợp của các thiết kế đầu vàoHDL, các công cụ tổng hợp tiên tiến và khả năng kiểm tra
b ISE BaseX: Đây là gói phần mềm hiệu quả về kinh tế nhất, là môi
trường thiết kế PLD trên máy tính cá nhân linh hoạt và ổn định Nó cungcấp tất cả các khả năng như ISE WebPACK, ngoài ra nó còn được bổ sungnhiều công cụ khác hỗ trợ cho người dùng
c ISE Alliance: Gói phần mềm này phù hợp với môi trường thiết kế có
sẵn của người dùng Nó kết hợp các công cụ hay nhất của Xilinx tạo môitrường thiết kế hoàn chỉnh với tính năng cao hơn ISE BaseX
d ISE Foundation: Đây là gói phần mềm hoàn chỉnh nhất, dễ sử dụng,
tính năng nhiều nhất đồng thời tích hợp các công cụ phân tích, tổng hợp vàcông nghệ kiểm tra sản phẩm với các giải pháp hữu hiệu
1.4.1.2 Giới thiệu các dòng sản phẩm chính của Xilinx
KhốiRAM
Sốchân
Trang 24KhốiRAM
Sốchân
hệ thống
BăngI/O
SốchânXC2C512 (CoolRunner-II - 1.8V) 12000 4 270XCR3512XL (CoolRunner XPLA3 -
3.3V)
Bảng 1.3 Một số sản phẩm của dòng CoolRunner
1.4.2 Giới thiệu hãng Altera
1.4.2.1 Giới thiệu phần mềm MAX + PLUS II
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 nhu 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 vi mạch PLDmột cách trực tiếp Ưu điểm chính của MAX+PLUS II:
+ MAX+PLUS II cung cấp một giao diện sử dụng đồ hoạ phong phú và
Trang 25một hệ thống trợ giúp có tính minh hoạ rất dễ sử dụng cho người dùng Hệthống MAX+PLUS II hoàn chỉnh bao gồm 10 ứng dụng tích hợp trợ giúpngười thiết kế từng bước từ thiết kế đến lập trình IC.
+ Nhiều đặc trưng và các lệnh có thể sử dụng cho nhiều ứng dụngMAX+PLUS II để việc học một ứng dụng này sẽ giúp cho người thiết kếhọc các ứng dụng khác
+ Người kỹ sư có thể tổ hợp các kiểu tệp thiết kế khác nhau trong một
đề án thiết kế hệ thống số và chọn các định dạng thiết kế sẽ làm việc tốtnhất cho mỗi khối chức năng Việc thiết kế độc lập kiến trúc phần cứnggiúp người kỹ sư thiết kế không phải lo lắng về việc thiết kế của mình sẽphù hợp với IC loại nào
+ Người thiết kế có thể làm việc với các ứng dụng MAX+PLUS II khácnhau tại cùng một thời điểm Ta có thể quan sát toàn bộ sơ đồ phân cấp củacác tệp thiết kế và di chuyển dễ dàng từ mức phân cấp này tới mức phâncấp khác
+ Trình biên dịch MAX+PLUS II là hạt nhân trung tâm của hệ thốngMAX+PLUS II, nó cung cấp một quá trình xử lý rất mạnh giúp ta có thểtạo được một kiến trúc tối ưu nhất bên trong các IC kiểu PLD
+ Tính năng siêu tổ hợp của MAX+PLUS II sẽ cải tiến năng suất vàchất lượng của các hệ thống số Nó giúp người thiết kế kiểm soát toàn bộ
hệ thống một cách dễ dàng và hiệu quả
1.4.2.2 Đặc điểm của các thiết bị Altera lập trình được
- Thời gian thiết kế, thời gian mô phỏng và chế tạo nhanh
- Tốc độ xử lý của các thiết bị cao
- Giá thành, chi phí và mức độ rủi ro trong đầu tư thấp
- Khả năng thừa hành cao
- Đáp ứng hầu hết các yêu cầu từ đơn giản tới phức tạp
- Hệ thống có mức tích hợp và độ ổn định cao
Trang 26- Công cụ hỗ trợ và phát triển được cung cấp đầy đủ.
- Phù hợp với khả năng và xu thế phát triển của các hệ thống số
Tuy nhiên, hệ thống cũng như các thiết bị của Altera có mức chi phíđầu tư so với mức đầu tư ban đầu vào các công nghệ cao trong lĩnh vựcđiện tử viễn thông ở Việt Nam hiện nay nói chung là khá cao Bên cạnh đó,
nó đòi hỏi có đội ngũ khoa học để tiếp thu, nghiên cứu và sử dụng đượcđào tạo kỹ lưỡng và có trình độ cao
1.4.2.3 Các dòng sản phẩm chính của Altera
Hình 1.7 Các sản phẩm Logic CMOS của ALTERA
1.4.2.4 Các họ thiết bị của Altera
Tất cả các họ thiết bị Altera được chế tạo theo công nghệ CMOS Gồm:
Ma trận logic lập trình được cấp cao (APEX - Advanced ProgrammablElogic matriX), ma trận phần tử logic linh hoạt (FLEX - Flexible LogicElement matriX) và ma trận chuỗi đa phần tử (Multiple Array matriX)
Họ thiết bị Cấu trúc kết nối Thành phần cấu hình ban đầu
CMOS Logic
Phần tử tiêu chuẩn
Ma trận cổng
Các PLD đơn giản FPGACác CPLDCác
Thành phẩm đầy đủ
Các thiết
bị ASIC
FLEX
FLEX 10K FLEX 8000 FLEX 6000
APEX
APEX 20K
MAX
MAX 9000 MAX 7000
Classic
Trang 27Bảng 1.4 Kiến trúc thiết bị Altera
Họ thiết bị Các chân I/O sử dụng Số cổng sử dụng
Bảng 1.5 Số cổng và các chân I/O của các họ thiết bị Altera
1.4.2.5 Giới thiệu một số sản phẩm của Altera
Các nhóm EPF10K10 và EPF10K10A thuộc họ FLEX 10K, cung cấp
720 thanh ghi, 6144 bit bộ nhớ và có từ 7.000 đến 31.000 cổng Chúngthích hợp cho các chức năng nhớ và các hàm logic phức tạp như xử lí tínhiệu, truyền dữ liệu và vi điều khiển EPF10K10A phù hợp với các ứngdụng yêu cầu công suất thấp và điện áp 3,3 VDC
c Nhóm IC EPF8282A (EPF8282ALC84-4)
Nhóm EPF8282A thuộc họ FLEX 8000 cung cấp 282 thanh ghi và một
số lượng lớn các phần tử lưu trữ dùng cho các ứng dụng mạch phức tạp
d.Nhóm EPM7032/EPM7032V EPLDs
Các nhóm EPLD mật độ tích hợp cao EPM7032 và EPM7032V thuộc
họ MAX 7000 là thiết bị dựa trên kiến trúc MAX và có 625 cổng có thể sửdụng được EPM7032V phù hợp với các ứng dụng yêu cầu công suất thấp
và điện áp 3,3 VDC từ các máy tính xách tay tới các thiết bị cầm tay chạypin EPM7032V cung cấp một chế ngắt nguồn duy nhất lý tưởng với cácứng dụng có độ nhạy với nguồn cung cấp
Trang 28e Nhóm EPM7064S/EPM7064AE EPLDs (EPM7064SLC44-5)
Các nhóm EPLD mật độ tích hợp cao EPM7064s và EPM7064AEthuộc họ MAX 7000 là các thiết bị dựa trên kiến trúc MAX và có 1200cổng sử dụng được EPM7064AE phù hợp với yêu cầu công suất thấp vàđiện áp 3,3 VDC với phạm vi từ các máy tính xách tay tới các thiết bị cầmtay sử dụng nguồn cung cấp là pin
f Họ IC EPC1441 (EPC1441PC8)
EPC1441 là một thiết bị nhớ kiểu nối tiếp có nhiệm vụ lưu giữ dữ liệucấu hình cho các IC PLD họ FLEX 10K, ACEX 1K và FLEX 6000 sửdụng kỹ thuật SRAM của ALTERA
1.5 TÓM TẮT
Trong chương này trình bày các khái niệm cơ bản của logic khả trình.
Với sự phát triển của các thiết bị logic khả trình ta có thể thiết kế các hệthống kỹ thuật số phức tạp Các kỹ thuật thiết kế ở cấp cao và các công cụtrợ giúp máy tính cần thiết để tạo nên chức năng thực thi PLD và FPGAhiệu quả Việc thử nghiệm tính thực thi của PLD và FPGA cũng yêu cầuphải có các công cụ thử nghiệm và sự trợ giúp của máy tính
CHƯƠNG 2
Trang 29NGÔN NGỮ MÔ TẢ PHẦN CỨNG
2.1 GIỚI THIỆU
Trong toàn bộ lưu đồ thiết kế cho CPLD hoặc FPGA, bước nhập thiết
kế là bước quan trọng và tốn nhiều công sức nhất, nó quyết định phần lớnđến kết quả của công việc thiết kế Các công cụ thiết kế hỗ trợ nhiềuphương pháp nhập thiết kế khác nhau, tuy nhiên phương pháp nhập thiết kếdùng HDL là ưu việt hơn cả và được sử dụng chủ yếu trong quá trình thiết
kế số nói chung và thiết kế cho CPLD/FPGA nói riêng HDL là ngôn ngữlập trình phần mềm dùng để mô hình hoạt động mong muốn của phầncứng Có hai khía cạnh mà HDL tạo điều kiện để mô tả phần cứng: môhình hành vi trừu tượng và mô hình cấu trúc phần cứng
+ Mô hình hành vi trừu tượng: Ngôn ngữ mô tả phần cứng tạo điều kiện
dễ dàng cho việc mô tả trừu tượng hành vi của phần cứng đối với các mụcđích đặc tả Hành vi này không bị chi phối bởi các khía cạnh cấu trúc hoặcthiết kế của ý định phần cứng
+ Mô hình cấu trúc phần cứng: Cấu trúc phần cứng có khả năng được
mô hình trong ngôn ngữ mô tả phần cứng mà không cần quan tâm đến hành
vi của thiết kế
Ngày nay, các mạch tích hợp ngày càng thực hiện được nhiều chứcnăng, do đó, vấn đề thiết kế mạch càng trở nên phức tạp Những phươngpháp thiết kế truyền thống như dùng phương pháp tối thiểu hoá hàmBoolean hay dùng sơ đồ các phần tử không còn đáp ứng được các yêu cầuđặt ra khi thiết kế Nhược điểm lớn nhất của các phương pháp này là chúngchỉ mô tả được hệ thống dưới dạng mạng nối các phần tử với nhau Ngườithiết kế cần phải đi qua hai bước thực hiện hoàn toàn thủ công: đó làchuyển từ các yêu cầu về chức năng của hệ thống sang biểu diễn theo dạng
Trang 30hàm Boolean, sau các bước tối thiểu hoá hàm này ta lại phải chuyển từ hàmBoolean sang sơ đồ mạch của hệ thống Cũng tương tự khi phân tích một
hệ thống người phân tích cần phải phân tích sơ đồ mạch của hệ thống, rồichuyển nó thành các hàm Boolean, sau đó mới lập lại các chức năng, hoạtđộng của hệ thống Tất cả các bước nói trên hoàn toàn phải thực hiện thủcông không có bất kỳ sự trợ giúp nào của máy tính Người thiết kế chỉ cóthể sử dụng máy tính làm công cụ hỗ trợ trong việc vẽ sơ đồ mạch của hệthống và chuyển từ sơ đồ mạch sang tổng hợp mạch vật lý dùng công cụtổng hợp Một nhược điểm khác nữa của phương pháp thiết kế truyền thống
là sự giới hạn về độ phức tạp của hệ thống được thiết kế Phương phápdùng hàm Boolean chỉ có thể dùng để thiết kế hệ thống lớn nhất biểu diễnbởi vài trăm hàm Còn phương pháp dựa trên sơ đồ chỉ có thể dùng để thiết
kế hệ thống lớn nhất chứa khoảng vài nghìn phần tử
Sự ra đời của ngôn ngữ mô tả phần cứng đã giải quyết được rất nhiềunhược điểm lớn của các phương pháp thiết kế trước đây Nếu các phươngpháp cũ đòi hỏi phải chuyển đổi từ mô tả hệ thống sang tập hợp các hàmlogic bằng tay thì bước chuyển đó hoàn toàn không cần thiết khi dùngHDL Hầu hết các công cụ thiết kế dùng ngôn ngữ mô tả phần cứng đềucho phép sử dụng biểu đồ trạng thái cho các hệ thống tuần tự cũng như chophép sử dụng bảng chân lý cho hệ thống tổng hợp Việc chuyển đổi từ cácbiểu đồ trạng thái và bảng chân lý sang mã ngôn ngữ mô tả phần cứngđược thực hiện hoàn toàn tự động
Nhờ tính dễ kiểm tra, thử nghiệm hệ thống trong suốt quá trình thiết kế
mà người thiết kế có thể dễ dàng phát hiện các lỗi thiết kế ngay từ nhữnggiai đoạn đầu, giai đoạn chưa đưa vào sản xuất thử, do đó tiết kiệm đượclượng chi phí đáng kể bởi từ ý tưởng thiết kế đến tạo ra sản phẩm đúng nhưmong muốn là một việc rất khó tránh khỏi những khó khăn, thất bại
Khi mọi lĩnh vực của khoa học đều phát triển không ngừng thì sự phức
Trang 31tạp của hệ thống điện tử cũng ngày một tăng theo và gần như không thểtiến hành thiết kế thủ công mà không có sự trợ giúp của các loại máy tínhhiện đại Ngày nay, HDL được dùng nhiều để thiết kế cho các PLD từ loạiđơn giản đến các loại phức tạp như FPGA.
2.2 NGÔN NGỮ MÔ TẢ PHẦN CỨNG
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 tính, từ đó các nhà thiết kế có thểkiểm tra và có 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à HDL Hiện nay, cácnhà 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ố
Trong quá trình thiết kế, HDL là 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ếtnối Một số loại công cụ HDL như sau:
- AHPL (A Hardware Programming Language): Một ngôn ngữ để mô
Trang 32tra 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ổnghoặc chuyển mạch
Sau đây tôi chỉ tập trung tìm hiểu và so sánh hai ngôn ngữ mô tả phầncứng chuẩn công nghiệp là VHDL và Verilog
2.2.1 Quá trình phát triển của VHDL
Năm 1980, Bộ Quốc Phòng Mỹ (DoD - U S Department of Defense)muốn thực hiện việc thiết kế mạch tự dẫn chứng, muốn theo đuổi một hệphương pháp thiết kế tổng quát và có thể sử dụng lại được với các côngnghệ mới Rõ ràng đã có nhu cầu cho một ngôn ngữ lập trình chuẩn để mô
tả chức năng và cấu trúc của các mạch số đối với việc thiết kế vi mạch.DoD tài trợ một dự án thuộc chương trình vi mạch có tốc độ cực nhanh(VHSIC - Very High Speed Itergrated Circuit) để tạo ra HDL chuẩn Kếtquả là dự án này tạo ra được ngôn ngữ mô tả phần cứng VHSIC haythường gọi là VHDL như hiện nay Mục tiêu của việc phát triển VHDL là
có được một ngôn ngữ mô tả phần cứng tiêu chuẩn và thống nhất cho phépthử 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ế
Năm 1983, việc phát triển VHDL bắt đầu bằng hợp đồng VHSIC với
nỗ lực chung của IBM, Texas Instruments và Intermetics Các công ty nàyđóng góp những kinh nghiệm của mình về ngôn ngữ cấp cao và kỹ thuậtthiết kế từ trên - xuống để cùng nhau phát triển ngôn ngữ mới này cũngnhư các công cụ mô phỏng kết hợp VHDL cung cấp cho những nhà thầucủa chính phủ phương pháp truyền thông chuẩn, tạo điều kiện dễ dàng chocác kỹ thuật thiết kế từ trên - xuống và đặc biệt quan tâm đến cách thứcnâng cấp hệ thống khi công nghệ trở nên lạc hậu
Năm 1987, hai sự kiện có ý nghĩa đã xảy ra Thứ nhất, DoD công bố
Trang 33rằng tất cả các mạch điện tử số đều được mô tả trong VHDL và thứ hai, uỷquyền cho hiệp hội các kỹ sư điện và điện tử (IEEE - Institute of Electricaland Electronics Engineers) phê duyệt VHDL thành chuẩn 1076 của IEEE.
Sự thành công đã được đảm bảo
VHDL đã trở thành chuẩn công nghiệp, các nhà cung cấp phần mềm tựđộng thiết kế điện tử (EDA - Electronic Design Automation) bắt đầu pháttriển các công cụ cho EDA với rủi ro ít nhất Tuy nhiên, nhu cầu còn thấp
và vốn đầu tư cần có để phát triển các công cụ chất lượng thương mại còncao nên ít công cụ được phát triển Việc thiếu các công cụ lúc ban đầu nàyđồng nghĩa với việc VHDL chậm được chấp nhận trong thương mại
Năm 1993, ngôn ngữ VHDL được duyệt lại thành chuẩn IEEE 1076
’93 Năm 1996, các công cụ tổng hợp và mô phỏng thương mại đã sẵn sàng
và đều tuân theo chuẩn IEEE 1076 ’93 Điều này cho phép những ngườithiết kế bắt đầu sử dụng phiên bản chuẩn này trong hệ phương pháp thiết kế
từ trên - xuống Gói sử dụng cùng với các công cụ tổng hợp trở thành mộtphần của chuẩn IEEE 1076, cụ thể đây là chuẩn IEEE 1076.3 Chuẩn nàycải thiện đáng kể tính linh động của các thiết kế giữa nhiều công cụ tổnghợp khác nhau của nhà cung cấp Phần khác của chuẩn này, IEEE 1076.4(VITAL - VHDL Initiative Toward ASIC Libraries), đã được hoàn tất vàthiết lập một chuẩn mới cho việc mô hình các thư viện ASIC và FPGAtrong VHDL Điều này tạo điều kiện thuận lợi đáng kể cho nhà cung cấpASIC, nhà cung cấp công cụ EDA và những người thiết kế
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ư đã 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 kỹ lưỡng tài liệu đó Với một ngôn ngữ mô tả phầncứ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ô tả hoạt động của hệ thống Như thế ta có thể
Trang 34xem xét toàn bộ các phần tử của hệ thống hoạt động trong một mô hìnhthống nhất.
2.2.2 Quá trình phát triển của Verilog
Năm 1981, công ty phần mềm CAE tuyên bố rằng phần mềm tự độngthiết kế của Gateway được khám phá bởi Prabhu Goel Một trong nhữngnhân viên đầu tiên của Gateway là Phil Moorby, tác giả đầu tiên của ngônngữ mô tả phần cứng GenRad (GHDL) và trình mô phỏng HILO
Năm 1983, Gateway phát hành ngôn ngữ mô tả phần cứng Verilog cótên là “Verilog HDL” hoặc đơn thuần là “Verilog” cùng với trình môphỏng Verilog Năm 1985, ngôn ngữ và trình mô phỏng được nâng cao,phiên bản mới nhất của trình mô phỏng được gọi là “Verilog - XL”
Từ năm 1985 đến năm 1987, Verilog - XL đạt được chỗ đứng vữngchắc trong số những nhà thiết kế sản phẩm cao cấp do những lý do sau đây:+ Các cấu trúc hành vi của Verilog có thể mô tả cả phần cứng lẫn tácnhân kích thích để kiểm tra
+ Trình mô phỏng Verilog - XL hoạt động nhanh, đặc biệt là ở mứccổng và có thể quản lý các thiết kế vượt quá 100000 cổng
+ Trình mô phỏng Verilog - XL là một trình phiên dịch, phần mềmphiên dịch thực thi trực tiếp mã nguồn thay vì biên dịch trước mã nguồnthành mã đối tượng trung gian Bản chất phiên dịch của Verilog - XL cungcấp cho những kỹ sư thiết kế phần cứng điều mà họ mong muốn, và cầnđến cùng với phương pháp dễ dàng gỡ rối tương tác các thiết kế phần cứngcủa họ Với Verilog - XL, các kỹ sư có thể làm được nhiều hơn thay vì chỉ
mô hình và mô phỏng, họ còn có thể khắc phục và sửa chữa một thiết kếnhư thể họ khắc phục và sửa chữa phần cứng thực sự trên bo mạch thửnghiệm
Năm 1987, Verilog - XL trở nên phổ biến hơn Kích thước thiết kế một
vi mạch bắt đầu vượt quá khả năng thật của nhiều trình mô phỏng khác
Trang 35Gateway bắt đầu xông xáo theo đuổi khả năng tán thành xưởng chế tạoASIC Một công ty khởi đầu khác, Synopsys, cũng bắt đầu sử dụng ngônngữ hành vi Verilog độc quyền dưới dạng đầu vào cho sản phẩm phần mềmtổng hợp của mình.
Cùng thời điểm này IEEE đưa ra chuẩn “VHDL”, thu hút sự chú ý vềkhả năng của “thiết kế từ trên - xuống” sử dụng ngôn ngữ mô tả phần cứnghành vi và phần mềm tổng hợp Tất cả các yếu tố này được kết hợp làm giatăng việc sử dụng và việc chấp nhận Verilog - XL
Tháng 12 năm 1989, Cadence mua Gateway
Đầu năm 1990, Cadence chia ngôn ngữ mô tả phần cứng Verilog vàtrình mô phỏng Verilog - XL thành các sản phẩm riêng biệt và kế đến, đưaVerilog HDL ra công chúng Cadence làm điều này để trong chừng mựcnào đó cạnh tranh với VHDL là ngôn ngữ không độc quyền và chủ yếu là
do những người sử dụng Verilog muốn chia sẻ các mô hình và kiến thức vềVerilog, điều này sẽ không dễ dàng đối với một ngôn ngữ độc quyền
Năm 1990, hầu hết các xưởng chế tạo ASIC đều hỗ trợ Verilog và đa số
sử dụng Verilog - XL làm trình mô phỏng Đây là trình mô phỏng mà nhàcung cấp vi mạch sẽ sử dụng để đảm bảo rằng vi mạch được sản xuất sẽthoả mãn định thời của mô hình đã mô phỏng
Năm 1993, trong tất cả các thiết kế bị chi phối bởi các xưởng chế tạoASIC trong năm này, 85% được thiết kế và xem xét bằng cách sử dụngVerilog Tháng 12 năm 1995, ngôn ngữ Verilog được công nhận bởi IEEEtrở thành chuẩn IEEE 1364
2.2.3 Ưu điểm của VHDL
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ế, một bộ mô tả 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ế trongkhi chỉ sử dụng một ngôn ngữ duy nhất Và khi đem so sánh với các ngôn
Trang 36ngữ mô tả phần cứng khác đã kể ra ở trên ta thấy VHDL có một số ưu điểmhơn hẳn các ngôn ngữ khác:
+ Thứ nhất là tính phổ biến: VHDL được phát triển dưới sự bảo trợ củachính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE 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ô tả hệ thống
+ Thứ hai là 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 ví dụ 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ảngngẫu nhiên
+ Thứ ba là tính độc lập với công nghệ: VHDL hoàn toàn độc lập vớicô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 tuỳthuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụngngay cho các hệ thống đã thiết kế
+ Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt độngcủ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ộtbản thiết kế bao gồm cả các hệ con được mô tả chi tiết
+ Thứ năm là 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ể đượctrao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưngcù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 đó
Trang 37các hệ con đó được thiết kế độc lập).
+ Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lạicá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 giacủ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épdùng lại các phần đã có sẵn
2.3 CẤU TRÚC NGÔN NGỮ CỦA VHDL
VHDL là ngôn ngữ có tính cấu trúc Đặc điểm của VHDL là nó chophép mô tả thiết kế theo nhiều mức độ chi tiết khác nhau - từ mức kiến trúcđến các cấu trúc và luồng dữ liệu Với những ưu điểm này, VHDL chophép xây dựng các thiết kế mạch từ tổng quát đến chi tiết, cho phép nhàthiết kế có thể quan sát một cách tổng thể quá trình thiết kế và giúp cho quátrình kiểm tra tính đúng đắn của thiết kế được dễ dàng Chính nhờ vậy màVHDL được sử dụng rộng rãi trong công nghiệp chế tạo mạch điện tử có
độ tích hợp cao
VHDL là ngôn ngữ cho phép mô tả các thiết bị phần cứng số trừutượng, nó không dựa vào công nghệ thiết bị phần cứng số, phương phápđược sử dụng để thiết kế thiết bị số, mà những khái niệm, mô hình trừutượng của thiết bị phần cứng số được đưa ra như là nền tảng của ngôn ngữ
Do đó dùng VHDL cho phép mô tả được hầu hết các hệ thống phần cứng
số Các mô hình trừu tượng gồm:
Trang 38+ Phân tách hệ thống thành những khối con.
+ Xác định mô hình mô tả phù hợp cho mỗi khối con hoặc cho cả hệthống
+ Sử dụng VHDL để mô tả hệ thống số theo các mô hình đã xác định.Như vậy việc nắm chắc cấu trúc, cú pháp, các mô hình mô tả của ngônngữ là rất quan trọng, quyết định chủ yếu đến thành công trong việc mô tả
hệ thống số cần thiết kế
VHDL cũng có nhiều điểm giống như một ngôn ngữ lập trình bậc cao,
có cấu trúc, có cú pháp riêng, có cách tổ chức chương trình, có từ khóa, cóphương pháp biểu diễn số liệu riêng,
2.3.1 Đối tượng trong VHDL
Trong ngôn ngữ VHDL gồm có 3 đối tượng là: tín hiệu signal, biến
-variable, hằng - constant, mỗi đối tượng được khai báo dựa vào từ khóatương ứng và chúng có mục đích sử dụng như sau:
+ Tín hiệu: là đối tượng để biểu diễn đường kết nối giữa các cổng
vào/ra của thực thể, giữa các cổng vào/ra của các khối thành phần phầncứng xuất hiện trong thực thể,…Chúng là phương tiện truyền dữ liệu độnggiữa các thành phần của thực thể Tín hiệu có tính toàn cục rất cao, chúng
có thể được khai báo trong package, entity, architecture Các tín hiệu có thểđược sử dụng nhưng không được khai báo trong process, chương trình con
Cú pháp khai báo tín hiệu như sau:
signal tên_tín_hiệu {,tên_tín_hiệu}:kiểu_dữ_liệu [:=giá_trị_khởi_tạo];
Ví dụ: signal a,b,c : bit := ’1’;
signal x, reg : std_logic_vector(5 downto 0) := ”000000”; + Biến: là đối tượng cục bộ được sử dụng để chứa các kết quả trung
gian Biến chỉ được khai báo và sử dụng trong Process và trong chươngtrình con Cú pháp khai báo của biến cũng tương tự như khai báo tín hiệu:
variable tên_biến {,tên_biến}: kiểu_dữ_liệu [:=giá_trị_khởi_tạo];
Trang 39Ví dụ: variable x : Bit := ’1’;
variable temp : std_logic_vector(2 downto 0);
+ Hằng: là đối tượng được gán cho các giá trị cụ thể của một kiểu khi
được tạo ra và không đổi trong toàn bộ quá trình thực hiện Hằng cũng cótính toàn cục giống như tín hiệu và có thể được khai báo trong package,entity, architecture, proceduce, process,…Cú pháp khai báo hằng:
constant tên_hằng {,tên_hằng}: kiểu_dữ_liệu := giá_trị_khởi_tạo;
• Kiểu ghép: các dữ liệu dưới dạng một nhóm các thành phần nhưmảng, bản ghi Bit_logic_vector, std_logic_vector và String đều là nhữngdạng dữ liệu ghép đã được định nghĩa sẵn
• 2-D Arrays: các dữ liệu có dạng mảng 2 chiều, được tạo nên từ 1mảng của một mảng 1 chiều (hay một bản ghi)
• VHDL Subtypes: dạng dữ liệu con do người dùng tự định nghĩa dựatrên những dạng có sẵn
2.3.2.1 Kiểu vô hướng
- Kiểu Bit: Kiểu liệt kê với 2 giá trị ‘0’ và ‘1’ Kiểu Bit đã được định nghĩa như sau: Type Bit is (‘0’, ‘1’);
- Kiểu Boolean: Kiểu liệt kê với 2 giá trị false và true Kiểu Boolean đã được định nghĩa như sau: Type Boolean is (false, true);
- Kiểu Integer: Kiểu số nguyên với những giá trị dương hoặc âm, độlớn mặc định là 32 bit với giới hạn giá trị: từ -2147483647 đến
Trang 40+2147483647 Khi sử dụng có thể giới hạn miền xác định theo giới hạn
giảm dần dùng từ khóa downto hoặc tăng dần dùng từ khóa to:
signal A : integer range 0 to 7; A số nguyên 3 bit
- Kiểu Real: Kiểu số thực có giới hạn từ -1.0E+38 đến 1.0E+38; khácvới kiểu integer, kiểu số thực khi sử dụng thường được định nghĩa thànhkiểu dữ liệu riêng và có giới hạn miền xác định:
type CAPACITY is range -25.0 to 25.0;
signal Sig_1 : CAPACITY := 3.0;
- Kiểu Character: Kiểu ký tự, liệt kê với miền xác định là tập hợp các
ký tự ASCII Biểu diễn của giá trị Character: ‘A’, ‘a’, ‘Z’, ‘z’, ‘&’, ‘Esc’,
Hai kiểu dữ liệu std_logic và std_ulogic tương tự nhau, chúng chỉ khácnhau ở chỗ là kiểu std_ulogic không có hàm phân dải - hàm quyết định giátrị tín hiệu, do đó sẽ có lỗi khi các tín hiệu kiểu std_ulogic được nối chungvào một điểm
- Kiểu dữ liệu liệt kê tự định nghĩa: Kiểu dữ liệu liệt kê, do người sử
dụng tự định nghĩa, cho phép mô tả rất sáng sủa và linh hoạt cho các môhình phần cứng số với mức độ trừu tượng cao
2.3.2.2 Kiểu dữ liệu ghép
Tương tự các ngôn ngữ lập trình, VHDL cũng có các kiểu dữ liệu ghép