II. Giới thiệu môi trường lập trình ISE.
CHƯƠNG IV: NGÔN NGỮ VHDL 4.1 Giới thiệu chung về ngôn ngữ VHDL
4.4.3.1. Chỉ định tín hiệu điều kiện
Một chỉ định tín hiệu điều kiện là một chỉ định ngắn cho một q trình có chứa các chỉ định tín hiệu trong một khai báo “if”. Cú pháp là:
chỉ định tín hiệu điều kiện :: = đích <= các tuỳ chọn các dạng sóng điều kiện; các tuỳ chọn :: = [ guarded ] [ transport ]
dạng sóng điều kiện :: =
{ dạng sóng when điều kiện else } dạng sóng
Việc sử dụng từ guarded khơng được đề cập đến trong mục này. Nếu từ transport có đi kèm, thì các chỉ định tín hiệu trong q trình tương đương sử dụng trễ transport.
Giả sử chúng ta có một chỉ định tín hiệu điều kiện: s <= dạng_sóng_1 when điều_kiện_1 else
dạng_sóng_2 when điều_kiện_2 else
...
dạng_sóng_n;
thì q trình tương đương là:
process
if điều_kiện_1 then
s <= dạng_sóng_1;
elsif điều_kiện_2 then
s <= dạng_sóng_2; elsif ... ... else s <= dạng_sóng_n; wait [ mệnh đề độ nhạy ]; end process;
Nếu khơng có các biểu thức giá trị dạng sóng hoặc điều kiện chứa một tham chiếu đến một tín hiệu nào, thì khai báo đợi ở cuối của q trình tương đương sẽ khơng nhận được mệnh đề độ nhạy. Điều này có nghĩa là sau khi việc chỉ định được thực hiện, thì quá trình sẽ tạm dừng vơ hạn. Ví dụ, việc chỉ định tín hiệu:
reset <= ‘1’, ‘0’ after 10 ns when một_xung_ngắn_được_yêu_cầu else
‘1’, ‘0’ after 50 ns;
thực hiện hai giao tác trên tín hiệu reset, sau đó tạm dừng chờ báo nghỉ của chương trình mơ phỏng.
Mặt khác, nếu chúng tham chiếu đến các tín hiệu trong các biểu thức giá trị dạng sóng hoặc điều kiện, thì khai báo đợi nhận được danh sách độ nhạy bao gồm tất cả các tín hiệu đã được tham chiếu đến. Do đó việc chỉ định điều kiện:
mux_out <= ‘Z’ after Tpd when en = ‘0’ else
in_0 after Tpd when sel = ‘0’ else
in_1 after Tpd;
là độ nhạy đến các tín hiệu en và sel. Q trình được kích hoạt trong thời gian pha khởi động, và sau đó là mỗi khi en hoặc sel thay đổi giá trị.
Trường hợp phát sinh lại một chỉ định tín hiệu điều kiện, thì bao gồm khơng có các thành phần điều kiện, tương đương với một q trình chỉ có chứa một khai báo chỉ định tín hiệu. Vì vậy:
s <= wavefom; tương đương với:
process
s <= waveform;
wait [ mệnh đề độ nhạy ]; end process;