Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
867,92 KB
Nội dung
2008
dce
Thiếtkế mạchsố vớiHDL
Chương 4: Thiếtkế luậnlývới
Verilog
Computer Engineering 2008
2
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Nội dung chính
•Giớithiệuvề HDLs và verilog
•Môhìnhcấutrúcchomạch luậnlýtổ hợp
•Môphỏng luận lý, kiểmchứng thiếtkế và
phương pháp luậnkiểmtra
•Thờigiantrễ truyềnlan
•Môhìnhbảng sự thậtchomạch luậnlýtổ
hợpvàtuầntự với Verilog
Computer Engineering 2008
3
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Nội dung chính
• Giớithiệuvề HDLs và verilog
•Môhìnhcấutrúcchomạch luậnlýtổ hợp
•Môphỏng luận lý, kiểmchứng thiếtkế và
phương pháp luậnkiểmtra
•Thờigiantrễ truyềnlan
•Môhìnhbảng sự thậtchomạch luậnlýtổ
hợpvàtuầntự với Verilog
Computer Engineering 2008
4
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Giớithiệu HDLs
• HDLs (Hardware Description Languages)
Không là một ngôn ngữ lập trình
TựaC
Thêm những chứcnăng mô hình hóa, mô
phỏng chứcnăng
Verilog vs. VHDL
•Cácbướcthiếtkế bằng HDL
Mô tả mạch từ khóa
Biên dịch để kiểm tra cú pháp (syntax)
Mô phỏng để kiểmtrachứcnăng củamạch
Computer Engineering 2008
5
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Đặctả bằng HDL
Cấutrúc/hànhvi củamạch
Mô phỏng
Kiểmtra: thiếtkếđã đúng yêu cầuchưa?
Chứcnăng: Hành vi I/O
Mức thanh ghil (Kiếntrúcl)
Mứcluậnlý(Cổng)
Mức transistor (Điểntử)
Timing: Waveform Behavior
Tổng hợp
Ánh xạđặctả thành các hiệnthực
Phương pháp luậnthiếtkế HDL
Computer Engineering 2008
6
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Mô hình cấutrúcvàmôhìnhhànhvi trong
HDLs
• Cấu trúc (Structural) chỉ ra cấu trúc phầncứng
thậtsự củamạch
Mứctrừutượng thấp
•Cáccổng cơ bản(vídụ and, or, not)
•Cấutrúcphâncấp thông qua các module
Tương tự lậptrìnhhợpngữ
• Hành vi (Behavioral) chỉ ra hoạt động củamạch
trên các bits
Mứctrừutượng cao hơn
•Biểudiễnbằng các biểuthức(vídụ out = (a & b) | c)
• Không phảitấtcả các đặctả hành vi đềutổng
hợp được
Không sử dụng: + - * / % > >= < <= >> <<
Computer Engineering 2008
7
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Những nguy hiểm trong thiếtkế Verilog
•Chương trình tuầntự, bộ tổng hợpcóthể sẽ
phải thêm nhiều chi tiếtphầncứng
Cầnmộtbộ priority encoder
•Nếuchương trình song song, có thể có những
trạng thái không xác định
Nhiềukhối “always”, khối nào thựcthitrước?
•Tạoranhiềutrạng thái không dự dịnh trước
if (x == 1) out = 0;
if (y == 1) out = 1; // else out retains previous state?
R-S latch!
• Không tính trước đượcsố phầntử phầncứng
x = x + 1 có thể cầnRẤT NHIỀU phầntử phầncứng
Computer Engineering 2008
8
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Lịch sử phát triển HDLs
• ISP (circa 1977) – dự án nghiên cứu CMU (Carnegie Mellon University)
Mô phỏng nhưng không tổng hợp
• Abel (circa 1983) – được phát triểnbởi Data-I/O
Mục tiêu dùng cho các thiếtbị luậnlýkhả lậptrình
Không tốtchomáytrạng thái
• Verilog (circa 1985) – phát triểnbởi Gateway (now Cadence)
Đặctảđược đưaratừ 1985
Ban đầu được phát triển cho mô phỏng, tương tự C và Pascal
Hiệuquả và dễ viết
Berkeley phát triển công cụ tổng hợpvàothậpniên80
Được IEEE chuẩn hóa
• Verilog standardized (Verilog-1995 standard)
• Verilog-2001 standard
• VHDL (circa 1987) - DoD sponsored standard
Dưa trên VHSIC phát triểnbởi DARPA
Tương tự như Ada (Nhấnmạnh vào tái sử dụng và bảotrì)
Ngữ nghĩamôphỏng rõ ràng
Rấttổng quát nhưng dài dòng
Được IEEE chuẩn hóa
• VHDL standardized (’87 and ’93)
Cấu trúc nghiêm ngặt
Computer Engineering 2008
9
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Verilog HDL
•Veriloglàmột ngôn ngữ lớn
Có nhiều tính năng cho tổng hợpvàmôphỏng phầncứng
Có thể biểudiễnnhững đặctrưng mứcthấp
• Transistor
Có thể hoạt động như ngôn ngữ lậptrình
•Cấutrúclặp
•Cấutrúcđiềukhiển….
• Các công cụ mô phỏng chấpnhận toàn bộ khái niệm
của Verilog
• Các công cụ tổng hợpchỉ chấpnhậnmộtphần các khái
niệmcủaVerilog
•Chỉ tập trung nghiên cứumộtphần
Sử dụng ở mộtmứcthíchhợp
Tập trung trên những cấutrúctổng hợp được
Tập trung tránh những cấu trúc gây lỗikhitổng hợp
Computer Engineering 2008
10
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Nội dung chính
•Giớithiệuvề HDLs và verilog
• Mô hình cấutrúcchomạch luậnlýtổ
hợp
•Môphỏng luận lý, kiểmchứng thiếtkế và
phương pháp luậnkiểmtra
•Thờigiantrễ truyềnlan
•Môhìnhbảng sự thậtchomạch luậnlýtổ
hợpvàtuầntự với Verilog
Computer Engineering 2008
11
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Mô hình mạch tổ hợp
•MộtmôhìnhVerilogcủamộtmạch tóm tắtcác
mô tả chứcnăng bằng góc nhìn cấu trúc hay
hành vi trên những mối quan hệ ngõ vào-ngõ ra
•Mộtmôhìnhcấutrúclàmộtcấu trúc kếtnối
(netlist) chứa
Các cổng
Các khốichứcnăng
•Một mô hình hành vi là
Các biểuthức Boolean đơngiản
Mô hình chuyển đổimức thanh ghi (Register Transfer
Level – RTL)
Mộtgiảithuật
Computer Engineering 2008
12
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Mô hình cấutrúcmạch tổ hợp
•Thiếtkế cấutrúctương
tự như tạoramộtsơđồ
(schematic)
• Schematic
Hình biểudiễncổng logic,
Ngõ vào ra,
Các đường kếtnốigiữa
các cổng.
• Môhìnhcấu trúc HDL
Danh sách các cổng cơ
bảnvàkếtnốigiữa chúng
Các phát biểuchỉ ra ngõ
vào-ra
Computer Engineering 2008
13
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Verilog primitives
• Primitives là các đốitượng cơ bảncóthểđượcsử dụng
trong thiếtkế
• 26 đốitượng chứcnăng được định nghĩatrước
n-input
n-output
3-states
and buf
nand not
or bufif0
nor bufif1
xor notif0
xnor notif1
nand (y, a, b, c);
keyword name
output
input
kết thúc phát biểu
nand N1(y, a, b, c);
instance name (optional)
Ngõralàphầntửđầutiêntrong
danh sách các ngõ vào-ra
Computer Engineering 2008
14
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Mô hình cấu trúc trong Verilog
• Module
Tên module và đi theo
sau là danh sách các
ngõ vào-ra (port)
Danh sách đặctả loại
port (input/output)
Danh sách các dây nối,
các biếnsử dụng bên
trong module (optional)
Danh sách các kếtnối
giữacáccổng và các
module khác bên trong
endmodule
module module_name (port_list);
//Declarations:
reg, wire, parameter,
input, output, inout,
function, task, …
//Statements:
Initial statement
Always statement
Module instantiation
Gate instantiation
UDP instantiation
Continuous assignment
endmodule
Computer Engineering 2008
15
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Ví dụ
port modes
Internal wires
Instantiated primitives
Module ports
Computer Engineering 2008
Ví dụ khác
Computer Engineering 2008
17
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Module ports
•Giaotiếpvới“môitrường” bên ngoài
•Kiểucủa port quyết định chiềutruyềndữ
liệu
Mộtchiều (Unidirectional)
• input
• output
Hai chiều (Bidirectional)
• inout
•Kiểucủa module port phải được khai báo
tường minh và không cần theo thứ tự xuất
hiện trong port list
Computer Engineering 2008
18
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Quy tắt trong Verilog
• Phân biệtchữ hoa thường (Case sensitive)
• Identifier: a-z, A-Z, 0-9, ‘_’ và ‘$’
• Tên biến không đượcbắt đầubằng ‘$’ hay ký số
và có thể tối đa là 1024 ký tự
•Một phát biểu đượckết thúc bằng ‘;’
• Chú thích
‘//’ một dòng chú thích
/*…*/ chú thích nhiều dòng
•Cóthể viết các phát biểutrênmột dòng hay
nhiềudòng
Computer Engineering 2008
Quy tắt trong Verilog
Comments
Lower case
key words
identifiers
Computer Engineering 2008
20
Advanced Digital Design with the Verilog HDL –
cha
p
ter 4
Thiếtkế từ trên xuống (top-down)
•Hệ thống phứctạp được phân chia thành những
đơnvị chứcnăng nhỏ hơn
Dễ thiếtkế
Dễ kiểmtra
•Cácmodule lồng nhau trong Verilog hỗ trợ thiết
kế từ trên xuống
• Module tham khảo đến module khác đượcgọilà
module “cha”, module được module khác tham
khảo đếngọi là module “con”
• Độ sâu của các module lồng nhau không giới
hạn
•Mỗi module con phải có tên duy nhất trong
phạm vi module cha (trừ các primitives)
[...]... về HDLs và verilog • Mô hình cấu trúc cho mạchluậnlý tổ hợp • Mô phỏng luận lý, kiểm chứng thiếtkế và phương pháp luận kiểm tra • Thời gian trễ truyền lan • Mô hình bảng sự thật cho mạchluậnlý tổ hợp và tuần tự vớiVerilog Advanced Digital Design with the Verilog HDL – chapter 4 40 Computer Engineering 2008 Bảng sự thật trong Verilog • • • • table Ngõ ra phải có kiểu vô hướng (scalar) Dùng kí hiệu... Engineering 2008 Advanced Digital Design with the Verilog HDL – chapter 4 35 Nội dung chính • Giới thiệu về HDLs và verilog • Mô hình cấu trúc cho mạch luận lý tổ hợp • Mô phỏng luận lý, kiểm chứng thiếtkế và phương pháp luận kiểm tra • Thời gian trễ truyền lan • Mô hình bảng sự thật cho mạch luận lý tổ hợp và tuần tự vớiVerilog Advanced Digital Design with the Verilog HDL – chapter 4 36 Computer Engineering... kiểm chứng thiếtkế và phương pháp luận kiểm tra • Thời gian trễ truyền lan • Mô hình bảng sự thật cho mạch luận lý tổ hợp và tuần tự vớiVerilog Advanced Digital Design with the Verilog HDL – chapter 4 28 Computer Engineering 2008 Các giá trị luận lý trong Verilog a y • Verilog sử dụng 4 giá trị luậnlý b 1 True 0 False x Không xác định z tổng trở cao a 0 b x z x 1 x z x z x z x x y z x s0 a a x x z... khác) • Kết nối giữa port hình thức và port thực tế Theo thứ tự trong danh sách các port tên_hình_thức(tên_thực_tế) • half_adder (.b(b), Cout(w2), a(a), sum(w1)); Computer Engineering 2008 Advanced Digital Design with the Verilog HDL – chapter 4 27 Nội dung chính • Giới thiệu về HDLs và verilog • Mô hình cấu trúc cho mạchluậnlý tổ hợp • Mô phỏng luận lý, kiểm chứng thiếtkế và phương pháp luận kiểm... nối của các Add_rca_4 trong Add_rca_16 • Kiểm tra theo chiều ngược sovới cây phân cấp thiếtkế Advanced Digital Design with the Verilog HDL – chapter 4 30 Computer Engineering 2008 Mô phỏng luậnlý • Xây dựng các testbench đưa vào mạch và hiển thị dạng sóng của kết quả • Bộ mô phỏng Kiểm tra mã nguồn Báo lỗi Mô phỏng hành vi của mạch thông qua các tín hiệu vào trong testbench Không có lỗi cú pháp ⇒... các tham số 33 Ví dụ Advanced Digital Design with the Verilog HDL – chapter 4 34 Computer Engineering 2008 Kích thước số • Chỉ ra số lượng bit dùng để lưu trữ số • ‘ 8’b1000_0001 3’d2987 16’h24ce 3’o7 • Những số không khai báo kích thước được hiểu ở dạng integer (thông thường 32 bits) • Mặc định các số ở dạng decimal • Không phân biệt hoa thường trong khai báo số • Dấu “_”... with the Verilog HDL – chapter 4 29 Phương pháp luận kiểm tra • Kiểm tra mạch thực hiện đúng chức năng Kiểm tra ngẫu nhiên phức tạp và không chính xác Cần lập kế hoạch kiểm tra tỉ mỉ • Kiểm tra mạch lớn Kiểm tra tất cả các trường hợp • Mạch cộng 16 bit cần kiểm tra 223 trường hợp • Kiểm tra phân cấp half_adder full_adder Add_rca_4 cần kiểm tra 29 trường hợp Chọn một số trường hợp để kiểm tra kết nối... sum[2:1] bit thứ 2 và 3 từ phải sang của sum • sum[4] giá trị x (không xác định) • Có thể gán, so sánh 2 vector với nhau Advanced Digital Design with the Verilog HDL – chapter 4 26 Computer Engineering 2008 Cấu trúc liên kết (connectivity) • Wire Thiết lập các liên kết giữa các đối tượng thiếtkế Giá trị được quyết định trong quá trình mô phỏng bởi cái mà nó được nối vào • Kiểu wire Khai báo bằng từ khóa... trễ truyền • Ngõ vào thay đổi ngõ ra không thay đổi ngay lập tức • Các phần tử cơ bản của verilog có thời gian trễ là 0 • Các vi mạch thực tế được sản xuất dựa trên các thư viện chuẩn được định nghĩa trước • Người thiếtkế chỉ quan tâm đến tính đúng đắn của mạch • Sử dụng các công cụ tổng hợp để hiện thực các thiếtkế thỏa mãn các ràng buộc thời gian • ‘timescale / Chỉ... Design with the Verilog HDL – chapter 4 23 Cây phân cấp mạch cộng 16-bit ripple carry Add_rca_16 M1 M2 M3 M4 Add_rca_4 Add_rca_4 M1 M2 M3 M4 Add_full Add_full Add_full Add_full M1 M2 Add_half or xor Add_rca_4 Add_rca_4 M3 or Add_half or xor Cây phân cấp thiếtkếmạch cộng 16 bit ripple carry Advanced Digital Design with the Verilog HDL – chapter 4 24 Computer Engineering 2008 Hiện thực mạch cộng 16-bit . 2008
dce
Thiếtkế mạch số vớiHDL
Chương 4: Thiếtkế luậnl với
Verilog
Computer Engineering 2008
2
Advanced Digital Design with the Verilog HDL –
cha
p
ter. dung chính
•Giớithiệuvề HDLs và verilog
•Môhìnhcấutrúcchomạch luậnlýtổ hợp
•Môphỏng luận lý, kiểmchứng thiếtkế và
phương pháp luậnkiểmtra
•Thờigiantrễ truyềnlan
•Môhìnhbảng