Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
529,38 KB
Nội dung
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH Ths NGUYỄN TRỌNG HẢI TÓM TẮT BÀI GIẢNG VHDL Very High speed integrated circuit Description Language LƯU HÀNH NỘI BỘ 07/2005 Bài giảng Thiết Kế Hệ Thống Số Phần VHDL VHDL Very High speed integrated circuit Description Language I CẤU TRÚC CỦA MỘT THIẾT KẾ DÙNG NGÔN NGỮ VHDL Ghi - PACKAGE (Tùy chọn) library (Thư viện) use ENTITY (Bắt buộc) ARCHITECTURE (Bắt buộc) CONFIGURATIONS (Tùy chọn) PACKAGE (KHỐI) Package vùng lưu trữ liệu để dùng chung cho entity Mô tả liệu bên package cho phép tham khảo entity khác, liệu dùng chung Một package bao gồm phần: phần mô tả định nghĩa giao diện cho package, phần thân ấn định hoạt động cụ thể package Cú pháp khai báo khối xác định là: PACKAGE example_arithmetic IS khai báo khối chứa khai báo sau: Subprogram declaration Type, subtype declaration Constant, deferred constant declaration Signal declaration creates a global signal File declaration Alias declaration Attribute declaration, a user-define attribute Attribute specification Use clause END example_arithmetic; Tất đối tượng khai báo package truy xuất thiết kế cách sử dụng mệnh đề use khai báo library library my_lib; use my_lib.example_arithmetic.all; Một số thư viện chuẩn GV: Nguyễn Trọng Hải Trang Bài giảng Thiết Kế Hệ Thống Số Phần VHDL library ieee; use ieee.std_logic_1164.all; std_logic_1164: thư viện logic chuẩn IEEE (đoạn 1164), mục đích cung cấp chuẩn để mơ tả kiểu liệu kết nối VHDL std_logic_arith: thư viện chứa tập phép toán hàm Kiểu std_logic có giá trị U Uninitialized X Unknown Zero One Z Tristate (Must be upper case!) W Weak unknown L Weak Zero H Weak One - Don't care Ngồi tự tạo riêng thư viện thiết kế ENTITY 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ụ, mơ tả cộng bán phần sau X1 A SUM A1 CARRY B library ieee; use ieee.std_logic_1164.all; ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; GV: Nguyễn Trọng Hải Trang Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Trong khai báo ENTITY, có kiểu tín hiệu khác nhau: • IN: mơ tả ngõ vào entity Kiểu IN sử dụng cho ngõ vào clock, ngõ vào điều khiển,… • OUT: mơ tả dịng liệu 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 liệu khỏi entity, entity đọc tín hiệu (mục đích đọc lại tín hiệu ngõ bên cấu trúc) Tuy nhiên , tín hiệu khơng thể điều khiển từ ngõ entity, khơng thể sử dụng cho liệu 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(ví dụ bus kiệu trạng thái), sử dụng kiểu tín hiệu mã chương trình trở nên khó hiểu người thiết kế Loại tín hiệu phải mơ tả khai báo PORT, loại tín hiệu mơ tả giá trị mà tín hiệu ấn định, ngồi mơ tả vector tín hiệu có loại Lưu ý: file report, khơng gán chân linh kiện biến ngõ vào gán ngẫu nhiên Để gán chân, thực từ phần mềm hỗ trợ thực sau: Ví dụ, ENTITY my_design is Port (a, b : in integer range to 7; c : bit_vector (3 to 5); d : bit_vector (27 downto 25); e : out Boolean); attribute pinnum: string; attribute pinnum of c: signal is "1,2,3"; attribute pinnum of d: signal is "6,5,4"; attribute pinnum of e: signal is "2"; END my_design; ARCHITECTURE Chức architecture mô tả mối liên hệ tín hiệu ngõ vào tín hiệu ngõ ( bao gồm tín hiệu BUFFER), viết nhiều kiến trúc khác entity, số có khả xuất mã VHDL architechture có dạng: mơ tả cấu trúc (structure); mơ tả dịng liệu (data flow); mơ tả hành vi (behavioral) GV: Nguyễn Trọng Hải Trang Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Mô tả architechture dạng cấu trúc (structure) Ví dụ, chương trình cộng có dạng: ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Component AND2 Port(L,M: in BIT; N: out BIT); End component BEGIN X1: XOR2 port map (A,B,SUM); A1: AND2 port map (A,B,CARRY); END HA_STRUCTURE; Chú ý, trường hợp tín hiệu Port Map(ánh xạ cổng) đối tượng thành phần tín hiệu khai báo phải liên kết theo vị trí Mơ tả architechture dạng dịng liệu (data flow) Ví dụ, chương trình cộng có dạng: ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN SUM