YOMEDIA
ADSENSE
CHƯƠNG 2 : NGÔN NGỮ LẬP TRÌNH VHDL, PHẦN MỀM QUARTUS VÀ KIT DE2
154
lượt xem 10
download
lượt xem 10
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CHƯƠNG 2 : NGÔN NGỮ LẬP TRÌNH VHDL, PHẦN MỀM QUARTUS VÀ KIT DE2
- Trang 24 CHƯƠNG 2 : NGÔN NGỮ LẬP TRÌNH VHDL, PHẦN MỀM QUARTUS VÀ KIT DE2 2.1 Giới thiệu môi trường thiết kế phần cứng và ngôn ngữ VHDL: 2.1.1 Môi trường thiết kế phần cứng ( Hardware Design Environments) Để đáp ứng sự phát triển kỹ thuật số, các công cụ thế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. Hỗ trợ mạnh mẽ cho phương pháp thiết kế này là những ngôn ngữ mô tả phần cứng (HDLs – Hardware Description Languages). Khái niệm HDLs được ứng dụng rộng rãi trong thiết kế hệ thống số trong thời gian gần đây, dựa vào HDLs, công cụ hỗ trợ cho thiết kế hệ thống số đã phát triển và được sử dụng nhiều trong thiết kế phần cứng. Quá trình thiết kế hệ thống số: Ý tưởng thiết kế: Trước tiên người thiết kế phần cứng phải có ý tưởng thiết kế. Sau đó, phát triển ý tưởng thiết kế thành sơ đồ khối, lưu đồ, ngôn ngữ tự nhiên. Người thiết kế chỉ ra toàn bộ chức năng từ đầu vào đến đầu ra mà không cần chi tiết phần cứng hoặc kiến trúc của hệ thống dưới thiết kế. Thiết kế đường dữ liệu: Trong giai đoạn này người thiết kế chỉ rõ thanh ghi và các đơn vị logic. Những thành phần này được kết nối bằng các bus một hay hai chiều rồi điều khiển hoạt động dữ liệu giữa các thanh ghi và các đơn vị logic thông qua các bus. HVTH: Hà Minh Tân
- Trang 25 Thiết kế luận lý: Thiết kế luận lý là bước tiếp theo trong quá trình thiết kế và liên quan đến ứng dụng các cổng và các mạch lật cơ bản cho việc cài đặt các thanh ghi dữ liệu, các bus, các đơn vị logic và phần cứng điền khiển chúng. Kết quả của giai đoạn này là một danh sách kết nối (netlist) của cổng và mạch lật. Công nghệ chế tạo các cổng và các chi tiết kỹ thuật của các mạch lật không có trong netlist này. Sau đó chuyển các netlist này thành sơ đồ hay danh sách transistor. Điều này liên quan đến sự thay thế cổng và mạch lật bằng transistor hay các phần tử thư viện tương ứng nhưng phải xem xét chế độ tải và định thời. Thiết kế vật lý: Tối ưu luận lý: dùng để loại bỏ các biến dư thừa trong mạch. Ánh xạ công nghệ đã tối thiểu số khối logic, diện tích. Placement dùng để bố trí các khối để có tốc độ nhanh nhất. Routing kết nối các khối logic thành hệ thống số hoàn chỉnh Chế tạo: Sử dụng danh sách các transistor và đặc tả kỹ thuật để đốt cháy cầu chì hay nạp dữ liệu vào SRAM của thiết bị có thể lập trình hoặc tạo mặt nạ cho việc sản xuất mạch tích hợp. Nhiều nhà sản xuất đã nghiên cứu các sản phẩm lập trình được như: FPGAs (Field Programmable Gate Arrays), CPLDs (Complex Programmable Logic Devices), vi mạch Hard Wire, Serial PROMs. Vi mạch FPGAs gồm một ma trận các đơn vị logic. Những liên kết kim loại giữu các khối logic có thể được nối một cách tùy ý bằng các chuyển mạch có thể lập trình được để chế tạo thành một mạch như yêu cầu. FPGAs chứa một số lượng lớn các cổng logic, các thanh ghi, các mạch vào ra tốt độ cao. Vi mạch CPLDs chứa nhiều khối chức năng và khối chức năng ra, liên kết với nhau thông qua ma trận chuyển mạch. CPLDs là hệ thống tích hợp nhỏ từ 800 đến 10000 cổng nhưng có tốt độ cao, thiết kế đơn giản. HVTH: Hà Minh Tân
- Trang 26 Vi mạch Hard Wire lập trình bằng mặt nạ của SRAM – dựa trên nền tảng của FPGAs. Các cổng của Hard Wire tương tự như FPGAs nhưng các phần tử logic được liên kết bằng kim loại cố định nên kích thước nhỏ và giá thành thấp. Serial PROMs là vi mạch nhớ có thể lập trình được một lần được sử dụng để nạp dữ liệu cho SRAM FPGAs. 2.1.2 Các ngôn ngữ mô tả phần cứng: Hiện nay có rất nhiều ngôn ngữ mô tả phần cứng được thiết kế cho mục đích mô phỏng, thiết kế, kiểm tra: AHPL là một HDL mô tả dòng dữ liệu. Ngôn ngữ này sử dụng tín hiệu đồng hồ để đồng bộ các phép gán dữ liệu cho các thanh ghi và các mạch lật nhưng không hổ trợ các mạch không đồng bộ. Kiểu dữ liệu trong AHPL bị cố định và hạn chế ở các kiểu bit, vector bit. Các thủ tục hay hàm chỉ thực hiện trong các đơn vị luận lý tổ hợp. CDL (Computer Design Language) là ngôn ngữ mô tả dòng dữ liệu phát triển trong trường học, không hỗ trợ phân cách thiết kế. CONLAN (Consensus Language) cho phép mô tả phân cách nhưng bị giới hạn sử dụng tham khảo bên ngoài. IDL (Interactive Design Language) là ngôn ngữ sử dụng trong hãng IBM được thiết kế để tự động tạo ra các cấu trúc PLA. Nhưng nó không bao trùm mô tả mạch tổng quát. ISPS (Instruction Set Proccessor Specification) là ngôn ngữ mô tả hành vi cấp cao được thiết kế để tạo ra môi trường thiết kế cho phần mềm dựa trên phần cứng. Điều khiển định thời trong ISPS bị hạn chế. TEGAS (Test Generation And Simulation) là hệ thống để tạo ra tín hiệu kiểm tra và mô phỏng mạch số. TI – HDL (Texas Instrument Hardware Description Language) là ngôn ngữ đa cấp cho thiết kế và mô phỏng phần cứng. Ngôn ngữ này cố định kiểu dữ liệu và không cho phép các kiểu dữ liệu do người định nghĩa. HVTH: Hà Minh Tân
- Trang 27 VERILOG là ngôn ngữ hỗ trợ phân cấp thiết kế xuất hiện sau VHDL, dễ sử dụng, được tiêu chuẩn hóa quốc tế. VHDL (Very Hight Speed Intergrated Circuits Hardware Description Language) là ngôn ngữ mô tả phần cứng được công nhận tiêu chuẩn IEEE năm 1987, có đầy đủ sức mạnh cho việc mô tả và thiết kế hệ thống số ngày nay. VHDL hỗ trợ mô tả phân cấp từ hệ thống xuống tận cổng logic hay kiểu mạch, hỗ trợ đặc điểm về thời gian, cung cấp các cấu trúc hết sức tổng quát. 2.1.3 Ngôn ngữ lập trình VHDL VHDL là ngôn ngữ mô tả phần cứng dùng cho các mạch tích hợp tốc độ rất cao, đượ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 như là một ngôn ngữ mô tả phần cứng tiêu chuẩn và thống nhất cho phép 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 Instruments bắt đầu nghiên cứu phát triển vào tháng 7 năm 1983. Phiên bản ưu tiên được công bố vào tháng 8-1985. Sau đó VHDL được đề xuất để tổ chức IEEE xem xét thành một tiêu chuẩn chung. 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 kỹ, lưỡng tài liệu đó. Với một ngôn ngữ mô tả 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ó hệ đượ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. 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ế trong khi chỉ sử dụng một HVTH: Hà Minh Tân
- Trang 28 ngôn ngữ duy nhất. Và khi so sánh với các ngôn ngữ mô phỏng phần cứng khác ta thấy VHDL có một số ưu điểm hơn hẳn các ngôn 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 đượ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. • 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ảng ngẫ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ớ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 tuy thuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng 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 độ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ả 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ể đượ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 đó cá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ạ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 HVTH: Hà Minh Tân
- Trang 29 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.1.4 Ngôn ngữ VHDL cho thiết kế logic Ngôn ngữ phần cứng: HDL được dùng để mô tả phần cứng cho mục đích mô phỏng, tạo mẫu, kiểm tra, thiết kế và lập tài liệu. Ngôn ngữ này cung cấp một quy ước và định dạng ngắn gọn để biểu diễn phân cấp các chi tiết chức năng và nối dây cho hệ thống số, các ký hiệu thay cho sơ đồ mạch số và biểu diễn trừu tượng. Phần mềm HDL thường chứa chương trình mô phỏng (kiểm tra thiết kế) và tổng hợp phần cứng (thiết kế phần cứng tự động). Ngôn ngữ mô tả hành vi: Instruction Set Processor Specification (ISPS) là HDL mô tả hành vi các hệ thống số. Ngôn ngữ này được C. G. Bell giới thiệu vào năm 1971. ISPS được thiết kế cho mô phong phần cứng, tự động thiết kế, phát sinh tự động phần mềm. Ngôn ngữ này là ngôn ngữ lập trình giống phần mềm nhưng nó bao gồm cấu trúc chuyển động đặc biệt của dữ liệu các thanh ghi và các bus. Kiến trúc giống như CPU được mô tả dể dàng và hiệu quả trong ISPS. ISPS thích hợp nhất cho việc biểu diễn đầu ra của giai đoạn thiết kế hành vi của một quá trình thiết kế. Ngôn ngữ mô tả dòng dữ liệu: Ngôn ngữ lập trình phần cứng AHPL (A Hardware Programming Language). Ngôn ngữ này biểu diễn một tập hợp ký hiệu để trình bày phần cứng trong môi trường lý thuyết. Việc sử dụng tập hợp ký hiệu ban đầu này dẫn đến sự phát triển ngôn ngữ phần cứng AHPL. Ngôn ngữ mô tả netlist: Cách khác để mô tả hệ thống số này là netlist để mô tả nối kết các phần cứng của nó. Tập con của ngôn ngữ mô tả phần cứng Verilog có thể được dùng cho mục đích này. Có hai cách mô tả phần cứng: sơ đồ logic và ngôn ngữ HDL. Mỗi mô tả thích hợp với mỗi công cụ CAD tại một giai đoạn thiết kế khác nhau. Mô tả ISPS có thông tin về hành vi mức độ cao và có thể dùng như công cụ mẫu HVTH: Hà Minh Tân
- Trang 30 cho người thiết kế phần cừng. Mức mô tả này phù hợp với người quản lý muốn biết về chức năng của sản phẩm cuối cùng trước khi nó được thiết kế. Mô tả AHDL chứa nhiều thông tin kiến trúc và thích hợp hơn đối với việc mô phỏng mạch cho thiết kế và cấu trúc. Người thiết kế phần cứng có thể sử dụng mức mô phỏng phần cứng này để kiểm tra thiết kế của bộ điều khiển và đường dẫn dữ liệu. Mô tả Verilog khác với mô tả ISPS và AHPL trong đó chứa các thông tin mà công cụ CAD – Computer Aided Design có thể sử dụng để phân tích chi tiết hơn hoặc chế tạo mạch điện. Mức mô phỏng này thích hợp cho việc mô phỏng các phần tử mẫu đã định nghĩa trước hoặc có thể là một netlist được tạo ra bởi công cụ CAD sau giai đoạn phát sinh tự động. Mô tả phần cứng: Ngôn ngữ mô tả phần cứng là các công cụ tạo mẫu để tạo ra một mẫu phần cứng, một trong những ứng dụng của tạo mẫu là để mô phỏng. Mô phỏng là sử dụng một mẫu của hợp phần thực để phân tích cách ứng xử của nó dưới các điều kiện và kích thích cho trước. Trong môi trường thiết kế, mô tả phần cứng sử dụng các mẫu của hợp phần và các định nghĩa lấy trong thư viện mô phỏng để tạo ra một mẫu phần cứng mô phỏng. Mô phỏng được dùng để kiểm tra kết quả của bất kỳ giai đoạn thiết kế nào. Bộ mô phỏng cần tập hợp dữ liệu mô phỏng hay kích thích để mô phỏng mạch. Chương trình mô phỏng sử dụng dữ liệu này mô tả đầu vào tại thời điểm cụ thể và phát ra các đáp ứng cho mạch. Kết quả của chương trình mô phỏng được mô tả bằng dạng sóng, giản đồ thời gian, hoặc danh sách các giá trị theo thời gian. Mô phỏng hệ thống được phân thành hai loại: • Mô phỏng tại thời điểm cố định (Obvious): mổi thành phần được đánh giá tại thời điểm cố định. • Mô phỏng sự kiện (Event driven): mổi thành phần được đánh giá khi một trong số đầu vào của nó thay đổi. Kiểm tra kết quả: HVTH: Hà Minh Tân
- Trang 31 Sau khi mô phỏng và tổng hợp, kiểm tra là mối quan tâm của người thiết kế hệ thống số. Các vấn đề liên quan đến việc kiểm tra bao gồm: fault collapsing, test generation, fault simulation test compaction, fault dictionaries. Mặc dù ít được quan tâm hơn so với mô phỏng và tổng hợp, nhưng người ta thực hiện nhiều cách kiểm tra dựa vào HDLs. HDLs cung cấp một dạng netlist cho mục đích phát ra kiểm tra hay mô phỏng lỗi. Các testbench để đánh giá các lỗi có thể được lập trình trong ngôn ngữ mô tả phần cứng. Một tập con dạng sóng của ngôn ngữ mô tả phần cứng có thể dùng để biểu diễn dữ liệu kiểm tra bằng thiết bị kiểm tra hoặc tạo kích thích để mô phỏng lỗi. 2.1.5 Các phần mềm mô phỏng cho ngôn ngữ VHDL Hiện nay có rất nhiều hãng đầu tư nghiên cứu và sử dụng ngôn ngữ VHDL để thiết kế các mạch lập trình được theo nhiều tiêu chuẩn công nghệ khác nhau: Exemplar logic’s leonardo: Là một công cụ tổng hợp, tối ưu hóa và phân tích rất linh hoạt mềm dẻo. Nó được sử dụng để thiết kế các vi mạch ASICs, FPGAs, CPLDs. Người thiết kế có thể thực hiện nhiều thiết kế trên cùng một bản thiết kế, lưu giữ và điều chỉnh bằng tay các cấp thiết kế, sử dụng ngôn ngữ mô tả phần cứng để cài đặt thiết kế. Leonardo cung cấp một môi trường thiết kế top – down bắt đầu từ VHDL hay Verilog có khả năng thông báo kết quả bằng việc sử dụng tập tin hiện thời SDF và thư viện mô phỏng Vital. Leonardo được tính hợp đầy đủ mô trường mô phỏng các kiểu công nghệ. Công cụ tổng hợp Exemplar giải quyết các mức tổng hợp tới cổng logic, tối ưu tốc độ, diện tích, ánh xạ công nghệ. Synopsys FPGA express: Có chức năng chuyển ngôn ngữ VHDL thành các khối logic, ánh xạ các cấu trúc logic vào thư viện công nghệ FPGA. Synplify: Tổng hợp mạch dùng ngôn ngữ VHDL và Verilog dễ sử dụng, tốc độ tổng hợp rất nhanh so với các công cụ tổng hợp khác. Ngõ ra là sơ đồ liên kết mức cổng cung cấp cho các công cụ Place và Route FPGA sử dụng. HVTH: Hà Minh Tân
- Trang 32 Cypress Semiconductor Warp: Là chương trình dịch cho thiết kế CPLDs và FPGAs, Warp nhận đầu vào là tập tin VHDL. Nó sẽ tổng hợp và tối ưu thiết kế để tạo ra phần cứng. Warp xuất ra sơ đồ liên kết QDIF cho place và route. Công nghệ SPDE trong Warp thực hiện tối ưu hóa sắp xếp và đi dây cho vi mạch FPGAs Pasis 80 Mentor Graphic: Là hãng phần mềm lớn chuyên cung cấp các công cụ tổng hợp phức tạp cho các loại thiết bị CPLDs và FPGAs. Max + Plus II: Là phần mềm đa chức năng thực hiện thiết kế tổng hợp cho một số loại CPLDs và FPGAs của hãng Altera. Nó hỗ trợ biên dịch, mô phỏng, phân tích định thời và tổng hợp mạch. Quartus II: Là phần mềm đa chức năng dùng trong thiết kế logic của hãng Altera. Hỗ trợ dạng file text và file graphic, có khả năng biên dịch, phân tích thời gian tổ hợp mạch và kiểm tra trong thiết kế logic. 2.2 Thực thể thiết kế của VHDL 2.2.1 Đặc điểm của VHDL Đặc tính tổng quát: VHDL có thể sử dụng để lập tài liệu thiết kế, thiết kế tốc độ cao mô phỏng tổng hợp và kiểm tra phần cứng. VHDL mô tả phần cứng từ mức hệ thống đến mức cổng, hỗ trợ tính đồng thời nghĩa là các thành phần nhỏ đến lớn hoạt động tại một thời điểm. Hỗ trợ phân cấp thiết kế: Đây là đặc tính thiết yếu của ngôn ngữ phần cứng đa cấp. Thiết kế chứa một mô tả giao diện và một số phần độc lập để mô tả hoạt động, hoạt động của hệ thống có thể mô tả dựa trên chức năng hoặc dựa trên cấu trúc của những thành phần nhỏ. Có thư viện hỗ trợ: Ngôn ngữ cung cấp cơ chế để truy cập tới nhiều thư viện khác nhau. Thư viện không những chứa đặc tả giao diện của thiết kế mà còn HVTH: Hà Minh Tân
- Trang 33 chứa một số đặc tả hoạt động của hệ thống. Các đặc tả và các mẩu có thể dựa vào thư viện sau khi được dịch bởi chương trình. Có lệnh tuần tự: Khi người thiết kế phân chia hệ thống thành những thành phần hay những phần con, tiếp đó người thiết kế có thể mô tả chi tiết hoạt động bên trong bàng những cấu trúc ngôn ngữ lập trình tuần tự như các lệnh If – Then – Else, Case, Loop… các lệnh tuần tự cung cấp phương pháp đơn giản để tạo ra các thành phần phần cứng dựa trên chức năng của chúng. Thiết kế tương thích chung: Thiết kế tổng quát, ngôn ngữ cho phép người thiết kế đặt cấu hình mô tả hợp phần có thông số chung trong thiết kế. Mô tả tương thích chung có thể thay đổi kích thước, đặc tính vật lý, định thời, đặc tính tải, và môi trường hoạt động của thiết kế. Khai báo kiểu và cách dùng: VHDL cho phép mô tả các kiểu Bit, Boolean, Interger, Float, kiểu liệt kê, kiểu mảng, kiểu bản ghi. VHDL hỗ trợ các kiểu do người dùng định nghĩa, cho phép định nghĩa lại các toán tử của ngôn ngữ. Sử dụng các chương trình con: VHDL cho phép định nghĩa, sử dụng các hàm, thủ tục. Chương trình con có thể sử dụng để biến đổi kiểu, định nghĩa đơn vị luận lý, định nghĩa loại toán tử, toán tử mới và các ứng dụng khác trong ngôn ngữ lập trình. Điều khiển định thời: VHDL cho phép định thời ở tất cả các cấp, đặt giá trị của tín hiệu, thời gian delay, định nghĩa tín hiệu đồng bộ, độ rộng xung và ràng buột thời gian khác. Đặc tả cấu trúc:. Ngôn ngữ có các cấu trúc để đặc tả phân cấp cấu trúc của phần cứng ở tất cả các cấp. 2.2.2 Đặt điểm thiết kế Các thực thể thiết kế được xây dựng trong VHDL sử dụng 5 kiểu đơn vị thiết kế khác nhau. Khai báo entity (thực thể), khai báo package (gói) và khai báo configuration (cấu hình) là các đơn vị thiết kế chủ yếu và thấy được bên trong một library (thư viện). Một library là một miền lưu trữ của môi trường máy chủ cho các đơn vị thiết kế biên dịch. HVTH: Hà Minh Tân
- Trang 34 Hình 2.1: Các đơn vị thiết kế của VHDL Khai báo architecture (kiến trúc) và package body (thân của gói) là các đơn vị thiết kế thứ cấp do chúng không thấy được bên trong một library Khai báo thực thể trong VHDL phần đị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. Thực chất của 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. Ta có thể có tất cả các thông tin để kết nối mạch vào mạch khác hoặc thiết kế tác nhân đầu vào phục vụ cho mục đích thử nghiệm. Khai báo kiến trúc: Mỗi 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 tạo ra hơn một kiến trúc cho một thực thể. Phần khai báo kiến trúc có thể bao gồm các khai báo về tín hiệu bên trong, các phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả hoạt động của hệ thống. Tên của kiến trúc là nhãn được đặt tùy theo người sử dụng. Có hai cách mô tả kiến trúc của một phần tử (hoặc hệ thống) đó là mô hình thuộc tính (Behaviour) hay mô tả theo mô hình cấu trúc (Structure). Tuy nhiên một hệ thống có thể bao gồm cả mô tả theo mô hình thuộc tính và mô tả theo mô hình cấu trúc. HVTH: Hà Minh Tân
- Trang 35 Khai báo cấu hình: Khai báo configuration là đơn vị thiết kế chủ yếu được sử dụng để kết nối phát biểu entity với thân architecture riêng biệt, nhằm tạo thành các thành phần của thiết kế. Ta có thể tạo ra nhiều hơn một khai báo configuration cho một entity, mỗi khai báo xác định một tập kết nối khác nhau cho mỗi thành phần. Khai báo gói: Khai báo package là một kho chứa để lưu giữ các khai báo thường sử dụng, có thể được truy cập tổng thể ngang qua nhiểu đơn vị thiết kế. Khai báo package có một package body kết hợp nếu các chương trình con (hàm) hoặc thủ tục được khai báo. Thân gói: Package body luôn luôn được kết hợp với một khai báo package có cùng tên và chứa thân chương trình con của các hàm và thủ tục được khai báo trong khai báo package. 2.2.3 Cấu trúc chương trình Đơn vị thiết kế thể hiện các đơn vị thiết kế khác, đến lượt đơn vị thiết kế khác này có thể thể hiện những đơn vị thiết kế khác nữa theo kiểu hệ thống có thể bậc. Cấu trúc chương trình có thứ bậc này sẽ phỏng theo cấu trúc phần cứng được suy ra khi cấu trúc phần cứng này được mô hình. Các phát biểu được viết bên trong một đơn vị thiết kế sẽ thuộc một trong 3 loại : khai báo ( declaration), đồng thời (concurrent) và tuần tự (sequential). 2.2.3.1 Phát biểu khai báo Trong VHDL, thành phần của một đơn vị thiết kế mức thấp phải được khai báo trước khi thành phần này được thể hiện. Một chương trình con trong VHDL là một procedure (thủ tục) hoặc một function (hàm). Phát biểu khai báo được đặt trước mệnh đề begin trong phát biểu architecture, block (khối), process (quá trình), procedure hoặc function. HVTH: Hà Minh Tân
- Trang 36 Hình 2.2: Các khai báo chương trình con trong đơn vị thiết kế 2.2.3.2 Phát biểu đồng thời Đây là phát biểu được thực thi song song, cùng một thời điểm. Các phát biểu này hoạt động độc lập với tất cả phát biểu đồng thời khác. Khi mô tả cấu trúc phần cứng, các phát biểu đồng thời biệu diễn những phần độc lập của mạch được mô hình. Mỗi phát biểu đồng thời được thực thi không đồng bộ với tất cả phát biểu đồng thời khác. Block và process là các phát biểu đồng thời. Các phép gán tín hiệu (signal assignment) và lối gọi procedure là đồng thời sao cho chúng không hiện diện bên trong phát biễu process. Tương tự, lại gọi funtion là đồng thời miễn là function được gọi từ bên trong biểu thức của phép gán tín hiệu đồng thời. 2.2.3.3 Phát biểu tuần tự HVTH: Hà Minh Tân
- Trang 37 Các phát biểu tuần tự là phát biểu được thực thi phụ thuộc vào luồng thủ tục (procedural flow) của các cầu trúc bao quanh chúng. Hình 2.3: Các phát biểu quá trình trong đơn vị thiết kế và các lời gọi chương trình con trong đơn vị thiết kế hoặc thư viện 2.3 Phần mềm Quartus II và kit DE2 của Altera 2.3.1 Các thành phần cơ bản của Quartus II New project wizard : tạo project mới Assignments : • Devices: chọn họ và linh kiện phần cứng HVTH: Hà Minh Tân
- Trang 38 • Pins: gán chân để lập trình linh kiện • Timing setting : thiết lập chế độ thời gian trong mô tả dụng sóng Compiler tool: công cụ biên dịch chương trình Simulation tool : công cụ mô phỏng Timing Analyzer tool : phân tích thời gian RTL viewer : sau khi biên dịch chương trình, Quartus tạo ra mô hình phần cứng dưới dạng biểu đồ sẽ được nạp vào linh kiện lập trình. Programmer : nạp chương trình vào linh kiện Compiler report : bảng báo cáo kết quả biên dịch chương trình Simulation report : bảng báo cáo kết quả mô phỏng chương trình Mega Wizard plug-in manager : tạo hoặc thay đổi các tập tin thiết kế có sẳn của megafunctions theo nhu cầu sử dụng. 2.3.2 Thiết kế và biên dịch, mô phỏng chương trình • Khai báo project: Hình 2.4: Tạo Project mới HVTH: Hà Minh Tân
- Trang 39 Hình 2.5: Khai báo thư mục chưa file Hình 2.6: Thêm vào những file cần thiết HVTH: Hà Minh Tân
- Trang 40 Hình 2.7: Chọn họ linh kiện cho thiết kế Hình 2.8: Hoàn tất quá trình tạo project. HVTH: Hà Minh Tân
- Trang 41 • Cấu hình cho linh kiện: dùng Assign Pins trong Assignments để gán các cổng vào và ra của thiết kế cho các chân linh kiện lập trình. Sau khi soạn thảo chương trình, để thực hiện mô phỏng mà lập trình cho linh kiện, chương trình cần được biên dịch. Quá trình biên dịch gồm các giai đoạn phân tích, tổng hợp, kết nối, trình bày và sắp xếp, phân tích thời gian và tạo tập tin dữ liệu cấu hình cho chip.Chọn biểu tượng Start Compilation trên thanh công cụ standard. • Mô phỏng : gồm có 2 cách mô phỏng timing và funtional Hình 2.9: Tạo mới file mô phỏng HVTH: Hà Minh Tân
- Trang 42 Hình 2.10: Chọn file mô phỏng Hình 2.11: Lưu file với tên trùng với tên project HVTH: Hà Minh Tân
- Trang 43 Hình 2.12: Thêm vào các node Hình 2.13: Hiện danh sách các node trong thiết kế HVTH: Hà Minh Tân
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn