Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 135 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
135
Dung lượng
3,24 MB
Nội dung
Bài giảng môn Kỹ thuật số Chương THIẾT KẾ SỐ DÙNG VHDL Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số NỘI DUNG GIỚI THIỆU VỀ HDLs (Hardware Description Languages) CÁC CẤU TRÚC CƠ BẢN CỦA VHDL CÁC PHÁT BIỂU ĐỒNG THỜI CÁC PHÁT BIỂU TUẦN TỰ THIẾT KẾ MẠCH TUẦN TỰ THIẾT KẾ MÁY TRẠNG THÁI THIẾT KẾ PHÂN CẤP Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số GIỚI THIỆU Các phương pháp thiết kế: Các phương trình Boolean Thiết kế dựa Schematic Các ngôn ngữ mô tả phần cứng HDLs (Hardware Description Languages): VHDL, Verilog HDL, ABEL, … Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số GIỚI THIỆU (tt) Quá trình thiết kế hệ thống số: Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số GIỚI THIỆU (tt) Các công cụ CAD: Nhập yêu cầu thiết kế (design entry) Dùng bảng chân trị Trực tiếp Vẽ dạng sóng quan hệ vào/ra (Waveform Editor) Dùng sơ đồ mạch (Graphic Editor) → thiết kế phân cấp Dùng HDLs Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số GIỚI THIỆU (tt) Các công cụ CAD: Tổng hợp (synthesis): Tổng hợp logic (logic synthesis/logic optimization) Ánh xạ công nghệ (technology mapping) Tổng hợp sơ đồ mạch (layout synthesis/physical design) Mô (simulation) Mô chức (functional simulation) Mô định thời (timing simulation) Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số GIỚI THIỆU (tt) VHDL (Very High Speed Integrated Circuits HDL): Ngôn ngữ dùng để mô tả hệ thống số: lập tài liệu (documentation), mô (simulation), kiểm chứng (verification) tổng hợp (synthesis) VHDL chuẩn hóa vào năm 1987 qua chuẩn IEEE 1076 (VHDL-87) cập nhật năm 1993 (VHDL-93) Sau bổ sung qua chuẩn IEEE 1164 với hệ thống logic đa trị Ứng dụng: thiết kế với PLD, CPLD FPGA Sự khác biệt VHDL ngôn ngữ lập trình thông thường Ngôn ngữ lập trình thông thường: VHDL: song song Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số 2 CÁC CẤU TRÚC CƠ BẢN CỦA VHDL 2.1 Entity Packages Entity Entity Declaration Black box Interface declaration Architecture body Internal machinery Functional definition Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số 2.1 Entity (tt) Khai báo entity Entity định nghĩa giao tiếp module phần cứng với môi trường bên sử dụng Cú pháp khai báo: entity entity_name is generics ports begin entity statements end [entity] entity_name; Giảng viên: Nguyễn Hữu Chân Thành Bài giảng môn Kỹ thuật số 2.1 Entity (tt) Các port khai báo entity: Mỗi tín hiệu I/O khai báo entity xem port Mỗi port khai báo phải có tên, chiều liệu (mode) kiểu liệu port (port_name: mode data_type; port_name: mode data_type; … port_name: mode data_type); Các mode: In: luồng liệu vào entity Out: luồng liệu khỏi entity Buffer: tương tự out, cho phép hồi tiếp nội Inout: luồng liệu vào hay entity cho phép hồi tiếp nội Giảng viên: Nguyễn Hữu Chân Thành 10 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI (tt) Ví dụ 6.1: Mô tả FSM sau: Giảng viên: Nguyễn Hữu Chân Thành 121 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI (tt) Trường hợp cần ngõ Mealy đồng dùng khuôn dạng: Dùng thêm tín hiệu tạm temp cho ngõ Giảng viên: Nguyễn Hữu Chân Thành 122 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI (tt) Ví dụ 6.2: Mô tả lại FSM vd 6.1 với ngõ đồng bộ: Giảng viên: Nguyễn Hữu Chân Thành 123 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI (tt) Ví dụ 6.3: Mô tả FSM sau: Chỉ dùng process cho khối logic trạng thái Tạo khối logic ngõ riêng Giảng viên: Nguyễn Hữu Chân Thành 124 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI Ví dụ 6.3: (tt) Dùng process Giảng viên: Nguyễn Hữu Chân Thành 125 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI Ví dụ 6.4: Mô tả FSM sau: Chỉ dùng process cho khối logic trạng thái Tạo khối logic ngõ riêng Giảng viên: Nguyễn Hữu Chân Thành 126 Bài giảng môn Kỹ thuật số THIẾT KẾ MÁY TRẠNG THÁI Vấn đề gán trạng thái: library IEEE; use IEEE.std_logic_1164.all; library SYNOPSYS; use SYNOPSYS.attributes.all; architecture fsmexampe_arch of fsmexamp is type Sreg_type is (INIT, A0, A1, OK0, OK1); attribute enum_encoding of Sreg_type: type is "0000 0001 0010 0100 1000"; signal Sreg: Sreg_type; library IEEE; use IEEE.std_logic_1164.all; architecture fsmexampc_arch of fsmexamp is subtype Sreg_type is STD_LOGIC_VECTOR (1 to 4); constant INIT: Sreg_type := "0000"; constant A0 : Sreg_type := "0001"; constant A1 : Sreg_type := "0010"; constant OK0 : Sreg_type := "0100"; constant OK1 : Sreg_type := "1000"; signal Sreg: Sreg_type; Giảng viên: Nguyễn Hữu Chân Thành 127 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL Giảng viên: Nguyễn Hữu Chân Thành 128 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Để dùng component thiết kế cần có hai bước: Khai báo component: cho biết tên giao tiếp component Khởi tạo component: kết hợp tín hiệu với port component Giảng viên: Nguyễn Hữu Chân Thành 129 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Có cách để khai báo component: Khai báo đoạn mã thiết kế Khai báo PACKAGE Giảng viên: Nguyễn Hữu Chân Thành 130 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Có cách kết hợp tham số hình thức tham số thực: Theo vị trí: tham số thực khởi tạo component ánh xạ theo vị trí port khai báo component Theo tên: danh sách kết hợp có dạng: (không cần theo thứ tự) formal1 => actual1, formal2 => actual2, … Giảng viên: Nguyễn Hữu Chân Thành 131 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Ví dụ 7.1: Thực mạch logic hình sau: Giảng viên: Nguyễn Hữu Chân Thành 132 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Ví dụ 7.1: (tt) w Giảng viên: Nguyễn Hữu Chân Thành 133 Bài giảng môn Kỹ thuật số THIẾT KẾ PHÂN CẤP TRONG VHDL (tt) Ví dụ 7.1: (tt) Cũng khai báo component PACKAGE sau: Giảng viên: Nguyễn Hữu Chân Thành 134 Bài giảng môn Kỹ thuật số Q&A Giảng viên: Nguyễn Hữu Chân Thành 135 [...]... Nguyễn Hữu Chân Thành 31 Bài giảng mơn Kỹ thuật số 2 2 .5. 1 .2 Kiểu integer VHDL hỗ trợ các số ngun trong khoảng – 21 47483648 (hay – (23 1-1)) ÷ 21 47483647 ( (23 1-1)) → ( 32- bit) type integer is range -21 47483648 to 21 47483647; Một đối tượng kiểu integer có thể ràng buộc với một khoảng variable a : integer range - 25 5 to 25 5; Các thao tác với số có dấu và khơng dấu → tùy cơng cụ tổng hợp hỗ trợ 2. 5. 1.3... Chân Thành 33 Bài giảng mơn Kỹ thuật số 2 2 .5 .2 Kiểu phức hợp Một đối tượng kiểu phức hợp có thể giữ nhiều giá trị tại 1 thời điểm Có 2 loại kiểu phức hợp: (1) Kiểu mảng (array type) (2) Kiểu bản ghi (record type) Giảng viên: Nguyễn Hữu Chân Thành 34 Bài giảng mơn Kỹ thuật số 2 2 .5 .2. 1 Kiểu mảng Đối tượng kiểu mảng gồm nhiều phần tử có cùng kiểu dữ liệu Các kiểu định nghĩa sẵn: Ví dụ 2. 17:... nhau Giảng viên: Nguyễn Hữu Chân Thành 13 Bài giảng mơn Kỹ thuật số 2 1 GIỚI THIỆU (tt) Biểu diễn hệ thống: Dạng hành vi: mơ tả chức năng của hệ thống → tập trung vào quan hệ giữa các tín hiệu vào và ra Dạng cấu trúc: mơ tả cài đặt bên trong của hệ thống → đặc tả rõ ràng các thành phần nào được dùng và kết nối giữa chúng Giảng viên: Nguyễn Hữu Chân Thành 14 Bài giảng mơn Kỹ thuật số 2 2 .2 Thân... tác số học là rất lớn Giảng viên: Nguyễn Hữu Chân Thành 32 Bài giảng mơn Kỹ thuật số 2 2 .5. 1.4 Kiểu vật lý Thường là các đơn vị đo, khơng có ý nghĩa cho việc tổng hợp Ví dụ 2. 16: Kiểu vật lý định nghĩa sẵn là time type time is range -21 47483647 to 21 47483647 units fs; ps = 1000 fs; ns = 1000 ps; us = 1000 ns; ms = 1000 us; sec = 1000 ms; min = 60 sec; hr = 60 min; end units; Giảng viên: Nguyễn Hữu Chân. .. begin u0: xnor2 port map (a(0), b(0),x(0)); u1: xnor2 port map (a(1), b(1),x(1)); u2: xnor2 port map (a (2) , b (2) ,x (2) ); u3: xnor2 port map (a(3), b(3),x(3)); u4: and4 port map (x(0), x(1),x (2) ,x(3),equals); end struct; Giảng viên: Nguyễn Hữu Chân Thành 20 Bài giảng mơn Kỹ thuật số 2 2.3 Danh hiệu Danh hiệu cơ bản: gồm các ký tự alphabet, các ký số và dấu gạch dưới Ký tự đầu tiên phải là chữ cái... andgate; Giảng viên: Nguyễn Hữu Chân Thành 11 Bài giảng mơn Kỹ thuật số 2 2.1 Entity (tt) Ví dụ 2. 2: khai báo bộ so sánh 4-bit entity eqcomp4 is port (A, B : in bit_vector(3 downto 0); equals : out bit); end eqcomp4; Ví dụ 2. 3: library ieee; use ieee.std_logic_1164.all; entity eqcomp4 is port (a, b : in std_logic_vector(3 downto 0); equals: out std_logic); end eqcomp4; Giảng viên: Nguyễn Hữu Chân Thành. .. thể định nghĩa kiểu riêng: Ví dụ 2. 18: type byte is array(7 downto 0) of bit; signal b: byte; type data_word is array (7 downto 0) of std_logic; 1D type ROM is array (0 to 1 25 ) of data_word; 1D x 1D type decode_matrix is array (positive range 15 downto 1, natural range 3 downto 0) of std_logic; 2D Giảng viên: Nguyễn Hữu Chân Thành 35 Bài giảng mơn Kỹ thuật số 2 2 .5 .2. 1 Kiểu mảng (tt) Một đối tượng... thay đổi tức thời mà phải sau một thời gian delay nhỏ Ký hiệu phép gán: “ ... HDL, ABEL, … Giảng viên: Nguyễn Hữu Chân Thành Bài giảng mơn Kỹ thuật số GIỚI THIỆU (tt) Q trình thiết kế hệ thống số: Giảng viên: Nguyễn Hữu Chân Thành Bài giảng mơn Kỹ thuật số GIỚI THIỆU... basketball else ‘0’; Giảng viên: Nguyễn Hữu Chân Thành 31 Bài giảng mơn Kỹ thuật số 2. 5. 1 .2 Kiểu integer VHDL hỗ trợ số ngun khoảng – 21 47483648 (hay – (23 1-1)) ÷ 21 47483647 ( (23 1-1)) → ( 32- bit) type... busb.enable