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.1. Chỉ định tín hiệu
Việc chỉ định tín hiệu thực hiện một hoặc nhiều giao tác đến tín hiệu (hoặc đến cổng). Cú pháp của việc chỉ định tín hiệu là:
khai báo chỉ đinh tín hiệu ::= đích đến <= [transport] dạng sóng;
đích đến ::= tên | tập hợp
dạng sóng ::= dạng sóng phần tử { , dạng sóng phần tử } dạng sóng phần tử ::=
biểu diễn giá trị [after biểu diễn thời gian] | null [after biểu diễn thời gian]
Đích đến phải biểu diễn tín hiệu hoặc là kết hợp của nhiều tín hiệu. Nếu việc
biểu diễn thời gian cho quá trình trễ bị bỏ qua, thì nó được mặc định là 0 fs. Mỗi một tín hiệu kết hợp với một dạng sóng đầu ra được ánh xạ đến (a
projected output waveform), là bảng liệt kê các giao tác cung cấp cho các giá trị sau
này cho tín hiệu. Việc chỉ định tín hiệu thêm vào các giao tác dạng sóng đó. Ví dụ việc chỉ định tín hiệu như sau
s <= ‘0’ after 10 ns;
sẽ tạo cho tín hiệu là cho phép để thừa nhận giá trị đúng 10 ns sau khi việc chỉ
định được kích hoạt. Chúng ta có thể biểu diễn một dạng sóng đầu ra được ánh xạ đến bằng đồ thị thông qua việc biểu diễn các giao tác theo trục thời gian. Nếu như
việc chỉ định trong ví dụ trên được kích hoạt tại thời điểm 5 ns, thì dạng sóng đầu ra
được ánh xạ đến sẽ có dạng:
Khi mơ phỏng thời gian trong phạm vi 15 ns, giao tác này sẽ được thực hiện và tín hiệu được cập nhập.
Giả sử rằng sau đó tại thời điểm 16 ns, việc chỉ định s <= ‘0’ after 10 ns, ‘0’ after 20 ns;
được kích hoạt. Hai giao tác mới được thêm vào dạng sóng đầu ra được ánh xạ đến như sau:
Chú ý rằng khi nhiều giao tác được liệt kê trong một chỉ định tín hiệu, thì các thời gian trễ được chỉ định phải sắp xếp theo thứ tự tăng dần.
15 ns ‘0’ 20 ns ‘1’ 36 ns ‘0’
Nếu một chỉ định tín hiệu được kích hoạt, và có một vài giao tác cũ của chỉ
định trước đã hồn thành, thì các giao tác cũ đó có thể bị xố. Điều này cịn phụ
thuộc vào từ khố “transport” có được thêm vào chỉ định mới khơng. Nếu có, chỉ
định “nói rằng” nó sử dụng “trễ chuyển tiếp” (transport delay). Trong trường hợp
này, tất cả các giao tác cũ xảy ra sau khi giao tác mới đầu tiên sẽ bị xoá trước khi
các giao tác mới được thêm vào. Chúng ta xem lại ví dụ trên, nếu chỉ định: s <= transport ‘Z’ after 10 ns;
được kích hoạt tại thời điểm 18 ns, thì sau đó giao tác thực hiện đối với 36 ns
sẽ bị xoá, và dạng sóng đầu ra được ánh xạ đến sẽ trở thành:
Loại trễ thứ hai là “trễ quán tính” (inertial delay), được sử dụng trong mơ hình các thiết bị mà không phản ứng với đầu vào dao động ngắn hơn trễ đầu ra của nó. Trễ qn tính được chỉ định bằng cách giả định từ “transport” từ việc chỉ định tín hiệu.
Khi giao tác trễ quán tính được thêm vào dạng sóng đầu ra được ánh xạ đến, thì đầu tiên là tất cả các giao tác cũ đang thực hiện xảy ra sau giao tác mới sẽ bị xoá,
và giao tác mới được thêm vào theo trường hợp trễ chuyển tiếp. Tiếp theo là tất cả các giao tác cũ đang thực hiện trước giao tác mới sẽ được kiểm tra. Nếu có bất kỳ giá trị nào khác với giao tác mới, thì tất cả các giao tác được tăng lên bằng với giao tác cuối cùng theo giá trị khác đó đều bị xố. Các giao tác cịn lại có cùng giá trị được đẩy sang trái.
Để phân tích việc này, chúng ta xem sơ đồ dạng sóng đầu ra được ánh xạ đến:
và việc chỉ định: S <= ‘1’ after 25 ns; 20 ns ‘T’ 28 ns ‘Z’ 20 ns ‘T’ 28 ns ‘Z’ 20 ns ‘T’ 28 ns ‘Z’
được kích hoạt cũng tại thời điểm 0 ns. Sau đó dạng sóng đầu ra được ánh xạ đến mới sẽ là:
Khi việc chỉ định tín hiệu với đa thành phần dạng sóng được chỉ định cùng với trễ qn tính, thì chỉ có giao tác đầu tiên sử dụng trễ qn tính, cịn các giao tác cịn lại sử dụng trễ chuyển tiếp.