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

 
 
> Констрейны на глобальные сигналы: как правильно?, Сделать из багов фичи
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
ViKo
сообщение Jan 23 2012, 18:17
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(MHC @ Jan 23 2012, 18:57) *
покажите пальцем: где зависимость задержки выхода от разрядности счетчика?

Давайте я вам покажу -
см на элемент, формирующий сигнал T4 (AND4), и на элемент, формирующий сигнал TC (уже AND5). Сигнал T4 участвует в формировании сигнала TC. То есть, пока T4 не сформируется, TC не начнет формироваться. Дальше - больше. Потребуются AND6, AND7, AND8, AND9... В конце концов перенос съедается совсем. И не cможет сформироваться за период тактовой частоты.
Схемы быстрого переноса не меняют в принципе формирования переноса ничего. Также рано или поздно съедаются. Спасает задержка на такт на триггере. Появляется целый такт времени для формирования переносов.

Проверить зависимость максимальной тактовой частоты от разрядности счетчика элементарно просто.

P.S. Добавлю - задержка на такт не дается "даром". В счетчике теряется одно из состояний, т.е., если бы он был загружаемым, он не смог бы делить на любое допустимое число.
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
||- - 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   Цитата(MHC @ Jan 23 2012, 10:57) по повод...   Jan 24 2012, 04:49
|- - Мур   Цитата(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 Текстовая версия Сейчас: 29th July 2025 - 23:14
Рейтинг@Mail.ru


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