Язык AHDL


Создание дешифраторов - часть 2


      0,    B"0000001011011110"      => 0,    0,       0,         B"01";

      0,    B"0000001101110000"      => 0,    0,       0,         B"10";

 

   END TABLE;

END;

 

В этом примере существуют тысячи входных наборов и описывать их все в операторе Truth Table

непрактично. Вместо этого Вы можете использовать логический уровень Х для указания того, что выход не зависит от соответствующего входа. Например, в первой строчке оператора TABLE выход  rom должен быть высоким для всех 16,384 входных наборов addr[15..0], начинающихся с 00. Следовательно Вам необходимо точно определить только общую часть входного набора, а для остальных входов использовать символ Х.

При использовании символов Х  Вы должны гарантировать отсутствие наложений между битовыми комбинациями в таблице истинности. Язык AHDL предполагает что одновременно только одно условие в таблице истинности может быть истинно.

Файл decode4.tdf, приведенный ниже, использует функцию lpm_decode для получения такой же функциональности как и файл decode1.tdf.

 

INCLUDE "lpm_decode.inc";

 

SUBDESIGN decode4

(

address[15..0]   : INPUT;

chip_enable      : OUTPUT;

)

BEGIN

chip_enable = lpm_decode(.data[]=address[])

WITH (LPM_WIDTH=16, LPM_DECODES=2^10)

      RETURNS (.eq[H"0370"]);

END;

 




Начало  Назад  Вперед



Книжный магазин