1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu phần mềm verilog hdl và thiết kế Ứng dụng

130 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu phần mềm Verilog HDL và thiết kế ứng dụng
Tác giả Nguyễn Bá Truyền, Huỳnh Giang Tứ
Người hướng dẫn Cô Trần Thanh Mai
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Điện tử
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2002
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 130
Dung lượng 12,33 MB

Nội dung

trong quá trình thiết kế .Mồ tả ở mức cao diễn tả hoạt động của psẩn cứng một cách tru tượng ,rong khi đó mô tả các mức thấp hơn sẽ thiên vẺ cồi tiết cấu trúc của mạch cũng .Với HDLš cá

Trang 1

BO GIAO DUC VA DAO TAO 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

117 SKLOO1117

TP Hồ Chí Minh, thang 07/2002

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Trang 3

NHAN XET CUA GIAO VIEN

Trang 4

LOI CAM ON

Dé 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

ef Trin 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 gn cô Trân thanh Mai Thấy cô và bạn bè

trường Đại học Sư phạm KỆ thuật

Trang 5

LOINOI DAU

“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 và sự tiện dụng của các thiết bị đang đặt các nhà sản xuất thiết bị thông tỉn 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 mạch tích hợp IC đã và đang thể hiện vị trí quan trọng của

mình

Bat đâ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 , Tữ việc lích hợp vài Exanzitor trên một chíp đến việc tích hợp hàng triệu

'franziloi trên một chút đã đưa ngành công nghiệp sắn xuất IC trở thành ngành có lợi

nhuận tất can Mạch th hựp đã lầm biến đổi bộ mặt xã bối của con người một cách

nhanh chóng

Mặt tong những ngôn ngữ mạnh mô td phan cing biés nay 12 Verilog HDL Daly là ngân ngữ mà chú ng em đang nghiên cứu và winh bay tong lun 4n nay.Luan

án này gồm 2 phẩn :

Phin I: Gidi thigu Verilog HDL

Phân II: Thiết kế mạch ứng dung

Mac dù đã hoàn thành tốt đẹp với tất cả sự cố gắng nhưng 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 6

Muc luc

11 HDIs là gì?

122 Xu hưởng của HDLs

1.3 Sự phổ biên của Verilog HDI,

14 Dae diém ndi bat ela Verilog HDL

LA lu để thiết kế tiêu biểu

CHƯƠNG 2: Mô hình thiết kế có hệ thống

3.1 Các phương pháp thiết kế

3.332.131 Phương pháp thiết kế top-down

3.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 tắc 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

Trang 7

3.4 Các kiểu dữ liệu chuẩn của Verilog

3.4.1 Các giá trị logic của Verilog,

1.4.4 Các kiểu đữ liệu trữu tượng

JAA Riểu tieget

AAD Kieu real

3.4 Wam chuiin cia Verilog-va các chỉ thị biên dich

3:6.2.1 Toán tử logic not

3.6.2.2 Toán tử logic and

3.6.2.3 Toán tử loic or

3.6.3 Toán tử quan bệ

Trang 8

3.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 (biwisc)

3.7.9 Toán tử điểu kiện

3.7.10 Độ ưu tiên của các toán hạng

3.8 Cac phép gan trong Verilog

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.6 Vong lip repeat

47 Vong lap forever

6.4.1.5 Giá trị delay cạnh lên , cạnh xuống và turn-off —¬ 66

Trang 10

7.2.1 Các loại cổng _

§.1L1 Cấu wic UDP ———I

8.1.1.2 Các quy tắc ————I 8.1.2 UDP tổ hợp ————t2

8.3.2 Sự ảnh hưởng của tổng hợp logic ——Rs

CHƯƠNG 9: Giới thiệu các công cụ CAD -— - 94

Trang 11

9.1 Các trình mô phỏng Verilog ————5

9.3 Một số công cụ hổ tro — 96

PHẦN II : THIET KE MACH UNG DUNG

CHƯƠNG I: Giới thiệu trình mô phỏng MAX_PLUSII ~ 98

CHƯƠNG II : Thiết kế mạch ứng dụng ————14

p 13 Tl kể bộ đến kênh 4Í elt

Bài tập 3: Đền giáo thông ——!§ Hài lập 4: Máy tự động bán báo ——————2Il

Trang 12

Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Trang 14

Luận văn tốt nghiệp GVHD: Cô Trân Thanh Mai

1.1 HDLs 1a gi?

HDLs (Hardware Description Languages) 1A m6t ng6n 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 và Alan

Newell tai 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 tinh PDP-8.Chinh nhờ các ý tưởng này đã cho ra đời các

ngôn ngữ phẩn cứng sau này như 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à tu điểm của HDL.s đề là:mô tá hành ví Irừu tượng và mô tả cấu trúc phần cứng

thực,

+ MA tả hành vi trầu tướng uoột ngôn ngữ mô tả phần cứng được dùng trước tiên

bởi nhữug thuận lợi trong việu tô tá ưừu tượng bánh ví phân cứng cho những mục đích

xác định Những khúi cạnh về thiết kế hay cấu trúc của phân cứag mong muốn không,

gây tế hại đến hãnh V( aây

+ Mỏ tả cầu uúc phân cứng :Ngôn ngữ mồ tả phân cứng ⁄¿ Khả náng mô tả cấu

trúy phẩn cứng bắt chấp hành vì của thiết kế

NHI š cho phép người thiết kế mô tả mạch ở nhiều mốc trửu tướng khác nhau

trong quá trình thiết kế Mồ tả ở mức cao diễn tả hoạt động của psẩn cứng một cách

tru tượng ,rong khi đó mô tả các mức thấp hơn sẽ thiên vẺ cồi tiết cấu trúc của mạch

cũng Với HDLš các nhà thiết kế mạch giờ đây trở thành các nh2 láp trình sản phẩm

tạo ra là các chip Tes

.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 cơ bản 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 này làm giảm giá thành và rút ngắn được thời gian thiết kế

'Vĩ du: Xem xét một hệ thống gồm e một CPU ,chíp đồ họa,chíp LO 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 dé hoa va chip /O duge

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à để 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ẽ tìm thấy sự 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

Trang 15

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) dé m6 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 trình 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 bật của Verilog.,

Verilog là ngôn ngữ mô tá phần cứng kết hp cả hai khả năng , đó là mô tả cấu

trúc và mô tả hành vì ,Venilng có dạng cấu Uúc rất gn với ngôn ngữ C ,là ngôn ngữ

đc sử dụng rất nhổ biến bớt các kỹ su điện tử wong ki VHDI, lại có cấu túc rất gần

vái ngôn ñgữ Ada là ngài agit eat ít được biết đến

Mãi khía cạnh nếi bí nhất của Verilog đó là khá năng zử iý vừa song song vừa tuân tự Với phường pháp thực hiện song song nay cho php mô tả thực được các hoat đí¿ng của mạch số , đặc biệt đối vì mạch đài hỏi có tốc độ cao Verilog có nhiều đặt điểm mí thể hiện ngay trong cấu trúc

at

ngdn nyt bao gdm :

+ Có nhiều kiểu dữ liệu phong phú và một số kiểu dữ li£u đ4t 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 ,Yec+ov ,zernory ,time

+ Cho phép khai báo biến kiểu bịt cũng như khả năng thao tác trén từng bít,

+ _ Có những phép toán đặt biệt cho phép thực hiện hiệu quả trong 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ó đạ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ê chi 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 :

SVTH; Huỳnh Giang Tú ~ Nguyễn Bá Truyền Trang 14

Trang 16

Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Trang 17

kuậ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 nang ,

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 (mé ti RTL)

Dựa trên lưu để giải thuật, sử đụng ngôn guữ mổ tả phần cứng (Verilog / VHDL) để

mô tả hành vì chiức năng của mạch bước tuết kế này thường gọi là thiết kế logic Ở

bước này người thiết kê không cần phải nghỉ về cách mã máach này sẽ được thực hiện ở

mứt phẩn cứng nhự thể nào

4, Puntion verification and testing (chức năng thẩm định và thẩm tra)

Chak pay chương trình nguồn mô tả mạch viết bởi nị ó tả phần cứng

sẽ được đưa vào các tình mô phỏng logic (logic simulation) 6€ kiéen tra xem có đạt

ete yeu edu chức năng của mạch hay không Trình mô phỏng sé wish bảy kết quả mô

phảng dưới 3 hình thức :

+ KêLquá 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 mé phong logic tiêu

biểu có thể sử dụng là Verilog - XL của hãng Cadence Design Automation , VCScủa hãng Chronologie Simulation hoặc là silos II cia 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 dang 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 logie).Công cụ tiêu b bước này có thể dùng phần mễm Leonardo

6 Logic verification and testing (thdm dinh va 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ế lai

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ế vật If)

Bước này là một quá trình phức tạp thường dược chia thành những bước nhỏ

hơn Quá trình này sẽ tạo ra dạng Layout (sd đồ bố trí các linh kiện trong mạch)

Trang 18

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

VI 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 dade RTL tí các mô phổng dưới đạng các lưu đồ giải

thuật của mạch „ Vì vậy, người thiết kế mạch có thết thiết mạch ở mức trừu tượng rất cao đó là mức giải thuật Đây là một khái niệm mới và rất mạnh của ngôn ngữ mô tả phân cứng

SVTH: Huỳnh Giang Tú ~ Nguyễn Bá Truyền Trang 17

Trang 20

Luận văn tối nghiệp GVHD: Cô Trần Thanh Mai

2.1 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 con này lại được chia thành những phần nhỏ hơnđến khi ta giải quyết

được những phân nhỏ này cá phẩ nhỏ náy có thể xem như các phần tử cơ bản,

Leaf Leaf Leaf Leaf Leaf Leaf

2.1 2Phương pháp thiết kế bottom_up:

Ở phương pháp thiết kế này diễ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:

SVTH: Huỳnh Giang Tú - Nguyễn Bá Truyền Trang 19

Trang 21

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 đều chứa 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

Luận văn tốt nghiệp GVHD: Cô Trần Thạnh Mai

e _ <port list> :liệt kê các port kiểu input, output, inout dùng để kết nối với các module

khác

e _ <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:

trong môi nualufe gồm: khai báo biến, các phát biểu mức đziz‡?z%, các quá trình hiện (hye module thap how, ede khối mức hành vi, hàm và thủ tục

3.3.2 Hiện thực module

Một module chỉ cũng cấp một dạng template (khuôn mẫu) r2 từ template ta có

thể tạo ra instance (một đối tượng cụ thể) bởi quá trình biện thực (instantiation)

module bién, hing s6 (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 cdc hing số truyền vao module instance

© <instance name> :tên riêng của module instance

© (< port list>) :danh sdch cdc gid trị xuất nhập cia module instance

Module chứa trong các module instance có thể xem như module chinh

và các module instance là các module con

Trang 23

Tromp vi dy nay 66 4 module: system, comp-1, comp-2 va sub-3

Movtile ayvatent 1 atotute chinh đối với comp-l và œzag-2 Module comp-2 là

meiule chính đối với module sub-3, Có thể thấy qué wink module chinh hiện

(in cde nu álufe con,

4 Module system hién thy module comp-1 va comp-2

4 Mostule comp-2 hiện thực module sub-3

'Module chỉ có thể tương tác với môi trường bên ngoài thông qua các port Các

giá tri logic trong module được xuấu nhập qua các port Vi du, port chính là

đường xuất nhập của module

2.3.1 Danh sách Khai bdo port:

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 bdo trong module, Mỗi port trong khai báo port có thể thuộc một trong ba dang sau:

2.3.3 Ony tie ket di port,

tình vẽ sạn hình bày quy tắc kết nối pm bên trong móodule tướng tác với tín

hiệu hên ngoài module

inout output reg or net net

et reg or net

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

instance

a Kết nối theo thứ tự

Kiểu kết nối này cho thấy sự tương tác 1-1 rất trực quan Cụ thể, tín hiệu trong

module chính hiện thực module con phẩi truyền vào module con theo đúng thứ tựcác

port của module con đã định nghĩa

SVIH: Hujnh Giang Tit — Nguyén Bá Truyền Trang 23

Trang 25

Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Hiện thực module instance với tên Fa_byname

bì hết nổi (heo tên,

Thự tự các tín hiệu của module chính hiện thực moduie c2

không cần đúng thứ tự mà phải phù hợp tên Đây là ưa #:

¡ mà kết nối theo vị trí rất dễ bị lỗi

khí truyền vào Verilog bởi vì

wire SUM ,C_OUT ;

// Hiện thc module instance vdi tén Fa_byname fulladder1bfa_byname (.c_out(C_OUT), sum(SUM),

.b(B), a(A), c_in (C_in) ) ;

SVTH: Huỳnh Giang Tú - Nguyễn Bá Truyền Trang 24

Trang 26

2.4 Cấu trúc thiết kế một chương trình Verilog

yiết kế mạch số dùng Verilog và trình mô phỏng MAX_PLUSIT bao giờ ta cũng thiết kế tic mach (Design block) va đưa vector giá trị ngõ vào để kiểm tra giá trị ngõ ra

Cấu trúc khối Design

module <name module> (<danh sách khai báo port>) ;

Khai báo hằng số>

Khai báo port>

<Khai bao bién>

nthye module Khae thay primitives

£ Thiết kế mạch mĩ REL

<lLỡI gọi chường trình con>

«Định nghĩa chướng trình con>

Trang 27

| Ludin văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Trang 28

3.1 Từ khóa và danh hiệu

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 thông,

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 déu ở dạng chữ thường

Chữ thích được đưa vào chằm tăng khá năng dé đọc , đề húu hay để giải thích

ý nghĩa vài phúh - Có hai cách viết chú thích:

+ Cách L: Chú thích trên một hàng thì được bắt đấu jời củá thích với kí hiệu //

+ Cách 3:Chú thích trên nhiều hàng thì bất đầu lời chú thich vi ki hiệu /* và

kết thúc lồi chủ thích bău *⁄/,

Vislu:

// Day là chú thích trên một hàng, /* Đây là chú thích trên nhiều hàng */

3.3 Hằng số

Có hai kiéu viét hing s6 trong Verilog: sized va unsized

3.3.1 Hằng số kiểu sized

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

< base format > : chỉ dạng mạ biểu điễ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 29

4’b1111 // day 1a số nhị phân 4 bit

12°habc // đây là số hexa 12 bit

16*đ255 // đây là số thập phân 16 bit

Hằng số kiểu unsized

Khai báo hằng số dạng 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 unsized như hằng số không kiểu

Dang biéu diễn:

‘[< base format >]< number >

Néu khéng c6 < base format th! 1 dinh dang là thập phân Do không khai

báo < size > nên số bít dối đá phụ thuộc văo trình mô phông và có giá trị bit tối thiểu là 32 bit

Vidu

“31416 / đây là số thập phân 32 bít

“hod đây là số hexa 32 bit

*ạ21// đây là số octan 32 bit Giá trị tày định và tổng trở cao

Vedilog có hai kí hiệu biểu diễn giá trị tùy định tổng trở cao Xbữ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í du:

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 bỉt có giá trị tổng trở cao

Số âm

Số âm trong Verilog được sử dụng dưới dạng sau:

4 < size >’< base format > < number >

Vi du :

8'd3 // đây là số âm 8 bit ,có giá trị -3

44-2 // số âm này có dạng biểu diễn không hợp lệ

3.3.5 Chuỗi kí tự

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:

Trang 30

3.4 Các kiểu dữ liệu chuẩn trong verilog

3.4.1 Các giá trị logic của Verilog :

Verilog sử dụng nhiều giá trị kogic trong thiết kế mạch để giải quyết sự tranh

chấp hay xung đột khi có nhiều điệu kiện cũng tác động lên net

@ 0: đại diện cho giá tị logic 0 hoặc điêu kiến sai

` 1: đại điện cho giá trị logic } hoặc điêu kiện đúng

* x- đại điện cho giá trị logic tùy định

` ø- đại diện cho trạng thái tổng trở cao 3.4.1 Các kiểu dử liệu vật lý

Veulog HDL là ngôn ngữ chuyên thiết kế phần cứng nên 26 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ữ lập trìni: khác không có

Đâ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 dưới dạng vector (độ rộng nhiều biÐ Biến

kiểu vector có thể khai báo dạng sau: [MSB : LSB] Bit có trọng, 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 31

Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Cú pháp:

< kiểu dữ liệu > < [MSB] > <tên biến> ;

Ví dụ:

wire [7:0] a ;// khai báo biến a kiểu net với độ rộng 8 bit

_ ree (19:0] ; // khai báo biến a kiểu reg với độ rộng 20 bit

3.4.2.4Kiéu mang

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ử của mảng ta cần biết được chí số của nó Verilog chỉ cho phép biến mắng có kiểu là

teg integer lim và veetor Verilog chỉ cho phép định nghĩa mảng một chiểu ,số phần

êu gọi là kích thước của chiêu đó,

;(hai báo kiểu mảng có 8 phần tư ,mỗi phần tử có độ rộng Í Đít

/#ưuy xuất phần tử thứ năm của mang count :

count[5]

3.43 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 đữ 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 dạ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 đ kiểu real

3.5 Hàm chuẩn của verilog và chỉ thị biên dịch :

SVTH: Huỳnh Giang Tú - Nguyễn Bá Truyền Trang 30

Trang 32

Luận văn tốt nghiệp

3.5.1 Hàm chuẩn:

'Verilog cung cấp một số hàm chuẩn để thực hiện chức năng xác định

Các chức năng như trình bày kết quả ra màn hình, dừng hay kết thúc quá trình mô

phỏng Tất cả các hàm chuẩn đều có dạng như nhau :

$ <keyword>

Có một số định dạng chuẩn để trình bày dạng hiển thị của biến thường dùng

kèm với các hàm chuẩn hiện thị

Ham display ding hién thi gid tri của biến, chuỗi hoặc biểu thức Hám này

tường tự như hàm printf trong ngôn ngữ C

$ display (“Hello Verilog World” ) ;

1 Kết quả hién thi trén man hinh : Hello Verilog World

Trang 33

Verilog cho phép định nghĩa hằng số trong module dùng từ khóa parameter Khi viết

chương trình với Verilog nền sử dụng phát biểu parameter thay cho dùng giá trị hằng

Điểu nốt hải của khai bảo hằng trong Verilog đó là có thể thay đổi giá trị hằng số

trong quá Hình hiện thực module có khai báo hằng số bồi việc đúng phát biểu

defparam Điểu dày cho phép ta có thể dễ dàng thay đổi hành vi của module khi hiện

// Thay đổi giá trị của ¡d_num đã định nghĩa dùng phát biểu defparam

defparam w2.id_num = 1, w3.id_num = 2

// Hiện thực module hello_word tạo 3 instance

hello_word w1() ;// Kết quả :id_num = 0

hello_word w2 ( ) ;// Kết quả :id_num = 1

hello_word w3( ) ; / Kết quả :id_num =2

Trang 34

Luận văn tốt nghiệp GVHD: Cô Trần Thanh Mai

Toán hạng 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

Ví dụ:

integer count, final_count ;

final_count = count + 1 ; // count 1a todn ti hang integer

Các toan tứ của Verilog

Verilog cung cấp rất nhiều kiểu toán tử bao gồm : tzás tử số học, toán tử

logic toan tử quan hệ, toán tử so sánh, toán tử trên bịL, toán tử rứt gọn qoá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ố học dang binary

Toán tử số học dạng 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

Trang 35

Luận văn tốt nghiệp + GVHD: Cô Trần Thanh Mai

sum = in] + in2 ; // sum = 4’xxxx

+5 // là toán tử hạng unary biểu diễn số dương 5

+5 // là toán tử hạng unary biếu diễn số dương 5

372 Toán tửlogie

Verilog có các toán tử loyie and (4), ør ([{), not (!).Các toán tử logic and (&&)và or ((() lầm việc trên hai toán hạng, toần tử not (!)thực hiện trên một toán hạng Toán tử logic chí trả về các giá uy logic

Hãng 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

Chi tra 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 36

Đặc trưng bởi dấu “( (”

Thực hiện phép toán or giữa hai toán hạng

A741 — Toán tứ quan hệ

Verilog cung cap kiểu toán tử quan để chiméi quan hé zi24 hai toán hàng lớn hứa, nhỏ hơn „ lửa hơn hoặc bằng, nhỏ hơn hoặc bằng thức điêu kiện là

dung trả về giá trị logic là 1 Nếu biểu thức điều kiện là sai tá về Z⁄4 trị logic là 0

3 TẠI Toan tứ nhỏ hơn

Đặc trưng bằng dấu *<”

“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

Đặc trưng bing dau “>”,

Thực hiện phép so sánh lớn hơn giữa hai toán hang

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

37444 Toán tử lên hơn hoặc hằng

Đặc trưng bằng đấu “xe”,

“Thực hiện phép xo xánh lớn hơn giữa hai toán hang

Kết quả trả về tp loạic L nếu biểu thức đúng

kết quả trả về mức logic Ô nếu biểu thức sai

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 (! =) ,todn tit case equality (= = =) va toán tử case unequality

Đặc trưng bởi dấ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ó chifa bit x,z

37.42 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 38

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.7.4.3 Toán tử case qualit (toản tử xơ vá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 trị x¿ rất phù hợp trong đuết kế niạch số Đặc trưng bởi dấu “= = =”,thực hiện

việc so sánh từng bịt pitta has toda hang: kể cá bịt có giá trị xe

Kết quả trả về tài losic | nếu biểu thức đúng

kết quả Hà về nút logic 0 nếu biểu thức sái

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 hang kể

cả giá trị x,z Đặc trưng bởi dấu “! = =”

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

3.57 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 bít từ bit 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 2bit

+ xor (^):thực hiện phép XOF bịt

+ xnor (^~ hoặc ~^):thực hiện phép xnor bit

SVTH: Huỳnh Giang Tú ~ Nguyễn Bá Truyền Trang 37

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 40

Acad Wil, B= a bLLOl;

ASH kot qua =4°bOLLL

SASS Tost tid enor

Đặc trưng bằng dấu “^~ hoặc ~^”, thyc hign trén 2 tod:

gia tị biểu thức,

Bảng sự thật:

bang „ kết quả trả về là

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 (&)

'Toán tử nand (~&)

SVTH: Huỳnh Giang Tú ~ Nguyễn Bá Truyền Trang 39

Ngày đăng: 19/11/2024, 11:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w