HDLs Hardware Description Languages là một ngôn ngữ lập trình dùng để mô tả hệ thống số .Ý tưởng đầu tiên về HDLs do hai kỹ sư C.Gordon Bell va Alan Newell tại Carnegie Mellon Universi
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG DAI HOC SU’ PHAM KY THUAT
THÀNH PHÓ HÒ CHÍ MINH
HGMUIIE
ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP
TIM HIEU PHAN MEM VERILOG HDL
VA THIET KE UNG DUNG
GVHD: TRAN THANH MAI SVTH: NGUYEN BA TRUYEN
HUYNH GIANG TU
1130 SKKL OO11:-
TP Hồ Chí Minh, tháng 07/2002
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Lớp : CT2000-KĐĐ
7/2002
Trang 3NHẬN XÉT CỦA GIÁO VIÊN
Trang 4LỜI CÁM ƠN
Đề tài về Verilog HDL là một để tài mới nên trong quá trình nghiên cứu làm luận án tốt nghiệp , chúng em đã gặp nhiều khó khăn Nhờ có sự tận tình giúp đỡ của
cô Trần Thanh Mai , chúng em đã hoàn thành luận án tốt nghiệp
Chúng em xin chân thành cám ơn cô Trin thanh Mai Thây cô và bạn bè
trường Đạt học Sứ phạm Kỹ thuật
Trang 5LỜI NÓI ĐẦU
“Trong thời đại thông tin liên lạc bùng nổ như hiện nay, yêu cầu về tốc độ xử lí
thông tin va sự tiện dung của các thiết bị đang đặt các nhà sản xuất thiết bị thông tin
phải luôn luôn nghiên cứu để sản xuất ra những sản phẩm đáp ứng những yêu câu
ngày càng cao này Vì vậy mach tích hợp IC đã và đang thể hiện vị trí quan trọng của
mình
| Đặt đầu từ những năm 1960, kỹ thuật tích hợp đã có sự phát triển với tốc độ
cao TY vide tích hợp vật Tianztor trên một chíp đến việc tích hợp hàng triệu Tranzitor trên một chịp đã đưa ngành công aghiép sản xuất ÍC trổ thành ngành có lợi
nhuận vất cao, Mạch ch hợp đã làm biển đổi bộ mật zã hội của con người một cách
nhành chẳng
| MHúu tòng những ngôn ngữ mạnh mô tổ phần cứcg biến nay là Verilog HDL
Đẩy TÀ ngàn ngữ mà chú ng em đang nghiên cứu và wink 52 trzng luận án này.Luận
án nầy gồm 3 phần :
Phần L: Giới thiệu Verilog HDL Phần II: Thiết kế mạch ứng dụng Mac dù đã hoàn thành tốt đẹp với tất cả sự cố gắng nử:⁄sg vì kiến thức còn non kém , kinh nghiệm còn hạn chế nên chắc hẳn luận án này sẽ còn thiếu sót Mong nhận
được nhiều ý kiến đóng góp của quí thầy cô và các bạn đọc,
Xin cảm ơn!
Trang 6LÀ Sự phổ biên cha Verilog HDL
1A Đặc điểm nối bật của Verilog HDL
1.8 la đả thiết kế tiêu biểu
CHƯƠNG 3: Mô hình thiết kế có hệ thống
3.1 Các phường pháp thiết kế
3.332.1 Phương pháp thiết kế top-down
2.1.3 Phương pháp thiết kế botom-up
2.3.1 Danh sách khai báo port
2.3.2 Khai báo port
(2.3.3 Quy tic két néi port
2.3.4 Kết nối port với tín hiệu ngoài
a/ Kết nối theo thứ tự
b/ Kết nối theo tên 2.4 Cấu trúc thiết kế một chương trình Verilog
CHƯƠNG 3: Các thành phần cơ bản và
các kiểu dữ liệu trong Verilog
3.1 Từ khóa và danh hiệu
Trang 73.4 Các kiểu dữ liệu chuẩn của Verilog
3.4.1 Cac gid tri logic cla Verilog
3.6.1.1 Tốn tit sé hoc dang binary
3.6.1.2 Tốn tử số học dang unary
3.6.2 Tốn tử logic
3.6.2.1 Tốn tử logic not
3.6.2.2 Tốn tử logic and
3.6.2.3 Tốn tử lọc or
Trang 83.7.4.3 Toán tử case equality
3.7.4.4 Toán tử case unequality
3.7.5 Toán tử trên bít (bitwise)
375.1 Toán tử not
V7.0 Toan uf rit gon
3.7,9 Toán tử điều kiện
' 3.7.10 Độ ưu tiên của các toán hang
3.8 Cac phép gan trong Verilog
3.8.1 Phép gén continuous assignment
3.8.2 Phép gan procedural assignment
3.8.2.1 Phép gan dang blocking
3.8.2.2 Phép gán dang nonblocking
CHƯƠNG 4: Các lệnh điểu khiển và vòng lặp
Trang 9
4.1.1 Khối lệnh thực hiện tuần tự
4.1.2 Khối lệnh thực hiện song song
4.7 Vong lap forever
CUUONG 5; Chudng trink con
Trang 107.1.3 Kết nối CMOS eee
7.2.1.1 Cổng nhiều ngõ vào và một ngõ ra ——
8.3.1 Tổng hợp logic là gì ?
8.3.2 Sự ảnh hưởng của tổng hợp logic
8.3.3 Tổng hợp logic với Verilog HDL
8.3.4 Lưu đồ thiết kế dùng tổng hợp logic ¬-
CHUONG 9 : Giới thiệu các công cụ CAD -
Trang 11
9.1 Các trình mô phỏng Verilog ———5
PHAN II: THIET KE MACH UNG DUNG
CHUONG I : Giới thiệu trình mô phỏng MAX_PLUSII - 98
Trang 13
Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
Trang 14Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
1.1 HDLs là gì?
HDLs (Hardware Description Languages) là một ngôn ngữ lập trình dùng để
mô tả hệ thống số Ý tưởng đầu tiên về HDLs do hai kỹ sư C.Gordon Bell va Alan
Newell tại Carnegie Mellon University để cập đến trong cuốn sách Computer
§Structures đã được họ công bố vào năm 1972 và đã thành công trong việc sử dụng thử
để mô tả hành vi của máy tính PDP-8.Chính nhờ các ý tưởng này đã cho ra đời các
ngôn ngữ phần cứng sau này nhu Verilog HDL ,VHDL ,ELLA
Nét nổi bật chủ yếu của HDLs thể hiện ở khả năng mô tả chức năng của mạch
độc lập với việc thi công mạch Có hai khía cạnh trong việc mô tả phân cứng mà cũng
là ưu điểm của HIILs đỏ là:mô tả hành vị trừu tượng và mô tả cấu trúc phần cứng
thực
+ Mô tả hành ví tru tượng một ngôn ngíf mô tả phần cứng được đùng trước tiên
hổi những thuận lợi trong việc mô tá uừu tượng hành ví phân cứng cho những mục đích
xác định Những khia vạnh về thiết kế hay edu wae cos phan cứng mong muốn không
gây tổ hại đều hành vì này
+ Mod vat uúc phần cứng :Ngôn ngữ mô tả phân: 4 khả năng mô tả cấu
trúc phầu ưu bắt chấp hành ví của thiết kế
HDL s cho phép người thiết kế mô tả mạch ở nhiều zr.# trưu tướng khác nhau
trang quá trình thiết kế Mô tả ở mức cao diễn tả hoạt động của phán cứng một cách
„rong khi đó mô tả các mức thấp hơn sẽ thiên ví ấu trúc của mạch
vựng ,Với HDLš các nhà thiết kế mạch giờ đây trở thành các nử2 láp trình sản phẩm
tạo ra la cde chip Ics
.12 Xu hướng của HDLs
Một xu hướng đang xuất hiện cho thiết kế hệ thông là kết hợp giữa phương pháp thiết kế top
down với phương pháp botom - up, ở đó người thiết kế sử dụng module có sẳn trong Verilog ,hay khối co ban do nhà sản xuất cung cấp đưa vào thiết kế và chạy mô phỏng một cách nhanh chóng
điều hày làm giảm giá thành và rút ngắn được thời gian thiết kế
‘Vi du: Xem xét một hệ thống gồm c một CPU ,chíp đổ họa,chíp I/O và hệ
thống bus Người thiết kế nên thiết kế hệ thống CPU mới ở mức RTL nhưng nên sử
dụng thiết kế ở mức hành vi cho chíp đổ họa và chíp I/O rồi mua thiết kế hệ thống bus
của người sản xuất Vì vậy ,quá trình mô phỏng ở mức hệ thống cho CPU có thể hoàn
thành và được thực thi rất nhanh ngay khi mô tả RTL cho chíp đổ họa và chíp I/O được
hoàn thành
1.3 Sự phổ biến của Verilog HDL
Verilog HDLđã và đang phát triển như là một ngôn ngữ chuẩn để mô tả phần cứng Nó cung cấp chung nhiêu đặt điểm hữu íchtrong việc thiết kế phần cứng Verilog HDL có mục đích chung là một ngôn ngữ thể hiện phần cứng để học và dể sử dụng ,có cú pháp tương tự như ngôn ngữ lập trình
C ,người thiết kế có kinh nghiệm với ngôn ngữ C sẽ tim thay sy dé dang khi hoc Verilog
'Verilog cho phép kết hợp nhiều mức trừu tượng khác nhau trong một thiết kế có thể định nghĩa một
mô hình phần cứng với mô tả ở mức swiches ,mức cổng ,mức RTL hay mức hành vi Với Verilog
SVTH: Huỳnh Giang Tú ~ Nguyễn Bá Truyền Trang 13
Trang 15Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
người thiết kế chỉ cần học một ngôn ngữ duy nhất để thiết kế khối kích thích (Stimulus block) và cả
khi hệ thống (hierachical block) Hầu hết cá công cụ tổng hợp logic phổ biến điu hổ trợ Verilog Điều này làm cho nó trở thành ngôn ngu64 được nhiều người lựa chọn
Tất cả các nhà sản xuất đều cung cấp thư viện kỹ thuật (technology library) để mô phỏng,
sự tổng hợp logic sau cùng Vì vậy thiết kế chíp trên verilog HDL cho phép chọn lựa nhiều nhà sản
xuất khác nhau Ngôn ngữ Verilog nổi bật có thể giao tiếp với ngôn ngữ lp trinh PLI (programmable language interface) trong đó người sử dụng viết trên C thông thường c khả năng với cấu trúc dữ liệu
bên trong của Verilog Người thiết kế có khả năng tuy tin trình mô phỏng Verilog HDL cho phù hợp
để phục vụ cho mục đích riêng của mình với PLI
1.4 Đặc điểm nổi bat cha Verilog
Verilog là ngôn ngữ mỏ tá phần cứng kết hợp cả hai khẩ năng , đó là mô tả cấu
trúc và mô tả hành vị Venlog cô dạng cấu trúc rất gn với ngôn ngữ C ,là ngôn ngữ
n bối các ký sự điện tử trong khi VHDI, lại có cấu túc rất gần
Với ngôn ngữ Ada là ngôn ngữ rất ¡L được biết đến:
MẠI khia cạnh nát bí nhất của Verilog đó là khả né
phương phải: thịt hiện sống song nay cho php mé ta thut
đổi vì mác h đài hóc có tốc độ cao Verilog có nhiều đặt điể::
¿ xử lý vừa song song vừa tuần tự Với
‹ hoạt động của mạch số , đặc biệt
“i bật thể hiện ngay trong cấu trúc
ngôn ngữ báo gồm ;
+ Có nhiều kiểu dữ liệu phong phú và một số kiểu $ỡ i‡£2 đt biệt rất gần vơi ý
tưởng phẩn cứng cho thiết kế với mạch số như :kiéu net reg vector smemory ,time
+ Cho phép khai báo biến kiểu bit cing nhu kha nang thao tdc trén ting bit
+ C6 nhiing phép todn dat biét cho phép thuc hién hiéu g ng thiết kế mạch
số như (reduction ,concatenation ,replication) Ngoài ra, verilog cờn có các kiểu toán
tử xử lí hiệu quả trên bit(toán tử bitwise)
+ _ Các lệnh điều khiển và vòng lặp rất phù hợp với phương pháp lập trình cấu
trúc, có dạng vòng lặp phù hợp cho mạch số như :tạo xung
+ Các phép toán cũngnhư các lệnh điểu khiển cho phép xử lí trên cả các giá trị
tùy định và giá trị tổng trở cao
+ Có các phát biểu dùng riêng cho delay nên có thể liệt kê chỉ tiết nhiều kiểu
điều khiển delay khác nhau ,giúp cho việc thiết kế trở nên chính xác hơn các hàm
chức năng của ngôn ngữ được sử dụng để kiểm tra định thời của mạch
1⁄5 Lưu đồ thiết kế tiêu biểu:
Lưu đồ trình bày ở phân trên là lưu đổ tiêu biểu cho các nhà thiết kế chip
dạng VLSL Từng quá trình lưu đồ được mô tả như sau :
Trang 16
Luận văn tốt nghiệp
¥
Ỷ Layout Verification _—yl
Trang 17Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
_1 Design specification (đặc tính tiết kế)
Đây là bước đầu tiên trongbất kì quá trình thiết kế nào và cũng là mức thiết kế trừu
tượng cao nhất Ở bước này người thiết kế tập trung chủ yếu phân tích chức năng ,
khả năng giao tiếp , toàn bộ cấu trúc cơ bắn mạch Kết quả , người thiết kế phải xác
định được yếu tố như kích thích , tốc đọ các chức năng hệ thống
2 Behavioral Description (mô tả hành vi)
Dựa vào các yêu cầu đã xác định ở bước trên ta thiết kế lưu đồ giải thuật hình thành
các bước thiết kế chức năng yêu cầu của mach Lưu đồ này cung cấp quá trình mô
phỏng nhanh nưa debug nhanh toàn bộ hệ thống,
3 RTL Description (m6 ti RTL)
Dựa trên lin dé gidi thuật, sứ dụng ngôn gnữ mô tả phần cứng (Verilog / VHDL) để
mô lả hành vì chức nềng của thạch bước thiết kế này thường gọi là thiết kế logic Ở
bước người thiết kế không cần phải nghí vê cach ma mach này sẽ được thực hiện mife ph
4 Puntion verification and texting (chức năng thẩm định va thdm tra)
in ngif m6 ta phần cứng
m tra xem có đạt
%2 trình bày kết quả mô
cứng nhị thể nào:
Cluuk này chướng trình nguồn mô tổ mạch viết
sẽ định dựa vào các trình mô phỏng logic (logic simulation,
vÍv vêu cấu chức nàng của mạch hay không Trình mé pt
phông uất 3 bình thức :
+ KẻL quá dưới dạng các giá trị trên màn hình
+ Kết quả dưới dạng tập tin chứa kết quả mô phỏng
+ Kết qua trình bày dưới dạng sóng
Nếu các ngõ ra không đạt đúng yêu câu ta phải sửa lại chướng trình nguồn và
lặp lại bước này cho đến ki kết quả ngõ ra đạt yêu cầu Trinh m6 phông logic tiêu
biểu có thể sử dụng là Verilog ~ XL của hãng Cadence Design Automation , VCScủa hãng Chronologic Simulation hoặc là silos HI của Simucad inc
5 Logic Synthesis (téng hgp logic)
Ở bước này ta có thể sử dụng các công cụ tổng hợp logic để tao ra dạng netlist
ở mức cổng ( mô tả mạch dưới dạng các cổng logic và các đường kết nối giữa các cổng
logic).Công cụ tiêu b bước này có thể dùng phần mềm Leonardo
6 Logic verification and testing (thẩm định và kiểm tra logic)
Dạng netlist sẽ được kiểm tra thông qua dạng sóng ngõ ra của file netlist xem các yêu cầu chức năng của mạch có đạt yêu cầu không Nếu giá trị logic có đạt yêu
cầu ta phải trở lại thiết kế mạch dùng ngôn ngnữ mô tả phẩn cứng để thiết kế lại
Công cụ tiêu biểu ở bước này có thể dùng phân mềm max + Plus II của Altera
Corporation
7 Physical Design (thiét ké vat li)
Bước này là một quá trình phức tạp thường được chia thành những bước nhỏ
hơn Quá trình này sẽ tạo ra dạng Layout (sơ đồ bố trí các linh kiện trong mạch)
Trang 18Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
Layout của mạch sẽ được kiểm tra các yêu cầ chức năng ,cũng như yêu câu về định
thời gian của mạch trước khi được đem đi chế tạo và đóng vỏ thành chip Nếu qúa trình kiểm tra phát hiện lỗi, ta có thể quay trở lại bước thiết kế physic hoặc trở lại bước
thiết kế logic
*** Trong toàn bộ lưu đồ thiết kế chip bước mô tả dùng Verilog là rất quan trọng
Hầu hết phương pháp thiết kế mạch số hiện nay chỉ tập trung việc thiết kế và tối ưu
mạch khởi mức RTL Các bước ssau đó đều được hổ trợ bởi các công cụ CAD có sẵn
Vì vậy, quá trình thiết kế được rút ngắn đáng kể mà kết qủa đạt được lại cao
Với sự xuất hiện gần đây của các công cụ tổng hợp hành vi, Các công cụ này
có khả năng tạo ra mô tá mạch ở mức R'TL, từ các mô phỏng dưới dạng các lưu đồ giải
Trang 19Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Trang 20
21 Các phương pháp thiết kế
Có 2 phương pháp cơ bản thiết kế mạch số Phương pháp thiết kế top_dơn và
phương pháp thiết kế bottom_up.Ý tưởng chính của 2 phương pháp thiết kế là chia bài
toán lớn thành những bài toán nhỏ cho đế khi có khả năng giải quyết những vấn để cơ
bản đó.Đây chính là ý tưởng của phương pháp lập trình cấu trúc
2.1.1 Phương pháp thiết kế top down:
Trong phương pháp này ta định nghĩa chương trình chính (Ở mức độcaonhất)
Và xác định những chương trình con cần thiết để tạo nên chương trình chính Các
chương trình còn này lại điầ& chua thánh nhiững phân nhỏ hơnđến khi ta giải quyết
được những phẩn nhỗ nầy và †
Mã hình thiết kế topdaWH:
shá nhỏ này có thể xem hit cdc phan tt ed ban
Top level block
2.1 2Phương pháp thiết kế bottom_up:
Ở phương pháp thiết kế này điễn ra ngược lại ‘Dau tiên ta xác định những khối
cơ bản cần thiết và thiết kế chúng từ đó xây dựng những chương trình lớn hơn từ những
khối cơ bản Quá trình cứ thế tiếp tục cho đến khi ta thiết kế được chương trình chính
Mô hình thiết kế bottom-up:
Trang 21
deat Leaf Leaf Leaf
vel cell cell cell
Leaf cell
Trong thực tế, các nhà thiết kế thường sử dụng kế: hop cd hai phugng
pháp top-down và bottom-up
2.2 Module
Module là một cấu trúc cơ bản của ngôn ngữ Verilog Mọi thành phần trong
Verilog déu chtfa trong module
Một module có khả năng giao tiếp với các module khácthông qua các port giao
tiếp của chúng Cấu trúc bên trong của một module này không thể truy xuất từ các
module khác Đây là một tính chất rất linh hoạt của Verilog giúp người thiết kế có thể,
thay đổi cấu trúc bên trong của module mà không làm ảnh hưởng đến các thiết kế
khác
Định nghĩa một Module bắt đầu bằng từ khóa Module và phải kết thúc bằng từ
khóa endmodule Mỗi module phải có tên riêng đại diện cho module khai báo hoặc
không danh sách port giao tiếp
Trang 22© _ <declarations> :phẩn khai báo các biến hoặc các chương trình con
« _ <module items> : bao gồm các kiểu cấu trúc như initial, always, các phép gán hay
lời hiện thực module khác
Bên trong mỗi module có thể thiết kế ở bốn mức trừu tượng khác nhau bao gồm:
2.2.1 Các thành phan trong module:
Ten ihe, duh sách port giao tiếp, khai báo
ì khi tinh aghia module Ta chỉ khai báo danh ao tiếp và khai báo port neu wuatule cin giao tiép với các module khác Cá n còn lại có thể có trong một nàadule gồm: khai báo biến, các phát biểu mức đz:zfi%, các quá trình hiện
thực nualule thấp hơn, các khối mức hành vi, hàm và thủ tcc
2 Hiện thực module
Một module chỉ cung cấp một dạng template (khuon mZu) ma of template ta c6
thé tạo ra instance (một đối tượng cụ thể) bởi quá trình hiện thực (instantiation) module biến, hằng số (parameter), và giao tiếp port
Quá trình tạo ra một instance từ module template gọi là hiện thực module Quá trình định nghĩa module chỉ đơn giản là thể hiện cách module làm việc,
các cấu trúc bên trong, các port giao tiếp bên trong, các port giao tiếp của module
Module phải được thực hiện để dùng khi thiết kế
Trong Verilog các module không được lổng vào nhau nhưng một module có thể
gọi một module khác trong nó bởi quá trình hiện thực module đó
Dạng tổng quát quá trình hiện thực module:
< module name> <parameter list> <instance name> (<port list>);
* <module name> : tén module template
© <parameter list> :danh sách các hằng số truyền vào module instance
© _ <instance name> :tên riêng của module instance
© (<port list>) :danh sách các giá trị xuất nhập của module instance
Module chứa trong các module instance có thể xem như module chính
và các module instance là các module con
số phải được khai báo
Trang 23Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Tiong vi du nay c6 4 module: system, comp-1, cemp-2 va sub-3
Mastule system [i module chinh d6i véi comp-1 va comp-2 Module comp-2 14 aexlule chính đối với module sub-3, Có thể thấy qué with module chinh hién
thực các module con,
+ Module system hiện thực module comp-] và cornp-2
+ Module comp-2 Hiện thực module sub-3
Một dạng biểu diễn khác của ví dụ trên theo đạng hình c2z
đường xuất nhập của module
2.3.1 Danh sách khai báo port:
SVTH: Huỳnh Giang Tả - Nguyễn Bá Truyền Trang 22
Trang 24
Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Danh sách port được khai báo khi định nghĩa module Nếu không cẩn giao tiếp với môi
trường ngoài thì không cần khai báo danh sách port
2.3.2 Khai báo port
Tất cả port trong danh sách port phải được khai báo trong module
Mỗi port trong khai báo port có thể thuộc một trong ba dạng sau:
—— Đón cho phép nhập xuất | inout_
2.4 Ony Gie Ket Ndi port
Hah ve sau tinh bay quy tấc kết nối port ben wong module tưởng tác với tín
hiểu bếu tại vai thodUle,
inout output
2.3.4 Kết nối port với tín hiệu ngoài
Có hai cách nối giữa tín hiệu trong module chính và port trong module
Trang 25
Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
// Binh nghia module tulladdertb
module falladder Is sun out.a,b,e,¢_in) ;
Kh
ontpnt simm.e out,
io port finpatt atc ats
"`
endntadule
b Kết nối theo tên
Thứ tự các tín hiệu của module chính hiện thực moduie con khí truyền vào
không cần đúng thứ tự mà phải phù hợp tên ưu điểm của Verilog bởi vì danh sách port rất dài mà kết nối theo vị trí rất dễ bị lỗi
fulladder1bfa_byname (.c_out(C_OUT), sum(SUM),
.b(B), a(A), c_in (C_in) ) ;
Trang 26
Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
endmodule
2.4 Cấu trúc thiết kế một chương trình Verilog
thiết kế mạch số dùng Verilog và trình mô phỏng MAX_PLUSII bao giờ ta cũng thiết kế
tric mach (Design block) va dua vector gid tri ngõ vào để kiểm tra giá
Cấu trúc khối Design
modnle <name module» (<danh sách khai báo port>) ;
<Khai báo hằng xê>
~ Hiện thi mustile khác thay primive>
+ Thiet he tach mute RTL>
Trang 27Luận văn tốt nghiệp GVRD: Cô Trần Thanh Mai
Chương 3:
CÁC THANH PHAN CƠ
BAN & CAC KIEU DỮ LIỆU
Trang 28
[Ldn vain tốt nghiệp GVHD: Cô Trần Thanh Mai
Từ khóa là danh hiệu đã được định nghĩa trong cấu trúc của verilog để
các nhà thiết kế sử dụng khi thiết kế chương trình
Danh hiệu là tên của đối tượng mà ta có thể truy xuất đối tương thong
qua tên của chúng Danh hiệu cho phép dài tối đa 1024 kí tự
Chú ý:Verilog là ngôn ngữ nhạy vớ kí tự hoa và kí tự thường >Các từ khóa của
Verilog đều ở đạng chữ thường
Chủ thích được đưa vào chằm tăng khả năng dễ đọc
Y nghía cũ phnh Có hai cách viết chú thích:
Khai báo hằng số kiểu sized khi ta quam trị của hằng số.Ta có thể
coi hằng số kiểu sized như hằng số có kiểu
Dạng biểu diễn :
< size >’< base format > < number >
Trong đó:
< size > :được biểu diễn dưới dạng số thập phân để chỉ số bit tối đa của
4ễ hìu hay để giải thích
< base format > : chỉ dạng mạ biểu diễn số đó
< number > : chứa gia trị hằng số và phải phù hợp với < base format >
< base format > Hệ biểu diễn
Trang 29kuận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Khai báo hằng số đang unsized thì không quan tâm đến tầm trị của hằng số Ta
có thể coi hằng số kiểu unszed như hằng số không kiểu,
Dang biểu điền
*[< base Eormat >]< nữhiber >
ve dave format >thi ngam định dang lá thập phân Do không khai
> liên xố bít tôi đá phụ thuộc vào trình: r6 phỏng và có giá trị bịt tối
thiểu lÀ V2 bú
Vidu
`31456 // đây là số thập phân 32 bit
"e3 / đây là số hexa 32 bịt
“021 // day [a sO octan 32 bit
Giá trị tùy định và tổng trở cao
Verilog co hai kí hiệu biểu diễn giá trị tùy định tổng trở co, Những giá trị rất
quan trọng trong thiết kế mạch số
+ Giá trị tùy định kí hiệu là x
+ Giá trị tổng trổ cao kí hiệu là z
Ví dụ:
12'h12x // đây là số hexa 12 bit ,4 bit thấp có giá trị tùy định
32'bz // đây là số nhị phân 32 bit, 32 bit có giá trị tổng trở cao
Số âm
Số âm trong Verilog được sử dụng dưới đạng sau:
< size >’< base format > < number >
Là một loạt các kí tự nằm trong dấu ngoặc kép ( “ “ ).Chuỗi phải nằm trong
một hàng và không chứa kí tự enter Các kí tự trong chuỗi có thể là kí tự mã thoát
Bảng sau đây liệt kê các kí tự mã thoát:
SVTH: Huynh Giang Tú - Nguyễn Bá Truyền Trang 28
Trang 30
3.4 Các kiểu dữ liệu chuẩn trong verilog
VAL Cae giá trị logic của Verilog ;
Verilog sit dung nhiều giá ứt logic trong thiết kế rạch để giải quyết sự tranh
chấp bay xung đột khi có nhiều điêu kiện cùng tác đóng lên net
* 0 đại diện cho giá trị logic 0 hoặc điều k¿
s 1: đại diện cho giá trị logic 1 hoặc điều
« _ x¿ đại diện cho giá tị logic tùy định
` z : đại diện cho trạng thái tổng trở cao
4-41 — Các kiểu dữ liệu vật lý
Verilog HDL là ngôn ngữ chuyên thiết kế phần cứng n£s ø6 có những kiểu dữ
liệu mô tả các phân tử thực rất mạnh mà các ngôn ngữ i4p trình khác không có
34.21 Kiểu net
Dùng để mô tả sự kết nối giữa các phần tử mạch cứng Biến k£ểu net không lưu
trữ giá trị mà thực sự là tên của đường kết nối trong mạch
Biến kiểu net được khai báo bằng từ khóa wire, Giá trị mặc định của
wire <tên biến>;
wire a ;// khai báo biến a kiểu net
3.4.2.2 Kiểu reg
Đây là khai báo biến dùng để lưu trữ giá trị dạng unsized Biến kiểu rreg được
khai báo dùng từ khóa reg.giá trị mặc định của reg là x và độ rộng mặc định là
Biến kiểu net và reg có thể khai báo đưới dạng vector (độ rộng nhiều bit) Biến
kiểu vector có thể khai báo dang sau: [MSB : LSB] Bit c6 trong số cao nhất
luôn nằm bên trái ngoặc vuông
SVTH: Huỳnh Giang Tú - Nguyễn Bá Truyền Trang 29
Trang 31
Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Mang là một biển cấu trúc trong đó có nhiều phần tử cùng kiểu ,mỗi phần tử là
một biến của mắng Mỗi biến thành phần này là một biến bình thường và chỉ để phân biệt giữa phần tứ này với phân tử kia Như vậy để truy xuất một phần tử
a mắng ta cẩn biết đực: chủ vố của nó, Verilog chÏ cho phép biến mảng có kiểu là
reg integer im và vector, Verilog chi cho phép dish ayia mang mot chiéu ,s6 phan
tử tiên tội chiêu gọi tà kích thước của chiều đó,
Củ phái
< txpe > <[MSB : LSB]> < ray name > <{eulript]> 5
Vis:
Reg [7:0] port_a [0:7] ; //khai báo kiểu mắng có 8 phần tử ,mỗi phần te 06 46 sting 8 bit
integer count[0:7] ;
khai bdo kiéu mang c6 8 phan tư ,mỗi phần tử có độ
fitruy xuất phần tử thứ năm của mảng count :
count[5]
3.4.3 Các kiểu dữ liệu trừu tượng
Giống như các ngôn nhữ lập trình Verilog cung cấp thêm một số kiểu dữ liệu
không phù hợp với phân chừng thực sự mà nó sử dụng sẽ thuận lợi hơn trong
Khai báo biến đạng số thực Giá trị mặc định là zero Không xác định độ rộng
Khai báo biến kiểu real dùng từ khóa real
Cú pháp :
real< tên biến > ;
real d;// Khai báo biến d kiểu real
Trang 32Có một số định dạng chuẩn để trình bày đạng hiển thị của biến thường dùng
kèm với các bầm chuẩn hiên thị
Ham display ding hién thi giá trị của biến, chuỗi hoặc biểu tsức Hàm này
tương tự như hàm printf trong ngôn ngữ C
$ display (“Hello Verilog World” ) ;
/I Kết quả hiển thị trên màn hình : Hello Verilog World
Trang 33Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
Verilog cho phép dinh nghta hang sO wong module ding từ khóa parameter Khi viết
chương tinh vdi Verilog nên sử dụng phát biểu parameter thay cho dùng giá trị hằng
tiểu nổi bật của khai báo hằng trong Verilog đó là 06 thé thay đối giá trị hằng số
trong quá trình hiện thực module có khai báo hằng số 5í đùng phát biểu
slefparam, Điều này cho phép ta có thể dễ dàng thay đổi bản: ví của module khi hiện
1! Thay đổi giá trị của id_num đã định nghĩa dùng phát biểu đefparam
defparam w2.id_num = 1, w3.id_num = 2;
// Hiện thực module hello_word tao 3 instance
hello_word w1( ) ¡ ⁄ Kết quả :id_num = 0
hello_word w2 () ; // Kết quả :id_num = l
hello_word w3() ; // Kết quả :id_num = 2
Trang 34
Toán hang bao gồm bất kì các kiểu dữ liệu đã trình bày Toán hạng có thể là hằng số
integer, real, net, re, tỉme, vector, hoặc lời gọi hàm
Vi du:
integer count, final_count ;
final_count = count + 1 ; // count là toán tử hạng integer
Toán tổ tác đồng lêu toán bạng để (ạo ra kết quá øiong muốn, Verilog cung cấp
tất tihiểu kiểu toán tử “Một số toán hạng chuyên xứ ̓ trên bất rất hiệu qua
Ví dụ
si đề ;/ & & là toán hạng and
!a|0{ ¡ ! là toán hạng not
4.7 Cac toán tử của Verilog
Verilog cung cấp rất nhiều kiểu toán tử bao gém : tz4n tử số học, toán tử
logic,toán tử quan hệ, toán tử so sánh, toán tử trên bit, toán r# rút gọn goán tử dịch, toán tử kết hợp toán tử lặp.và toán tử điều kiện
3.7.1 Toán tử số học
Có 2 dạng toán tử số học binary và unary
3.7.1.1 Toán tử số hoc dang binary
Toán tử số học dang binary thao tác giữa hai toán hạng bao gồm :
Toán hạng cộng (+) :thực hiện phép toán cộng giữa hai toán hạng
Toán hạng cộng (-) :thực hiện phép toán trừ giữa hai toán hạng
Toán hạng cộng (*) :thực hiện phép toán nhân giữa hai toán hạng
'Toán hạng cộng (/) :thực hiện phép toán chia giữa hai toán hạng
+ Toán tử module (%) :thực hiện phép toán lấy dư của số chia nguyên giữa hai
toán hạng
Nếu có bất kì một bit nào của toán hạng có giá trị là tùy định (x)thì kết quả của
toàn biểu thức là tùy định (x)
Trang 35+5 /ƒ là toáu tử hàng unary biểu diễn số đương 5
+5 // là toần tử hạng uuaty biểu diễn số chương 5
32.2 — Toán tử logic
Verilop cổ các toáu tứ logic and (8), or ({{), not €!).Các toán tử logic and
O&A WA He CEL) Dit vise trên hai toán hạng, toán từ ø (°)thực hiện trên một toán
hang Toán từ bàptc chỉ trả về các giá trị logic
Hng sự thật sau đây trình bày sự hoạt động của các toán tử logic:
“Thực hiện lấy giá trị bù từng bit từ 0 thành 1 và từ khác 0 về thành 0
Chỉ trả vé gid tri logic 0,1,x
3.7.2.2 Toán tử logic and
Đặc trưng bởi dấu “&&”
Thực hiện phép toán and giữa hai toán hạng
Trang 36Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai
Đặc trưng bởi đấu “{(”
Thực hiện phép toán or giữa hai toán hạng
Thực hiện phép so sánh nhỏ hơn giữa hai toán hạng
Kết quả trả về mức logic 1 nếu biểu thức đúng
Kết quả trả về mức logic 0 nếu biểu thức sai
'Thực hiện phép so sánh nhỏ hơn giữa hai toán hạng
Kết quả trả về mức logic 1 nếu biểu thức đúng
Kết quả trả về mức logic 0 nếu biểu thức sai
Trang 37“Thực hiện phép so sánh lớn hơn giữa hai toán hạng
Kết quả trả về mức logic 1 nếu biểu thức đúng
Kết quả trả về mức logic 0 nếu biểu thức sai
Thun: hiện phép so sánh lớn hơn giữa hai toán bạng
kẽi quá trả về mức logic 1 nếu biểu thức đúng
kết quả trả về mức logic 0 nếu biểu thức sải
Verilog cung cấp một số toán tử so sánh bao gồm : toán tử so sánh (= =) ,toán
tử so sánh không bằng (! =) toán tử case equality (= = =) và toán tử case unequality (I= =) Các toán tử này thực hiện việc so sánh từng cặp bit tương ứng giữa hai toán hạng
3.7.4.1 Toán tử so sánh bằng
Đặc trưng bởi đấu “= =” , thực hiện so sánh bằng giữa hai toán hạng
Kết quả trả về mức logic 1 nếu biểu thức đúng
Kết quả trả về mức logic 0 nếu biểu thức sai
Kết quả trả về là x nếu một trong hai toán hạng có chứa bit x,z
3.742 Toán tửso sánh không bằng
Đặc trưng bởi dấu “! =”, thực hiện so sánh không bằng giữa hai toán hạng
Kết quả trả về mức logic 1 nếu biểu thức đúng
Trang 38Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai
Kết quả trả về mức logic 0 nếu biểu thức sai
Kết quả trả về là x nếu một trong hai toán hạng có chứa bit x,Z
1.7.4.3 Toán từ cave quølll (loán tứ sở sánh bằng trong mọi trường hợp)
Đây là toán tử đặc biệt của Verilog cúng cấp thực hiện việc so sánh bằng trên
về giá thị sự rãi hũ hựp trong thiết kế mạch số ,Đặc trưng bồi đấu “= thực hiện
việc so sánh từng bút giữa hai toán hạng kể cả bịt có giá trị z.z
két quá trá về mức logic 1 nếu biểu thức đúng
két quá trá về mức logic 0 nếu biểu thức sai
Cu phap
Toàn hang 1 = toán hạng 2
3.7.4.4 Toán tử case unqualit (toán tử so sánh không bằng trong mọi trường hợp)
Toán tử này thực hiện việc so sánh không bằng từng bịt giữa hai toán hạng kể
cả giá trị x,2 Đặc trưng bởi đấu “I ==”
Kết quả trả về mức logie 1 nếu biểu thức đúng
Kết quả trả về mức logic 0 nếu biểu thức sai
3.5.7 Toán tử trên bit (bitwise)
'Verilog cung cấp toán tử trên bit bao gồm:
+ not (~): thực hiện việc đảo bit từ bít 0 trổ thành bit 1 và ngược lại
+ _ and (&): thực hiện phép and 2 bit
+ or({(:thực hiện phép or 2 bit
+ xor (^):thực hiện phép xor bit
+ xnor (^~ hoặc ~^):thực hiện phép xnor bit
Trang 39
Các toán tử trên bit thực hiện trên từng cặp bit tương ứng giữa 2 toán hạng
ngoại trừ toán tử not chỉ thực hiện trên một toán hạng Các toán tử trên bit thực
hiện trên các bit x và bit z được xử lí giống như bit x
Trang 40Luận văn tốt nghiệp GVHD: Cé Tran Thanh Mai
A='bl010;
A^B// kết quả
JSS Toản tứxnor
` Toán tử này là một trong những đặc điểm mạnh của verilog, nó cung cấp một khả
năng làm việc trên bitcủa một toán hạng dạng vectơ phù hợp cho các công dụng thiết
kế mạch số Verilog cung cấp các toán tử bao gồm:
+ Toán tửand (&)
Todn tif nand (~&)