Thiết kế mạch số dùng HDL-Chương 5 Thiết kế luận lý bằng mô hình hành vi
lượt xem 30
download
Cấu trúc (Structural)chỉ ra cấu trúc phần cứng thật sự của mạch Mức trừu tượng thấp. •Các cổng cơ bản (ví dụ and, or, not). •Cấu trúc phân cấp thông qua các module. Tương tự lập trình hợp ngữ. •Hành vi (Behavioral)chỉ ra hoạt động của mạch trên các bit Mức trừu tượng cao hơn. •Biểu diễn bằng các biểu thức (ví dụ out = (a & b) | c) •Không phải tất cả các đặc tả hành vi đều tổng hợp được Không sử dụng: + -* / % = ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Thiết kế mạch số dùng HDL-Chương 5 Thiết kế luận lý bằng mô hình hành vi
- dce 2009 Thiết kế mạch số dùng HDL Chương 5 Thiết kế luận lý bằng mô hình hành vi
- Nội dung chính Computer Engineering 2009 1. Mô hình hành vi 2. Mô hình hành vi dựa trên phương trình boole 3. Mô hình hành vi vòng 4. Mô hình hành vi cho các khối cơ bản 5. Giải thuật lặp và lưu đồ máy trạng thái cho mô hình hành vi Thiết kế Vi mạch số dùng HDL 2 ©2008, Pham Quoc Cuong
- Nội dung chính Computer Engineering 2009 1. Mô hình hành vi 2. Mô hình hành vi dựa trên phương trình boole 3. Mô hình hành vi vòng 4. Mô hình hành vi cho các khối cơ bản 5. Giải thuật lặp và lưu đồ máy trạng thái cho mô hình hành vi Thiết kế Vi mạch số dùng HDL 3 ©2008, Pham Quoc Cuong
- Mô hình hành vi Computer Engineering 2009 • Khái quát mô hình hành vi • Kiểu dữ liệu cho mô hình hành vi • Các phép toán cho mô hình hành vi Thiết kế Vi mạch số dùng HDL 4 ©2008, Pham Quoc Cuong
- Mô hình cấu trúc và mô hình hành vi trong HDLs Computer Engineering 2009 • Cấu trúc (Structural) chỉ ra cấu trúc phần cứng thật sự của mạch Mức trừu tượng thấp • Các cổng cơ bản (ví dụ and, or, not) • Cấu trúc phân cấp thông qua các module Tương tự lập trình hợp ngữ • Hành vi (Behavioral) chỉ ra hoạt động của mạch trên các bit Mức trừu tượng cao hơn • Biểu diễn bằng các biểu thức (ví dụ out = (a & b) | c) • Không phải tất cả các đặc tả hành vi đều tổng hợp được Không sử dụng: + - * / % > >= < >
- Mô hình hành vi – đặc điểm Computer Engineering 2009 • Thiết kế các vi mạch lớn • Mô tả chức năng (what) và cách xây dựng (how) phần cứng • Không quan tâm đến trễ truyền lan (được quan tâm trong giai đoạn tổng hợp) • Các bước thiết kế Nhanh chóng đưa ra nguyên mẫu (prototype) Kiểm tra chức năng Dùng công cụ tổng hợp tối ưu và ánh xạ công nghệ Thiết kế Vi mạch số dùng HDL 6 ©2008, Pham Quoc Cuong
- Kiểu dữ liệu cho mô hình hành vi Computer Engineering 2009 • Biến trong Verilog biểu diễn một tín hiệu dạng nhị phân của mạch • Tất cả các biến trong Verilog được định nghĩa kiểu trước khi sử dụng net register • Net hoạt động như dây nối vật lý wire • Register hoạt động giống như biến trong các ngôn ngữ lập trình cấp cao reg integer • Kích thước mặc định của kiểu dữ liệu reg và wire là 1 bit Thiết kế Vi mạch số dùng HDL 7 ©2008, Pham Quoc Cuong
- Các toán tử trong Verilog Computer Engineering 2009 Toán tử Tên Nhóm Toán tử Tên Nhóm [] Chọn > Dịch phải () Ngoặc ! Phủ định (đảo) Logical > Lớn hơn ~ Phủ định (not) Bit-wise >= Nhỏ hơn hay bằng Quan hệ < Nhỏ hơn & Thu giảm AND
- Toán tử số học (+, -, *, /, %) Computer Engineering 2009 A C B • Bất kỳ bit nào trong toán hạng là x hoặc z thì kết quả là x • Kích thước kết quả Phép nhân thì kích thước kết quả bằng tổng kích thước 2 toán hạng Các phép toán khác bằng chiều dài lớn nhất của toán hạng • Biểu diễn dấu A = 4’b0010 (2) C = 4’b1101 (13) – integer intA, intB; intA = -12; intB = -’d12; B = 4’b0101 (5) Thiết kế Vi mạch số dùng HDL 9 ©2008, Pham Quoc Cuong
- Toán tử quan hệ (, =) Computer Engineering 2009 A True/False (1/0) B A = 52 A = 3’b001 x True (1) < B = 8’hx5 B = 3’b011 A = 3’b001 A = 5’b00001 > False (0) B = 5’b01011 Thiết kế Vi mạch số dùng HDL 10 ©2008, Pham Quoc Cuong
- Toán tử bằng (==, ===, !=, !===) Computer Engineering 2009 • Bằng luận lý (== và !=) Giá trị x và z tương tự như toán tử quan hệ Kết quả có thể là x • Case (=== và !==) So sánh từng bit x === x, z === z, x !== z Kết quả luôn xác định (0 hoặc 1) • Nếu kích thước 2 toán hạng không bằng nhau thì các bit 0 sẽ được thêm vào những bit trọng số cao của toán hạng có kích thước nhỏ Data = 4’b11x0; Addr = 4’b11x0; Data == Addr //x Data === Addr //1 Thiết kế Vi mạch số dùng HDL 11 ©2008, Pham Quoc Cuong
- Toán tử luận lý (||, &&, !) Computer Engineering 2009 • Toán hạng là vector khác 0 được xem như 1 • Nếu bất kỳ bit nào của toán hạng có giá trị x hay z thì toán hạng được xem như x ABus = 4’b0110; BBus = 4’b0100; ABus || BBus // 1 ABus && BBus // 1 !ABus // giống như !BBus // 0 Thiết kế Vi mạch số dùng HDL 12 ©2008, Pham Quoc Cuong
- Toán tử Bit-wise (&, |, ~, ^, ^~) Computer Engineering 2009 & (and) 0 1 x z | (or) 0 1 x z 0 0 0 0 0 0 0 1 x x 1 0 1 x x 1 1 1 1 1 x 0 x x x x x 1 x x z 0 x x x z x 1 x x ^ (xor) 0 1 x z 0 1 x z ^~ (xnor) 0 0 1 x x 0 1 0 x x 1 1 0 x x 1 0 1 x x x x x x x x x x x x z x x x x z x x x x ~ (not) 0 1 x z 1 0 x x Thiết kế Vi mạch số dùng HDL 13 ©2008, Pham Quoc Cuong
- Toán tử thu giảm Computer Engineering 2009 0/1/x f .. .. .. .. x f x .. x .. .. .. z .. .. f & (thu giảm and): &bn-1bn-1…b0 0 1 & & .. 0 .. .. 1111 ~& (thu giảm nand): ~&bn-1bn-1…b0 .. .. .. .. 0/1 ~ & | (thu giảm or): |bn-1bn-1…b0 0 | 1 0000 | .. 1 .. .. ~| (thu giảm nor): ~|bn-1bn-1…b0 0/1 ~ | .. .. .. .. ^ (thu giảm xor): ^bn-1bn-1…b0 If count(bi = 1) mod 2 == 0, kết quả 0 Ngược lại kết quả 1 ~^/^~ (thu giảm xnor): ~^bn-1bn-1…b0 Thiết kế Vi mạch số dùng HDL 14 ©2008, Pham Quoc Cuong
- Toán tử dịch () Computer Engineering 2009 A > B .. x .. .. z .. f zzz f zzz .. .. • Dịch toán hạng bên trái số lần biểu diễn bởi toán hạng bên phải Dịch trái bn bn-1 b2 b1 b0 ... 0 bn-1 bn-2 b1 b0 0 ... Dịch phải bn bn-1 b2 b1 b0 ... 0 0 bn b3 b2 b1 ... reg [0:7] Qreg; Qreg = 4’b0111; Qreg >> 2 // is 8’b0000_0001 wire [0:3] DecoderOut = 4’d1
- Toán tử điều kiện Computer Engineering 2009 Cond_expr ? Expr1 : Expr2 • Nếu Cond_expr có chứa bất kỳ bit nào là x hoặc z thì kết quả là phép toán no bit-wise trên Expr1 và Cond_expr? Expr2 như sau 0 0 => 0 yes 1 1 => 1 Trường hợp khác là x • Toán tử điều kiện có thể Expr2 được lồng nhau vô tận Expr1 wire[15:0]bus_a = drive_a ? data : 16’bz; /* drive_a = 1 thì data được gán vào bus_a drive_a = 0 thì bus_a ở tổng trở cao drive_a = x thì bus_a là x */ Thiết kế Vi mạch số dùng HDL 16 ©2008, Pham Quoc Cuong
- Toán tử kết nối/nhân bản Computer Engineering 2009 • Kết nối {expr1, expr2,… , exprN} Những hằng số không biết kích thước không thể thực hiện kết nối wire [7:0] Dbus; wire [11:0] Abus; assign Dbus[7:4] = {Dbus[0], Dbus[1], Dbus[2], Dbus[3]}; assign Dbus = {Dbus[3:0], Dbus[7:4]}; {Dbus, 5} // not allowed • Nhân bản {rep_number {expr1, expr2,… , exprN}} Abus = {3{4’b1011}}; // 12’b1011_1011_1011 {3{1’b1}} // 111 {3{Ack}} // {Ack, Ack, Ack} Thiết kế Vi mạch số dùng HDL 17 ©2008, Pham Quoc Cuong
- Nội dung chính Computer Engineering 2009 1. Mô hình hành vi 2. Mô hình hành vi dựa trên phương trình boole 3. Mô hình hành vi vòng 4. Mô hình hành vi cho các khối cơ bản 5. Giải thuật lặp và lưu đồ máy trạng thái cho mô hình hành vi Thiết kế Vi mạch số dùng HDL 18 ©2008, Pham Quoc Cuong
- Mô hình hành vi dựa trên phương trình boole Computer Engineering 2009 • Phép gán liên tục • Thời gian trễ truyền lan và phép gán liên tục • Latch và mạch tích cực mức trong Verilog Thiết kế Vi mạch số dùng HDL 19 ©2008, Pham Quoc Cuong
- Phép gán liên tục Computer Engineering 2009 • Phép gán liên tục assign variable = boolean_expression wire wire_name = boolean_expression Boolean_expression được tính lại khi bất kỳ tín hiệu nào trong nó thay đổi • Một module có thể có nhiều phát biểu gán liên tục được thực thi đồng thời Logic description Verilog Description input x_in1, x_in2; circuit Structure output y_out; Schematic model assign y_out = ~(x_in & x_in2); LHS RHS input x_in1, x_in2; Truth User-Define table Primitive output y_out; wire y_out = ~(x_in & x_in2); Boolean Continuous Expressionl Assignments Thiết kế Vi mạch số dùng HDL 20 ©2008, Pham Quoc Cuong
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Thiết kế mạch số dùng HDL-Chương 1: Phương pháp luận thiết kế vi mạch số
24 p | 174 | 45
-
Bài giảng môn Kỹ thuật số 2: Chương 5 - GV. Nguyễn Hữu Chân Thành
135 p | 221 | 40
-
Thiết kế mạch số dùng HDL-Chương 6 Tổng hợp mạch luận lý tổ hợp và tuần tự
91 p | 188 | 38
-
Thiết kế mạch số dùng HDL-Chương 3: Thiết kế mạch luậnlý tuần tự
41 p | 180 | 32
-
Thiết kế mạch số dùng HDL-Chương 7 Thiết kế và tổng hợp bộ điều khiển dòng dữ liệu
28 p | 147 | 22
-
Thiết kế mạch số dùng HDL-Chương 2: Thiết kế mạch luận lý tổ hợp
64 p | 108 | 22
-
Thiết kế mạch số dùng HDL-Chương số 2 : Thiết kế mạch luận lý tổ hợp
45 p | 106 | 17
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 6: Tổng hợp mạch luận lý tổ hợp và tuần tự
91 p | 29 | 4
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 4: Thiết kế luận lý với Verilog
39 p | 54 | 4
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 9: Giải thuật và kiến trúc cho các bộ xử lý số
46 p | 30 | 2
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 7: Thiết kế và tổng hợp bộ điều khiển dòng dữ liệu
28 p | 34 | 2
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 3: Thiết kế mạch luận lý tuần tự
41 p | 22 | 2
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 2: Thiết kế mạch luận lý tổ hợp
45 p | 16 | 2
-
Bài giảng Thiết kế mạch số dùng HDL - Chương 1: Phương pháp luận thiết kế vi mạch số
24 p | 27 | 2
-
Bài giảng HDL & FPGA - Chương 3: Thiết kế số
110 p | 10 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn