VHDL hổ trợ 7 loại toán tử khác nhau để xử lý các tín hiệu, biến và hằng số. Các loại toán tử được liệt kê như sau:
Thứ tự Loại
1 Toán logic and or nand nor xor xnor
2 Toán tử quan hệ = /= < <= > >=
3 Toán tử dịch sll srl sla sra rol ror
4 Toán tử số học + - &
5 Toán tử không xác định + -
6 Toán tử nhân chia * / mod rem
7 Toán tử hỗn hợp ** abs not
Bảng 2-4. Tất cả các toán tử.
Thứ tự ưu tiên cao nhất cho toán tử thứ 7, tiếp theo là thứ 6 và thấp nhất là toán tử thứ 1. Trừ trường hợp dấu ngoặc được sử dụng thì toán tử có thứ tự ưu tiên cao nhất sẽ được thực hiện trước. Nếu các toán tử cùng thứ tự ưu tiên thì các toán tử sẽ được thực hiện từ trái sang phải của biểu thức.
Ví dụ 2-53: Cho các dữ liệu như sau: X (=‘010’), Y(=‘10’), and Z (=‘10101’) đều thuộc kiểu std_ulogic_vectors.
not X & Y xor Z rol 1
thì sẽ tương đương với ((not X) & Y) xor (Z rol 1) = ((101) & 10) xor (01011) =(10110) xor
(01011) = 11101.
1. CÁC TOÁN TỬ LOGIC:
Toán tử logic (And, Or, Nand, Nor, Xor vaø Xnor) được dùng cho các loại dữ liệu ‚bit‛, ‚boolean‛, ‚std_logic‛, ‚std_ulogic‛ và các vector. Các toán tử này được dùng để xác định biểu thức logic Boolean hoặc thực hiện các phép toán bit với bit trên một mảng bit. Kết quả cùng kiểu
dữ liệu như các tác tố (Bit hoặc Boolean). Các toán tử này có thể được áp dụng cho các tín hiệu, các biến và các hằng số.
Chú ý: các toán tử nand và nor không thể kết hợp. Phải sử dụng dấu ngoặc để chia các toán tử nand và nor để không phát sinh lỗi khi biên dịch: