You are on page 1of 5

Giáo trình

Verilog HDL
Verilog Hardware Description Language

NỘI DUNG

Chương1. Dẫn nhập thiết kế hệ thống số với Verilog

Khi kích thước và ñộ phức tạp của hệ thống thiết kế ngày càng tăng,
nhiều công cụ hỗ trợ thiết kế trên máy tính (CAD) ñược sử dụng vào quá
trình thiết kế phần cứng. Thời kì ñầu, những công cụ mô phỏng và tạo ra
phần cứng ñã ñưa ra phương pháp thiết kế, kiểm tra, phân tích, tổng hợp và
tự ñộng tạo ra phần cứng một cách phức tạp. Sự phát triển không ngừng
của những công cụ thiết kế một cách tự ñộng là do sự phát triển của những
ngôn ngữ mô tả phần cứng (HDLs) và những phương pháp thiết kế dựa trên
những ngôn ngữ này. Dựa trên những ngôn ngữ mô tả phần cứng (HDLs),
những công cụ CAD trong thiết kế hệ thống số ñược phát triển và sử dụng
rộng rãi bởi những kĩ sư thiết kế phần cứng. Hiện tại, người ta vẫn ñang
tiếp tục nghiên cứu ñể tìm ra những ngôn ngữ mô tả phần cứng tốt hơn và
trừu tượng hơn. Một trong những ngôn ngữ mô tả phần cứng ñược sử dụng
rộng rãi nhất ñó là ngôn ngữ Verilog HDL. Do ñược chấp nhận rộng rãi
trong ngành công nghiệp thiết kế số, Verilog ñã trở thành một kiến thức
ñược ñòi hỏi phải biết ñối với những kĩ sư cũng như sinh viên làm việc và
học tập trong lĩnh vực phần cứng máy tính.

Trong chương này, ta sẽ trình bày những công cụ và môi trường làm
việc có sẵn tương thích với ngôn ngữ Verilog mà một kĩ sư thiết kế có thể
sử dụng trong qui trình thiết kế tự ñộng của mình ñể giúp ñẩy nhanh tiến ñộ
thiết kế. Chúng ta sẽ thảo luận từng bước về thiết kế phân cấp, thiết kế mức
cao từ việc mô tả thiết kế bằng ngôn ngữ Verilog ñến việc tạo ra phần cứng
của thiết kế ñó. Những qui trình và những từ khóa chuyên môn cũng sẽ
ñược minh họa ở phần này. Kế tiếp, chúng ta cũng sẽ thảo luận những công

Lâm Đức Khải University of Information Technology Page 1


Verilog Hardware Description Language

cụ CAD hiện có tương thích với Verilog và chức năng của nó trong môi
trường thiết kế tự ñộng. Phần cuối cùng của chương này sẽ nói về một số
ñặc tính của Verilog khiến nó trở thành một ngôn ngữ ñược nhiều kĩ sư
thiết kế phần cứng lựa chọn.

1.1 Qui trình thiết kế số

Trong thiết kế một hệ thống số sử dụng môi trường thiết kế tự ñộng,


qui trình thiết kế bắt ñầu bằng việc mô tả thiết kế tại nhiều mức ñộ trừu
tượng khác nhau và kết thúc bằng việc tạo ra danh sách các linh kiện cũng
như các ñường kết nối giữa các linh kiện với nhau ( netlist) cho một mạch
tích hợp với ứng dụng cụ thể (ASIC), mạch in ( layout) cho một mạch tích
hợp theo yêu cầu khách hàng ( custom IC), hoặc một chương trình cho một
thiết bị logic có khả năng lập trình ñược (PLD). Hình 1.1 mô tả từng bước
trong qui trình thiết kế này.

Bước ñầu của thiết kế, một thiết kế sẽ ñược mô tả bởi sự hỗn hợp
giữa mô tả ở mức ñộ hành vi (behavioural) Verilog, sử dụng những gói
(module) thiết kế Verilog ñã ñược thiết kế sẵn, và việc gán hệ thống các
bus và wire ñể liên kết các gói thiết kế này thành một hệ thống hoàn chỉnh.
Kĩ sư thiết kế cũng phải có trách nhiệm tạo ra dữ liệu ñể kiểm tra
(testbench) xem thiết kế ñúng chức năng hay chưa cũng như dùng ñể kiểm
tra thiết kế sau khi tổng hợp. Việc kiểm tra thiết kế có thể thực hiện ñược
bằng việc mô phỏng, chèn những kĩ thuật kiểm tra, kiểm tra thông thường
hoặc kết hợp cả ba phương pháp trên. Sau bước kiểm tra ñánh giá thiết kế (
bước này ñược gọi là kiểm tra tiền tổng hợp (presynthesis verification)),
thiết kế sẽ ñược tiếp tục bằng việc tổng hợp ñể tạo ra phần cứng thực sự
cho hệ thống thiết kế cuối cùng (ASIC, custom IC or FPLD,…). Nếu hệ
thống thiết kế là ASIC, thiết kế sẽ sẽ ñược sản xuất bởi nhà sản xuất khác;

Lâm Đức Khải University of Information Technology Page 2


Verilog Hardware Description Language

nếu là custom IC, thiết kế sẽ ñược sản xuất trực tiếp; nếu là FPLD, thiết kế
sẽ ñược nạp lên thiết bị lập trình ñược. Sau bước tổng hợp và trước khi
phần cứng thực sự ñược tạo ra, một quá trình mô phỏng khác (hậu tổng hợp
(postsynthesis)) phải ñược thực hiện. Việc mô phỏng này, ta có thể sử dụng
testbench tương tự testbench ñã sử dụng trong mô phỏng tiền tổng hợp
(presynthesis). Bằng phương pháp này, mô hình thiết kế ở mức ñộ hành vi
và mô hình phần cứng của thiết kế ñược kiểm tra với cùng dữ liệu ngõ vào.
Sự khác nhau giữa mô phỏng tiền tổng hợp và hậu tổng hợp ñó là mức ñộ
chi tiết có thể ñạt ñược từ mỗi loại mô phỏng.

Lâm Đức Khải University of Information Technology Page 3


Verilog Hardware Description Language

Những phần tiếp theo sẽ mô tả tỉ mỉ về mỗi khối trong hình 1.1.

1.1.1 Dẫn nhập thiết kế

Bước ñầu tiên trong thiết kế hệ thống số là bước dẫn nhập thiết kế.
Trong bước này, thiết kế ñược mô tả bằng Verilog theo phong cách phân
cấp từ cao xuống thấp (top-down). Một thiết kế hoàn chỉnh có thể bao gồm
những linh kiện ở mức cộng hoặc mức transistor, những khối (module)
phần cứng có chức năng phức tạp hơn ñược mô tả ở mức ñộ hành vi, hoặc
những linh kiện ñược liệt kê bởi cấu trúc bus.

Do những thiết kế Verilog ở mức cao thường ñược mô tả ở mức ñộ


mà tại ñó nó mô tả hệ thống những thanh ghi và sự truyền dữ liệu giữa
những thanh ghi này thông qua hệ thống bus, việc mô tả hệ thống thiết kế ở
mức ñộ này ñược xem như là mức ñộ truyền dữ liệu giữa các thanh ghi
(RTL). Một thiết kế hoàn chỉnh ñược mô tả như vậy sẽ tạo ra ñược phần
cứng tương ứng thực sự rõ ràng. Những cấu trúc thiết kế Verilog ở mức ñộ
RTL sử dụng những phát biểu qui trình (producedural statements), phép
gán liên tục (continuous assignments), và những phát biểu gọi sử dụng khối
(module) ñã xây dựng sẵn.

Những phát biểu qui trình Verilog (procedural statements) ñược


dùng ñể mô tả mức ñộ hành vi ở mức cao. Một hệ thống hoặc một linh kiện
ñược mô tả ở mức ñộ hành vi thì tương tự vời việc mô tả trong ngôn ngữ
phần mềm. Ví dụ, chúng ta có thể mô tả một linh kiện bằng việc kiểm tra
ñiều kiện ngõ vào của nó, bật cờ hiệu, chờ cho ñến khi có sự kiện nào ñó
xảy ra, quan sát những tín hiệu bắt tay và tạo ra ngõ ra. Mô tả hệ thống một
cách qui trình như vậy, cấu trúc if-else, case của Verilog cũng như những
ngôn ngữ phần mềm khác ñều sử dụng như nhau.

Lâm Đức Khải University of Information Technology Page 4

You might also like