Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Thiết kế mạch số với vhdl & verilog pps
MIỄN PHÍ
Số trang
86
Kích thước
565.6 KB
Định dạng
PDF
Lượt xem
1497

Thiết kế mạch số với vhdl & verilog pps

Nội dung xem thử

Mô tả chi tiết

Verilog Hardware Description Language

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

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

Verilog Hardware Description Language

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

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;

Verilog Hardware Description Language

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

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.

Verilog Hardware Description Language

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

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.

Verilog Hardware Description Language

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

Những phép gán liên tục (continuous assignment) trong Verilog là

những phép gán cho việc thể hiện chức năng những khối logic, những phép

gán bus, và mô tả việc kết nối giữa hệ thống bus và các chân ngõ vào và

ngõ ra. Kết hợp với những hàm Boolean và những biểu thức có ñiều kiện,

những cấu trúc ngôn ngữ này có thể ñược ñể mô tả những linh kiện và hệ

thống theo những phép gán thanh ghi và bus của chúng.

Những phát biểu gọi sử dụng khối Verilog ñã ñược thiết kế sẵn

(instantiantion statements) ñược dùng cho những linh kiện mức thấp trong

một thiết kế ở mức ñộ cao hơn. Thay vi mô tả ở mức ñộ hành vi, chức

năng, hoặc bus của một hệ thống, chúng ta có thể mô tả một hệ thống bằng

Verilog bằng cách kết nối những linh kiện ở mức ñộ thấp hơn. Những linh

kiện này có thể nhỏ như là mức cổng hay transistor, hoặc có thể lớn như là

một bộ vi xử lí hoàn chỉnh.

1.1.2 Testbench trong Verilog

Một hệ thống ñược thiết kế dùng Verilog phải ñược mô phỏng và

kiểm tra xem thiết kế ñã ñúng chức năng chưa trước khi tạo ra phần cứng.

Trong quá trình chạy mô phỏng này, những lỗi thiết kế và sự không tương

thích giữa những linh kiện dùng trong thiết kế có thể ñược phát hiện. Chạy

mô phỏng một thiết kế ñòi hỏi việc tạo ra một dữ liệu ngõ vào kiểm tra và

quá trình quan sát kết quả sau khi chạy mô phỏng, dữ liệu dùng ñể kiểm tra

này ñược gọi là testbench. Một testbench sử dụng cấu trúc mức cao của

Verilog ñể tạo ra dữ liệu kiểm tra, quan sát ñáp ứng ngõ ra, và cả việc bắt

tay giữa những tín hiệu trong thiết kế. Bên trong testbench, hệ thống thiết

kế cần chạy mô phỏng sẽ ñược gọi ra (instantiate) trong testbench. Dữ liệu

testbench cùng với hệ thống thiết kế sẽ tạo ra một mô hình mô phỏng mà sẽ

ñược sử dụng bởi một công cụ mô phỏng Verilog.

Verilog Hardware Description Language

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

1.1.3 Đánh giá thiết kế

Một nhiêm vụ quan trọng trong bất kì thiết kế số nào cũng cần ñó là

ñánh giá thiết kế. Đánh giá thiết kế là quá trình mà người thiết kế sẽ kiểm

tra thiết kế của họ có sai sót nào có thể xảy ra trong suốt quá trình thiết kế

hay không. Một sai sót thiết kế có thể xảy ra do sự mô tả thiết kế mơ hồ, do

sai sót của người thiết kế, hoặc sử dụng không ñúng những khối trong thiết

kế. Đánh giá thiết kế có thể thực hiện bằng mô phỏng, bằng việc chèn

những kĩ thuật kiểm tra, hoặc kiểm tra thông thường.

1.1.3.1 Mô phỏng

Chạy mô phỏng dùng trong việc ñánh giá thiết kế ñược thức hiện

trước khi thiết kế ñược tổng hợp. Bước chạy mô phỏng này ñược hiểu như

mô phỏng ở mức ñộ hành vi, mức ñộ RTL hay tiền tổng hợp. Ở mức ñộ

RTL, một thiết kế bao gồm xung thời gian clock nhưng không bao gồm trí

hoãn thời gian trên cổng và dây kết nối (wire). Chạy mô phỏng ở mức ñộ

này sẽ chính xác theo xung clock. Thời gian của việc chạy mô phỏng ở

mức ñộ RTL là theo tín hiệu xung clock, không quan tâm ñến những nguy

hiểm tiềm ẩn có thể khiến thiết kế bị lỗi (hazards, glitch), hiện tượng chạy

ñua không kiểm soát giữa những tín hiệu (race conditions), những vi phạm

về thời gian setup và hold của tín hiệu ngõ vào, và những vấn ñề liên quan

ñến ñịnh thời khác. Ưu ñiểm của việc mô phỏng này là tốc ñộ chạy mô

phỏng nhanh so với chạy mô phỏng ở mức cổng hoặc mức transistor.

Chạy mô phỏng cho một thiết kế ñòi hỏi dữ liệu kiểm tra, thông

thường trong môi trường mô phỏng Verilog sẽ cung cấp nhiều phương

pháp khác nhau ñể ñưa dữ liệu kiểm tra này vào thiết kế ñể kiểm tra. Dữ

liệu kiểm tra có thể ñược tạo ra bằng ñồ họa sử dụng những công cụ soạn

thảo dạng sóng, hoặc bằng testbench. Hình 1.2 mô tả hai cách khác nhau ñể

Verilog Hardware Description Language

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

ñịnh nghĩa dữ liệu kiểm tra ngõ vào của một công cụ mô phỏng. Những

ngõ ra của công cụ mô phỏng là những dạng sóng ngõ ra ( có thể quan sát

trực quan).

Để chạy mô phỏng với Verilog testbench, trong testbench sẽ gọi hệ

thống thiết kế ra ñể kiểm tra, lúc này hệ thống thiết kế ñược xem như là

một phần của testbench, testbench sẽ cung cấp dữ liệu kiểm tra ñến ngõ vào

của hệ thống thiết kế. Hình 1.3 mô tả một ñoạn code của một mạch ñếm,

testbench của nó, cũng như kết quả chạy mô phỏng của nó dưới dạng sóng

ngõ ra. Quan sát hình ta thấy việc chạy mô phỏng sẽ ñánh giá chức năng

của mạch ñếm. Với mỗi xung clock thì ngõ ra bộ ñếm sẽ tăng lên 1. Chú ý

rằng, theo biểu ñồ thời gian thì ngõ ra bộ ñếm thay ñổi tại cạnh lên xung

clock và không có thời gian trì hoãn do cổng cũng như trì hoãn trên ñường

truyền. Kết quả chạy mô phỏng chỉ ra rằng chức năng của mạch ñếm là

chính xác mà không cần quan tâm ñến tần số xung clock.

Hiển nhiên, những linh kiện phần cứng thực sự sẽ có ñáp ứng khác

nhau. Dựa trên ñịnh thời và thời gian trì hoãn của những khối ñược sử

Verilog Hardware Description Language

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

dụng, thời gian từ cạnh lên xung clock ñến ngõ ra của bộ ñếm sẽ có ñộ trì

hoãn khác không. Hơn nữa, nếu tần số xung clock ñược cấp vào mạch thực

sự quá nhanh so với tốc ñộ truyến tín hiệu bên trong các cổng và transistor

của thiết kế thì ngõ ra của thiết kế sẽ không thể biết ñược.

Việc mô phỏng này không cung cấp chi tiết về các vấn ñề ñịnh thời

của hệ thống thiết kế ñược mô phỏng. Do ñó, những vấn ñề tiềm ẩn về ñịnh

thời của phần cứng do trì hoãn trên cổng sẽ không thể phát hiện ñược. Đây

là vấn ñề ñiển hình của quá trỉnh mô phỏng tiền tổng hợp hoặc mô phỏng ở

mức ñộ hảnh vi. Điều biết ñược trong hình 1.3 ñó là bộ ñếm của ta ñếm số

nhi phân. Thiết kế hoạt ñộng nhanh chậm thế nào, hoạt ñông ñược ở tần số

nào chỉ có thể biết ñược bằng việc kiểm tra thiết kế sau tổng hợp.

Tải ngay đi em, còn do dự, trời tối mất!