thiết kế nhờ máy tính nguyễn thành kiên bộ môn kỹ thuật máy tính khoa công...
TRANSCRIPT
![Page 1: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/1.jpg)
Thiết kế nhờ máy tính
Nguyễn Thành KiênBộ môn Kỹ thuật Máy tính
Khoa Công nghệ thông tin, ĐH BKHN
![Page 2: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/2.jpg)
Copyright © by N.T.K - 8/2008
Tài liệu tham khảo Text Book:
Circuit Design with VHDL, Volnei A.Pedroni, MIT press.
VHDL Programming by Examples, Douglas L.Perry, McGraw Hill.
Reference Books: 1076 IEEE Standard Vhdl Language Reference
Manual 2002, IEEE Computer Society. Microprocessor Design Principles and Practices with
VHDL, Enoch O. Hwang. HDL Chip Design- A Practical Guide for Designing,
Synthesizing and Simulating ASICs and FPGAs using VHDL or Verilog, Douglas J.Smith.
![Page 3: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/3.jpg)
Copyright © by N.T.K - 8/2008
Phần mềm học tập
Active-HDL 7.1.sp2 Quartus (for Altera FPGAs) ISE (for Xilinx FPGAs)
www.opencores.org
![Page 4: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/4.jpg)
Copyright © by N.T.K - 8/2008
Giảng viên
Nguyễn Thành Kiên Giảng viên Bộ môn Kỹ thuật Máy
tínhKhoa CNTT, ĐHBKHN. Mobile: +84983588135 Email: [email protected]
![Page 5: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/5.jpg)
Copyright © by N.T.K - 8/2008
Yêu cầu môn học
Tham gia >75% số giờ học. Nghỉ ≥ 5 buổi => Học lại. Nghỉ ≥ 3 buổi => Không thi lần 1.
Cách tính điểm: Bài kiểm tra giữa kỳ: 20% Bài tập lớn: 20% Bài kiểm tra cuối kỳ: 60%
![Page 6: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/6.jpg)
Copyright © by N.T.K - 8/2008
Nội dung môn học I. Thiết kế mạch với ngôn ngữ VHDL.
1. Giới thiệu VHDL. 2. Cấu trúc code. 3. Các kiểu dữ liệu. 4. Các phép toán và thuộc tính. 5. Code song song/Code tuần tự. 6. Tín hiệu và biến. 7. Máy hữu hạn trạng thái. 8. Phương pháp thiết kế đa cấp
(Packages,Components,Subprogram) 9. Attibutes & Configurations. 10. Tổng hợp mã VHDL.
II. Thiết kế CPU. 1. Nguyên tắc thiết kế CPU. 2. Các thành phần của CPU. 3. Tối ưu hóa, mô phỏng, tổng hợp và triển khai CPU.
![Page 7: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/7.jpg)
Copyright © by N.T.K - 8/2008
Nội dung môn học I. Thiết kế mạch với ngôn ngữ VHDL.
1. Giới thiệu VHDL. 2. Cấu trúc code. 3. Các kiểu dữ liệu. 4. Các phép toán và thuộc tính. 5. Code song song/Code tuần tự. 6. Tín hiệu và biến. 7. Máy hữu hạn trạng thái. 8. Phương pháp thiết kế đa cấp (Packages,
Components, Subprogram). 9. Attibutes & Configurations.
II. Thiết kế CPU.
![Page 8: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/8.jpg)
Copyright © by N.T.K - 8/2008
1. Giới thiệu ngôn ngữ VHDL.
Phương pháp
thiết kế bằng HDL
Phương pháp
thiết kếtruyền
thống
![Page 9: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/9.jpg)
Copyright © by N.T.K - 8/2008
1. Giới thiệu ngôn ngữ VHDL.
VHDL là gì? Một ngôn ngữ mô tả phần cứng:
VHDL - VHSIC Hardware Description Language. VHSIC - Very High Speed Integrated Circuits.
Là chuẩn do Bộ QP Mỹ phát triển từ thập niên 70. Dựa trên ngôn ngữ lập trình ADA, nhằm tạo ra tài liệu mô tả hoạt động của các mạch điện tử.
1987 được IEEE chuẩn hóa trong IEEE 1076-1987. 1993 hoàn thiện lại thành IEEE 1076-1993. 2002 giải quyết vấn đề protected types=>IEEE 1076-
2002
![Page 10: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/10.jpg)
Copyright © by N.T.K - 8/2008
1. Giới thiệu ngôn ngữ VHDL. VHDL là chuẩn độc lập mô tả hệ thống:
Các nhà phát triển hệ thống dựa trên VHDL để mô tả, thiết kế hệ thống.
Các phần mềm mô phỏng có thể thực hiện mô phỏng hoạt động của hệ thống mô tả.
Các phần mềm tổng hợp có thể thực hiện tổng hợp sinh ra mạch thực để thực hiện hệ thống.
Mạch sau khi tổng hợp có thể được nạp xuống chip để thực hiện chức năng mô tả.
Chức năng: mô tả hoạt động của các hệ thống hoặc mạch điện tử nhằm thực hiện các hệ thống hoặc mạch này trên linh kiện thực.
![Page 11: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/11.jpg)
Copyright © by N.T.K - 8/2008
1. Giới thiệu ngôn ngữ VHDL. Ưu điểm của VHDL:
Cho phép hoạt động của hệ thống được mô tả (modeled) và kiểm thử (simulated) trước khi các công cụ tổng hợp “dịch” thiết kế sang phần cứng thực tế (gates and wires).
Cho phép mô tả hệ thống song song. Khi các mô hình VHDL được “dịch” sang
“gates and wires” thì nó có thể được nạp lên phần cứng CPLD và FPGA để thực thi.
![Page 12: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/12.jpg)
Copyright © by N.T.K - 8/2008
1. Giới thiệu ngôn ngữ VHDL.
Hai ứng dụng chính của VHDL là: PLD (Programmable Logic Device):
CPLD (Complex PLD) FPGA (Field Programmable Gate Array).
ASIC (Application-Specific IC)
![Page 13: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/13.jpg)
Copyright © by N.T.K - 8/2008
Quy trình thiết kế mạch dựa trên VHDL
![Page 14: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/14.jpg)
Copyright © by N.T.K - 8/2008
Các công cụ thiết kế VHDL Bộ công cụ của nhà sản xuất chip:
Quartus/Maxplus => tổng hợp VHDL code lên chip CPLD/FPGA của Altera.
ISE => tổng hợp VHDL code lên chip CPLD/FPGA của Xilinx.
Một số công cụ của các hãng thứ ba: ActiveHDL Leonardo Spectrum (Mentor Graphics). Synplify (Synplicity). ModelSim (Mentor Graphics).
![Page 15: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/15.jpg)
Copyright © by N.T.K - 8/2008
Một ví dụ VHDL đơn giản
![Page 16: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/16.jpg)
Copyright © by N.T.K - 8/2008
Một ví dụ VHDL đơn giản
![Page 17: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/17.jpg)
Copyright © by N.T.K - 8/2008
Nội dung môn học I. Thiết kế mạch với ngôn ngữ VHDL.
1. Giới thiệu VHDL. 2. Cấu trúc code. 3. Các kiểu dữ liệu. 4. Các phép toán và thuộc tính. 5. Code song song/Code tuần tự. 6. Tín hiệu và biến. 7. Máy hữu hạn trạng thái. 8. Phương pháp thiết kế đa cấp (Packages,
Components, Subprogram). 9. Attibutes & Configurations.
II. Thiết kế CPU.
![Page 18: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/18.jpg)
Copyright © by N.T.K - 8/2008
Code structure
library IEEE; use IEEE.std_logic_1164.all;
ENTITY full_adder ISPORT (a,b,cin: in bit;s,cout:out bit);
END full_adder;
Architecture dataflow of full_adder isbegin
s <= a xor b xor cin;cout <= (a and b) or (a and
cin) or (b and cin);
end dataflow;
![Page 19: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/19.jpg)
Copyright © by N.T.K - 8/2008
Cấu trúc code
Thư viện LIBRARY ENTITY ARCHITECTURE
![Page 20: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/20.jpg)
Copyright © by N.T.K - 8/2008
Thư viện LIBRARY
A LIBRARY là một tập các đoạn mã thường được sử dụng. Đặt các đoạn mã thường sử dụng vào thư viện cho phép chúng có thể được tái sử dụng hoặc chia sẻ giữa các thiết kế khác nhau.
![Page 21: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/21.jpg)
Copyright © by N.T.K - 8/2008
Thư viện LIBRARY
Khai báo thư viện:
![Page 22: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/22.jpg)
Copyright © by N.T.K - 8/2008
Thư viện LIBRARY
Các thư viện thường sử dụng: ieee.std_logic_1164 (from the ieee
library), standard (from the std library), and work (work library).LIBRARY ieee; -- A semi-colon (;) indicates
USE ieee.std_logic_1164.all; -- the end of a statement or LIBRARY std; -- declaration, while a doubleUSE std.standard.all; -- dash (--) indicates acomment.
LIBRARY work;USE work.all;
![Page 23: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/23.jpg)
Copyright © by N.T.K - 8/2008
Thư viện LIBRARY std_logic_1164
Gói của thư viện IEEE hỗ trợ multi-level logic.
std Gói thư viện tài nguyên (kiểu dữ liệu, text
IO…) cho môi trường thiết kế VHDL. work
Gói thư viện chứa các thiết kế của người dùng mới tạo ra.
![Page 24: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/24.jpg)
Copyright © by N.T.K - 8/2008
Thư viện LIBRARY Thư viện IEEE:
std_logic_1164 std_logic (8 mức logic),std_ulogic (9 mức logic)
std_logic_arith Thực hiện các phép toán số học và so sánh.
std_logic_signed Thực hiện các phép toán với kiểu DL
std_logic_vector, dữ liệu coi là có dấu std_logic_unsigned
Thực hiện các phép toán với kiểu DL std_logic_vector, dữ liệu coi là không dấu.
![Page 25: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/25.jpg)
Copyright © by N.T.K - 8/2008
Cấu trúc code
Thư viện LIBRARY ENTITY ARCHITECTURE
![Page 26: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/26.jpg)
Copyright © by N.T.K - 8/2008
ENTITY ENTITY là danh sách đặc tả của các cổng
vào ra (input/output pins) của mạch.
PORT là giao diện của mạch với các mạch bên ngoài khác, PORT thường là các chân pin.
BLACK_BOX
rst
d[7:0]
clk
q[7:0]
co
![Page 27: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/27.jpg)
Copyright © by N.T.K - 8/2008
ENTITY
signal_mode: chiều truyền dữ liệu IN, OUT, INOUT (2chiều), BUFFER (khi tín hiệu ra được
dùng cho các tín hiệu khác bên trong). signal_type:
bit, std_logic, integer… Port_name:
Đặt tên theo quy tắc đặt tên chuẩn, tránh các từ khóa.
![Page 28: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/28.jpg)
Copyright © by N.T.K - 8/2008
ENTITYChế độ signal_mode cho biết chiều dữ liệu được truyền
nhận:
IN Dữ liệu chỉ đi vào ENTITY
OUT Dữ liệu chỉ đi ra khỏi ENTITY (và không được sử dụng bên trong)
INOUT Dữ liệu là hai chiều (đi vào và ra)
BUFFER Dữ liệu đi ra khỏi ENTITY và cũng
được đưa quay trở lại vào trong
Entity
![Page 29: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/29.jpg)
Copyright © by N.T.K - 8/2008
Ví dụ về ENTITY
ENTITY mux ISPORT (a, b: IN std_logic_vector(7 downto 0); sel: IN STD_LOGIC_VECTOR(0 to 1);
c: OUT STD_LOGIC_VECTOR(7 downto 0));END mux;
![Page 30: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/30.jpg)
Copyright © by N.T.K - 8/2008
Cấu trúc code
Thư viện LIBRARY ENTITY ARCHITECTURE
![Page 31: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/31.jpg)
Copyright © by N.T.K - 8/2008
ARCHITECTURE
Phần ARCHITECTURE mô tả mạch hoạt động như thế nào.
Một ARCHITECTURE luôn gắn với một ENTITY và mô tả hoạt động của ENTITY đó.
Một ARCHITECTURE chỉ gắn với một ENTITY nhưng Một ENTIY có thể có nhiều ARCHITECTURE khác nhau
![Page 32: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/32.jpg)
Copyright © by N.T.K - 8/2008
ARCHITECTURE
ARCHITECTURE có hai phần: Phần khai báo (optional)
Khai báo tín hiệu và biến. Phần mã code:
Mô tả cách kết nối, hoạt động của mạch.
![Page 33: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/33.jpg)
Copyright © by N.T.K - 8/2008
ARCHITECTURE
Ví dụ về mạch NAND:
Mô tả kết nối mạch:Mạch thực hiện thao tác NAND trên 2 đầu vào (a,b) và gán (<=) kết quả cho đầu ra x.
![Page 34: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/34.jpg)
Copyright © by N.T.K - 8/2008
VD1: Full_adder
Bộ cộng hai số 1bit đầy đủlibrary IEEE; use IEEE.std_logic_1164.all;
ENTITY full_adder ISPORT (a,b,cin: in std_logic;s,cout:out std_logic);
END full_adder;
Architecture dataflow of full_adder isbegin
s <= a xor b xor cin;cout <= (a and b) or (a and cin)
or (b and cin);end dataflow;
Adder
A(7:0)
B(7:0)
C(7:0)
![Page 35: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/35.jpg)
Copyright © by N.T.K - 8/2008
library IEEE; use IEEE.std_logic_1164.all;
ENTITY adder IS PORT (A,B: IN std_logic_vector(7 downto 0);
C: OUT std_logic_vector(7 downto 0));END adder;
Architecture dataflow of adder isbegin
C <= A+B;end dataflow;
Adder
A(7:0)
B(7:0)
C(7:0)
![Page 36: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/36.jpg)
Copyright © by N.T.K - 8/2008
VD2: D Flip-flop, asyn reset
D flip-flop tích cực theo sườn dương của xung đồng hồ clk với tín hiệu reset không đồng bộ.Hoạt động: + rst = ‘1’ => q<=‘0’ không phụ thuộc clk. + rst = ‘0’, sườn dương clk => q<=d.
LIBRARY ieee;USE ieee.std_logic_1164.all;---------------------------------------ENTITY dff IS
PORT ( d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC);
END dff;---------------------------------------ARCHITECTURE behavior OF dff ISBEGIN
PROCESS (rst, clk)BEGIN
IF (rst='1') THEN q <= '0'; ELSIF (clk'EVENT AND
clk='1') THEN q <= d;
END IF;END PROCESS;
END behavior;DEMO
![Page 37: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/37.jpg)
Copyright © by N.T.K - 8/2008
VD2: RS Flip-flop, asyn reset
Bài tập tại lớp: Viết VHDL code mô tả flip-flop RS
đồng bộ theo sườn âm với tín hiệu reset không đồng bộ.
![Page 38: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/38.jpg)
Copyright © by N.T.K - 8/2008
VD2: RS Flip-flop, asyn resetLIBRARY ieee;USE ieee.std_logic_1164.all;---------------------------------------ENTITY RSff IS
PORT ( r,s,clk,rst: IN STD_LOGIC; q: OUT STD_LOGIC);
END RSff;---------------------------------------ARCHITECTURE behavior OF RSff ISBEGIN
PROCESS (rst, clk)BEGIN
IF (rst='1') THEN q <= '0'; ELSIF (clk'EVENT AND clk=‘0') THEN
if (r='0' and s='1')then q<= '1'; elsif (r='1' and s='0') then q<='0'; elsif (r='1' and s='1') then q<= '-'; end if;
END IF;END PROCESS;
END behavior;
![Page 39: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/39.jpg)
Copyright © by N.T.K - 8/2008
VD3: asyn-reset DFF & NAND
ENTITY example IS PORT ( a, b, clk: IN BIT;
q: OUT BIT); END example; --------------------------------------- ARCHITECTURE example OF example IS SIGNAL temp : BIT; BEGIN temp <= a NAND b; PROCESS (clk) BEGIN IF (clk'EVENT AND clk='1') THEN q<=temp; END IF; END PROCESS; END example; ---------------------------------------
Sự kết hợp giữa mạch tổ hợp và mạch dãy
DEMO
![Page 40: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/40.jpg)
Copyright © by N.T.K - 8/2008
VD4: Bộ dồn kênh Multilpexor
a,b: hai kênh vào 8bitsel: các bit chọn kênhc: kênh ra 8bit
![Page 41: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/41.jpg)
Copyright © by N.T.K - 8/2008
VD4: Bộ dồn kênh Multilpexor
LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY mux IS
PORT ( a,b : IN STD_LOGIC_VECTOR (7 DOWNTO 0); sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0); c : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END ENTITY mux; --------------------------------------- ARCHITECTURE example OF mux IS BEGIN PROCESS (a, b, sel)
BEGIN IF (sel = "00") THEN
c <= "00000000"; ELSIF (sel=“01”) THEN c <= a;
ELSIF (sel = "10") THEN c <= b;
ELSE c <= “ZZZZZZZZ”;
END IF; END PROCESS; END example;
![Page 42: Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN](https://reader036.vdocuments.pub/reader036/viewer/2022062423/56649ee05503460f94bf01f9/html5/thumbnails/42.jpg)
Copyright © by N.T.K - 8/2008
Demostration Sử dụng phần mềm ActiveHDL thiết kế
và mô phỏng bộ cộng đầy đủ: Tạo workspace làm việc. Tạo một mạch thiết kế design. Viết VHDL source code. Thêm file vào design. Dịch workspace. Đưa tín hiệu vào dạng waveform mô phỏng.