реклама на сайте
подробности

 
 
> Как заставить Synopsys DC, Help!!!
SM
сообщение Jul 5 2006, 15:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Как заставить DC проанализировать один регистр-защелку (с асинхронным enable) как комбинаторный элемент? Суть в том, что он стоит на пути шины данных от входного пада до внутренних регистров. Он в нормальном режиме всегда разрешен "насквозь". Мне надо обконстрейнить сетап по этой шине данных - и соответственно как-то сказать DC, что на этой самой гребаной защелке путь не окончен, и ее задержка D->Q при активном E есть часть пути. Как это сделать? Я что-то втупил не на шутку... Разрешение на эту защелку идет вообще снаружи (с аналоговой части, там формирователь импульсов, это изврат для low power), и оно не объявлено клоком.

ЗЫ в проекте еще куча защелок, так вот мне надо такое поведение сделать для одной. Остальные честные - управляются через gated clock.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Михаил А
сообщение Jul 5 2006, 16:01
Сообщение #2





Группа: Участник
Сообщений: 12
Регистрация: 3-05-05
Пользователь №: 4 679



не используйте в проекте latch-и
это закон. Нет причин чтобы их использовать, площадь - это в случае если много регистровых файлов - тогда да. Но в случае управляющей логики - flip-flop ничем не хуже.

Если не можете его убрать в принципе, то другого пути, кроме как залезть в lib файл этого latch-a и убрать свойство clock с пина G который и является клоком.

в принципе наверное есть какие-то стандартные методы - у вас sold есть - руководство по синтезу ?
Go to the top of the page
 
+Quote Post
SM
сообщение Jul 5 2006, 18:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Михаил А @ Jul 5 2006, 20:01) *
не используйте в проекте latch-и
это закон. Нет причин чтобы их использовать, площадь - это в случае если много регистровых файлов - тогда да.


Не могу не использовать. Площадь - центы денег smile.gif, один латч чуть больше пол-триггера. Далее - регистровый файл (он же внутреннее ОЗУ) построен на асинхронной двухпортовке (опять из соображения min_area) - так что формирователи импульсов записи все равно есть. Регистры внешних устройств находятся в том-же адресном пространстве, так что их совершенно безопасно сделать на латчах. Еще один забытый важный фактор - потребление. Латч имеет и меньшие утечки, и меньший жрач в динамике. Это для меня на втором месте после area. Ну а частота - на третьем, тем более что ее ограничивает внешняя ПЗУ.

Теперь - именно в этом месте латч просто необходим. Поясню - это микропроцессор, который может работать от двух клоков - высокочастотного и низкочастотного. Программа всегда исполняется из внешнего ПЗУ. При работе на высокой частоте этот латч находится в хронически разрешенном состоянии, пропуская данные насквозь, внешняя ПЗУ все время выбрана. Итого я получаю 12 мгц (и мипс) при 75-нс ПЗУ. При работе от низкочастотного включается в работу формирователь короткого (150 нс) импульса по спаду клока. При этом адрес на ПЗУ выставляется по фронту клока, а сама ПЗУ выбирается на те самые 150 нс по спаду. В это же время тот самый латч запоминает считанные данные, после чего ПЗУ отключается, а даные остаются, принимаясь ядром в буфер предвыборки по следующему фронту. Это дает громадное уменьшение тока потребления внешней ПЗУхой (150 нс выборки при 32768 гц тактовой - скважность сами посчитайте, если интересно) . Так вот - констрейн-то мне нужен в режиме "открытого" латча, то есть для ВЧ-клока. Кстати, в предыдущей версии этого процессора такой блок работает на ура, но я там констрейнил отдельно путь до латча, и отдельно от латча. Не хочу больше так криво констрейнить, ибо путь там серьезно усложнился, как и весь проц целиком. smile.gif

Спасибо за идею покопать .lib, в принципе не проблема сделать копию латча с убранным свойством клока, и их насильно поставить под "dont_touch". Ну и скопировать еще в остальных местах, в LVS-нетлисте, в GDSе, и т.д. До этого сам не догадался.

Но, хотелось узнать есть ли нормальный способ. Типа "set_что_нибудь мой_модуль/мой_латч" Все таки латч разрешенный есть буфер, и почему бы его не уметь анализировать таким образом. SOLD есть, сижу вот перекапываю. Начинал с help/man. Пока глухо.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 22:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01943 секунд с 7
ELECTRONIX ©2004-2016