Cách so sánh hai số (lưới, biến, hằng) trong Verilog


10

Tôi chưa quen với Verilog và muốn tìm hiểu cách so sánh hai số. Ví dụ: hãy so sánh một tham số hoặc reg (giả sử a) với số 2 (2'b10). Làm thế nào điều này sẽ được viết trong Verilog?

Câu trả lời:


11

Các toán tử đẳng thức và quan hệ (trả về X nếu toán hạng có X hoặc Z)

m == n  // is m equal to n? (1-bit True/False result)

m != n  // is m not equal to n? (1-bit True/False result)

m < n   // is m less than n? (1-bit True/False result)

m > n   // is m greater than n? (1-bit True/False result)

m <= n  // is m less than or equal to n? (1-bit True/False result)

m >= n  // is m greater than or equal to n? (1-bit True/False result)

Toán tử nhận dạng (so sánh các giá trị logic 0, 1, X và Z)

m === n // is m identical to n? (1-bit True/False results)

m !== n // is m not identical to n? (1-bit True/False result)

Thí dụ

Nếu reg a nhỏ hơn 2'b10, lưu trữ 2'b11 trong a.

if (a < 2'b10) begin
   a = 2'b11;
end

Hãy cẩn thận

  1. Đối với hầu hết các hoạt động, toán hạng có thể là lưới, biến, hằng hoặc gọi hàm. Một số hoạt động không hợp pháp trên các giá trị thực (dấu phẩy động).
  2. Các toán tử trả về kết quả đúng / sai sẽ trả về giá trị 1 bit trong đó 1 biểu thị đúng, 0 biểu thị sai và X biểu thị không xác định
  3. Các toán tử === và! == không được hỗ trợ để tổng hợp, vì Z và X không có cùng ý nghĩa trong mô phỏng và phần cứng.
  4. Nếu bạn so sánh hai số chiều rộng không bằng nhau, số nhỏ hơn sẽ được mở rộng. Toán hạng chưa ký được mở rộng bằng cách mở rộng bên trái với số không. Các toán hạng đã ký được mở rộng bằng cách mở rộng bên trái với giá trị của bit đáng kể nhất (bit dấu).

Nguồn: "Hướng dẫn tham khảo nhanh Verilog HDL dựa trên tiêu chuẩn Verilog-2001 (IEEE Std 1364-2001)" của Stuart Sutherland


1

Các toán tử so sánh số của Verilog tương tự như các toán tử trong C: == ,! =, <,>, <=,> =.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.