Реализация 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;