
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG
TIN
--------------oOo--------------
Giáo
t
rì
nh
NGÔN NGỮ MÔ TẢ PHẦN
C
Ứ
N
G
VERILOG
Biên soạn: TS. Vũ Đức Lung
ThS. Lâm Đức Khải
Ks. Phan Đình Duy
2012

Giáo trình Verilog
[Type text] Page 2
Lời nói
đầu
Ngày nay, khi mạch thiết kế với hàng triệu cổng logic được tích hợp trong một con Chip
thì việc thiết kế mạch và đi dây kết nối bằng tay trở nên bất khả thi, chính từ lí do đó một khái
niệm ngôn ngữ có mức độ trừu tượng cao dùng để mô tả thiết kế phần cứng được ra đời,
đó chính là Verilog. Cùng với sự ra đời của ngôn ngữ mô tả phần cứng Verilog là hàng loạt
các công cụ EDA (Electronic Design Automation) và CAD (Computer Aided Design) đã
giúp cho những kĩ sư thiết kế phần cứng tạo nên những con Chip có độ tích hợp rất cao,
tốc độ siêu việt và chức năng đa dạng.
Giáo trình Ngôn ngữ mô tả phần cứng Verilog nhằm giúp sinh viên trang bị kiến
thức về thiết kế vi mạch. Giáo trình tập trung vào mảng thiết kế các mạch số với mạch tổ
hợp và mạch tuần tự. Giáo trình cũng giới thiệu về các bước cần thực hiện trong quá trình
thiết kế vi mạch từ việc mô tả thiết kế, kiểm tra, phân tích cho đến tổng hợp phần cứng của
thiết kế.
Giáo trình Ngôn ngữ mô tả phần cứng Verilog dùng cho sinh viên chuyên ngành Kĩ
thuật máy tính và sinh viên các khối Điện tử. Để tiếp nhận kiến thức dễ dàng, sinh viên cần
trang bị trước kiến thức về thiết kế số và hệ thống số.
Giáo trình này được biên dịch và tổng hợp từ kinh nghiệm nghiên cứu giảng dạy của tác
giả và ba nguồn tài liệu chính:
IEEE Standard for Verilog Hardware Description Language, 2006;
Verilog Digital System Design, Second Edition, McGraw-Hill;
The Complete Verilog Book, Vivek Sagdeo, Sun Micro System, Inc.
Nhằm cung cấp một luồng kiến thức mạch lạc, giáo trình được chia ra làm 9 chương:
Chương 1: Dẫn nhập thiết kế hệ thống số với Verilog. Chương này sẽ giới thiệu
lịch sử phát triển của ngôn ngữ mô tả phần cứng Verilog, bên cạnh đó một qui
trình thiết kế vi mạch sử dụng ngôn ngữ mô tả phần cứng Verilog cũng được trình
bày cụ thể ở đây.
Chương 2: Trình bày các từ khóa được sử dụng trong môi trường mô tả thiết kế bởi
Verilog.
Chương 3: Trình bày các loại dữ liệu được sử dụng trong thiết kế mạch bởi Verilog,
gồm hai loại dữ liệu chính đó là loại dữ liệu net và loại dữ liệu biến.
Chương 4: Trình bày các toán tử cũng như các dạng biểu thức được hỗ trợ bởi
Verilog.

Giáo trình Verilog
[Type text] Page 3
Chương 5: Giới thiệu cấu trúc của một thiết kế, phương thức sử dụng thiết kế con.
Chương 6: Trình bày phương pháp thiết kế sử dụng mô hình cấu trúc, trong phương
thức này, module thiết kế được xây dựng bằng cách gọi các module thiết kế nhỏ hơn
và kết nối chúng lại.
Chương 7: Trình bày phương thức thiết kế sử dụng mô hình RTL bởi phép gán nối
tiếp và mô hình hành vi sử dụng ngôn ngữ có tính trừu tượng cao tương tự như ngôn
ngữ lập trình. Phần thiết kế máy trạng thái sử dụng mô hình hành vi cũng được nêu ra
trong chương này.
Chương 8: Trình bày phương pháp thiết kế và sử dụng tác vụ và hàm.
Chương 9: Giới thiệu các phương pháp kiểm tra chức năng của thiết kế.
Do thời gian cũng như khối lượng trình bày giáo trình không cho phép tác giả đi sâu
hơn về mọi khía cạnh của thiết kế vi mạch như phân tích định thời, tổng hợp phần cứng, ...
Để có được những kiến thức này, độc giả có thể tham khảo trong các tài liệu tham khảo mà
giáo trình này đã cung cấp.
Mặc dù nhóm tác giả đã cố gắng biên soạn kỹ lưỡng tuy nhiên cũng khó tránh khỏi
những thiếu sót. Nhóm tác giả mong nhận được những đóng góp mang tính xây dựng từ
quý độc giả nhằm chỉnh sửa giáo trình hoàn thiện hơn.
Nhóm tác giả

Giáo trình Verilog
[Type text] Page 4
Contents
Lời nói
đầu
................................................................................................................................ 2
1 Chương 1. Dẫn nhập thiết kế hệ thống số với Verilog ....................................................... 14
1.1 Qui trình thiết kế số .................................................................................................. 14
1.1.1 Dẫn nhập thiết kế .............................................................................................. 16
1.1.2 Testbench trong Verilog.................................................................................... 17
1.1.3 Đánh giá thiết kế ............................................................................................... 17
1.1.3.1 Mô phỏng ................................................................................................................. 17
1.1.3.2 Kĩ thuật chèn kiểm tra (assertion) ............................................................................ 19
1.1.3.3 Kiểm tra thô ng thường ............................................................................................. 20
1.1.4 Biên dịch và tổng hợp thiết kế ........................................................................... 20
1.1.4.1 Phâ n tích................................................................................................................... 21
1.1.4.2 Tạo phần cứng .......................................................................................................... 21
1.1.4.3 Tối ưu logic ............................................................................................................... 22
1.1.4.4 Binding ..................................................................................................................... 22
1.1.4.5 Sắp xếp cell và đi dâ y kết nối .................................................................................... 22
1.1.5 Mô phỏng sau khi tổng hợp thiết kế .................................................................. 23
1.1.6 Phân tích thời gian............................................................................................. 24
1.1.7 Tạo linh kiện phần cứng .................................................................................... 24
1.2 Ngôn ngữ mô tả phần cứng Verilog (Verilog HDL) ........................................................ 24
1.2.1 Quá trình phát triển Verilog .............................................................................. 24
1.2.2 Những đặc tính của Verilog .............................................................................. 25
1.2.2.1 Mức độ chuyển mạch ............................................................................................... 25
1.2.2.2 Mức độ cổng ............................................................................................................ 26
1.2.2.3 Độ trì hoãn giữa pin đến pin .................................................................................... 26
1.2.2.4 Mô tả Bus ................................................................................................................. 26
1.2.2.5 Mức độ hà nh vi ........................................................................................................ 26
1.2.2.6 Những tiện ích hệ thống ........................................................................................... 26
1.2.2.7 PLI ............................................................................................................................. 27
1.2.3 Sơ lược về Verilog ............................................................................................ 27

Giáo trình Verilog
[Type text] Page 5
1.3 Tổng kết .................................................................................................................... 27
1.4 Bài tập ...................................................................................................................... 28
2 Chương 2. Qui ước về từ khóa..................................................................................... 29
2.1 Khoảng trắng ............................................................................................................ 29
2.2 Chú thích .................................................................................................................. 29
2.3 Toán tử ...................................................................................................................... 29
2.4 Số học ....................................................................................................................... 29
2.4.1 Hằng số nguyên ................................................................................................. 30
2.4.2 Hằng số thực ..................................................................................................... 33
2.4.3 Số đảo................................................................................................................ 34
2.5 Chuỗi ........................................................................................................................ 34
2.5.1.1 Khai báo biến chuỗi .................................................................................................. 35
2.5.1.2 Xử lí chuỗi ................................................................................................................. 35
2.5.1.3 Những kí tự đặc biệt trong chuỗi ............................................................................. 35
2.6 Định danh, từ khóa và tên hệ thống .......................................................................... 36
2.6.1 Định danh với kí tự “” ....................................................................................... 36
2.6.2 Tác vụ hệ thống và hàm hệ thống...................................................................... 37
2.7 Bài tập ...................................................................................................................... 37
3 Chương 3. Loại dữ liệu trong Verilog ............................................................................. 70
3.1 Khái quát .................................................................................................................. 70
3.2 Những hệ thống giá trị .............................................................................................. 70
3.3 Khai báo loại dữ liệu ................................................................................................ 71
3.3.1 Giới thiệu .......................................................................................................... 71
3.4 Khai báo loại dữ liệu net .......................................................................................... 72
3.4.1 Giới thiệu .......................................................................................................... 72
3.4.2 Wire và Tri ........................................................................................................ 74
3.4.3 Wired net ........................................................................................................... 75
3.4.3.1 Wand và tri and Nets ................................................................................................ 75

