|
Задание констрейнов, констрейны Vivado2016 |
|
|
|
 |
Ответов
|
Oct 17 2017, 17:46
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Правила такие: констрейнить надо всегда по максимальной частоте, даже если в реальной схеме сигнал сопровождения возникает раз в тысячу тактов. После этого, надо смотреть связи между триггерами: если есть триггер А, выход которого поступает на триггер Б гарантированно через 2 и более тактов (но никогда в следующем такте), то на этот путь накладывается малтисайкл. Но все остальные пути (которые могут придти в следующем такте) должны анализироваться без малтисайкла.
Представить себе ситуацию, когда в схеме выходы ВСЕХ триггеров приходят на приемники через 2 и более такта, я не могу, потому что это будет означать, что дизайн написан по-лоховски, ведь опорный клок надо было делить еще на входе, до реальной частоты схемы. Т.е. если у топикстартера реальная частота схемы 50 МГц, а опорная частота 200, значит надо делить частоту на 4, а потом уже заводить в схему. И констрейнты тогда надо писать относительно клока 50 МГц, который объявить как генерейтед от 200 МГц.
Еще один момент. У топикстартера в первом посте какая то каша с клоками. Если в проекте используются две частоты clkA и clkB, где одна не получается из другой делением (т.е. оба генератора асинхронны друг другу), то это вообще другая история - читайте про CDC.
|
|
|
|
|
Oct 19 2017, 15:32
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(Shivers @ Oct 17 2017, 20:46)  Представить себе ситуацию, когда в схеме выходы ВСЕХ триггеров приходят на приемники через 2 и более такта, я не могу, потому что это будет означать, что дизайн написан по-лоховски, ведь опорный клок надо было делить еще на входе, до реальной частоты схемы. Т.е. если у топикстартера реальная частота схемы 50 МГц, а опорная частота 200, значит надо делить частоту на 4, а потом уже заводить в схему. И констрейнты тогда надо писать относительно клока 50 МГц, который объявить как генерейтед от 200 МГц.
Еще один момент. У топикстартера в первом посте какая то каша с клоками. Если в проекте используются две частоты clkA и clkB, где одна не получается из другой делением (т.е. оба генератора асинхронны друг другу), то это вообще другая история - читайте про CDC. Поясняю ситуацию. Частота дискретизации сигнала 100 МГц, принимаемый сигнал 100 кГц. На выходе дема принятые символы идут на 100 МГц в сопровождении CE (равной символьной скорости т.е. 100 кГц). Сигнал децемировать заранее нельзя т.к. демов стоит несколько и соседний вполне может принимать сигнал с шириной 40 МГц. По второму вопросу: дем работает на частоте 100 МГц а управление идет из регистров записываемых из программы с шины с ее частотой clkRD. Запись статична, т.е записали значение и забыли, но vivado ведь незнает что запись происходит очень редко (по желанию пользователя) и пытается совместить "несовместимые" и независимые частоты.
|
|
|
|
|
Oct 20 2017, 05:45
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(Anton1990 @ Oct 19 2017, 18:32)  Поясняю ситуацию. Частота дискретизации сигнала 100 МГц, принимаемый сигнал 100 кГц. На выходе дема принятые символы идут на 100 МГц в сопровождении CE (равной символьной скорости т.е. 100 кГц). Сигнал децемировать заранее нельзя т.к. демов стоит несколько и соседний вполне может принимать сигнал с шириной 40 МГц. Т.е., как я понял, у Вас входной интерфейс - состоит из шины данных, сигнала сопровождения СЕ и тактируется 100 МГц. Цитата(Anton1990 @ Oct 19 2017, 18:32)  По второму вопросу: дем работает на частоте 100 МГц а управление идет из регистров записываемых из программы с шины с ее частотой clkRD. Запись статична, т.е записали значение и забыли, но vivado ведь незнает что запись происходит очень редко (по желанию пользователя) и пытается совместить "несовместимые" и независимые частоты. И как я понял, сам проект тактируется clkRD? Смотрите что получается. 1. Входной интерфейс надо обязательно констрейнить по его частоте, ничего сокращать нельзя. Это нужно, чтобы выровнять задержки входной шины данных, чтобы они сильно не расползались во времени. И частота сигнала СЕ здесь никакой роли не играет -сигнал СЕ тоже нужно констренить относительно 100МГц. 2. Вам надо разобраться, что делать с этим потоком данных. Логичное решение - на вход интерфейса ставить триггеры, работающие на 100Мгц, с разрешением записи по сигналу СЕ - теперь их данные будут меняться уже с периодичностью изменения сигнала СЕ, т.е. частоту потока данных Вы понизили, хотя эти данные все равно остаются синхронными 100 МГц. 3. Надо понять, что делать с этим потоком данных, от какого генератора будут тактироваться триггеры дальше по схеме. Если по клоку clkRD, то ставите пересинхронизационное фифо, получаете поток данных, синхронный clkRD, и делаете с этим потоком что захотите. При этом, между clkRD и 100Мгц - фалзпасы в обе стороны, поскольку это асинхронные частоты, как я понял (т.е. clkRD не получается делением из 100МГц). Это бы Вы делали эсик, а не ПЛИС, то к фалзпасам надо было бы добавить асинхронный констрейнт set_max_delay в обе стороны, чтобы тул совсем уж не бросал эти пути сигналов.
|
|
|
|
|
Oct 20 2017, 15:52
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(Shivers @ Oct 20 2017, 08:45)  Т.е., как я понял, у Вас входной интерфейс - состоит из шины данных, сигнала сопровождения СЕ и тактируется 100 МГц. И как я понял, сам проект тактируется clkRD? Смотрите что получается. Вначале не хотел всего раскрывать, но что уж теперь. Схема такова. Одна плата PCIe оцифровывает данные на 200 МГц и оцифрованные данные передаются по pcie на другу плату pcie (обработчик). Далее на плате обработчика. Разумеется по приходу с pcie поток складывается в фифо. Из фифо поток по генератору 210 МГц (чтобы успевать за частотой дискретизации) и сигналу ce (это флаг полноты фифо) данные качаются на линейку демов. С выхода которых имеем множество потоков на частоте 210 МГц в сопровождении сигнала datavalid (эквивалент символьной скорости от 1кГц до 50 МГц). Управляются (настраиваются) демы из pcie через регистры, которые записываются по частоте pcieRD (~250 МГц), а выходы этих (управляющих) регистров (эти регистры записываются редко, по желанию пользователя) идут на регистры демов, которые тикают на 210 МГц. Связку фифо-демы и регистры управления-демы, нужно как-то правильно обконстрейнить. как-то так.
|
|
|
|
Сообщений в этой теме
Anton1990 Задание констрейнов Oct 17 2017, 15:41 Tausinov Цитата(Anton1990 @ Oct 17 2017, 18:41) Вс... Oct 17 2017, 15:52 Anton1990 Цитата(Tausinov @ Oct 17 2017, 18:52) Это... Oct 17 2017, 16:21  Tausinov Цитата(Anton1990 @ Oct 17 2017, 19:21) Пе... Oct 17 2017, 16:45  RobFPGA Приветствую!
Цитата(Anton1990 @ Oct 17 2... Oct 17 2017, 18:17 Flip-fl0p ЦитатаВсем привет.
Есть проект работающий на часто... Oct 17 2017, 15:54 yes а почему не пойдет set_multicycle_path ? вроде как... Oct 17 2017, 18:55 RobFPGA Приветствую!
Цитата(yes @ Oct 17 2017, 2... Oct 17 2017, 19:22  _Anatoliy Цитата(RobFPGA @ Oct 17 2017, 22:22) Да т... Oct 18 2017, 06:37   RobFPGA Приветствую!
Цитата(_Anatoliy @ Oct 18 2... Oct 18 2017, 11:28    _Anatoliy Цитата(RobFPGA @ Oct 18 2017, 14:28) Прив... Oct 18 2017, 11:54 andrew_b Вообще по сравнению с ucf описание мультицикла в s... Oct 18 2017, 06:05 Maverick Цитата(Anton1990 @ Oct 17 2017, 18:41) Вс... Oct 18 2017, 06:31 Shivers Получается два асинхронных клоковых домена: частот... Oct 23 2017, 17:04 Anton1990 Цитата(Shivers @ Oct 23 2017, 20:04) Полу... Oct 24 2017, 15:44 Shivers В общих чертах. Самый главный констрейнт - объявле... Oct 25 2017, 06:18 Anton1990 Цитата(Shivers @ Oct 25 2017, 09:18) В об... Oct 25 2017, 15:42  alexadmin Цитата(Anton1990 @ Oct 25 2017, 18:42) Я ... Oct 26 2017, 10:20   Anton1990 Цитата(alexadmin @ Oct 26 2017, 13:20) Пр... Oct 26 2017, 15:32    Maverick Цитата(Anton1990 @ Oct 26 2017, 18:32) Ка... Oct 26 2017, 15:37     Anton1990 Цитата(Maverick @ Oct 26 2017, 18:37) мож... Oct 27 2017, 15:45    AVR Цитата(Anton1990 @ Oct 26 2017, 18:32) Ка... Oct 27 2017, 09:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|