© CОПЫРИГХТ: пересказал и положил на свою
страницу http://www.dsioffe.narod.ru/
Дмитрий Иоффе, инженер.
Область LogicLock™ - это разновидность ограничений на размещение. Вы можете задать любую произвольную прямоугольную область физических ресурсов целевого устройства как область LogicLock. Назначение сигналов (nodes) или блоков (entities) областями LogicLock указывает компилятору, что эти сигналы или блоки надо разместить во время монтажа (fitting) внутри заданной области.
Существует четыре разновидности областей LogicLock:
Quartus® во время компиляции определяет оптимальные размер и размещение для областей с автоматическим определением размера и плавающих областей. Если Вы удовлетворены выбранным размером или размещением, Вы можете сделать обратную аннотацию (back-annotate) размера или размещения для повторного использования при следующих компиляциях.
Обратная аннотация через LogicLock позволяет Вам аннотировать все сигналы в области LogicLock. Сигналы, обратно-аннотированные через LogicLock, фиксируются относительно краёв области. Если Вы перемещаете обратно- аннотированную область, её сигналы сохраняют взаимное расположение на новом месте.
Назначения LogicLock можно экспортировать в Quartus II Settings File (.qsf) для повторного использования в других проектах.
Вы можете создавать области LogicLock без сопоставления им сигналов или блоков. Они сохраняются в проекте и видны в окнах Floorplan Editor и LogicLock Regions, пока Вы их не удалите, независимо от того, будут ли им назначены какие-нибудь сигналы.
В настоящее время области LogicLock поддерживаются для устройств APEX™ 20K, APEX II, Excalibur™, Cyclone™, Cyclone II, MAXR II, Mercury™, Stratix™, Stratix II, and Stratix GX.
Обратите внимание: области LogicLock не могут быть созданы при автоматическом выборе целевого устройства. Убедитесь, что Вы выбрали одно из следующих семейств: APEX 20K, APEX II, Excalibur, Cyclone, Cyclone II, MAX II, Mercury, Stratix, Stratix II или Stratix GX, а также задали тип устройства в диалоге Device окна Settings.
Или щёлкните по этой ячейке правой кнопкой и выберите New из выпадающего меню.
Пример использования области LogicLock с makefile как части разработки проекта снизу вверх см. в файле read_me.txt, сопровождающем пример ll_makefile в подкаталоге /qdesigns/ll_makefile.
или
или
Область LogicLock может иметь фиксированный или автоматический размер. Quartus II определяет размер областей LogicLock с автоматическим размером во время компиляции. Размер вычисляется на основании состава области LogicLock и выбирается так, чтобы получить максимальную производительность при минимальной плотности трассировки. Если Вы удовлетворены полученным размером, вы можете произвести обратную аннотацию этого размера для использования при последующих компиляциях.
Когда Вы создаёте область LogicLock, рисуя её во Floorplan Editor, её высота и ширина устанавливаются в соответствии с нарисованной Вами областью. Вы можете изменить размер области, выбрав её и перетащив маркеры изменения размеров, появившиеся в её углах и в серединах сторон.
Когда Вы создаёте область LogicLock, используя окно LogicLock Regions, Вы можете использовать столбец Size для установки вида размера Auto или Fixed. Если Вы выбрали Fixed, Вы должны задать высоту и ширину области. Если Вы выбрали Auto, размер области временно будет установлен равным размеру родительской области LogicLock, или, если это область верхнего уровня, размеру всего устройства. Если Вы хотите задать другой временный размер, Вы можете выбрать Fixed, установить желаемый временный размер области и затем выбрать Auto.
Для устройств APEX 20K, APEX II, Excalibur, Cyclone, Cyclone II, MAX II, Stratix, Stratix II и Stratix GX закладка Size диалога LogicLock Region Properties позволяет задавать ширину в столбцах, MegaLABах или LABs/Embedded System Blocks (ESBs), однако в Quartus II Settings File (.qsf) размеры областей LogicLock всегда сохраняются в единицах LABs/ESBs. Для использования заданной ширины области LogicLock ESB рассматривается как один LAB.
Автоматический размер областей LogicLock не поддерживается для устройств Mercury.
Области LogicLock фиксированного размера могут иметь плавающее размещение, но области LogicLock с автоматическим размером должны иметь произвольное размещение. Quartus II определяет оптимальное размещение для плавающих областей во время компиляции. Если Вы удовлетворены выбранным размещением, вы можете выполнить его обратную аннотацию для использования при последующих компиляциях.
Когда Вы создаёте область LogicLock, рисуя её во Floorplan Editor, она фиксируется в текущем положении. Вы можете изменить её размещение на плавающее, щёлкнув правой кнопкой по её верхней полосе и выбрав из выпадающего меню Toggle Locked State. Floorplan Editor отображает зафиксированные области сплошными линиями, а плавающие - штриховыми.
Когда Вы создаёте область LogicLock, используя окно LogicLock Regions, она имеет плавающее размещение. Вы можете использовать закладку Location для изменения положения начальной точки области или её фиксирования. Несмотря на то, что Quartus II определяет действительное положение плавающей области во время компиляции, Timing Closure Floorplan показывает область на месте, заданном её текущей начальной точкой, которая показана на закладке Location в Origin Settings.
Quartus II интерпретирует положение дочерней области LogicLock как относительное к начальной точке родительской области. Когда Вы фиксируете размещение дочерней области, оно фиксируется только относительно начальной точки родительской области, но не целевого устройства. Когда Вы перемещаете родительскую область, Quartus II автоматически обновляет размещение всех областей нижних уровней, чтобы сохранить их размещение относительно родительской области.
Fitter требует, чтобы Вы назначили плавающее размещение для любых дочерних областей LogicLock, которые имеют родительскую область с автоматическим размером.
Для устройств Stratix, Stratix II и Stratix GX, если область LogicLock частично перекрывается блоками памяти M4K, M512, M-RAM, блоками DSP или умножителей, то она рассматривается как содержащая целый такой блок. Тогда Fitter может разместить сигналы, назначенные для области, в любом месте перекрываемого блока.
Для устройств Cyclone и Cyclone II, если область LogicLock частично перекрывается блоками памяти M4K, то она рассматривается как содержащая целый такой блок. Тогда Fitter может разместить сигналы, назначенные для области, в любом месте перекрываемого блока M4K.
Области LogicLock с плавающим размещением не поддерживаются для устройств Mercury.
Обратная аннотация LogicLock позволяет Вам аннотировать одну или более областей LogicLock Вашего проекта. Когда Вы делаете обратную аннотацию области LogicLock, Quartus II автоматически аннотирует все области LogicLock нижних уровней. Вы можете выбрать для обратной аннотации только размер и размещение области или также её состав.
Обратная аннотация размера и размещения области LogicLock устанавливает высоту, ширину и положение так, как их определил Fitter во время последней компиляции, и фиксирует область в этом положении.
При обратной аннотации состава области LogicLock аннотируются размер и положение области, а также размещение сигналов и блоков, назначенных для области. Когда Вы аннотируете состав области LogicLock, Quartus II копирует размещения, определённые Fitterом для всех сигналов и блоков, назначенных области, в область файла Quartus II Settings File (.qsf) блока верхнего уровня текущей иерархии компиляции. Сигналы аннотируются относительно начальной точки области LogicLock, для которой они назначены. Если Вы перемещаете область, Quartus II обновляет размещения сигналов, чтобы предотвратить относительное перемещение сигналов и блоков внутри области. Если Вы разблокируете область, компилятор свободно выберет новое место для неё, но сохранит относительное размещение сигналов и блоков внутри области.
Перед обратной аннотацией размера и размещения или состава областей LogicLock нижних уровней Вы должны сделать обратную аннотацию размера и размещения области - их предка верхнего уровня. Иначе при обратной аннотации могут появиться неправильные назначения для области LogicLock, например, дочерняя область может выйти за границы своей родительской области.
При обратной аннотации сигналов Вы можете понижать уровень назначений ячеек до уровня LAB и/или Embedded System Block (ESB). Также Вы можете понижать уровень назначений выводов до уровня банка ввода-вывода. Понижение уровня назначений ячеек и/или выводов позволяет компилятору переупорядочивать сигналы между LAB, ESB или выводами для улучшения эффективности. Вместо этого Вы можете запретить понижение уровня назначений для сохранения производительности. (В оригинале: When back-annotating LogicLock nodes, you can demote cell assignments to the LAB and/or Embedded System Block (ESB) level, and you can demote pin assignments to the I/O bank level. Demoting cell and/or pin assignments to less restrictive LAB or ESB, or I/O bank assignments allows the Compiler to rearrange nodes within a LAB, ESB, or pin for greatest efficiency. Alternatively, you can choose not to demote the assignments in order to preserve performance.)
Timing Closure Floorplan обводит контурами LAB и ESB, которые содержат обратно-аннотированные сигналы.
Вы можете выполнять обратную аннотацию только ширины, высоты и начальной точки области LogicLock из последней компиляции, если установите флажок Lock size and origin в диалоге Back-Annotate Assignments (Advanced Type).
Во Floorplan Editor обратно-аннотированная трассировка в областях LogicLock обозначается буквой "R" в углу области. Вы можете сделать обратную аннотацию трассировки для области LogicLock только в том случае, если она не мягкая, не плавающая и не с автоматическим размером.
Обратная аннотация области LogicLock может привести к созданию корневой области. Корневая область - это область LogicLock размером во всё устройство с зафиксированным размещением. Она может рассматриваться как родительская область для всех остальных областей LogicLock. Корневая область не видна во Floorplan Editor, но в нём видны её обратно-аннотированные сигналы. Корневая область создаётся при следующих условиях: