Gán Các Tín Hiệu Đồng Thờ

Một phần của tài liệu Luận văn : Kỹ thuật PLD và ASIC doc (Trang 64 - 65)

III. MÔ TẢ PHẦN CỨNG TRONG VHDL

a. Gán Các Tín Hiệu Đồng Thờ

Trong ngơn ngữ lập trình thơng thường như C hoặc C++ thì mỗi phát biểu gán thực hiện một lần sau một phát biểu gán khác và theo một thứ tự được chỉ định. Thứ tự thực hiện được xác định bởi thứ tự của các phát biểu trong file chương trình nguồn.

Trong kiến trúc VHDL thì khơng có thứ tự chỉ định nào cho các phát biểu gán. Thứ tự thực hiện được chỉ định rõ bởi sự kiện xảy ra trên tín hiệu mà phát biểu gán hướng đến.

Khảo sát phát biểu gán đầu tiên được trình bày như sau:

Select <= 0 WHEN s0 = ‘0’ AND s1= ‘0’ ELSE

1 WHEN s0 = ‘1’ AND s1= ‘0’ ELSE

2 WHEN s0 = ‘0’ AND s1= ‘1’ ELSE

3;

Gán tín hiệu được thực hiện bằng kí hiệu <=. Tín hiệu select sẽ được gán giá trị dựa vào giá trị của s0 và s1. Phát biểu gán này được thực hiện bất kỳ lúc nào khi một hoặc hai tín hiệu s0 và s1 có thay đổi.

Một phát biểu gán tín hiệu được xem là nhạy với các thay đổi trên bất kỳ tín hiệu nào nằm bên phải của kí hiệu gán <=. Phát biểu gán tín hiệu của ví dụ trên thì nhạy với s0 và s1. Phát biểu gán tín hiệu khác trong kiến trúc dataflow nhạy với tín hiệu lựa chọn.

Chúng ta sẽ khảo sát cách hai phát biểu ở trên hoạt động thực sự ra sao. Giả sử rằng chúng ta có điều kiện ổn định khi s0 và s1 đều có giá trị là 0 và các tín hiệu hiện hành a, b, c và d đều có giá trị là 0. Tín hiệu x sẽ có giá trị là 0 vì nó được gán cho giá trị của tín hiệu a.

Bây giờ giả sử: chúng ta tạo ra một sự kiện thay đổi trên tín hiệu a từ giá trị 0 lên 1.

Khi sự kiện tín hiệu a xảy ra thì phát biểu gán đầu tiên khơng được thực hiện bởi vì phát biểu này khơng nhạy với sự thay đổi của tín hiệu a vì tín hiệu a khơng nằm bên phải của tốn tử.

Phát biểu gán thứ 2 sẽ được thực hiện bởi vì nó nhạy với sự kiện xảy ra trên tín hiệu a. Khi phát biểu gán thứ 2 được thực hiện thì giá trị mới của a sẽ được gán cho tín hiệu x. Ngõ ra x bây giờ sẽ thay đổi sang 1.

Tiếp theo chúng ta sẽ khảo sát trường hợp khi tín hiệu s0 thay đổi. Giả sử cho s0 và s1 đều ở mức 0 và các port a, b, c và d có giá trị theo thứ tự là 0, 1, 0 và 1. Cho tín hiệu S0 thay đổi giá trị từ 0 lên 1.

Phát biểu gán tín hiệu đầu tiên nhạy với s0 nên nó sẽ được thực hiện.

Khi các phát biểu đồng thời thực hiện, việc tính tốn giá trị biểu thức sẽ dùng giá trị hiện hành cho tất cả các tín hiệu chứa trong phát biểu.

Khi phát biểu đầu tiên thực hiện sẽ tính giá trị mới để được gán cho select từ giá trị hiện hành của biểu thức tín hiệu nằm bên phải của kí hiệu gán <=. Việc tính tốn giá trị biểu thức sẽ dùng giá trị hiện hành cho tất cả các tín hiệu chứa trong phát biểu.

Với giá trị của s0 bằng 1 và s1 bằng 0 thì tín hiệu select sẽ nhận giá trị mới là 1. Giá trị mới của tín hiệu select được xem như sự kiện xảy ra trên tín hiệu select, làm phát biểu gán thứ 2 cũng được thực hiện theo. Phát biểu gán thứ 2 sẽ dùng giá trị mới của tín hiệu select để gán giá trị của port b cho ngõ ra x và x sẽ thay đổi giá trị từ 0 lên 1.

Một phần của tài liệu Luận văn : Kỹ thuật PLD và ASIC doc (Trang 64 - 65)