Язык AHDL

       

Реализация LCELL & SOFT примитивов


Вы можете ограничить размер (масштаб) логического синтеза путем изменения переменных NODE на SOFT

и LCELL примитивы. NODE переменные и  LCELL примитивы обеспечивают наибольшее управление всем логическим синтезом. SOFT

примитивы не предусмотрены для управления всем логическим синтезом.

NODE

переменные, объявленные с помощью объявления Node в разделе Variable налагают несколько ограничений на логический синтез. Во время синтеза логический синтезатор заменяет каждый экземпляр переменной NODE логикой, которая представляет переменную. Затем он минимизирует логику для подгонки в одну  логическую ячейку. Обычно этот метод дает самую большую скорость, но может приводить к слишком сложной логике.

SOFT

буферы обеспечивают больший контроль по использованию ресурсов, чем NODE  переменные. Логический синтезатор выбирает, когда заместить экземпляры SOFT

примитивов с помощью LCELL примитивов. SOFT буферы могут помочь в исключении слишком сложной логики и упрощении подгонки проекта, но могут увеличить использование логических ячеек и уменьшить быстродействие.

LCELL

примитивы обеспечивают наибольшее управление. Логический синтезатор минимизирует всю логику, которая управляет LCELL примитивом, так что она занимает только одну логическую ячейку. LCELL примитивы всегда реализуются в логической ячейке и никогда не удаляются из проекту даже если они запитываются одним входом. В последнем случае Вы можете использовать SOFT

примитив вместо LCELL примитива,  который будет удаляться во время логического синтеза.

MAX+PLUS II обеспечивает несколько логических опций, которые автоматически вставляют или удаляют SOFT

и LCELL буферы в соответствующих местах проекта.

Следующая иллюстрация демонстрирует два варианта TDF файла: один реализуется с помощью NODE

переменных, а другой с SOFT примитивами. В nodevar переменная odd_parity объявлена как NODE и затем ей присвоено значение булева выражения d0 $ d1 $ ... $ d8. В softbuf компилятор замещает некоторые SOFT примитивы на LCELL примитивы во время обработки для улучшения использования устройства.

TDF с NODE переменными:    TDF с SOFT примитивами:

SUBDESIGN nodevar                SUBDESIGN softbuf

(                                               (

)                                               )

VARIABLE                                 VARIABLE

odd_parity : NODE;                   odd_parity : NODE;



BEGIN                                      BEGIN

odd_parity =                             odd_parity =

d0 $ d1 $ d2$                            SOFT(d0 $ d1 $ d2) $

d3 $ d4 $ d5$                            SOFT(d3 $ d4 $ d5) $

d6 $ d7 $ d8;                            SOFT(d6 $ d7 $ d8);

END;                                         END;



Содержание раздела