Sử dụng VHDL thiết kế bộ đếm tiền chẵn từ 00 – 98 hoặc Đếm lẻ từ 01 – 99 hiển thị trên LED 7 thanh có tín hiệu SELECT, RESET, START, STOP.

37 3.1K 21
Sử dụng VHDL thiết kế  bộ đếm tiền chẵn từ 00 – 98 hoặc  Đếm lẻ từ 01 – 99  hiển thị trên LED 7 thanh  có tín hiệu SELECT, RESET, START, STOP.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG I. GIỚI THIỆU CHUNGI. TỔNG QUAN VỀ NGÔN NGỮ VHDL“Very High Speed Integrated Circuit” là ngôn ngữ chuẩn trong công nghiệp, được sử dụng để mô tả phần cứng từ mức trừu tượng tới mức tối cụ thể. VHDL nhanh chóng trở thành một ngôn ngữ được sử dụng rộng rãi trên thế giới cho những thiết kế có độ phức tạp trung bình. Các thiết kế sử dụng ngôn ngữ VHDL được hỗ trợ bởi máy tính, FPGA, các tiêu chuẩn trên VHDL được hỗ trợ bởi công cụ của nó, các công cụ này bao gồm: mô phỏng, tổng hợp, định đường đi…VHDL là một nhánh của chương trình “Very High Speed Integrated Circuit”(VHSIC), được phát triển bởi Department of Defense vào đầu thập niên 80. Mục tiêu của chương trình VHSIC là tạo ra những mạch điện được tích hợp thông dụng mới. Những người tham gia chương trình muốn đẩy mạnh hơn nữa việc giới hạn công nghệ trong giai đoạn thiết kế và sản xuất ra các vi mạch tích hợp.Chương trình đã đạt được những thành công đáng ngạc nhiên, nhưng trong quá trình phát triển những mạch điện có độ phức tạp lớn, người thiết kế căn cứ vào những công cụ đã được sử dụng để tạo ra những thiết kế lớn thì không có đầy đủ, các công cụ hỗ trợ cho người thiết kế hầu hết ở mức cổng. Tạo ra một thiết kế sử dụng hàng trăm, hàng nghìn cổng mà sử dụng dạng mức cổng thì thật sự là một nhiệm vụ cực kỳ khó khăn. Chính vì thế một phương pháp mô tả mới được ra đời đó là VHDL. Ban đầu VHDL được thiết kế như một ngôn ngữ dùng chung để cung cấp các tài liệu và mô phỏng. Sau đó VHDL đã bao gồm các công cụ tổng hợp để tả thiết kế ở mức thanh ghi.Vào 1981, ngôn ngữ mô tả phần cứng đã được đề nghị và được gọi là VHSIC Hardware Description Language mà ngày nay chúng ta gọi là VHDL. Mục đích của ngôn ngữ mới này bao gồm 2 phần: Đầu tiên người thiết kế muốn có một ngôn ngữ giúp họ có thể vận dụng để mô tả các mạch điện phức tạp, kế tiếp tiếp họ muốn ngôn ngữ đó trở thành một chuẩn để tất cả mọi người làm việc trong một môi trường VHSIC có thể phân phối các thiết kế của họ tới những người khác trong một định dạng chuẩn. Từ những chương trình con có thể sắp xếp để tạo thành một chương trình chính với một định dạng chuẩn duy nhất.Năm 1986 VHDL đã đưa ra một chuẩn gọi là IEEE, chuẩn này đã qua một số lần thay đổi sửa chữa và công nhận là chuẩn IEEE 1076 vào tháng 12 năm 1987. 1. Các đặc điểm chính của ngôn ngữ VHDL Đặc tính tổng quát:VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết kế mức độ cao, mô phỏng tổng hợp và kiểm tra phần cứng, nó cho phép kiểm tra phần cứng từ mức hệ thống tới mức cổng. Hỗ trợ tính đồng thời nghĩa là các hợp phần tử nhỏ đến lớn hoạt động tại mọi thời điểm Hỗ trợ phân cấp thiết kế:Khi thiết kế bằng VHDL người thiết kế có thể phân bài toán lớn thành những bài toán nhỏ hơn sao cho có thể giải quyết và quản lí dễ dàng. Đâ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à các mẫu có thể dựa vào thư viện để sau khi dịch bởi chương trình dịch. Với đặc điểm này người thiết kế có thể có tạo ra những thư viện riêng có chứa các thành phần dàanh cho những thiết kế sau này mà không phải thiết kế lại, điều này cho phép người thiết kế rút ngắn thời gian thiết kế và quá trình thiết kế trở nên đơn giản hơn rất nhiều Các lệnh tuần tự:Khi người thiết kế phân chia hệ thống thành những hợp phần đồng thời hay những phần con, tiếp đó người thiết kế có thể mô tả hoạt động chi tiết bên trong bằng những cấu trúc ngôn ngữ lập trình như: case, ifthenelse, loop,... các lệnh tuần tự người thiết kế có thể mô tả hệ thống một cách dễ dàng và linh hoạt, ngoài ra còn giúp cho người làm việc chung một nhóm có thể dễ dàng hiểu được ý tưởng thiết kế của nhau để có sự phối hợp tốt hơn. Thiết kế tương thích chung:Để thiết kế tổng quát, ngôn ngữ VHDL 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ích, đặ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 kiểu và cách dùng:Ngôn ngữ VHDL cho phép mô tả các biến số ở kiểu như: bit, Boolean, iteger, floating point, kiểu liệt kê, kiểu dãy, bản ghi, ngoài ra còn hỗ trợ các kiểu do người thiết kế định nghĩa. VHDL cũng cho phép người thiết kế định nghĩa các loại toán tử cho riêng mình để phục vụ cho quá trình thiết kế linh hoạt hơn. Sử dụng các chương trình con:Một đặc điểm đặc biệt của ngôn ngữ VHDL là cho phép đặc tả định thời ở tất cả các cấp, nó cho phép người thiết kế đặt giá trị của tín hiệu với thời gian chậm, định nghĩa tín hiệu đồng bộ, đặc tả độ rộng xung, các ràng buộc thời gian khác…, người thiết kế có thể căn cứ vào những điểm này để định các giá trị tín hiệu sao cho phù hợp với các thiết kế phần cứng. Đặc tả cấu trúc:

MỤC LỤC MỤC LỤC HÌNH ẢNH MỤC LỤC BẢNG Trang | LỜI NÓI ĐẦU Hiện thị trường có nhiều loại ngôn ngữ cho vi mạch lập trình Visual Basic, Assembly, C++, … cho vi điều khiển họ PIC, 89XX, GAL Ngoài ra, VHDL ngôn ngữ mô tả phần cứng mạnh hỗ trợ cho vi mạch tích hợp theo công nghệ CPLDs, FPGAs người thiết kế vận dụng vào thiết kế cụ thể thiết kế mạch số , xử lý phương trình lọc số, lập trình giao tiếp máy tính kit Đồng thời kết hợp với phần mềm mô Quartus hay Xilinx người dùng đưa mẫu thiết kế cho vi điều khiển hoàn chỉnh cách đơn giản tiết kiệm nhiều thời gian công sức ngôn ngữ VHDL có cấu trúc tương đối gần gũi với người sử dụng Với yêu cầu thiết kế đếm chẵn từ 0-98 đếm lẻ từ 1-99 hiển thị LED có tín hiệu SELEC, Stop, Start, Reset, tiến hành xây dựng quy trình thiết kế thực khoa học bước để việc thiết kế hiệu kết tin cậy, đồng thời báo cáo đem lại nhiều kiến thức khoa học thiết kế vi mạch kiến thức chuyên nghành có ý nghĩa thực tiễn cho tương lai sau Trang | CHƯƠNG I GIỚI THIỆU CHUNG I TỔNG QUAN VỀ NGÔN NGỮ VHDL “Very High Speed Integrated Circuit” ngôn ngữ chuẩn công nghiệp, sử dụng để mô tả phần cứng từ mức trừu tượng tới mức tối cụ thể VHDL nhanh chóng trở thành ngôn ngữ sử dụng rộng rãi giới cho thiết kế có độ phức tạp trung bình Các thiết kế sử dụng ngôn ngữ VHDL hỗ trợ máy tính, FPGA, tiêu chuẩn VHDL hỗ trợ công cụ nó, công cụ bao gồm: mô phỏng, tổng hợp, định đường đi… VHDL nhánh chương trình “Very High Speed Integrated Circuit”(VHSIC), phát triển Department of Defense vào đầu thập niên 80 Mục tiêu chương trình VHSIC tạo mạch điện tích hợp thông dụng Những người tham gia chương trình muốn đẩy mạnh việc giới hạn công nghệ giai đoạn thiết kế sản xuất vi mạch tích hợp Chương trình đạt thành công đáng ngạc nhiên, trình phát triển mạch điện có độ phức tạp lớn, người thiết kế vào công cụ sử dụng để tạo thiết kế lớn đầy đủ, công cụ hỗ trợ cho người thiết kế hầu hết mức cổng Tạo thiết kế sử dụng hàng trăm, hàng nghìn cổng mà sử dụng dạng mức cổng thật nhiệm vụ khó khăn Chính phương pháp mô tả đời VHDL Ban đầu VHDL thiết kế ngôn ngữ dùng chung để cung cấp tài liệu mô Sau VHDL bao gồm công cụ tổng hợp để tả thiết kế mức ghi Vào 1981, ngôn ngữ mô tả phần cứng đề nghị gọi VHSIC Hardware Description Language mà ngày gọi VHDL Mục đích ngôn ngữ bao gồm phần: Đầu tiên người thiết kế muốn có ngôn ngữ giúp họ vận dụng để mô tả mạch điện phức tạp, tiếp họ muốn ngôn ngữ trở thành chuẩn để tất người làm việc môi trường VHSIC phân phối thiết kế họ tới người khác định dạng chuẩn Từ chương trình xếp để tạo thành chương trình với định dạng chuẩn Năm 1986 VHDL đưa chuẩn gọi IEEE, chuẩn qua số lần thay đổi sửa chữa công nhận chuẩn IEEE 1076 vào tháng 12 năm 1987 Trang | Các đặc điểm - Đặc tính tổng quát: ngôn ngữ VHDL VHDL sử dụng để lập tài liệu thiết kế, thiết kế mức độ cao, mô tổng hợp kiểm tra phần cứng, cho phép kiểm tra phần cứng từ mức hệ thống tới mức cổng Hỗ trợ tính đồng thời nghĩa hợp phần tử nhỏ đến lớn hoạt động thời điểm - Hỗ trợ phân cấp thiết kế: Khi thiết kế VHDL người thiết kế phân toán lớn thành toán nhỏ cho giải quản lí dễ dàng Đây đặc tính thiết yếu ngôn ngữ phần cứng đa cấp, thiết kế chứa mô tả giao diện mẫu dựa vào thư viện để sau dịch chương trình dịch Với đặc điểm người thiết kế có tạo thư viện riêng có chứa thành phần dàanh cho thiết kế sau mà thiết kế lại, điều cho phép người thiết kế rút ngắn thời gian thiết kế trình thiết kế trở nên đơn giản nhiều - Các lệnh tuần tự: Khi người thiết kế phân chia hệ thống thành hợp phần đồng thời hay phần con, tiếp người thiết kế mô tả hoạt động chi tiết bên cấu trúc ngôn ngữ lập trình như: case, if-then-else, loop, lệnh người thiết kế mô tả hệ thống cách dễ dàng linh hoạt, giúp cho người làm việc chung nhóm dễ dàng hiểu ý tưởng thiết kế để có phối hợp tốt - Thiết kế tương thích chung: Để thiết kế tổng quát, ngôn ngữ VHDL cho phép người thiết kế đặt cấu hình mô tả hợp phần có thông số chung thiết kế, mô tả tương thích chung thay đổi kích thích, đặc tính vật lý, định thời, đặc tính tải mội trường hoạt động thiết kế - Khai kiểu cách dùng: Ngôn ngữ VHDL cho phép mô tả biến số kiểu như: bit, Boolean, iteger, floating point, kiểu liệt kê, kiểu dãy, ghi, hỗ trợ kiểu người thiết kế định nghĩa VHDL cho phép người thiết kế định nghĩa loại toán tử cho riêng để phục vụ cho trình thiết kế linh hoạt - Sử dụng chương trình con: Một đặc điểm đặc biệt ngôn ngữ VHDL cho phép đặc tả định thời tất cấp, cho phép người thiết kế đặt giá trị tín hiệu với thời gian chậm, định nghĩa tín hiệu đồng bộ, đặc tả độ rộng xung, ràng buộc thời gian khác…, người thiết kế vào điểm để định giá trị tín hiệu cho phù hợp với thiết kế phần cứng - Đặc tả cấu trúc: Ngôn ngữ VHDL có cấu trúc để đặc tả phân rã cấu trúc phần cứng tất cấp Cấu trúc thiết kế dùng ngôn ngữ VHDL Trang | Một thiết kế phần cứng dùng ngôn ngữ VHDL bao gồm phần: - Entity( thực thể ) Khai báo entity dùng để mô tả ngõ vào ngõ thiết kế Mức cao thiết kế VHDL khai báo entity đơn, thiết kế VHDL tên file lưu trữ phải trùng với tên theo sau từ khóa entity Ví dụ: Entity dec2to4 is Port ( w : instd_logic_vector(1 down to 0); En : in std_logic; Y : out std_logic_vector(0 to 3)); End dec2to4; Trong khai báo entity tín hiệu có kiểu in, out, buffer có loại bit, bit_vector, kiểu tín hiệu định tín hiệu entity đọc hay ghi, có kiểu tín hiệu khác In: Kiểu tín hiệu mô tả dòng data vào entity entity không ghi tới tín hiệu Kiểu In sử dụng cho ngõ vào clock, ngõ vào điều khiển data có hướng đưa tới ngõ vào Out: Kiểu tín hiệu mô tả dòng data khỏi entity, entity đọc tín hiệu này, kiểu out sử dụng tín hiệu không sử dụng kiểu entity Buffer: Kiểu tín hiệu mô tả dòng data khỏi entity, entity đọc tín hiệu kiểu ( cho phép mục đích sử dụng muốn đọc lại tín hiệu ngõ bên cấu trúc) Tuy nhiên, tín hiệu không điều khiển từ ngõ entity, sử dụng cho data ngõ vào Inout: Kiểu tín hiệu cho phép tín hiệu có hai kiểu: vào ra, khai báo tín hiệu theo kiểu inout tín hiệu điều khiển từ ngõ entity Kiểu tín hiệu nên sử dụng thật cần thiết sử dụng kiểu tín hiệu mã chương trình trở nên khó hiểu cho người thiết kế Loại tín hiệu phải mô tả khai báo (“port”), tín hiệu mô tả có giá trị mà tín hiệu ấn định, mô tả vector tín hiệu có loại a Architecture Chức kiến trúc thiết kế liên hệ tín hiệu ngõ vào tín hiệu ngõ theo nhũng mà người thiết kế ấn định phần thân kiến trúc, người thiết kế viết theo nhiều kiến trúc khác thực thể, số có khả xuất mã VHDL người thiết kế Cấu trúc chương trình có dạng sau: Trang | Architecture behavioral of component_ name is …Các tín hiệu nội liệt kê …Các thành phần liệt kê Begin … …Các thành phần để trình bày phát biểu kiến trúc … End component_ name; Có kiểu phát biểu cho kiến trúc, người thiết kế kết hợp nhiều kiểu thiết kế mình, nhiên người thiết kế nên phân biệt khác kiểu, đổi chỗ hai kiểu khác Phần tới thực thể, thiết kế có cấu trúc, configuration thể phần liệt kê cho kiểu đó, configuration ban đầu ấn định tới nhiều kiến trúc thực thể Khi thực thể với kiến trúc biên dịch thư viện trở thành thành phần liên kết Nếu người thiết kế muốn sử dụng hợp phần kiến trúc để có tên port khác từ hợp phần mô tả đó, hợp có port liên kết tới tín hiệu riêng với chức này, thư viện hợp phần kết hợp liên kết dễ dàng - Định cấu hình Định cấu hình cho phép người thiết kế tiện lợi thiết kế mình, người thiết kế mô thiết kế thành phần con, dễ dàng kiểm tra thiết kế chương trình lớn Ví dụ: ta có thân kiến trúc gọi FA_BEH, FA_STR FA_Mixed tương ứng với thực thể entity FULL_ADDER Một kiến trúc chọn để mô cách đặt tả cấu hình thích hợp Tương tự trường hợp mô tả cách kết nối thành phần với tập thực thể Khai báo thành phần gồm có tên thành phần tên, kiểu số lượng cổng thông số chung thực thể Ví dụ: khai báo hợp sau: Component and2 Port(a,b: in bit; Z: out bit); Và thực thể mà thành phần bị là: Entity and_generic is Port( n: out bit; L,m: in bit); End and_generic; Entity and_hs is Port( n: out bit; L,m: in bit); Trang | End and_hs; Tên thành phần, tên thực thể, tên cổng thứ tự chúng khác Trong trường hợp người thiết kế dùng thực thể and_hs cho thành phần and2 trường hợp khác thực thể and_generic Lợi chỗ thành phần sử dụng thiết kế cho cổng thành phần chúng sử dụng tên tùy ý sau liên kết tới thực thể trước mô Vì cấu trúc dùng để nối cặp sau: - package Mục đích package gói gọn thành phần riêng lẻ để dùng chung cho thiết kế khác Một package vùng lưu trữ chung để data dùng chung số thực thể Mô tả data bên package cho phép data tham khảo thực thể khác data dùng chung Một package bao gồm thành phần: phần dùng để mô tả phần thân package, phần mô tả dùng để định nghĩa giao diện cho package, phần thân dùng để ấn định hoạt động cụ thể package - Khai báo khối Một khối khai báo bao gồm tập hợp khai báo chung, khai báo dùng chung cho nhiều thiết kế Khai báo khối tạo giao diện cho khối đó, định nghĩa đối tượng dùng cho thiết kế khác, khối khai báo người thiết kế truy xuất tới khối thiết kế mà cần phải sử dụng tới thiết kế có trước khối Cú pháp khai báo xác định là: Package package-name is Các khai báo khối chứa khai báo sau: - Subprogram delaration - Type, subtype delaration - constant, deferred constant delaration - signal delaration creates a global signal - file delaration - alias delaration - attribute delaration, a user_ define attribute - Attribute specification - use clause Tất đối tượng khai báo khối truy xuất thiết kế cần sử dụng mệnh đề use khai báo thư viện, giao diện cuả khối bao gồm chương trình số khai báo khối đó, chương trình số cần phải đáp ứng tới thân chúng, nghĩa chúng cần có hoạt động cụ thể mô tả trước đưa vào khối Khi đưa vào khối cần phải Trang | tuân thủ thưa tự thành phần thực thể mà mô tả VHDL không hiểu biên dịch chương trình mà khai báo khối thứ tự với mà mô tả trước II GIỚI THIỆU VỀ PHẦN MỀM QUARTUS II Quartus II công cụ phần mềm phát triển hãng Altera, cung cấp môi trường thiết kế toàn diện cho thiết kế SOPC (hệ thống chip khả trình system on a programmable chip) Đây phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic với linh kiện logic khả trình PLD Altera, gồm dòng APEX, Cyclone, FLEX, MAX, Stratix Quartus cung cấp khả thiết kế logic sau: - Môi trường thiết kế gồm vẽ, sơ đồ khối, công cụ soạn thảo ngôn ngữ: AHDL, VHDL, Verilog HDL - Thiết kế LogicLock - Là công cụ mạnh để tổng hợp logic - Khả mô chức 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 kết nối file nguồn để tạo file chương trình - Tự động định vị lỗi - Khả lập trình nhận diện linh kiện - Phần mềm Quartus II sử dụng tích hợp NativeLink@ với công cụ thiết kế cung cấp việc truyền thông tin liền mạch Quartus với công cụ thiết kế phần cứng EDA khác Quartus II đọc file mạch (netlist) EDIF chuẩn, VHDL Verilog HDL tạo file netlist Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biên dịch, soát lỗi, mô Với Quartus kết hợp nhiều kiểu file dự án thiết kế phân cấp Có thể dùng công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo sơ đồ khối mô tả thiết kế mức cao, sau dùng sơ đồ khối khác để tạo thành phần thiết kế mức thấp Trang | Quartus II cho phép làm việc với nhiều file thời điểm, soạn thảo file thiết kế biên dịch hay chạy mô dự án khác Công cụ biên dịch Quartus II nằm trung tâm hệ thống, cung cấp quy trình thiết kế mạnh cho phép tùy biến để đạt thiết kế tối ưu dự án Công cụ định vị lỗi tự động tin cảnh báo khiến việc phát sửa lỗi trở nên đơn giản Sau cài Quartus II, giao diện hình vẽ: Hình Giao diện Quatus II Trang | CHƯƠNG II CÁC THÀNH PHẦN CƠ BẢN I CỔNG LOGIC Cổng logic hay logic gate cấu trúc mạch điện (sơ đồ khối hình ) lắp ráp từ linh kiện điện tử để thực chức hàm logic y= f(xn,xn-1,….x1,x0) Trong tín hiệu vào xn-1,xn-2,…x1, x0 hàm Tín hiệu y mạch tương ứng với hàm logic y Với cổng thường giá trị n≤ Hình Mô hình cổng logic Giá trị tín hiệu vào có hai mức mức thấp (Low - L) mức cao (High - H) tương ứng với với hai giá trị biến logic hàm logic Ví dụ: Một cổng NOT loại CMOS (hình 1.4) tương ứng hàm NOT hai biến Q = not A Hình Mạc điện cổng NOT Trên sơ đồ dễ nhận thấy rằng, A có mức tích cực cao transitor đóng transitor mở, Q có mức tích cực thấp, A có mức tích cực thấp transitor mở đóng nên Q có mức tích cực cao, mạch điện với sơ đồ thực vai trò cổng NOT Các mạch logic biểu diễn hệ hàm logic phát biểu là: Mọi mạch logic xây dựng từ cổng logic Đối với cổng logic có hai tham số thời gian bản: Trang | 10 d Sơ đồ mạch thực đếm dạng sóng đầu FF - Sơ đồ nguyên lý đếm 4bit: Hình Sơ đồ nguyên lý ddeemss bit - Sơ đồ thực đếm mod 10: Hình Sơ đồ thực đếm mod 10 - Đồ hình dạng xung đếm : Hình Đồ hình dạng xung đếm Trang | 23 III CHƯƠNG TRÌNH LẬP TRÌNH VHDL library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; entity thanhchu is port( stp : in STD_LOGIC; stt : in STD_LOGIC; rst : in STD_LOGIC; sel : in STD_LOGIC; clk : in STD_LOGIC; seg1 : out STD_LOGIC_VECTOR(7 downto 0); seg2 : out STD_LOGIC_VECTOR(7 downto 0) ); end thanhchu; architecture thanhchu of thanhchu is begin process(rst,clk,sel,stt,stp) variable temp1:integer range to 10; variable temp2:integer range to 10; begin if (rst='1') then temp1:=0; temp2:=0; elsif (rising_edge(clk)) then if (stt='1') then if (stp='0') then if (sel='1') then if (temp1=0) then temp1:= else temp1:=temp1+2; end if; if (temp1=1) then if (temp2=9) then temp2:=0; else temp2:=temp2+1; end if; end if; end if; end if; if (sel='0') then if (temp1=10) then temp1:=0; if (temp2=9) then temp2:=0; else temp2:=temp2+1; end if; Khai báo thư viện— Khai báo thực thể -Khai báo chân đầu vào— Chân stop kiểu logic 0/1— Chân start kiểu logic 0/1— Chân reset kiểu logic 0/1— Chân selec kiểu logic 0/1— Chân clock kiểu logic 0/1— biến hàng đơn vị -biến hàng chục— khai báo kiến trúc thực thể thanhchu— Bắt đầu chương trình— Thông báo trình chạy với chân khai báo— khai báo biến temp1 số nguyên từ 0-10 -khai báo biến temp2 số nguyên từ 0-10 -Nếu biến rst=1 thì— Còn không clk mức cao thì— Nếu stt=1 thì— Xét stp=0 thì— Xét sel=1 – Xét temp1=0 gán temp1=1— Còn không tem1 tăng thêm đơn vị - Xét temp1=1 thì— Xét temp2=9 gán temp2=0 – Còn không temp2 tăng lên đơn vị Xét sel=0 Xét temp1=10 gán team1=0— Xét temp2=9 gán temp2=0— Còn không temp2 tăng lên đơn vị -Còn không temp1 tăng lên đơn vị-Trang | 24 else temp1:=temp1+2; end if; end if; else temp1:=temp1; temp2:=temp2; end if; end if; case temp1 is when => seg1 seg1 seg1 seg1 seg1 seg1 seg1 seg1 seg1 seg1NULL; end case; case temp2 is when => seg2 seg2 seg2 seg2 seg2 seg2 seg2 seg2 seg2 seg2NULL; end case; end process; end thanhchu; Khi stp #0 gán temp1=temp1vaf temp2=temp2— biến hàng đơn vị hàng chục để thị LED -khai báo giá trị thập lục phân cho trường hợp xảy Nếu trường hợp khác không làm – Kết thúc trường hợp xảy ra— Kết thúc trình thực hiện— Kết thúc thực thể thanhchu IV THIẾT KẾ MẠCH Các file thiết kế Nhấn New, chọn tab Device Design Files, chọn Verilog HDL (hay VHDL hay AHDL) Với cách này, mạch điện mô tả đoạn mã thể đầu vào đầu khối mạch cách xử chúng Trong luận án này, lấy ví dụ thiết kế mạch đếm bit dùng Verilog HDL file Tạo file Từ giao diện Altera Quartus chọn File/New Project Wizard Hiện: Trang | 25 Hình vẽ Giao diện Dự án Nhấn Next/Next để bảng Thiết lập linh kiện (Family & Device Settings), chọn linh kiện FPGA mà ta dùng, nhấn Finish Lúc này, ta có Project Thêm file Thiết kế vào Project Nhấn File/New Trang | 26 Hình vẽ Giao diện file thiết kế Để tạo file thiết kế cho Dự án, ta dùng sơ đồ khối (nhấn Block Diagram/Schematic File) hay dùng ngôn ngữ mô tả phần cứng như: AHDL, Verilog HDL hay VHDL dùng kiểu EDIF Ở đây, để chọn dùng ngôn ngữ Verilog HDL Dùng soạn thảo sẵn có Quartus để đưa đoạn code xây dựng vào file Verilog vừa tạo ra, Save với tên phù hợp Trang | 27 Hình vẽ File thiết kế thanhchu.vhdl thể ngôn ngữ Verilog Biên dịch Để biên dịch File nhấn Processing/Start Compilation Quartus biên dịch file thanhchu.vhdl Sau hoàn thành, thông báo Full Compilation was successful (Biên dịch thành công) Hình vẽ Giao diện biên dịch thông báo Biên dịch thành công Trang | 28 Cách thức mô hoạt động Quartus Công cụ Simulator tích hợp sẵn Quartus II cho phép mô hoạt động Dự án (Project) Trước mô cần tạo danh sách đường kết nối (netlist) việc nhấn Processing/Generate Functional Simulation Netlist Để quan sát dạng sóng mô phỏng, cần tạo file khác lưu trữ dạng sóng, việc chọn File/New/Other Files/Vector Waveform File Để thêm tín hiệu vào/ra cho Vector Waveform File, chọn Edit/ Insert Node or Bus, nhấn Node Finder Hình vẽ Giao diện biên dịch thông báo Biên dịch thành công Hình vẽ Giao diện Node Finder Trong danh sách trên, để chọn đầu vào RESET, Clock, START, Stop, Selec đầu SEG1 SEG2, nháy đúp vào tín hiệu Các tín hiệu danh sách Selected Nodes Nhấn OK Để án định dạng sóng cho tín hiệu vào Clock, đánh dấu chọn vào dạng sóng, WaveForm Editor chọn Overwrite Clock, : Trang | 29 Hình vẽ Giao diện Clock để ấn định dạng sóng Time Range khoảng thời gian muốn quan sát dạng sóng Chu kỳ tín hiệu cho Period, độ rộng xung Duty Cycle Hình vẽ Giao diện Waveform File Có kiểu mô Quartus Functional Timing Với kiểu Functional, để kiểm tra hoạt động túy logic, với mô Timing, kiểm tra hoạt động logic có tính đến yếu tố thời gian, như: trễ, độ Để chạy mô phỏng, chọn Processing/Start Simulation Trang | 30 V KẾT QUẢ MÔ PHỎNG Giản đồ sóng 1.1 Giản đồ sóng cho đầu đếm lẻ từ 1-99 1.2 Giản đồ sóng cho đầu đếm chẵn từ 0-98 Trang | 31 1.3 Giản đồ sóng tín hiệu reset mức cao 1.4 Giản đồ sóng tín hiệu start thay đổi từ mức thấp lên mức cao 1.5 Giản đồ sóng tín hiệu stop thay đổi Trang | 32 Sơ đồ thiết kế đếm chẵn 0-98 lẻ từ 1-99 Trang | 33 Đánh giá kết 3.1 Nhận xét kết giản đồ sóng Khi có tín hiệu clock tín hiệu reset=0 start=1 với selec=1 đếm cho đầu seg1 đếm số lẻ hệ thập lục phân F9, B0, 92, F8, 90 tương đương với số 1,3,5,7,9 sau hết chu kỳ đến seg nhảy lên đơn vị thể dạng thập lục phân Với selec=0 đếm cho đầu seg1 số chẵn hệ thập lục phân C0, A4, 99, 82, 80 số 2,4,6,8 sau hết chu kì đến tín hiệu seg2 nhảy đơn vị Như đếm thực yêu cầu đặt Đối với tín hiệu thành phần: Khi tín hiệu reset mức cao ta thấy seg1 seg2 mức C0 hệ thập lục phân tương đương với số Khi tín hiệu stop mức cao giá trị seg1 seg2 dừng vị trí thời sau tín hiệu stop mức thấp thi đếm tiêp tục chạy bình thường Như tín hiệu chức thực với yêu cầu đặt 3.2 Nhận xét kết sơ đồ thiết kế Sơ đồ thiết kế thiết kế gồm phần kết nối với qua dây temp1_OUT0 dây MUX17_OUT Thấy sơ đồ thiết kế cồng kềnh thuật toán thiết kế chưa hoàn toàn tối ưu Nhưng với thiết kế đáp ứng đặt với đếm chẵn lẻ với phím chức đếm ổn định 3.3 Tính tần số lớn cảu mạch thiết kế Xét chu kì đếm hàng chục A4 tương đương với số cảu đếm lẻ, chu kì đếm seg1 đếm số 1,3,5,7,9 Thấy bắt đầu chu kì thời điểm seg=1 hay F9 42,5(ns) kết thúc chu kỳ thời điểm kết thúc tín hiệu seg1=9 hay 90 82,5(ns) nên ta tính thời gian nhỏ để tín hiệu xung clock truyền qua lớp ghi seg1 seg2 là: Tmin =82,5-42,5=40 (ns) Do tần số xung nhịp lớn mạch là: FMax =1/ Tmin =1/40(ns)=25 (Mhz) Trang | 34 Trang | 35 VI NGUYÊN TẮC HOẠT ĐỘNG Hình Bộ đếm chữ số thập phân Khi khởi động đếm, LED hiển thị trạng thái 00, để lựa chọn đếm lẻ ta để tín hiệu “selec” mức cao chọn đếm chẵn lựa chọn tín hiệu cho “selec” mức thấp Sau để chạy chương trình đếm bắt buộc phải chọn tín hiệu “start” mức cao Khi đếm thực đếm theo yêu cầu lựa chọn với chu kỳ tần số đếm phụ thuộc vào tần số, chu kỳ xung clock đưa vào Trong trình chạy chương trình có tín hiệu “stop” mức cao đếm dừng trạng thái tức thời hai số hàng đơn vị hàng chục, sau tín hiệu “stop” trở mức thấp chương trình đếm tiếp tục chạy vị trí bị tạm dừng Và thời điểm có tín hiệu “reset” mức cao đếm quay trở trạng thái ban đầu LED hiển thị trạng thái 00 Trang | 36 CHƯƠNG IV NHẬN XÉT ĐÁNH GIÁ Qua trình nghiên cứu đề tài giao nhóm học hỏi nhiều kiến thức cấu trúc cách thức xây dựng chương trình thiết kế vi mạch VHDL, kĩ thực mô thiết kế đo phần mềm Quartus Đồng thời qua chúng em tự đánh giá lực thân Qua thời gian thực đề tài người chúng em quen dần với việc làm việc độc lập làm việc theo nhóm, biết cách tổ chức công việc thời gian hợp lý Trong trình thực đề tài này, tài liệu đề tài mạng khan hiếm, việc tìm hiểu để hoàn thành đề tài gặp nhiều khó khăn song với nỗ lực thành viên nhóm, chúng em hoàn thành đề tài Tuy nhiên kiến thức chúng em hạn chế nên đề tài tránh khỏi thiếu sót Chúng em mong nhận ý kiến đóng góp thầy cô khoa để đề tài chúng em thêm hoàn thiện Chúng em xin chân thành cảm ơn! TÀI LIỆU THAM KHẢO [1] Ngôn ngữ lập trình VHDL – Kho tài liệu.vn [2].Kỹ thuật xung số - Học viện bưu viễn thông [3].http://huongnghiepviet.com/codientu/ki_thuat_cdt/dien_tu/vi_mach_so/ [4] http://luanvan.co/luan-van/thiet-ke-bo-dem-khong-dong-bo-mod-8-32631/ [5] https://voer.edu.vn/m/mach-dem-1/cc9bb0ec [6] http://tailieu.tv/tai-lieu/luan-van-ky-thuat-pld-va-asic-18588 Trang | 37 [...]... của bộ đếm lẻ từ 1 -99 1.2 Giản đồ sóng cho đầu ra bộ đếm chẵn từ 0 -98 Trang | 31 1.3 Giản đồ sóng khi tín hiệu reset ở mức cao 1.4 Giản đồ sóng khi tín hiệu start thay đổi từ mức thấp lên mức cao 1.5 Giản đồ sóng khi tín hiệu stop thay đổi Trang | 32 2 Sơ đồ thiết kế của bộ đếm chẵn 0 -98 hoặc lẻ từ 1 -99 Trang | 33 3 Đánh giá kết quả 3.1 Nhận xét kết quả các giản đồ sóng Khi có tín hiệu clock và tín hiệu. .. sau : hgfedcba Bảng Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung Trang | 17 CHƯƠNG III THIẾT KẾ BỘ ĐẾM CHẴN TỪ 0 -98 HOẶC ĐẾM LẺ TỪ 1 -99 HIỂN THỊ LED 7 THANH CÓ TÍN HIỆU RESET, START, STOP, SELEC I PHƯƠNG ÁN THIẾT KẾ 1 Các phương án thiết kế Có hai phương pháp cơ bản được sử dụng để mô tả vi mạch số là mô tả bằng sơ đồ logic (schematic) và mô tả bằng ngôn ngữ mô tả phần cứng HDL (Hardware... nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với các chân và các led còn lại Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn... pháp: Trong bài báo cáo chúng tôi sử dụng phương pháp thiết kế vi mạch mô tả VHDL qua đó tiết kiệm thời gian ,đơn giản hóa việc thiết kế và là mục tiêu của học trình này 2.2 Hướng thiết kế: Bộ đếm chẵn từ 0 -98 hoặc lẻ từ 1 -99 sẽ có tương đương là 46 trạng thái kế tiếp nhau cần phải thực hiện đếm và hiển thị ,do đó nếu như thực hiện thiết kế vi mạch bằng phương pháp sử dụng máy trạng thái sẽ phức tạp... gọi là "mã hiển thị led 7 đoạn" Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có Cathode(cực -) chung Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7 đoạn có Cathode... ĐỘNG Hình Bộ đếm 2 chữ số thập phân Khi khởi động bộ đếm, LED sẽ hiển thị trạng thái 00, để lựa chọn bộ đếm lẻ ta sẽ để tín hiệu “selec” ở mức cao bằng 1 còn chọn bộ đếm chẵn thì lựa chọn tín hiệu cho “selec” ở mức thấp bằng 0 Sau đó để chạy chương trình đếm bắt buộc phải chọn tín hiệu “start” ở mức cao bằng 1 Khi đó bộ đếm sẽ thực hiện đếm theo yêu cầu đã lựa chọn với chu kỳ và tần số đếm phụ thuộc... xét kết quả sơ đồ thiết kế Sơ đồ thiết kế thiết kế gồm 2 phần được kết nối với nhau qua dây temp1_OUT0 và dây MUX 17_ OUT Thấy rằng sơ đồ thiết kế còn khá cồng kềnh do thuật toán thiết kế chưa hoàn toàn tối ưu Nhưng với thiết kế này chúng tôi đã đáp ứng đặt ra với bộ đếm chẵn hoặc lẻ với các phím chức năng và bộ đếm ổn định 3.3 Tính tần số lớn nhất cảu mạch thiết kế Xét 1 chu kì đếm của hàng chục A4 tương... các bộ MUX để thực hiện đếm 2 biến hàng đơn vị và hàng chục qua đó thiết kế thuật toán đơn giản hơn rất nhiều đồng thời tiết kiệm không gian và kích thước bộ đếm II THIẾT KẾ KHỐI LOGIC 1 Các bước thiết kế bộ đếm B1: Vẽ đồ hình trạng thái của bộ đếm: Căn cứ vào yêu cầu của bộ đếm cần thiết kế như Kđ và một số yêu cầu khác để xây dựng đồ hình mô tả hoạt động của bộ đếm B2: Xác định số FF của bộ đếm: ... thay đổi III LED 7 THANH Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7 đoạn" Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản... Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn 8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết ... dùng để ấn định hoạt động cụ thể package - Khai báo khối Một khối khai báo bao gồm tập hợp khai báo chung, khai báo dùng chung cho nhiều thiết kế Khai báo khối tạo giao diện cho khối đó, định nghĩa... vị -biến hàng chục— khai báo kiến trúc thực thể thanhchu— Bắt đầu chương trình— Thông báo trình chạy với chân khai báo khai báo biến temp1 số nguyên từ 0-10 -khai báo biến temp2 số nguyên... khối khai báo người thiết kế truy xuất tới khối thiết kế mà cần phải sử dụng tới thiết kế có trước khối Cú pháp khai báo xác định là: Package package-name is Các khai báo khối chứa khai báo sau:

Ngày đăng: 11/11/2015, 14:15

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • CHƯƠNG I. GIỚI THIỆU CHUNG

  • CHƯƠNG II. CÁC THÀNH PHẦN CƠ BẢN

  • I. Cổng logic

  • II. Phần tử nhớ

    • 1. D-Latch và D flip- flop

    • 2. Các flip-flop khác

    • 2. Phân tích và lựa chọn phương pháp

    • 1. Các bước thiết kế bộ đếm

    • 1. Các file thiết kế.

    • 2. Cách thức mô phỏng hoạt động trong Quartus.

    • 1. Giản đồ sóng

    • 2. Sơ đồ thiết kế của bộ đếm chẵn 0-98 hoặc lẻ từ 1-99

    • 3. Đánh giá kết quả

    • CHƯƠNG IV. NHẬN XÉT ĐÁNH GIÁ

Tài liệu cùng người dùng

Tài liệu liên quan