Tải bản đầy đủ (.pdf) (6 trang)

Giáo trình lập trình Verilog Tiếng Việt 6 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (121.48 KB, 6 trang )

Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 30
tồn tại bằng việc sử dụng ngoài những nhánh mặc đònh. Chú ý rằng chốt sẽ
được tạo ra nếu một biến không được gán cho các điều kiện nhánh có thể tồn
tại.
Để hoàn thiện mã có thể đọc được, dùng lệnh case để tạo mẫu đa cộng lớn.
III. Bộ cộng, trừ:

Toán tử cộng trừ trong bộ cộng trừ mà có chiều rộng phụ thuộc vào chiều rộg
của toán tử lớn hơn.
IV. Bộ đệm 3 trạng thái:

Bộ đệm ba trạng thái được suy ra nếu biến được gán theo điều kiện giá trò
tổng trở cao Z dùng một trong các toán tử: if, case,…
V. Các linh kiện khác:

Hầu hết các cổng logic được suy ra từ việc dùng những toán hạng tương ứng
của chúng. Như một sự lựa chọn một cổng hoặc một thành phần có thể được
giải thích rõ ràng bằng ví dụ cụ thể và sử dụng các cổng cơ sở (and, or, nor,
inv…) miễn là bằng ngôn ngữ Verilog.
Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 31
Chương XII
MỘT SỐ VÍ DỤ

I. Cấu trúc một chương trình dùng ngôn ngữ Verilog:


// Khai báo module
Module tên chương trình (tên biến I/O); // tên chương trình trùng tên file.v.
Input [msb:lsb] biến;


Output [msb:lsb] biến;

Reg [msb:lsb] biến reg;
Wire [msb: lsb] biến wire;

// Khai báo khối always, hoặc khối initial.
… các lệnh …

Endmodule

II. Một số ví dụ:

Phần mền hỗ trợ: MAX+plusII 10.0 BASELINE
1. Ví dụ 1:

a. Chương trình tính NOR các bit của biến vào

module vdcong(in,out);
input[3:0] in;
output out;

assign out= ~|in;

endmodule

Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 32
b. Mô phỏng

2. Ví dụ 2:


a. Chương trình cộng hai biến bốn bit

module adder (sum_out, carry_out, carry_in, ina, inb);
output [3:0]sum_out;
input [3:0]ina, inb;
output carry_out;
input carry_in;

wire carry_out, carry_in;
wire[3:0] sum_out, ina, inb;

assign
{ carry_out, sum_out } = ina + inb + carry_in;

Endmodule







Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 33
b. Mô phỏng


3. Ví dụ 3:


a. Chương trình giải mã 2 sang 4

module dec2to4 (w, en, y);
input [1:0] w;
input en;
output[3:0] y;

wire[1:0]w;
reg[3:0]y;
wire en;

always @(w or en)

begin
if(en==1'b1)
begin

case(w)
2'b00: y<=4'b1000;
2'b01: y<=4'b0100;
2'b10: y<=4'b0010;
default:y<=4'b0001;
Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 34

endcase
end

else
y<= 4'b0000;

end

endmodule


b. Mô phỏng

4. Ví dụ 4:

a. Bộ dồn kênh 2 sang 1

module mux12(w0, w1, s, y);
input w0, w1;
input s;
output y;

wire w0, w1, s;
reg y;

Tóm tắt bài giảng TK Hệ Thống Số Phần Verilog
GV: Nguyễn Trọng Hải Trang 35
always @(w0 or w1 or s)


begin
if(s==1)
y = w0;
else
y = w1;
end


endmodule

b. Mô phỏng

5. Ví dụ 5:

a. Chương trình dồn kênh 4 sang 1

module mux14(w0, w1, w2, w3, s, y);
input w0, w1, w2, w3;
input[1:0] s;
output y;

wire w0, w1,w2,w3;
reg y;

×