|
Констрейны на глобальные сигналы: как правильно?, Сделать из багов фичи |
|
|
|
Jan 20 2012, 11:12
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Здравствуйте, уважаемые гуру. Хотца сделать банальнейшую вещь, а именно - использовать глобальные сигналы для передачи своих сигналов. Ну например: секундный импульс. Представляет из себя сигнал, который равен 1 один такт в секунду, всё остальное время он равен нулю. Ну то есть, ____________________________/\________________________________/\__________ Получается этот сигнал при помощи здорового счетчика с не менее здоровым компаратором, соответственно уже имеет значительную задержку. Если его посадить на глобальный сигнал, это добавит задержку пути через буфер этого самого глобального сигнала, в результате чего задержка станет совсем немаленькой, и после дохождения до логики на другом конце микросхемы суммарная задержка начинает немного превышать значение периода такта (5 нс). (необходимо сказать, что тактовая частота везде одна и та же, секундный импульс используется как линия данных в комбинационной логике) Фишка в том, что нет никаких проблем, если к логике этот сигнал будет приходить с задержкой на такт, лишь бы приходил на всей микросхеме в пределах одного такта и с соблюдением времен установки/удержания триггеров. Как это правильно сделать? Применим ли здесь Multicycle, например так: Код set_multicycle_path -from [get_registers {TCNTR_TimeCounter:CNTR_TimeCounter|Time_1S_Pulse}] -to * -setup -end 2 set_multicycle_path -from [get_registers {TCNTR_TimeCounter:CNTR_TimeCounter|Time_1S_Pulse}] -to * -hold -end 1 Ну то есть, насколько я понимаю эти констрейны, они требуют, чтобы сигнал Time_1S_Pulse анализировался относительно 2-го фронта, считая за 0 - фронт генерации Time_1S_Pulse. Сможет ли фиттер обеспечить разводку по таким констрейнам, т.е. добавить необходимую задержку для "перекидывания" сигнала через 1-й фронт. Всем заранее спасибо за ответы. P.S. Altera, TimeQuest.
|
|
|
|
|
 |
Ответов
|
Jan 22 2012, 05:05
|
Участник

Группа: Validating
Сообщений: 36
Регистрация: 4-10-10
Пользователь №: 59 931

|
Цитата(Koluchiy @ Jan 20 2012, 15:12)  Получается этот сигнал при помощи здорового счетчика с не менее здоровым компаратором, соответственно уже имеет значительную задержку. и всем тем, кто тут предлагает "делить счетчик пополам и т.д": кто Вам всем сказал, что разрядности счётчика или компаратора влияют на задержку выхода результата? upcounter представляет из себя конвейерную цепочку триггеров и, соответственно, работает с задержками одного триггера. Только не надо путать счетчик и сумматор. в последнем используются переносы битов, со всеми вытекающими задержками.
|
|
|
|
|
Jan 22 2012, 09:20
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(MHC @ Jan 21 2012, 23:05)  кто Вам всем сказал, что разрядности счётчика или компаратора влияют на задержку выхода результата? upcounter представляет из себя конвейерную цепочку триггеров и, соответственно, работает с задержками одного триггера. Только не надо путать счетчик и сумматор. в последнем используются переносы битов, со всеми вытекающими задержками. Как минимум синтезаторы, которые последние лет 5-8, на всех современных плис синтезируют счетчики на основе ячеек аппаратных суммторов с быстрым переносом. А вот некоторые разработчики до сих пор мыслят в рамках К155, вместо примитивов целевой ПЛИС %) Цитата(Koluchiy @ Jan 20 2012, 08:00)  Результат идентичный. Скрин положу в понедельник. правленные сорцы, скрины и т.д. выкладывайте. что-то вы умалчиваете, не может ква так тупить
--------------------
|
|
|
|
|
Jan 23 2012, 15:57
|
Участник

Группа: Validating
Сообщений: 36
Регистрация: 4-10-10
Пользователь №: 59 931

|
Цитата(Bad0512 @ Jan 22 2012, 13:14)  Вы бы хоть почитали немного о том, как устроены счётчики и что такое перенос к примеру прежде чем со своими умными замечаниями лезть... Правильно советуют. Счётчик на 175000000 легко пилится на 2 14-разрядных параллельных счётчика. Второй счётчик получает на свой вход CE перенос от первого счётчика предварительно пропущенный через триггер дабы задержки переноса в первом счётчике не суммировались с задержками второго. ..... Ок, давайте немного почитаем... не так ли устроены счетчики?
покажите пальцем: где зависимость задержки выхода от разрядности счетчика? дока старая, но не думаю, что что-либо принципиально поменялось. повторюсь еще раз: не путайте с сумматорами. Цитата(des00 @ Jan 22 2012, 13:20)  Как минимум синтезаторы, которые последние лет 5-8, на всех современных плис синтезируют счетчики на основе ячеек аппаратных сумматоров с быстрым переносом. А вот некоторые разработчики до сих пор мыслят в рамках К155, вместо примитивов целевой ПЛИС %) гм... либо я не те ПЛИС пробую, либо не с тем синтезатором, либо просто отстаю от жизни... по поводу "ячеек аппаратных сумматоров с быстрым переносом" -- это как? к примеру, у виртексов 4-5-х из основных элементов я знаю только clb-блоки, ram-блоки и блоки dsp48 (я ничего не пропустил?). И я сильно разочаровался бы, если б синтезатор сделал мне данный счётчик на dsp48. У последних имеется уйма куда более полезных применений. Но, к счастью, синтезатор от ise13.1 в 5-м виртексе и с дефолтными настройками выдал мне в качестве результата 28-ми битный upcounter на clb-блоках (проверено в "technology schematic").
|
|
|
|
Сообщений в этой теме
Koluchiy Констрейны на глобальные сигналы: как правильно? Jan 20 2012, 11:12 barabek Цитата(Koluchiy @ Jan 20 2012, 21:12) Пол... Jan 20 2012, 11:43 Hoodwin а зачем вообще кострейн то? Почему нельзя сделать ... Jan 20 2012, 11:43 Koluchiy ЦитатаЯ правда, видимо, не понял главного, зачем п... Jan 20 2012, 12:08 des00 Цитата(Koluchiy @ Jan 20 2012, 06:08) Про... Jan 20 2012, 12:13 Koluchiy Попробовал так, как написал в корне:
Кодset_multic... Jan 20 2012, 12:45 des00 Цитата(Koluchiy @ Jan 20 2012, 06:45) Поп... Jan 20 2012, 13:26 ViKo Разбиваете счетчик пополам, с младшего в старший п... Jan 20 2012, 13:29 Koluchiy Мне бы хотелось, чтобы мне посоветовали, как сдела... Jan 20 2012, 13:47 des00 Цитата(Koluchiy @ Jan 20 2012, 07:47) Мне... Jan 20 2012, 13:57 Stewart Little Цитата(Koluchiy @ Jan 20 2012, 17:47) Сут... Jan 20 2012, 14:14  des00 Цитата(Stewart Little @ Jan 20 2012, 08:1... Jan 20 2012, 16:52   Stewart Little Цитата(des00 @ Jan 20 2012, 20:52) правда... Jan 20 2012, 18:43 Koluchiy Цитатая бы сделал так -to [all_clocks {}]
Результа... Jan 20 2012, 14:00 Koluchiy Цитатавременные констрейны используются не для тог... Jan 21 2012, 08:57 Bad0512 Цитата(MHC @ Jan 22 2012, 12:05) и всем т... Jan 22 2012, 09:14   ViKo Цитата(MHC @ Jan 23 2012, 18:57) покажите... Jan 23 2012, 18:17    MHC Цитата(ViKo @ Jan 23 2012, 22:17) Давайте... Jan 24 2012, 03:44     Bad0512 Цитата(MHC @ Jan 24 2012, 10:44) это совс... Jan 24 2012, 04:46    Мур Цитата(des00 @ Jan 24 2012, 07:49) ...на ... Jan 24 2012, 07:02     bogaev_roman Цитата(Мур @ Jan 24 2012, 11:02) Простите... Jan 24 2012, 07:13     des00 Цитата(Мур @ Jan 24 2012, 01:02) Простите... Jan 24 2012, 07:18 Koluchiy Цитатачто-то вы умалчиваете
Только давайте не буде... Jan 22 2012, 10:45 des00 Цитата(Koluchiy @ Jan 22 2012, 04:45) Тол... Jan 22 2012, 10:58 Koluchiy Я не буду всех убеждать в совершенстве своего прое... Jan 22 2012, 11:21 des00 Цитата(Koluchiy @ Jan 22 2012, 05:21) - а... Jan 22 2012, 11:56 dvladim Цитата(des00 @ Jan 22 2012, 14:58) да что... Jan 22 2012, 14:51 Bad0512 Цитата(dvladim @ Jan 22 2012, 21:51) Да к... Jan 22 2012, 15:36 dvladim Цитата(MHC @ Jan 23 2012, 19:57) Но, к сч... Jan 23 2012, 16:30 MHC Цитата(dvladim @ Jan 23 2012, 20:30) В cl... Jan 23 2012, 16:54 Мур Да!.. Я Verilog не очень знаю. Идея формирова... Jan 24 2012, 09:11 bogaev_roman Цитата(Мур @ Jan 24 2012, 13:11) Да!.... Jan 24 2012, 09:28  Мур Цитата(bogaev_roman @ Jan 24 2012, 12:28)... Jan 24 2012, 12:30 Koluchiy Я смотрю, тема ушла не то, чтобы не туда, а прямо ... Jan 24 2012, 18:25 des00 недавно решал похожую задачу, есть дсп блок, с нег... Jan 28 2012, 18:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|