1. Trang chủ
  2. » Công Nghệ Thông Tin

tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog

51 188 0

Đ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

Định dạng
Số trang 51
Dung lượng 1,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog tổng quan về hệ điều hành và thiết kế sequential logic using UDP dùng verilog

Trang 2

Mục Lục:

P ẦN 1: 6

TỔN QU N VỀ DL 6

1.1 Mở đầu 6

1.2 Khái niệm 6

1.3 Những ưu điểm củ phương pháp thiết kế hệ thống số bằng ngôn ngữ mô tả phần cứng HDL……… … 7

1.4 Gi i thiệu ngôn ngữ mô tả phần cứng VHDL 8.9 1.5 Code củ HDL trong Verilog……….10,11 P ẦN 2 12

TÌM ỂU VỀ VER LO 12

I Tổng qu n về verilog 12

II CHỨC NĂNG CÁC TỪ VỰNG TRONG VERILOG 12

1 Khoảng trắng 13

2 Chú giải 13

3 Chữ số: 13

4 Từ định d nh: 13

5 Cú pháp: 13

6 Toán tử: 13

7 Từ kh Verilog: 13

III.CÁC CỔNG CƠ BẢN TRONG VERILOG 14

1 Các cổng cơ bản: 14

1.1 Cú pháp: 14

1.2 Ví dụ: 14

2 Cổng buf, not: 14

2.1 Cú pháp: 14

Trang 3

IV CÁC DẠNG DỮ LIỆU 15

I Đặt giá trị: 15

II Wire: 16

III Reg: 16

IV Input, Output, Inout: 16

I Integer (Số nguy n): 17

II Supply 0, Supply1: 17

III Time: 18

IV P r meter (Th m số): 18

V TOÁN TỬ 19

I Toán tử số học: 19

II Toán tử qu n hệ: 19

III Toán tử bit_wire: 19

IV Toán tử logic: 20

V Toán tử biến đổi: 20

VI Toán tử ghép: 20

VII Toán tử dịch: 20

VIII Toán tử điều kiện: 20

IX Thứ tự toán tử: 20

VI.TOÁN HẠNG 21

I Liter ls (dạng kí tự): 21

II Chọn 1 phần tử bit và chọn 1 phần các bit 21

III Gọi hàm chức năng: 22

IV Wire, reg, và th m số: 22

VII MODULES 23

I Khai báo modules: 23

II Chỉ định li n tiếp: 23

III Module instantiations: 24

VIII KHUÔN MẪU HÀNH VI (BEHAVIORAL) 25

I Những chỉ định theo thủ tục: 25

II Delay trong chỉ định: 26

Trang 4

III Chỉ định khối: 26

IV Begin …end: 26

V Vòng lặp for: 27

VI Vòng lặp while: 27

VII Khối lệnh if… else if… else: 27

VIII Case: 27

IX KHỐI ALWAYS VÀ KHỐI INITIAL 28

I Khối lw ys: 28

II Khối initi l 29

X HÀM 30

I Khai báo hàm: 30

XI CHỨC NĂNG LINH KIỆN 30

I Th nh ghi Edge_triggered, flip_flop, bộ đếm: 31

II Bộ đ cộng: 32

III Bộ cộng, trừ: 32

IV Bộ đệm 3 trạng thái: 32

V Các linh kiện khác: 32

P ẦN 3 MỘT SỐ VÍ DỤ………… 33

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

1 Ví dụ 1: 33

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

b Mô phỏng 33

2 Ví dụ 2: 34

Chương trình cộng h i biến bốn bit 34

b Mô phỏng 34

3 Ví dụ 3: 35

Chương trình giải mã 2 s ng 4 35

b.mô phỏng……… 36

.4.vi dụ 4……… 37

a.ộ dồn k nh 4 s ng 2……… 37

Trang 6

gi i thiệu một loại ngôn ngữ mô phỏng phần cứng đ là VHDL (Very high speed intergr ted circuit H rdw re Description L ngu ge), loại ngôn ngữ chủ yếu đƣợc sử dụng để mô phỏng phần cứng trong công nghệ CPLD, FPGA, ASIC…

1.2 hái niệm

- Là ngôn ngữ thuộc l p ngôn ngữ máy tính(computer language

- Dùng miêu tả cấu trúc và hoạt động một vi mạch

- Dùng mô phỏng, kiểm tra hoạt động vi mạch

- Biểu diễn hành vi theo thời gian va cấu trúc khônggian của mạch

Trang 7

- Bao gồm những ký hiệu biểu diễn thời gian và sự1đồng thời (time and concurrence)

1.3 Những ưu điểm của phương pháp thiết kế hệ thống số

ằng ngôn ngữ mô phỏng phần cứng ( DL)

Ngày n y, các mạch tích hợp ngày càng thực hiện được nhiều chức năng do đ mà vấn đề thiết kế mạch càng trở n n phức tạp Những phương pháp truyền thống như dùng phương pháp tối thiểu hoá hàm Boolean h y dùng sơ đồ các phần tử không còn đáp ứng được các y u cầu đặt r khi thiết kế Nhược điểm l n nhất củ các phương pháp này

là chúng chỉ mô tả được hệ thống dư i dạng mạng nối các phần tử v i

nh u Người thiết kế cần phải đi qu h i bư c thực hiện hoàn toàn thủ công: đ là chuyển từ các y u cầu về chức năng củ hệ thống s ng biểu diễn theo dạng hàm Boole n, s u các bư c tối thiểu hoá hàm này t lại phải chuyển từ hàm Boole n s ng sơ đồ mạch củ hệ thống Cũng

tương tự khi phân tích một hệ thống người phân tích cần phải phân tích

sơ đồ mạch củ hệ thống, rồi chuyển n thành các hàm Boole n, s u đ

m i lập lại các chức năng, hoạt động củ hệ thống Tất cả các bư c n i

tr n hoàn toàn phải thực hiện thủ công không c bất kỳ sự trợ giúp nào

củ máy tính Người thiết kế chỉ c thể sử dụng máy tính làm công cụ

hỗ trợ trong việc vẽ sơ đồ mạch củ hệ thống và chuyển từ sơ đồ mạch

s ng công cụ tổng hợp mạch vật lý dùng công cụ Synthesis Một nhược điểm khác nữ củ phương pháp thiết kế truyền thống là sự gi i hạn về

Trang 8

thái( finite-state-m chine) cho các hệ thống tuần tự cũng như cho phép

sử dụng bảng chân lý cho hệ thống tổng hợp Việc chuyển đổi từ các biểu đồ trạng thái và bảng chân lý s ng mã ngôn ngữ mô phỏng phần cứng được thực hiện hoàn toàn tự động

Nhờ tính dễ kiểm tr thử nghiệm hệ thống trong suốt quá trình thiết

kế mà người thiết kế c thể dễ dàng phát hiện các lỗi thiết kế ng y từ những gi i đoạn đầu, gi i đoạn chư đư vào sản xuất thử, do đ tiết kiệm được lượng chi phí đáng kể bởi từ ý thiết kế đến tạo r sản phẩm đúng như mong muốn là một việc rất kh tránh khỏi những kh khăn, thất bại

Khi mọi lĩnh vực củ kho học đều phát triển không ngừng thì sự phức tạp củ hệ thống điện tử cũng ngày một tăng theo và gần như không thể tiến hành thiết kế thủ công mà không c sự trợ giúp cuả các loại máy tính hiện đại Ngày n y, ngôn ngữ mô tả phần cứng HDL được dùng nhiều để thiết kế cho các thiết bị logic lập trình được PLD

từ loại đơn giản đến các loại phức tạp như m trận cổng lập trình được FPGA

1.4 iới thiệu ngôn ngữ mô tả phần cứng V DL

VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất c o, là một loại ngôn ngữ mô tả phần cứng được phát triển dùng cho trương trình VHSIC( Very High Speed Itergr ted Circuit) củ bộ quốc phòng Mỹ Mục ti u củ việc phát triển VHDL là c được một ngôn ngữ mô phỏng phần cứng ti u chuẩn và thống nhất cho phép thử

nghiệm các hệ thống số nh nh hơn cũng như cho phép dễ dàng đư các

hệ thống đ vào ứng dụng trong thực tế Ngôn ngữ VHDL được b công ty Intermetics, IBM và Tex s Instruments bắt đầu nghi n cứu phát triển vào tháng 7 năm 1983 Phi n bản đầu ti n được công bố vào tháng 8-1985 S u đ VHDL được đề xuất để tổ chức IEEE xem xét thành một ti u chuẩn chung Năm 1987 đã đư r ti u chuẩn về VHDL( ti u chuẩn IEEE-1076-1987)

VHDL được phát triển để giải quyết các kh khăn trong việc phát triển, th y đổi và lập tài liệu cho các hệ thống số Như t đã biết, một

hệ thống số c rất nhiều tài liệu mô tả Để c thể vận hành bảo trì sử chữ một hệ thống t cần tìm hiểu kỹ lưỡng tài liệu đ V i một ngôn ngữ mô phỏng phần cứng tốt việc xem xét các tài liệu mô tả trở n n dễ

Trang 9

dàng hơn vì bộ tài liệu đ c thể được thực thi để mô phỏng hoạt động

củ hệ thống Như thế t c thể xem xét toàn bộ các phần tử củ hệ thống hoạt động trong một mô hình thống nhất

VHDL được phát triển như một ngôn ngữ độc lập không gắn v i bất kỳ một phương pháp thiết kế, một bộ mô tả h y công nghệ phần cứng nào Người thiết kế c thể tự do lự chọn công nghệ, phương pháp thiết kế trong khi chỉ sử dụng một ngôn ngữ duy nhất Và khi đem

so sánh v i các ngôn ngữ mô phỏng phần cứng khác đã kể r ở tr n t thấy VHDL c một số ưu điểm hơn hẳn các ngôn ngữ khác:

- Thứ nhất là tính công cộng: VHDL được phát triển dư i sự bảo trợ củ chính phủ Mỹ và hiện n y là một ti u chuẩn củ IEEE VHDL được sự hỗ trợ củ nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống

- Thứ h i là khả năng hỗ trợ nhiều công nghệ và phương pháp thiết

kế VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết kế từ tr n xuống, h y từ dư i l n dự vào các thư viện sẵn

c VHDL cũng hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụng công nghệ đồng bộ h y không đồng bộ, sử dụng m trận lập trình được h y sử dụng mảng ngẫu nhi n

- Thứ b là tính độc lập v i công nghệ: VHDL hoàn toàn độc lập

v i công nghệ chế tạo phần cứng Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng c thể được chuyển thành các bản tổng hợp mạch khác nh u tuỳ thuộc công nghệ chế tạo phần cứng m i r đời n c thể được áp dụng ng y cho các hệ thống đã thiết kế

- Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động củ phần cứng từ mức hệ thống số cho đến mức cổng VHDL c khả năng mô tả hoạt động củ hệ thống tr n nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức Như thế t c thể

mô phỏng một bản thiết kế b o gồm cả các hệ con được mô tả chi tiết

- Thứ năm là khả năng tr o đổi kết quả: Vì VHDL là một ti u

chuẩn được chấp nhận, n n một mô hình VHDL c thể chạy tr n mọi

bộ mô tả đáp ứng được ti u chuẩn VHDL Các kết quả mô tả hệ thống

c thể được tr o đổi giữ các nhà thiết kế sử dụng công cụ thiết kế khác

nh u nhưng cùng tuân theo ti u chuẩn VHDL Cũng như một nh m thiết kế c thể tr o đổi mô tả mức c o củ các hệ thống con trong một

hệ thống l n (trong đ các hệ con đ được thiết kế độc lập)

Trang 10

- Thứ sáu là khả năng hỗ trợ thiết kế mức l n và khả năng sử dụng lại các thiết kế: VHDL đƣợc phát triển nhƣ một ngôn ngữ lập trình bậc

* multiplied in an 8-bit multiplier, with the result added to a 10-bit

* accumulator The number of pipe stages is set by the 'stages' parameter,

Trang 11

reg [9:0] sum[stages-1:0];

integer i;

always @(posedge CLK) begin

for(i=stages-1; i>0; i = i-1)

Trang 12

P ẦN 2

TÌM ỂU VỀ VER LO

I TỔN QU N VỀ VER LO

Verilog HDL là một trong h i ngôn ngữ mô phỏng phần cứng

thông dụng nhất, được dùng trong thiết kế IC, ngôn ngữ ki là

Verilog thường được dùng để mô tả thiết kế ở ốn dạng

Thuật toán (một số lệnh giống ngôn ngữ C như: if, c se,

for,while…)

Chuyển đổi th nh ghi (kết nối bằng các biểu thức Boole n)

Các cổng kết nối( cổng: OR, AND, NOT…)

Chuyển mạch (BJT, MOSFET) Ngôn ngữ này cũng chỉ rõ cách thức kết nối, điều khiển vào/r trong mô phỏng

ấu trúc 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;

// Kh i báo khối lw ys, hoặc khối initi l

… các lệnh …

Endmodule

Trang 13

II Ứ NĂN Á TỪ VỰN TRON VER LO

Những tập tin văn bản nguồn Verilog b o gồm những biểu hiện thuộc tính từ vựng s u đây:

1 Khoảng trắng

Khoảng trắng ngăn những từ và c thể chứ khoảng cách, khoảng dài, dòng m ivà dạng đường dẫn Do đ , một lệnh c thể đư r nhiều dòng phức tạp hơn mà không c những đặc tính đặc biệt

Toán tử là một, h i, hoặc b kí tự dùng để thực hiện các toán hạng

tr n biến Các toán tử b o gồm >, +, &, !=

Trang 14

7 Từ khóaVerilog:

C những từ mà phải c ý nghĩ đặc biệt trong Verilog Ví dụ:

assign, case, while, wire, reg, and, or, nand, và module Chúng

không được dùng như từ định d nh Từ kh Verilog cũng b o gồm cả chỉ dẫn chương trình bi n dịch và System T sk (hệ thống

strong1 và strong0

Delay: nếu del y không được chỉ rõ, thì khi đ cổng không c trì

hoãn truyền tải; nếu c h i del y được chỉ định, thì trư c ti n là

mi u tả trì hoãn l n, thứ h i là trì hoãn xuống Nếu chỉ c một

del y được chỉ định, thì khi đ trì hoãn l n xuống là như nh u Del y được bỏ qu trong tổng hợp Phương pháp củ sự trì hoãn chỉ định này là một trường hợp đặc biệt củ “P r meterized

Modules” Các th m số cho các cổng cơ sở phải được định nghĩ trư c như del y

1 Các cổng cơ bản:

Các cổng cơ bản c một ngõ r , và c một hoặc nhiều ngõ vào Trong các cổng, cú pháp cụ thể biểu diễn b n dư i, các từ khoá củ các cổng: nd, or, n nd, nor

1.1 Cú pháp:

GATE (drive_strength)#(delays)

T n từ kh cổng _t n (output, input_1, input_2, …, input_N);

Delay: #( l n, xuống) hoặc #l n_vàxuống hoặc #( l n_vàxuống)

Trang 15

Các cổng này thực thi đệm và đảo theo theo thứ tự địmh sẳn

Chúng c một ngõ vào, h i h y nhiều ngõ r Cú pháp cụ thể biểu diễn ở b n dư i, từ khoá buf, not

2.1 Cú pháp:

T n từ kh cổng _t n (output_1, output_2, …, output_N, input);

2.2 Ví dụ:

Not #(5) not_1( ,c); // s u 5 đơn vị thời gi n thì = đảo c

Buf c1 (o, p, q, r, in); // bộ đệm 5 ngõ r và 2 ngõ r

0: mức logic 0, hoặc điều kiện s i

1: mức logic 1, hoặc điều kiện đúng

X: mức logic tuỳ định

Z: trạng thái tổng trở c o

X và Z dùng c gi i hạn trong tổng hợp (synthesis)

II Wire:

Mô tả vật liệu đường dây dẫn trong một mạch điện và được dùng

để kết nối các cổng h y các module Giá trị củ Wire c thể đọc, nhưng không được gán trong hàm (function) hoặc khối (block)

Trang 16

Wire không lưu trữ giá trị củ n nhưng vẫn phải được thực thi bởi

1 lệnh gán kế tiếp h y bởi sự kết nối Wire v i ngõ r củ 1 cổng hoặc 1 module Những dạng đặc biệt khác củ Wire:

W nd(wired_ nd): giá trị phụ thuộc vào mức logic And toàn bộ bộ điều khiển kết nối đến Wire

Wor (wired_or): giá trị phụ thuộc vào mức logic Or toàn bộ bộ điều khiển kết nối đến Wire

Tri(three_st te): tất cả bộ điều khiển kết nối đến 1 tri phải ở trạng thái tổng trở c o

1 Cú pháp:

Wire [msb:lsb] tên biến wire

Wand [msb:lsb] t n biến w nd

Wor [msb:lsb] t n biến wor

Tri [msb:lsb] t n biến tri

2 Ví dụ:

Wire c;

Wand d;

Assign d= a;

Assign d= b;// giá trị d là mức logic củ phép And và b

Wire [9:0] A; // vectơ A c 10 wire

III Reg:

Reg (register) là một đối tượng dữ liệu mà n chứ giá trị từ một thủ tục gán kế tiếp Chúng chỉ được dùng trong hàm và khối thủ tục Reg là một loại biến Verilog và không nhất thiết là th nh ghi

tự nhi n Trong th nh ghi nhiều bit, d t được lưu trữ bằng những chữ số không dấu và không c kí hiệu đuôi mở rộng, được thực hiện mà người sử dụng c chủ y là số bù h i

1 Cú pháp:

Reg [msb:lsb] t n biến reg

2 Ví dụ:

Reg ; // biến th nh ghi đơn giản 1 bit

Reg [7:0] A; // một vectơ 8 bit; một b nk củ 8 th nh ghi

Reg [5:0]b, c; // h i biến th nh ghi 6 bit

Trang 17

IV Input, Output, Inout:

Những từ khoá này biểu thị ngõ vào, ngõ r , và port h i chiều củ một module hoặc t sk Một port ngõ r c thể được cấu hình từ các dạng: wire, reg, w nd, wor, hoặc tri Mặc định là wire

1 Cú pháp:

Input [msb:lsb] port ngõ vào

Output [msb:lsb] port ngõ ra

Inout [msb:lsb] port ngõ vào,r h i chiều

2 Ví dụ:

Module sample (b, e, c, a);

Input ; // một ngõ vào mặc định là kiểu wire

Output b, e; // h i ngõ r mặc định là kiểu wire

Output [1:0] c; /* ngõ r h i bit, phải được kh i báotrong một lệnh

kh i báo dạng reg chứ chung bằng số không dấu Nếu chúng chứ những số mà không định nghĩ thời gi n bi n dịch thì kích thư c mặc định là 32 bit Nếu chúng chứ hằng, sự tổng hợp điều chỉnh các số c kích thư c nhỏ nhất cần thiết cho sự bi n dịch

1 Cú pháp:

Integer t n biến nguy n;

…t n hằng nguy n…;

2 Ví dụ:

Integer ; // số nguy n đơn giản 32bit

Assign b= 63; // mặc định là một biến 7 bit

II Supply 0, Supply1:

Xác định chổ đường dẫn l n mức logic 0 ( đất), logic 1( nguồn) theo thứ tự định sẵn

Trang 18

c = $time; // c = thời gi n mô phỏng dòng điện

IV Parameter (Tham số):

Một P r meter xác định 1 hằng số mà đƣợc đặt khi bạn cho ví dụ

cụ thể là một module Các này cho phép t c thể sử chữ

1 Cú pháp:

Parameter p r_1= gái trị, p r_2= gái trị, …;

Parameter [gi i hạn] p r_3 = giá trị;

Trang 19

V TOÁN TỬ

I Toán tử số học:

Những toán tử này thực hiện các phép tính số học Dấu ‟+‟ và ‟-‟

c thể được sử dụng một trong h i toán tử đơn (-z) hoặc kép (x - y)

Toán tử

+, -, *, /, %

II Toán tử quan hệ:

Toán tử qu n hệ so sánh h i toán hạng và trả về một đơn bit là 0 hoặc 1.Những toán tử này tổng hợp vào dụng cụ so sánh Biến Wire và Reg là những biến dương Vì thế, (-3b001) = (3b111) và (-3b001) > ( 3b110) nhưng nếu là số nguy n thì -1< 6

ác toán tử quan hệ

<, <=, >, >=, = =, !=

III Toán tử bit_wire:

So sánh từng bit h i toán toán hạng

ác toán tử

~ (bitwire NOT), & (bitwire AND), | (bitwire OR), ^ (bitwire

XOR), ~^ hoặc ^~ (bitwire XNOR)

IV Toán tử logic:

Toán tử logic trả về 1 bit đơn 0 hoặc 1 chúng giống như toán tử bitwire chỉ là những toán hạng đơn bit Chúng c thể làm việc tr n biểu thức, số nguy n hoạc nh m bit, và coi nhu tất cả các giá trị không bằng 0 là ‟1‟ Toán tử logic được dùng nhiều trong lệnh điều kiện (if… else), khi chúng làm việc tr n biểu thức

Trang 20

V Toán tử biến đổi:

C tác dụng tr n tất cả các bit củ một vectơ toán hạng và trả về giá trị đơnbit Những toán tử này là hình thức tự đổi số củ các toán tử bitwire ở tr n

Dịch toán tử đầu bằng chữ số củ các bit được định nghĩ bởi toán

tử thou h i.Vị trí còn trống sẽ được điền vào v i những số 0 cho cả

h i trường hợp dịch trái hoặc phải

VIII Toán tử điều kiện:

Giống như C/C++ Chúng định giá một trong h i biểu thức cơ bản trong một điều kiện N sẽ tổng hợp thành bộ đ cộng (MUX)

Trang 21

Toán tử Tên

&, |, ~&, ~|, ^, ~^ Biến đổi: AND, OR, NAND, NOT, XOR,

= =, != Bằng và không bằng trong toán tử logic

& Bit_wire AND, nd tất cả các bit v i nh u

huỗi: là một mảng c nhiều kí tự đƣợc đặt trong dấu ””

hữ số: là những số không đổi, nhị phân, bát phân, thập phân,

Trang 22

F: một trong bốn định dạng s u: b( số nhị phân), o( số bát phân), d(

20‟h B36E // 20 bit số hex

„o62 // 32 bit bát phân

II Chọn 1 phần tử bit và chọn 1 phần các bit

Đây là sự lự chọn một bít đơn hoặc một nh m bit theo thứ tự, từ một wire, reg hoặc từ th m số đặt trong ngoạc [ ] Chọn 1 phần tử bit và chọn 1 phần các bit c thể đƣợc dùng nhƣ là các toán hạng trong biểu thức bằng nhiều cách thức giống nh u mà các đối tƣợng

III Gọi hàm chức năng:

Giá trị trả về củ một hàm c thể đƣợc dùng trực tiếp trong biểu thức mà không cần gán trƣ c cho biến reg hoặc wire Gọi hàm chức năng nhƣ là một trong những toán hạng Chiều rộng bít củ giá trị trả về chắc chắn đƣợc biết trƣ c

Trang 23

Input c, b;

Chk_bc = b^ c;

Endfunction

IV Wire, reg, và tham số:

Wire, reg, và th m số c thể đuợc dùng nhƣ là các toán hạng trong biểu thức

Verilog

VII MODULES

I Khai báo modules:

Một module là bản thiết kế chủ yếu tồn tại trong Verilog Dòng đầu ti n củ kh i báo module chỉ rõ d nh sách t n và port (các đối số) Những dòng kế tiếp chỉ rõ dạng I/O (input, output, hoặc inout)

và chiều rộng củ mỗi port Mặc định chiều rộng port là 1 bit

S u đ , những biến port phải đƣợc kh i báo wire, w nd, …, reg Mặc định là wire Những ngõ vào đặc trƣng là wire khi dữ liệu đƣợc chốt be n ngoài module Các ngõ r là dạng reg nếu những tín hiệu củ chúng đƣợc chứ trong khối lw ys hoặc initi l

1 Cú pháp:

Module tên module (danh sách port);

Input [msb:lsb] danh sách port ngõ vào;

Output [msb:lsb] danh sách port ngõ ra;

Inout [ msb:lsb ] danh sách port vào_ ra;

… các lệnh…

endmodule

2 Ví dụ

Module add_sub(add, in1, in2, out);

Wire, reg, v tham số

Input[7:0 ] in1, in2;

Wire in1, in2;

Output [7:0] out;

Reg out;

… các lệnh khác…

Endmodule

Trang 24

II Chỉ định liên tiếp:

Các chỉ định li n tiếp được dùng để gán một giá trị l n tr n một wire trong một module Đ là các chỉ định thông thường b n ngoài khối lw ys hoặc khối initi l Các chỉ định li n tiếp được thực hiện

v i một lệnh gán ( ssign) rõ ràng hoặc bằng sự chỉ định một giá trị đến một wire trong lúc kh i báo Chú ý rằng, các lệnh chỉ định li n tiếp thì tồn tại và được chạy li n tục trong suốt quá trình mô

phỏng Thứ tự các lệnh gán không qu n trọng Mọi th y đổi b n phải củ bất cứ ngõ vào sẽ lập tức th y đổi b n trái củ các ngõ r

1 Cú pháp:

Wire biến wire = giá trị;

Assign biến wire = biểu thức;

2 Ví dụ

Wire [ 1:0 ] = 2‟b 01;

Assign b = c &d;

Assign d = x | y;

III Module instantiations:

Những kh i báo module là những khuôn mẫu mà n được tạo n n

từ các đối tượng thực tế ( inst nti tion) Các module đơn cử b n trong các module khác, và mỗi dẫn chứng tạo một đối tượng độc nhất từ khuôn mẫu Ngoại trừ đ là module mức tr n là những dẫn chứng từ chính chúng Các port củ module ví dụ phải thỏ những dịnh nghĩ trong khuôn mẫu Đây là mặt lý thuyết: bằng t n, sử dụng dấu chấm(.) ”.t n port khuôn mẫu ( t n củ wire kết nối đến port)” Bằng vị trí, đặt những port ở những vị trí giống nh u trong

d nh sách port củ cả khuôn mẫu lẫn inst nce

1 Cú pháp:

T n inst nce1 (d nh sách kết nối port );

T n inst nce2(d nh sách kết nối port);

Trang 25

output [3:0]c;

assign c = a&b;

endmodule

// module instantiations

wire [3:0] in1, in2;

wire [3:0] o1, o2;

Verilog c 4 mức khuôn mẫu:

• Chuyển mạch Không đƣợc đề cập đến ở đây

I Những chỉ định theo thủ tục:

Là những chỉ định dùng trong phạm vi thủ tục Verilog (khối

lw ys và initi l) Chỉ biến reg và integers (và chọn đơn bit/ nh m bit củ chúng, và kết nối thông tin) c thể đƣợc đặt b n trái dấu „=‟ trong thủ tục B n phải củ chỉ định là một biểu thức mà c thể dùng bất cứ dạng toán tử nào

II Delay trong chỉ định:

Trong chỉ định trễ t là khoảng thời gi n trải qu trƣ c khi một lệnh đƣợc thực thi và b n trái lệnh gán đƣợc tạo r V i nhiều chỉ định trễ (intr - ssignment del y), b n phải đƣợc định giá trị trực

Ngày đăng: 14/11/2014, 09:29

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w