Tải bản đầy đủ (.ppt) (173 trang)

Tổng quan về verilog

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 (2.27 MB, 173 trang )

Giới thiệu
Giới thiệu
Giới thiệu
Phương Pháp Thiết Kế
Phương Pháp Thiết Kế-top down

trong một phưong pháp thiết kế top-down
,chúng ta định nghĩa khối top-level và xác
định các khối con cần thiết để xây dựng khối
top-level. Chúng ta tiếp tục chia nhỏ cái khối
con cho đến khi nào không chia đựoc nữa
nghĩa là ta chia đến khối leaf cells
Phương pháp thiêt kế-top down
Phương pháp thiết kế-bottom up

Trong cách thiết kế bottom-up,đầu tiên
chúng ta xác định những khối nào đã có
sẵn,chúng ta xây dựng các cell lớn hơn bằng
việc dùng các khối có sẵn
Phương Pháp Thiết Kế

Phần lớn thì sự kết hợp giữa top-down và
bottom-up được dùng phổ biến . Thông thường
hai phương pháp trên được kết hợp với nhau.
Người xây dựng thiết kế sẽ định nghĩa đặc tả
của khối mức đỉnh. Người thiết kế logic quyết
định cách thức mà thiết kế sẽ được cấu trúc
bằng cách chia chức năng hệ thống thành
nhiều khối và khối con. Vào lúc này, người
thiết kế mạch sẽ thiết kế mạch tối ưu cho các


cell lá.
Phương Pháp Thiết Kế

Ví dụ mạch đếm không đồng bộ :
Phương Pháp Thiết Kế

Mỗi mạch ta thấy chúng đựơc cấu thành từ T-FF do đó
ta có sơ đồ thiết kế sau:
Phương Pháp Thiết Kế
Sử dụng kết hợp 2 phương pháp thiết kế
Trong phưong pháp thiết kế top-down,đầu tiên
chúng ta phải xác định chức năng của mạch,và
chúng là khối mức đỉnh (ripple carry counter). Khi đó
chúng ta thực thi việc đếm số T-FF . chúng ta xây
dựng T-FF từ D-FF và 1 cổng đảo. Vì vậy,chúng ta
chia khối lớn hơn thành khối con có sẵn cho đến khi
chúng ta không thể chia đựoc nữa.phưong pháp
thiết kế bottom-up đi theo chiều ngược lại.Takết
hợp các khối nhỏ dựng sẵn và dựng khối lớn hơn.
Điều này nghĩa là ta xây dựng flipflop D từ các cổng
logic AND và OR hoặc có thể từ các transistor
Module

Module là khối xây dựng sẵn trong Verilog.
Module có thể là một phần tử hoặc một tập có
lựa chọn các khối thiết kế mức thấp hơn. Thông
thường, các phần tử được nhóm lại trong các
module để cho ta chức năng tổng quát được sử
dụng ở nhiều nơi trong thiết kế. Module cung
cấp chức năng cần thiết cho “khối mức cao hơn”

thông qua giao diện port (ngõ vào, ngõ ra)
nhưng che giấu thực hiện bên trong. Điều này
cho phép người thiết kế sửa đổi những phần bên
trong của module mà không ảnh hưởng đến
phần còn lại của thiết kế.
Module

Cú pháp:

Module <module_name>( <module terminal list> );

<module internals>

Endmodule
Module
Cụ thể,như ví dụ trên thì T-FF có thể đựơc định
nghĩa như là một modules :
Module T_FF ( q,clock,reset );
………….
<functionally of T-flipflop>
………….

endmoule
Module

Verilog là một ngôn ngữ gồm hành vi cấu trúc.
Các thành phần của mỗi module được định nghĩa
ở 4 mức trừu tựong,phụ thuộc vào việc thiết kế.

Module hoạt động giống nhau với môi trường

bên ngoài với mọi hành vi mà module đựơc mô
tả. Thành phần của module đựoc ẩn đối với môi
trừơng. Vì vậy,từng mức độ trừu tượng mô tả
module có thể được thay đổi mà không cần sự
thay đổi của môi trừờng. Sau đây là 4 mức trừu
tựơng :
Mức Trừu Tượng
Mức Trừu Tượng
1.Hành vi và giải thuật
Đây là mức trừu tượng cao nhất được cung
cấp bởi Verilog. Module có thể được thực
hiện nhờ vào giải thuật thiết kế mong muốn
mà không cần quan tâm đến những chi tiết
thực hiện phần cứng. Việc thiết kế ở mức này
tương tự như lập trình C.
Mức Trừu Tượng
2. Luồng dữ liệu
Ở mức này module đựơc thiết kế bằng cách
chỉ rõ luồng dữ liệu-dataflow. Người thiết kế
quan tâm đến cách thức mà dữ liệu di chuyển
giữa các thanh ghi và dữ liệu di chuyển giữa
những thanh ghi phần cứng và cách thức mà
dữ liệu được xử lý trong thiết kế.
Mức Trừu Tượng
3. Mức cổng
Module đựơc thực hiện nhờ vào các cổng
logic và có sự kết nôi giữa các cổng này.việc
mô tả thiết kế trong sơ đồ thiết kế mức cổng.
4. Trạng thái chuyển mach
Đây là hành vi thấp nhất của mức trừu tượng.

Một module có thể đựơc thực thi trong một
trạng thái chuyển mạch,nút nhớ và sự kết nỗi
giữa chúng. Việc thiết kế yêu cầu kiến thức
của thực thi chi tiết của việc chuyển mạch.
Mức Trừu Tựơng

Verilog cho phép ngừơi thiết kế kết hợp cả 4 mức
trừu tựơng trên . Trong thế giới thiết kế số,thuật
ngữ register transfer level( RTL ) nghĩa là mức
truyền thanh ghi thừơng xuyên dùng để mô tả
verilog dùng sự kết hợp của hành vi và luồng dữ liệu
đựơc chấp nhận bởi công cụ tổng hợp logic.

Mức trừu tựơng càng cao,sự thuộc vào công nghệ
càng ít và ngựơc lại mức trừu tượng càng thấp việc
thiết kế trở nên phụ thuộc vào công nghệ và không
linh hoạt ,do đó một sự biến đổi nhỏ có thể gây ra
một sự thay đôi đáng kể trong thiết kế.
Thực Thể - instance

Một module cung cấp 1 mẫu mà chúng ta có
thể tạo một đối tượng thật sự. khi một
module đựơc gọi thực hiện,verilog tạo mới
duy nhất một đối tượng từ mẫu. mỗi đối
tượng có 1 cái tên riêng,biến,tham số và giao
diện vào ra input/output. Quá trình tạo một
đối tượng từ một mẫu module gọi là
instantiation và đối tượng gọi là instances .
Thực thể - instance


Ta lại xét mạch đếm không đồng bộ 4 bit.

Khối mức đỉnh tạo 4 đối tượng từ mẫu T-FF
và mỗi T-FF tạo từ 1 D-FF và 1 cổng đảo. mỗi
thực thể nên có 1 tên duy nhất. chúng ta giả
sử module D_FF đựoc định nghĩa ở một nơi
nào đó.
Thực thể - instance
Module ripple_carry_counter( q,clk,reset );
Output [3:0] q;
Input clk,reset;
T_FF tff0( q[0],clk,reser );
T_FF tff1( q[0],clk,reser );
T_FF tff2( q[1],clk,reser );
T_FF tff3( q[2],clk,reser );
endmodule
module T_FF(q,clk,reset);
output q;
input clk,reset;
wire d;
D_FF dff0( q,d,clk,reser );
not n1(d,q);
endmodule

4 thực thể của module T_FF được tạo
mỗi thực thể có 1 tên duy nhất.
Thực thể - instance

Trong verilog, các module không đươc lồng
nhau. Một sự định nghĩa module không thể

chứa đựng sự định nghĩa các module khác.
Module ripple_carry_counter( q,clk,reset );
Output [3:0] q;
Input clk,reset;
Module T_FF( q,clock,reser );

<module T_FF internals > // thanh phan module

endmodule
endmodule

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×