DANH MỤC CÁC HÌNH2DANH MỤC CÁC BẢNG BIỂU3LỜI CẢM ƠN4CHƯƠNG 1: GIỚI THIỆU VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL51.1. Giới thiệu về VHDL51.2. Cấu trúc của chương trình mô tả bằng VHDL71.3. Đối tượng và kiểu dữ liệu121.4. Mảng (Array)141.5. Chuyển đổi dữ liệu141.6. Máy trạng thái151.7. Tìm hiểu chung về board Basys 316CHƯƠNG 2: THIẾT KẾ MÁY BÁN NƯỚC TỰ ĐỘNG182.1. Mô tả chung192.2. Kết quả mô phỏng máy bán nước tự động232.3. Kết luận24TÀI LIỆU THAM KHẢO25PHỤ LỤC261.1. Giới thiệu về VHDLVHDL viết tắt của VHSIC HDL (Veryhighspeedintergratedcircuit Hardware Description Language) hay ngôn ngữ mô tả phần cứng cho các vi số mạch tích hợp tốc độ cao. Mục tiêu của việc phát triển VHDL là có được một ngôn ngữ mô phỏng 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ế.Lịch sử phát triển của VHDL trải qua các mốc chính như sau:1981: Phát triển bởi Bộ Quốc phòng Mỹ nhằm tạo ra một công cụ thiết kế phần cứng tiện dụng có khả năng độc lập với công nghệ và giảm thiểu thời gian cũng như chi phí cho thiết kế19831985: Được phát triển thành một ngôn ngữ chính thống bởi 3 công ty Intermetrics, IBM and TI.1986: Chuyển giao toàn bộ bản quyền cho Viện Kỹ thuật Điện và Điện tử (IEEE).1987: Công bố thành một chuẩn ngôn ngữ IEEE1076 1987.1994: Công bố chuẩn VHDL IEEE1076 1993.2000: Công bố chuẩn VHDL IEEE1076 2000.2002: Công bố chuẩn VHDL IEEE1076 20022007: công bố chuẩn ngôn ngữ Giao diện ứng dụng theo thủ tục VHDL IEEE1076c 20072009: Công bố chuẩn VHDL IEEE1076 2009VHDL ra đời trên yêu cầu của bài toán thiết kế phần cứng lúc bấy giờ, nhờ sử dụng ngôn ngữ này mà thời gian thiết kế của sản phẩm bán dẫn giảm đi đáng kể, đồng thời với giảm thiểu chi phí cho quá trình này do đặc tính độc lập với công nghệ, với các công cụ mô phỏng và khả năng tái sử dụng các khối đơn lẻ.VHDL là 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 ngôn ngữ duy nhất. Các ưu điểm chính của VHDL là:Tính công cộng: VHDL là ngôn ngữ được chuẩn hóa chính thức của IEEE do đó đượ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, hầu như tất cả các công cụ thiết kế của các hãng phần mềm lớn nhỏ đều hỗ trợ biên dịch VHDL.Được hỗ trợ bởi nhiều công nghệ: VHDL có thể sử dụng mô tả nhiều loại vi mạch khác nhau trên những công nghệ khác nhau từ các thư viện rời rạc, CPLD, FPGA, tới thư viện cổng chuẩn cho thiết kế ASIC.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 chức năng dùng VHDL thiết kế ở mức thanh ghi truyền tải RTL có thể được tổng hợp thành các mạch trên các công nghệ bán dẫn khác nhau. Nói một cách khác khi một công nghệ phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế bằng cách tổng hợp các thiết kế đó lại trên thư viện phần cứng mới.Khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần cứng từ mức thanh ghi truyền tải (RTL–Register Tranfer Level) cho đến mức cổng (Netlist). Hiểu một cách khác VHDL có một cấu trúc mô tả phần cứng chặt chẽ có thể sử dụng ở lớp mô tả chức năng cũng như mô tả cổng trên một thư viện công nghệ cụ thể nào đó.Khả năng trao đổi, tái sử dụng: Việc VHDL được chuẩn hóa giúp cho việc trao đổi các thiết kế giữa các nhà thiết kế độc lập trở nên hết sức dễ dàng. Bản thiết kế VHDL được mô phỏng và kiểm tra có thể được tái sử dụng trong các thiết kế khác mà không phải lặp lại các quá trình trên. Giống như phần mềm thì các mô tả HDL cũng có một cộng đồng mã nguồn mở cung cấp, trao đổi miễn phí các thiết kế chuẩn có thể ứng dụng ở nhiều hệ thống khác nhau.1.2. Cấu trúc của chương trình mô tả bằng VHDLCấu trúc của một chương trình VHDL gồm 3 phần: Khai báo thư viện (Library), mô tả thực thể (Entity) và mô tả kiến trúc (Architecture). Trong đó:Library: chứa một danh sách của tất cả các thư viện được sử dụng trong thiết kế,…Ví dụ: IEEE, STD, WORK,…Entity: Mô tả các chân vàora (InOut pins) của mạch.Architecture: chứa mã VHDL, mô tả mạch sẽ hoạt động như thế nào Hình 1.1: Các thành phần của chương trình VHDL1.2.1. Khai báo thư viện (Library)Cú pháp:LIBRARY library_name; Tên thư việnUSE library_name.package_name.package_parts; Mệnh đề cần sử dụngThông thường có 3 gói từ 3 thư viện khác nhau thường được sử dụng trong thiết kế. IEEE.STD_LOGIC (thư viện từ IEEE), cú pháp khai báo:LIBRARY ieee;USE ieee.std_logic_1164.all; STANDARD (thư viện STD), cú pháp khai báo:LIBRARY std;USE std.standard.all; WORK (thư viện work), cú pháp khai báo:LIBRARY work;USE work.all;1.2.2. Entity (thực thể)Entity mô tả các chân vàora (các port) của mạch, cấu trúc của Entity như sau:ENTITY entity_name ISPORT ( port_name : signal_mode signal_type; port_name : signal_mode signal_type;...);END entity_name;Chế độ của tín hiệu (mode of the signal): IN, OUT, INOUT, hoặc BUFFERKiểu của tín hiệu (type of the signal): BIT, STD_LOGIC, INTEGER,…Tên của thực thể (name of the entity): có thể sử dụng tên bất kỳ (ngoại trừ các từ khóa của VHDL)Ví dụ mạch cổng NAND:Entity nand_gate isPort (a, b: IN BIT; x: OUT BIT;End nand_gate;1.2.3. Architecture (cấu trúc)Mô tả kiến trúc chứa nội dung và chức năng của đối tượng thiết kế. Cú pháp như sau:ARCHITECTURE architecture_name OF entity_name ISBEGIN(code)Có 3 kiểu mô tả kiến trúc chính: Mô tả kiến trúc theo mô hình hoạt động: Mô hình hoạt động mô tả các hoạt động của hệ thống (hệ thống đáp ứng với các tín hiệu vào như thế nào và đưa ra kết quả gì ra đầu ra) dưới dạng các cấu trúc ngôn ngữ lập trình bậc cao. Cấu trúc đó có thể là PROCESS , WAIT, IF, CASE, FORLOOP…Ví dụ:ARCHITECTURE behavior OF nand ISBEGINc