Ví dụ mơ hình mạch đa hợp không đúng

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

IV. GIỚI THIỆU VỀ MƠ HÌNH HÀNH

a. Ví dụ mơ hình mạch đa hợp không đúng

Mơ hình khơng đúng của bộ đa hợp có thiếu sót làm cho mơ hình hoạt động khơng đúng. Mơ hình này được trình bày như sau:

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

ENTITY mux IS

PORT (i0, i1, i2, i3, a, b: IN STD_LOGIC; q: OUT STD_LOGIC);

END mux;

ARCHITECTURE wrong OF mux IS

SIGNAL muxval: INTEGER;

BEGIN

PROCESS (i0, i1, i2, i3, a, b)

BEGIN

muxval <= 0;

IF (a = ‘1’ ) THEN muxval<= muxval + 1;

END IF;

IF (b = ‘1’ ) THEN muxval<= muxval + 2;

END IF; CASE muxval IS WHEN 0 => q <= I0 AFTER 10 ns; WHEN 1 => q <= I1 AFTER 10 ns; WHEN 2 => q <= I2 AFTER 10 ns; WHEN 3 => q <= I3 AFTER 10 ns; WHEN OTHERS => NULL;

END CASE;

END PROCESS;

END wrong;

Khi có 1 trong các tín hiệu ngõ vào nằm trong danh sách nhạy thay đổi giá trị thì các phát biểu tuần tự được thực hiện.

Phát biểu q trình trong ví dụ này chứa 4 phát biểu tuần tự.

Phát biểu thứ nhất khởi tạo tín hiệu cục bộ muxval với giá trị ‘0’. Các phát biểu tuần tự con cộng giá trị cho tín hiệu tuỳ thuộc vào của các tín hiệu vào a và b.

Phát biểu case cuối cùng lựa chọn một ngõ vào để truyền đến ngõ ra tuỳ thuộc vào giá trị của tín hiệu muxval. Mơ hình này có một thiếu sót nghiêm trọng với phát biểu: muxval <=0; làm cho giá trị 0 được sắp xếp như một sự kiện đối với tín hiệu muxval. Thực tế thì giá trị 0 được sắp xếp trong một sự kiện cho thời gian trể delta để mơ phỏng bởi vì khơng có thời gian trì hỗn.

Khi phát biểu thứ 2:

IF (a = ‘1’ ) THEN muxval <= muxval + 1;

được thực hiện, giá trị của tín hiệu muxval là giá trị được truyền ở lần cuối cùng. Giá trị mới

đã sắp xếp từ phát biểu thứ nhất chưa được truyền đến. Trong thực tế thì khi nhiều phép gán cho

tín hiệu xảy ra trong cùng phát biểu quá trình thì giá trị gán sau cùng là giá trị được truyền.

Tín hiệu muxval có giá trị vơ nghĩa (khơng xác định) khi bắt đầu quá trình. Giá trị của

muxval khơng thay đổi cho đến khi các phát biểu nằm trong quá trình được thực hiện xong. Nếu

tín hiệu b có giá trị là ‘1’ thì sau đó giá trị vơ nghĩa được cộng thêm với 2.

Ví dụ tiếp theo sẽ chặt chẻ hơn. Sự khác nhau giữa 2 mơ hình của 2 ví dụ là khai báo muxval và phép gán cho mulval. Trong mơ hình ví dụ trước, muxval là tín hiệu và phát biểu gán tín hiệu được dùng để gán giá trị cho muxval. Trong mơ hình ví dụ này thì muxval là biến và phép gán

biến được dùng để gán giá trị cho muxval.

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