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

 
 
> Констрейны на глобальные сигналы: как правильно?, Сделать из багов фичи
Koluchiy
сообщение Jan 20 2012, 11:12
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MHC
сообщение Jan 22 2012, 05:05
Сообщение #2


Участник
*

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



Цитата(Koluchiy @ Jan 20 2012, 15:12) *
Получается этот сигнал при помощи здорового счетчика с не менее здоровым компаратором, соответственно уже имеет значительную задержку.
и всем тем, кто тут предлагает "делить счетчик пополам и т.д":
кто Вам всем сказал, что разрядности счётчика или компаратора влияют на задержку выхода результата? upcounter представляет из себя конвейерную цепочку триггеров и, соответственно, работает с задержками одного триггера. Только не надо путать счетчик и сумматор. в последнем используются переносы битов, со всеми вытекающими задержками.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 22 2012, 09:20
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(MHC @ Jan 21 2012, 23:05) *
кто Вам всем сказал, что разрядности счётчика или компаратора влияют на задержку выхода результата? upcounter представляет из себя конвейерную цепочку триггеров и, соответственно, работает с задержками одного триггера. Только не надо путать счетчик и сумматор. в последнем используются переносы битов, со всеми вытекающими задержками.

Как минимум синтезаторы, которые последние лет 5-8, на всех современных плис синтезируют счетчики на основе ячеек аппаратных суммторов с быстрым переносом. А вот некоторые разработчики до сих пор мыслят в рамках К155, вместо примитивов целевой ПЛИС %)

Цитата(Koluchiy @ Jan 20 2012, 08:00) *
Результат идентичный.
Скрин положу в понедельник.

правленные сорцы, скрины и т.д. выкладывайте. что-то вы умалчиваете, не может ква так тупить


--------------------
Go to the top of the page
 
+Quote Post
MHC
сообщение Jan 23 2012, 15:57
Сообщение #4


Участник
*

Группа: 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").
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 24 2012, 04:49
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(MHC @ Jan 23 2012, 10:57) *
по поводу "ячеек аппаратных сумматоров с быстрым переносом" -- это как?....

правильно ли я понимаю, что вопрос о реализации счетчиков на современных ПЛИС снят с повестки дня ? sm.gif

Если вы не против и вам не лень, то вот вам еще пищи для мозга, на сыклоне 1, 32 битный счетчик, описаный в коде как pipa <= pipa + 1'b1 свободно работал до частоты близкой к максимальной, на 2/3 сыклонах этого можно было добиться только с помощью дроблений счетчика на более мелкие. Опираясь на даташиты попробуйте ответить почему так.


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 2nd July 2025 - 01:16
Рейтинг@Mail.ru


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