Hằng số nguyên

Một phần của tài liệu gtverilog (Trang 26 - 31)

Chương2 Qui ước về từ khóa

2.5.1 Hằng số nguyên

Hằng số ngun có thể được mơ tả theo định dạng số decimal,

hexadecimal, octal và binary.

Có hai dạng ñể biểu diễn hằng số nguyên. Dạng thứ nhất là một số thập phân đơn giản, nó có thể là một chuỗi kí tự từ 0 đến 9 và có thể bắt

đầu với tốn tử đơn cộng hoặc trừ. Dạng thứ hai được mơ tả dưới dạng

hằng cơ số, nó gồm ba thành phần – một là thành phần mơ tả độ rộng hằng số, một thành phần là kí tự móc đơn được theo sau bởi một kí tự của cơ số tương ứng (‘D), và thành phần cuối cùng mô tả giá trị của số đó.

Thành phần đầu tiên, độ rộng hằng số, mơ tả độ rộng số bit để chứa

hằng số. Nó được mơ tả như là một số thập phân khơng dấu khác khơng. Ví dụ, độ rộng của hai số hexadecimal là 8 bit bởi vì mỗi một số hexadecimal

cần 4 bit ñể chứa.

Thành phần thứ hai, định dạng cơ số, bao gồm một kí tự có thể kí tự thường hoặc kí tự hoa để mơ tả cơ số của số đó, ta có thể thêm vào hoặc

khơng thêm vào phía trước nó kí tự s (hoặc S) để chỉ rằng nó là một số có dấu, tiếp tục phía trước nó là một kí tự móc đơn. Những cơ số được dùng

có thể là d, D, h, H, o, O, b, B ñể mô tả cho cơ số thập phân, cơ số thập lục phân, cơ số bát phân và cơ số nhị phân một cách tương ứng.

Kí tự móc đơn và kí tự định dạng cơ số khơng được cách nhau bởi

Lâm Đức Khải University of Information Technology Page 26 Thành phần thứ ba, một số khơng dấu, bao gồm những kí tự phù hợp với cơ số đã được mơ tả trong thành phần thứ hai. Thành phần số không

dấu này có thể theo sau ngay thành phần cơ số hoặc có thể theo sau thành phần cơ số bởi một khoảng trắng. Những kí tự từ a đến f của số thập lục

phân có thể là kí tự thường hoặc kí tự hoa.

Những số thập phân đơn giản khơng kèm theo ñộ rộng bit và ñịnh

dạng cơ số có thể được xem như là những số nguyên có dấu, trong khi đó những số được mơ tả bởi định dạng cơ số có thể được xem như những số

nguyên có dấu khi thành phần chỉ ñịnh s ñược kèm thêm vào hoặc nó sẽ ñược xem như những số nguyên không dấu khi chỉ có thành phần định

dạng cơ số ñược sử dụng. Thành phần chỉ định số có dấu s khơng ảnh

hưởng đến mẫu bit được mơ tả mà nó chỉ ảnh hưởng trong q trình biên

dịch.

Tốn tử cộng hay trừ đứng trước hằng số độ rộng là một tốn tử đơn cộng hay trừ. Hai tốn tử này nếu được đặt nằm giữa thành phần ñịnh dạng cơ số và số là khơng đúng cú pháp.

Những số âm được biểu diễn dưới dạng bù hai.

Một số x dùng ñể biểu diễn một giá trị khơng xác định trong những hằng số thập lục phân, hằng số bát phân và hằng số nhị phân. Một số z dùng để biểu diễn một số có giá trị tổng trở cao. Một số x có thể được thiết lập trên 4 bit ñể biểu diễn một số thập lục phân, trên 3 bit ñể biểu diễn một số bát phân, trên 1 bit ñể biểu diễn một số nhị phân có giá trị khơng xác định. Tương tự, một số z có thể được thiết lập trên 4 bit để biểu diễn một số

thập lục phân, trên 3 bit ñể biểu diễn một số bát phân, trên 1 bit ñể biểu

Lâm Đức Khải University of Information Technology Page 27 Nếu ñộ rộng bit của số khơng dấu nhỏ hơn độ rộng được mơ tả trong phần mơ tả hằng số thì số khơng dấu sẽ được thêm vào bên trái nó là các số 0. Nếu bít ngồi cùng bên trái trong số không dấu là x hoặc z thì một x hoặc một z sẽ ñược dùng ñể thêm vào bên trái một cách tương ứng. Nếu độ rộng của số khơng dấu lớn hơn độ rộng được mơ tả trong phần mơ tả hằng số thì số khơng dấu sẽ bị cắt xén ñi từ bên trái.

Số bit dùng ñể tạo nên một số khơng có độ rộng ( có thể là một số

thập phân ñơn giản hoặc một số khơng mơ tả độ rộng bit) nên ít nhất là 32 bit. Những hằng số không dấu, khơng độ rộng mà bit có trọng số cao là

khơng xác định (x) hoặc tổng trở cao (z) thì nó sẽ được mở rộng ra đến độ rộng của biểu thức chứa hằng số.

Giá trị x và z để mơ tả giá trị của một số có thể là chữ hoa hoặc chữ thường.

Khi ñược sử dụng để mơ tả một số trong Verilog, thì kí tự dấu chấm hỏi (?) có ý nghĩa thay thế cho kí tự z. Nó cũng thiết lập 4 bit lên giá trị tổng trở cao cho số thập lục phân, 3 bit cho số bát phân và 1 bit cho số nhị phân. Dấu chấm hỏi có thể được dùng để giúp việc ñọc code dễ hiểu hơn

trong trường hợp giá trị tổng trở cao là một điều kiện khơng quan tâm

(don’t care). Ta se thảo luận rõ hơn về vấn đề này khi trình bày về casez và casex. Kí tự dấu chấm hỏi cũng được dùng trong những bảng trạng thái do người dùng tự ñịnh nghĩa.

Trong một hằng số thập phân, số không dấu khơng bao gồm những kí tự x, z hoặc ? trừ trường hợp ở đó chỉ có đúng một kí tự để chỉ ra rằng

Lâm Đức Khải University of Information Technology Page 28 Kí tự gạch dưới (_) có thể dùng ở bất kì nơi ñâu trong một số, ngoại trừ kí tự ñầu tiên. Kí tự gạch dưới sẽ được bỏ qua. Đặc tính này có thể được dùng để tách một số q dài để giúp việc đọc code dễ dàng hơn.

Ví dụ1 : Hằng số không dấu

659 // số thập phân ‘h 837FF // số thập lục phân ‘o7460 // số bát phân

4af // không hợp lệ ( số thập lục phân địi hỏi

‘h)

Ví dụ 2: Hằng số có độ rộng bit

4’b1011 // số nhị phân 4 bit 5 ‘D 3 // số thập phân 5 bit

3’b01x // số nhị phân 3 bit với bit có trọng số thấp nhất có giá trị khơng xác ñịnh

12’hx // số thập lục phân 12 bit có giá trị khơng xác định

16’hz // số thập lục phân 16 bit có giá trị tổng trở cao.

Lâm Đức Khải University of Information Technology Page 29 8 ‘d -6 // cú pháp khơng đúng

-8 ‘d 6 // số bù 2 của 6, tương ñương với –(8’d 6) 4 ‘shf // số có dấu (số bù 2) 4 bit ‘1111’, bằng -1, tương ñương với –4’h1

-4 ‘sd15 // tương ñương với –(4’sd15), hay –(-1) = 1 = 0001

16’sd? //tương đương 16’sbz Ví dụ 4 – Tự ñộng thêm vào bên trái

reg [11:0] a, b, c, d; initial begin a = ‘h x; // tạo ra xxx b= ‘h 3x; // tạo ra 03x c = ‘h z3; // tạo ra zz3 d = ‘h 0z3; // tạo ra 0z3 end reg [84:0] e, f, g; e = ‘h5; // tạo ra {82{1’b0}, 3’b101} f = ‘hx // tạo ra {85{1’hx}}

Lâm Đức Khải University of Information Technology Page 30 g = ‘hz; // tạo ra {85{1’hz}}

Ví dụ 5: Sử dụng dấu gạch dưới trong mô tả số 27_195_000

16’b0011_0101_0001_1111 32 ‘h 12ab_f001

Những hằng số âm có độ rộng bit và những hằng số có dấu có độ

rộng bit là những số có dấu mở rộng khi nó được gán ñến một loại dữ liệu là reg bất chấp bản thân reg này có dấu hay khơng.

Độ dài mặc ñịnh của x và z giống như ñộ dài mặc ñịnh của một số

nguyên.

Một phần của tài liệu gtverilog (Trang 26 - 31)

Tải bản đầy đủ (PDF)

(87 trang)