DANH MỤC CÁC TỪ VÀ THUẬT NGỮ VIẾT TẮTSOPC System On a Programmable Chip Hệ thống Trên 1 Chip Khả trình VHDL VHSIC hardware description language Ngôn ngữ mô tả phần cứng CPLD Complex Prog
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-Độc lập - Tự do - Hạnh phúc
-NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: ……….………….…… Số hiệu sinh viên: ………
Khoá:……….Viện: Điện tử - Viễn thông Ngành: ………
1 Đầu đề đồ án: ………
………
……… ………
2 Các số liệu và dữ liệu ban đầu: ……….
………
………
3 Nội dung các phần thuyết minh và tính toán:
………
4 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
………
5 Họ tên giảng viên hướng dẫn: ………
6 Ngày giao nhiệm vụ đồ án: ………
7 Ngày hoàn thành đồ án: ……… ………
Ngày tháng năm
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm
Cán bộ phản biện
1
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: Số hiệu sinh viên: .
Ngành: Khoá: .
Giảng viên hướng dẫn:
Cán bộ phản biện :
1 Nội dung thiết kế tốt nghiệp:
2 Nhận xét của cán bộ phản biện:
Ngày tháng năm
Cán bộ phản biện
( Ký, ghi rõ họ và tên )
2
Trang 3PHÂN CÔNG NHIỆM VỤ ĐỒ ÁN
Đề tài "Thiết kế kit phát triển FPGA và xây bộ thí nghiệm kèm kit" được thực hiện bởi nhóm gồm 3 thành viên:
Trang 4MỤC LỤC
4
Trang 5DANH MỤC HÌNH ẢNH
5
Trang 6DANH MỤC BẢNG BIỂU
6
Trang 7DANH MỤC CÁC TỪ VÀ THUẬT NGỮ VIẾT TẮT
SOPC System On a Programmable Chip Hệ thống Trên 1 Chip Khả trình
VHDL VHSIC hardware description language Ngôn ngữ mô tả phần cứng
CPLD Complex Programmable Logic Device Một vi mạch mà người dùng có thể lập trình được
7
Trang 8LỜI NÓI ĐẦU
Khai thác, nghiên cứu cơ bản công nghệ mới là bước không thể thiếu trongviệc cải tiến, nâng cao, cũng như chế tạo mới các trang thiết bị quân sự và dân sựnhằm đáp ứng việc hiện đại hoá công nghiệp hoá của đất nớc Cùng với sự pháttriển vượt bậc của nghành công nghệ thông tin, các công nghệ mới về các mạchtích hợp vi điện tử, các mạch tổ hợp logic lập trình được ra đời đã làm cho cácsản phẩm quân sự cũng như dân sự ngày càng hoàn thiện và ưu việt hơn Để tiếnmột bước xa hơn trong việc cải tiến, chế tạo đòi hỏi phải có công nghệtiên tiến phù hợp với tình hình chung của thế giới Trên cơ sở phát triển từ các chípPLA, hiện nay công nghệ na nô đã được áp dụng vào để chế tạo các mạch tích hợplập trình được FPGA và CPLD, nó đã làm cho mạch tích hợp logic lên đến hàngchục triệu cổng, tốc độ đồng hồ lên đến 500 MHz ứng dụng công nghệ mới vàotrong thiết kế chế tạo các thiết bị điện tử lập trình PLIC là một bớc cần thiết chotương lai với một nước đang phát triển như Việt Nam Việc áp dụng công nghệ mớitrong lĩnh vực chế tạo mạch điện tử
để đáp ứng những yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao Côngnghệ FPGA (Field Programmable Gate Array) và CPLD (Complex ProgrammableLogic Device) đã đợc các hãng lớn tập trung nghiên cứu và chế tạo, điển hình làXilinx và Altera Để làm chủ công nghệ mới và tổ chức thiết kế sản xuất công nghệFPGA của Xilinx cho phép chúng ta tự thiết kế những vi mạch riêng, những bộ xử
lý số riêng dành cho ứng dụng của chúng ta Đặc biệt trong lĩnh vực xử lý tín hiệu
số, các mạch tích hợp dùng để nhận dạng âm thanh, hình ảnh, cảm biến với tínhmềm dẻo cao và giá thành thấp
Mặc dù công nghệ FPGA và CPLD đã xuất hiện từ năm 1985, xong đối với nước tathì nó vẫn còn rất mới Do vậy tìm hiểu, làm chủ về công nghệ FPGA & CPLD làviệc làm hoàn toàn cần thiết Nó có ý nghĩa đối với các lĩnh vực Điện tử -Viễnthông và công nghệ thông tin
Với mục đích cung cấp KIT phát triển CPLD cho các bạn sinh viên và giúp cácbạn có điều kiện làm việc với KIT thực tế trong môn học về thiết kế phần cứng sửdụng ngôn ngữ mô tả phần cứng hay bước đầu tiếp cận với lĩnh vực nghiên cứu về
8
Trang 9CPLD, FPGA, nhóm em thực hiện đề tài : "Thiết kế bộ KIT phát triển CPLD và xâydựng bộ thí nghiệm trên KIT" Bộ KIT cung cấp phần cứng phục phụ các bài học cơbản, giao tiếp các thiết bị ngoại vi thông dụng, thực hành thí nghiệm đối với mạch
số Trong quá trình thực hiện, do hạn chế về mặt thời gian cũng như kiến thức, nên
đề tài không thể tránh khỏi những thiếu sót Chúng em mong nhận được sự đónggóp của thầy cô và các bạn để đề tài được hoàn thiện hơn
Em xin gửi lời cảm ơn chân thành đến:
- Cô Ths.Đinh Thị Nhung là người đã tạo điều kiện & tận tình hướng dẫn chochúng em nghiên cứu, học tập trong suốt thời gian qua
- Viện điện tử viễn thông, trường đại học Bách Khoa Hà Nội đã tạo môi trườnghọc tập, nghiên cứu tốt cho em trong suốt 5 năm
Cảm ơn tất cả người thân, gia đình, bạn bè đã giúp đỡ trong quá trình học tập,nghiên cứu
Nhóm sinh viên thực hiện
LÊ ĐỨC TRUNG NGUYỄN THÀNH TRUNG NGUYỄN MINH ĐỨC
9
Trang 10CHƯƠNG 1 TỔNG QUAN CPLD1.1 Giới thiệu vi điều khiển CPLD
CPLD (viết tắt của Complex Programmable Logic Device) là một vi mạch mà
người dùng có thể lập trình được Nó cũng tương tự như FPGA về ứng dụng nhưngkhông có nhiều cổng logic (logic gates) như FPGA Do đó nếu cần thiết kế những
chỉ phù hợp cho những thiết kế đơn giản Trong khi FPGA thì dựa trênSRAM,CPLD lại dựa trên EEPROM, do dó nó ghi nhớ được lập trình khi tắt nguồn điên.Chỉ cần nạp điện lên là CPLD có thể hoạt động mà không cần phải tải lập trình
CPLD bao gồm nhiều khối mạch được đưa vào trong một chip Mỗi khốimạch được hình thành từ một PAL kết hợp với macrocell, các khối được kết nốivới nhau thông qua mạng lưới đường kết nối (interconnection) khả trình, mỗikhối được kết nối tương ứng với một khối I/O.Như vậy, CPLD được cấu trúc từ
số lượng nhất định các khối SPLD (Simple programable devices, thuật ngữchung chỉ PAL, PLA) SPLD thường là một mảng logic AND/OR lập trình được
có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ đồng bộ(clocked register) Cấu trúc này hạn chế khả năng thực hiện những hàm phứctạp và thông thường hiệu suất làm việc của vi mạch phụ thuộc vào cấu trúc cụthể của vi mạch hơn là vào yêu cầu bài toán
10
Trang 1111
Trang 121.2 Altera Max series
Bảng 1 1 Các dòng CPLD của Altera
embedded processor support
competitive CPLDs
previously external functions
architecture
and high density
Trang 131.3 CPLD và FPGA của Altera
Altera là một trong số những nhà sản xuất, phân phối hàng đầu các sản phẩmcông nghệ CPLD và FPGA Sản phẩm cơ bản trong lĩnh vực FPGA : Cyclone, Arria
và Stratix Đối với công nghệ CPLD, Altera cung cấp các chip dòng MAX II, MAX
V, MAX 3000, MAX 7000
1.2 MAX II của Altera
Chip MAX II có mật độ cổng logic từ 240 đến 2210(LEs), bộ nhớ lưu trữ UMFkích thước 8 Kbits thuộc loại bộ nhớ không bị mất dữ liệu khi nguồn điện ngừngcung cấp
13
Trang 14Hình 1 2 Sơ đồ khối trong MAX II
MAX II cung cấp mạng lưới tín hiệu clock, mạng tín hiệu clock gồm 4 đườngclock chạy khắp chip, cung cấp tới các nguồn tài nguyên trong chip Tín hiệu clockcũng được sử dụng làm tín hiệu điều khiển như tín hiệu xóa, cài đặt, cho phép
Hình 1 3 Cấu trúc LAB
14
Trang 151.4 Cyclon III của Altera
Cyclon III được cấu tạo từ các phần tử logic(LE) có mật độ từ 5000 đến 200000phần tử, các LE kết nối với nhau theo từng khối mảng logic(LAB); chip cung cấpkhối nhớ dung lượng 0,5Mb đến 8Mb phục phụ ứng dụng mở rộng: thiết kế hệnhúng, xử lí tín hiệu số
Mỗi khối LAB được hình thành từ 16 phần tử logic(LE) Cấu tạo của LE có 4đầu vào, một bộ LUT 4 đầu vào, một thanh ghi và đầu ra
Bộ nhớ trong M9K được đưa vào các chip Cyclon III có thể hoạt động ở tần số315Mhz Cấu trúc khối M9K bao gồm các cột nhớ có thể cấu hình giống như RAM,
bộ đệm FIFO hoặc ROM Bộ nhớ trong chip thích hợp ứng dụng xử lí nhúng, lưutrữ dữ liệu
Hỗ trợ xử lí tín hiệu số(DSP) và bộ nhân nhúng, Cyclon III hỗ trợ 288 bộ nhânriêng biệt 18x18 bit hoặc hai bộ nhân riêng biệt 9x9 bit; thiết kế hệ thống DSP được
hỗ trợ thông qua lõi DSP IP(bộ lọc FIR, biến đổi FFT, chức năng điều khiển số daođộng-NOC), cung cấp kit phát triển DSP, bổ sung công cụ giao tiếp giữa phần mềmQuartus với MathWorks Simulink và môi trường thiết kế MATLAB Hỗ trợ giaotiếp bộ nhớ ngoài tốc độ cao: DDR, DDR2, SDR SDRAM và QDRII SRAM Hệthống cung cấp các PLLs(phase-locked loops) giúp quản lí tín hiệu clock(cho phépnâng tần số clock)
Bảng 1 3 Chip Cyclon III.
Trang 16đó mô phỏng Đặc điểm kĩ thuật ban đầu trong ngôn ngữ tự nhiên được mở rộngbằng các sơ đồ khối, sơ đồ trạng thái và sơ đồ thời gian Trong quá trình thiết kế,các khái niệm đặc tả ban đầu sẽ được làm sáng tỏ hơn bởi người thiết kế, thông tinmới được đưa vào cho tới khi hoàn thành thiêt kế ở mức truyền thanh ghi.
Ngày nay, các hệ thống trở nên phức tạp hơn, các thiết kế ở mức độ khái niệmyêu cầu cách tiếp cận mới đảm bảo tính đơn giản, dễ thiết kế và hiệu quả Các nhàthiết kế cần một hệ thống ngôn ngữ miêu tả phần cứng mới đáp ứng yêu cầu thiết
kế, ngôn ngữ mô tả phần cứng(HDL) ra đời như một phương pháp nâng cao hiệuquả của quy trình thiết kế
Ngôn ngữ mô tả phần cứng cung cấp chức năng mô tả, thiết kể, tổng hợp và hoànthiện hệ thống thiết kế số từ đơn giản đến phức tạp, đảm bảo quá trình trừu tượnghóa thiết kế phức tạp Ngôn ngữ HDL giống với ngôn ngữ lập trình nhưng khôngphải là ngôn ngữ lập trình Chức năng ngôn ngữ mô tả phần cứng HDL :
-Mô hình hệ thống số, một phần hoặc toàn bộ thiết kế cho hệ thống
-Hỗ trợ phân tích, tổng hợp, kiểm thử trong quá trình phân cấp thiết kế
16
Trang 172.2 Ngôn ngữ Verilog
2.2.1 Lịch sử ngôn ngữ Verilog và chuẩn Verilog-1995, Verilog-2001
Verilog là ngôn ngữ mô tả phần cứng hiện đại được giới thiệu vào năm 1984 bởiPrabhu Goel và Phil Moorby Khoảng thời gian từ năm 1984-1990 ngôn ngữVerilog phát triển qua các phiên bản, tuy nhiên, trong thời này ngôn ngữ chưa đượcchuẩn hóa
Mô phỏng Verilog được bắt đầu sử dụng từ năm 1985, tới năm 1987 Verilog pháttriển mở rộng thêm các phiên bản để thực hiện thêm chức năng Phiên bản Verilog-
XL ra đời được bổ sung một vài tính năng để thực hiện "thuật toán XL", đây làphương pháp hiệu quả để thực hiện mô phỏng mức cổng Cần phân biệt rõ ràng giữaVerilog HDL với Verilog-XL: Verilog HDL dùng để thiết kế mạch phần cứng trongkhi Verilog-XL dùng để mô phỏng sự kiện bằng cách đọc mã Verilog HDL và môphỏng trạng thái của phần cứng
Năm 1995, chuẩn IEEE Verilog được công nhận (IEEE Standard 1364-1995).Năm 2001, Verilog được chuẩn hóa mới (IEEE Standard 1364-2001) phát triển từchuẩn Verilog-1995, trong đó bổ sung chỉnh sửa khuyết điểm mà người sử dụng tìmthấy khi sử dụng chuẩn Verilog-1995 Chuẩn Verilog-2001 ra đời nhằm mục đích:
- Nâng cao khả năng của ngôn ngữ đối với việc thiết kế những thành phần siêuhiển vi và vấn đề sở hữu trí tuệ
- Đảm bảo tính nâng cao của ngôn ngữ phù hợp và đưa ngôn ngữ vào ứng dụng ;các nhà cung cấp công cụ mô phỏng, tổng hợp phải tuân thủ theo chuẩn Verilogmới đối với các sản phẩm họ cung cấp
- Sửa các lỗi và định nghĩa không rõ ràng trong chuẩn Verilog-1995
Tính nâng cao của chuẩn Verilog-2001 so với chuẩn Verilog-1995:
1. Chuẩn Verilog-1995 hạn chế về quá trình mở rộng và tái sử dụng các thiết kếkhác nhau, đặc biệt với các thiết kế có cấu trúc phức tạp Verilog-2001 thêmvào tính năng "generate loops" , cho phép tạo ra nhiều trường hợp mô đun
và thành phần phần cơ bản giống như quá trình tạo ra nhiều biến(variable),lưới(nets), yêu cầu(task), hàm(function), lệnh liên tục, thủ tục khởi đầu, thủtục luôn luôn(always procedure) Khóa mới được quy định thêm: generate,endgenerate, genvar, localparam Genvar là kiểu dữ liệu mới, lưu trữ giá trị17
Trang 18số nguyên Biến chỉ số sử dụng trong khối lặp "generate " phải được khai báokiểu "genvar" Khóa khai báo hằng số "localparam" giống như khóa khai báo
"parameter", tuy nhiên khi sử dụng khóa "localparam" hằng số chỉ có giá trịcục bộ trong một mô đun và không có khả năng tái định nghĩa lại giá trị
2. Chuẩn Verilog-2001 mở rộng hỗ trợ đối với mảng, cho phép sử dụng mảngnhiều chiều, giá trị của mảng bao gồm cả kiểu biến và kiểu nets, trong khiVerilog-1995 chỉ hỗ trợ mảng một chiều, giá trị mảng bắt buộc kiểu biến
3. Một trong những hạn chế lớn nhất của chuẩn Verilog-1995 là khả năng hỗtrợ đối với các thuật toán liên quan tới dấu: kiểu dữ liệu duy nhất cho phépdạng có dấu là kiểu số nguyên(integer), kiểu reg và net thuộc kiểu khôngdấu(unsigned) Chuẩn Verilog-2001 mở rộng đối tượng mang kiểu có dấu và
bổ sung thêm chức năng hỗ trợ: kiểu nets, kiểu reg và số nguyên có thể khaibáo kiểu có dấu(signed), giá trị trả về của hàm có thể là giá trị có dấu, cungcấp toán hạng chuyển đổi giữa số có dấu và số không dấu, bổ sung toán tửdịch toán học(<<<, >>>), toán tử hàm mũ(**)
4. Verilog-2001 bổ sung thêm một số cú pháp, ví dụ:kiếu hiệu @* có nghĩadanh sánh trong biểu thức điều kiện của khối always là tất cả đầu vào của môđun; dấu "," có thể được dùng thay thế từ khóa "or" trong danh sách tín hiệuđiều khiển khối always
2.2.2 Đặc điểm ngôn ngữ Verilog
Ngôn ngữ mô tả phần cứng Verilog đơn giản, gần giống với ngôn ngữ lập trình
C So với ngôn ngữ VHDL, Verilog dễ học, dễ sử dụng hơn; tuy nhiên điều nàycũng đồng nghĩa Verilog không mạnh bằng VHDL đặc biệt trong các thiết kế có độphức tạp cao
Dữ liệu trong ngôn ngữ Verilog đều được định nghĩa trước Tất cả các dữ liệutrong Verilog đều được nhận diện ở cấp độ bit, các kiểu dữ liệu được hỗ trợ có thểpha trộn lẫn nhau trong thiết kế
Ngữ nghĩa mô phỏng trong Verilog không rõ ràng, đặc biệt khi so sánh vớiVHDL Điều này cho phép các nhà thiết kế linh hoạt hơn trong quá trình tối ưu, tuynhiên, điều này cũng dẫn đến tình trạng một thiết kế tạo ra nhiều kết quả khác nhautrên công cụ của các nhà thiết kế khác nhau hoặc thậm chí trên các phiên bản khácnhau của cùng một công cụ do một nhà cung cấp đưa ra
18
Trang 19Verilog định nghĩa một tập các khả năng điều khiển mô phỏng cơ bản trong hệthống ngôn ngữ, điều này dẫn đến thiếu các loại dữ liệu phức tạp phục phụ cho quátrình mô phỏng Kết quả là quá trình mô phỏng đã được hệ thống xác định từ trước,người thiết kế sẽ chạy một loạt lệnh mô phỏng và quan sát dạng sóng để gỡ rốitrong cơ sở dữ liệu mô phỏng
Verilog hỗ trợ các cấp độ khác nhau trong quy trình thiết kế: xử lí thuật toántrong chức năng hệ thống; hỗ trợ thiết kế RTL(mức truyền thanh ghi)
Hỗ trợ mô hình thiết kế cấu trúc, dòng dữ liệu, trạng thái Mỗi chương trìnhVerilog hoàn thiện hoặc một khối chức năng được thiết kế riêng được đặc tả bằngmột mô đun Một mô đun thiết kế cho phép đặc tả tín hiệu vào(input), tín hiệura(output) và tín hiệu hai chiều(inout-áp dụng với tín hiệu vừa đóng vai trò tín hiệuvào, vừa đóng vai trò tín hiệu ra)
Verilog cung cấp hai khối khá mạnh "initial" và "always": khối "initial" sẽ thựchiện một lần khi chương trình bắt dầu chạy và thường sử dụng trong quá trình môphỏng; khối "always" luôn chạy khi thực hiện chương trình, khối chỉ ngưng thựchiện khi thoát chương trình, "always" là khối rất mạnh và được sử dụng rất nhiềutrong các thiết kế Verilog, các tín hiệu được điều khiển trong khối "always" phảiđược khai báo kiểu dữ liệu thanh ghi
Verilog cung cấp hai kiểu dữ liệu "net" và "register-thanh ghi" Kiểu "net" làđường nối giữa các phần mô đun, các phần tử trong thiết kế; kiểu "net" luôn manggiá trị của tín hiệu được điều khiển và biến kiểu "net" dùng đối với câu lệnh liêntục Kiểu "thanh ghi" thường dùng đối với tín hiệu điều khiển trong khối always, sửdụng phổ biến trong thiết kế mạch tuần tự và trong thiết kế mức truyền thanh ghiRTL
Ngôn ngữ hỗ trợ đầy đủ toán tử toán học cơ bản, phép dịch, phép so sánh, khóakhai báo và sử dụng hằng số Giá trị logic của tín hiệu trong Verilog bao gồm: mức
"1", mức "0", "x"-don't care, "z"-trạng thái cao
Ngôn ngữ mô tả phần cứng Verilog thích hợp cho các thiết kế đơn giản, nhỏ,không quá phức tạp
19
Trang 202.3 Ngôn ngữ VHDL
2.3.1 Lịch sử ngôn ngữ VHDL
VHDL(VHSIC Hardware Description Language) có nguồn gốc từ ngôn ngữ lậptrình ADA Ngôn ngữ được bắt đầu phát triển vào năm 1980 do bộ quốc phòng Mỹkhởi xướng để tạo ra tiêu chuẩn HDL cho VHSIC(Very Hight Speed IntegratedCircuit) Việc hình thành tiêu chuẩn nhằm để phát triển các mạch tích hợp Trongquá trình phát triển mạch tích hợp phức tạp, các nhà thiết kế nhận thấy phương phápthiết kế truyền thống không thích hợp và cần tới một phương pháp mô tả mới-ngônngữ mô tả phần cứng VHDL được đề xuất
Năm 1985, phiên bản đầu tiên ngôn ngữ mô tả phần cứng VHDL được công bốbởi bộ quốc phòng Hoa Kì và được chuẩn hóa IEEE năm 1987(1076-1987) Năm
1993, VHDL được chuẩn hóa IEEE phiên bản mới(1076-1993)
2.3.2 Đặc điểm của ngôn ngữ VHDL
Hỗ trợ kiểu thiết kế khác nhau của quá trình mô tả: kiểu hành vi(behavial), kiểuluồng dữ liệu(data flow), kiểu cấu trúc(structure) Kiểu hành vi đặc trưng quá trình
mô tả thuật toán chức năng của hệ thống phần cứng, không có bất kì thông tin nào
về cấu trúc phần cứng, các tùy chọn nâng cao được thực hiện thông qua hành vi vềmặt thời gian Kiểu luồng dữ liệu mô tả dòng chảy dữ liệu trong hệ thống phầncứng, kiểu luồng dữ liệu đặc trưng miêu tả trạng thái đang diễn ra trong hệ thống.Kiểu cấu trúc thực hiện thiết kế hệ thống hoàn chỉnh thông qua việc chia hệ thốngthành các hệ thống, cấu trúc nhỏ hơn thực hiện chức năng riêng biệt rồi liên kếtchúng lại với nhau
Hỗ trợ nhiều phương pháp thiết kế: từ trên xuống(top-down), từ dưới up) và thiết kế hỗn hợp Trong phương pháp thiết kế từ trên xuống, hệ thống đượcphân cấp thành tập các hệ thống con để dễ dàng thiết kế hơn Đối với phương phápthiết kế từ dưới lên, các nhà thiết kế bắt đầu với các thành phần cơ bản và tiến tớihoàn thiện hệ thống
lên(bottom-Hỗ trợ các mô hình kĩ thuật số khác nhau : mô tả về thuật toán, đại số Boolean vàmáy trạng thái hữu hạn
Hỗ trợ phương pháp tiếp cận khác nhau về mặt thời gian Ví dụ : hỗ trợ hệ thốnghoạt động đồng bộ theo xung đồng hồ clock hoặc không đồng bộ
20
Trang 21Hỗ trợ nhiều công nghệ phần cứng khác nhau : kiểu logic cơ bản mới, linh kiện
cơ bản mới và đặc tính phụ thuộc công nghệ
VHDL là ngôn ngữ đồng thời, các sự kiện có thể thực hiện đồng thời bằng trong
hệ thống phần cứng bằng cách thực thi các lệnh cùng thời điểm
Cho phép người sử dụng tự định nghĩa kiểu dữ liệu mới, trừu tượng hóa ở mứccao khi thiết kế và mô phỏng kĩ thuật thiết kế mới
Hình 2 1 Cấu trúc cơ bản của VHDL entity
Mô tả entity được dùng đối với mã VHDL, trong đó:
-Mô tả entity: Khai báo các tín hiệu được sử dụng thiết kế(tín hiệu vào, tín hiệu
ra và tín hiệu vào-ra(nếu có))
-Khối architecture: Thực thi đặc tả của hệ thống được thiết kế, thường người thiết
kế sẽ để mỗi architecture làm một nhiệm vụ riêng để dễ dàng thiết kế và sửa lỗi VHDL thích hợp thiết kế cho các hệ thống lớn, phức tạp, yêu cầu bảo mật cao.Nhược điểm của VHDL:
-Mã VHDL thường dài hơn so với mã HDL khác khi thiết kế cùng một hệ thống.-Quá trình gỡ rối khó khăn hơn do VHDL hoạt động song song
21
Trang 22CHƯƠNG 3 Quartus II 9.1 & Modelsim
3.1 Quartus II 9.1
Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môitrường thiết kế toàn diện cho các thiết kế SOPC (Hệ thống Trên 1 Chip Khả trình -System On a Programmable Chip) Đây là phần mềm đóng gói tích hợp đầy đủphục vụ cho thiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm cácdòng APEX, Cyclone, FLEX, MAX, Stratix
Quartus cung cấp các khả năng thiết kế logic sau:
- Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngônngữ: AHDL, VHDL, và Verilog HDL
- Thiết kế LogicLock: Là công cụ mạnh để tổng hợp logic
- Khả năng mô phỏng chức năng và thời gian
- Phân tích thời gian
- Phân tích logic nhúng với công cụ phân tích SignalTap@ II
- Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình
- Tự động định vị lỗi
- Khả năng lập trình và nhận diện linh kiện
Phần mềm Quartus II sử dụng bộ tích hợp NativeLink@ với các công cụthiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết
Với Quartus có thể kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp
Có thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồ khối
mô tả thiết kế ở mức cao, sau đó dùng các sơ đồ khối khác, các bản vẽ như: AHDLText Design Files (.tdf), EDIF Input Files (.edf), VHDL Design Files (.vhd), andVerilog HDL Design Files (.v) để tạo ra thành phần thiết kế mức thấp
Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo file thiết kếtrong khi vẫn có thể biên dịch hay chạy mô phỏng các dự án khác Công cụ biêndịch Quartus II nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế mạnh cho22
Trang 23phép tùy biến để đạt được thiết kế tối ưu trong dự án Công cụ định vị lỗi tự động vàcác bản tin cảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn.
3.2 Modelsim
Modelsim-Altera là công cụ phần mềm phát triển của hãng Altera Trướcđây, Modelsim là sản phẩm trí tuệ của hãng Mentor Graphics Nhận thấy các ưuđiểm của phần mềm này, hãng Altera đã mua lại bản quyền của Modelsim và tạonên Modelsim-Altera Modelsim-Altera cung cấp môi trường phát triển toàn diệncho các ngôn ngữ mô tả phần cứng (HDL - Hardware Description Language) nhưVHDL, Verilog, AHDL, SystemC, Modelsim-Altera có các thư viện đầy đủ phục
vụ cho thiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm cácdòng APEX, Cyclone, FLEX, MAX, Stratix
Modelsim-Altera cung cấp các khả năng thiết kế logic sau:
- Bộ công cụ soạn thảo các ngôn ngữ: AHDL, VHDL, và Verilog HDL
- Khả năng mô phỏng chức năng và thời gian
- Phân tích thời gian
- Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình
- Tự động định vị lỗi
- Khả năng lập trình và nhận diện linh kiện
23
Trang 243.3 Giới thiệu về EPM240T100C5
EPM240T100C5 là một dòng vi sử lý thuộc họ MAX II của hãng ALTERA
Hình 3 1 EPM240T100C5
MAX ® II, gia đình của gia đình CPLD Altera là điện năng thấp nhất, CPLD chiphí thấp nhất bao giờ hết MAX II CPLD gia đình dựa trên một kiến trúc đột phá,mang lại năng lượng thấp nhất và chi phí thấp nhất cho mỗi I / O pin của bất kỳ giađình CPLD Với sự ra đời của MAX IIZ CPLD, hiện nay có ba biến thể mà tất cả sửdụng kiến trúc CPLD sáng tạo cùng:
EPM240T100C5 có các tính năng sau đây:
• Chi phí thấp, CPLD tiết kiệm năng lượng
• Chế độ Standby thấp là 25 μA
• Cung cấp trễ truyền nhanh và xung thời gian
• Cung cấp bốn bộ tạo xung nhịp với hai bộ tạo xung nhịp có sẵn cho mỗi mảng khốilogic (LAB)
• Lõi MultiVolt cho phép điện áp cung cấp bên ngoài cho các thiết bị của một tronghai mức 3.3 V/2.5 V hoặc 1,8 V
• I / O giao diện hỗ trợ 3,3 V, 2,5 V, 1,8 V, và 1.5-V cho một mức logic
• Kiến trúc kết nối thân thiện Bus-friendly
• I / O là hoàn toàn phù hợp với (PCI SIG) PCI Local Bus Specification, sửa đổi 2.2cho 3.3-V hoạt động tại 66 MHz
• Được xây dựng trong chuẩn JTAG (Joint Test Action Group, BST (boundary-scantest) mạch với các chuẩn IEEE Std 1.149,1-1990
• ISP mạch với các chuẩn IEEE Std 1532
24
Trang 253.4 Sử dụng quartus II
Tạo project mới
Hình 3 2: Giao diện chính đầu tiên của Qurtus II
Điền các trường thông tin của project
25
Trang 26Hình 3 3 Các trường thông tin cần có cho một project
26
Trang 27Add các module
Hình 3 4 Giao diện cửa sổ add module
27
Trang 28Chọn vi điều khiển sử dụng
Hình 3 5 Giao diện cửa sổ chọn dòng vi điều khiển
28
Trang 29Chọn ngôn ngữ sử dụng
Hình 3 6 Giao diện cửa sổ chọn ngôn ngữ sử dụng
Viết code
29
Trang 30Hình 3 7 Giao diện cửa sổ giao diện làm việc quartus II
30
Trang 31Sau khi viết code xong chúng ta sẽ thử biên dịch.
Hình 3 8 Giao diện cửa sổ báo trường hợp có lỗi
31
Trang 32Hình 3 9 Giao diện cửa sổ biên dịch thành công
Gán chân
Ta chọn Assignments Pin Planner (có key tắt là n)
32
Trang 33Hình 3 10 Giao diện cửa sổ pin Planner
Sau đó ta thực hiện gán chân trên chính sơ đồ của chip ta đã chọn ở đây là EPM240T100C5
33
Trang 34Hình 3 11 Giao diện cửa sổ gán Pin
Sau khi gán chân xong ta sẽ biên dịch lại lần nữa và đây là kết quả
34
Trang 35Hình 3 12 Giao diện cửa sổ kết quả
Programmer
35
Trang 36Hình 3 13 Giao diện cửa sổ chọn programmer
36
Trang 37Sau khi programmer ta tiến hành Add file
Hình 3 14 Giao diện cửa sổ chon add file code
37
Trang 38Chọn phương thức nạp USB-Blaster [USB-0]
Hình 3 15 Giao diện cửa sổ chọn USB-Blaster [USB-0]
Và ta đã hoàn thành xong quá trình nạp cho EPM240T100C5
38
Trang 3939
Trang 40CHƯƠNG 4 THIẾT KẾ MẠCH IN4.1 Giới thiệu ORCAD
Trên thị trường hiện nay có rất nhiều công cụ phần mềm hỗ trợ việc thiết kế và chếtạo mạch điện tử như OrCAD của Cadence, Proteus của Labcenter Electronics,Multisim của National Instruments, Altium Designer của Altium Ltd, Simplorer củaAnsoft… Tuy nhiên em chọn Orcad của Cadence để vẽ mạch nguyên lý và ProteusISIS của Labcenter Electronics để chạy mô phỏng của vì tính phổ biến và sự hỗ trợmạnh mẽ của chúng trong các ứng dụng trên
OrCAD thực chất là một bộ phần mềm bao gồm:
– PSPICE: Phần mềm mô phỏng OrCAD PSPICE có nhiều thư viện với các linh
kiện giả lập, giúp mô phỏng các mạch điện tử trước khi đi vào thiết kế và chế tạo,nhằm giảm thiểu sai sót, tiết kiệm thời gian và tiền bạc Tuy nhiên, PSPICE khôngphải là phần mềm mô phỏng mạnh, tính trực quan cũng không cao
– Capture: Phần mềm vẽ mạch nguyên lý của OrCAD Capture cho phép người
dùng thay đổi, sửa chữa, thậm chí là tạo mới các linh kiện, phục vụ cho việc vẽmạch nguyên lý Các linh kiện của Capture được xây dựng một cách rõ ràng, sángsủa, tính trực quan cao
– Layout: Phần mềm vẽ mạch in của OrCAD Layout cho phép người dùng thay
đổi, sửa chữa, thậm chí là tạo mới chân cho linh kiện Các chức năng Auto Place và Auto Route của Layout cũng được đánh giá cao về tính thông minh của chúng
40