Разводка офигенно громоздких плат (Автороутер выбираем)

Postby KOE » 05 Aug 2009, 17:51

Кстати, даже симулятор показыват разброс значений задержек сигналов на выходах разных разрядов одного и того же синхронного счетчика (до 2х раз). Поэтому проблему со сдвигом фаз клоков из-за задержек просто так не решить. Тут в каждом проекте нужен индивидуальный подход, вот потому и начиниается "черная магия".
Или можно не лезть в сотни мегагерц, тогда все прекрасно с первого раза работает, и голову ломать не надо.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4682
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby deathsoft » 05 Aug 2009, 17:58

lvd wrote:Может вылезти проблема с холд-сетап таймами.
Например, из домена 100мгц данные переходят в домен 50мгц, который последнгий генерится из 100 мгц делением пополам на триггере.
Фронт 50 задержан относительно фронта 100, потому может оказаться так, что по фронту 100, который вызывает фронт 50, меняются данные, и этим вызванным фронтом 50 сразу лочатся. А может не оказаться - +1 такт задержки. А может в метастабильность уйти. ХЗ, анализит ли это онолезатор.

Ну не надо на предельных частотах работать без запаса.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 05 Aug 2009, 18:00

KOE wrote:Кстати, даже симулятор показыват разброс значений задержек сигналов на выходах разных разрядов одного и того же синхронного счетчика (до 2х раз). Поэтому проблему со сдвигом фаз клоков из-за задержек просто так не решить. Тут в каждом проекте нужен индивидуальный подход, вот потому и начиниается "черная магия".
Или можно не лезть в сотни мегагерц, тогда все прекрасно с первого раза работает, и голову ломать не надо.

Никакой черной магии, счетчик делается вручную - комбинационная схема (сумматор текущего значения регистра с единицей) и регистр, поскольку у регистра клок один на все триггеры - то выходы всех триггеров меняются одновременно. Если счетчик устроен не так - то на выходе может быть что угодно.
Last edited by deathsoft on 05 Aug 2009, 18:01, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 05 Aug 2009, 18:09

ващето стандартный ход: для этого юзается сигнал LE - load enable, который на триггер подаётся, минуя генератор функции (4входовый который).
Если есть 100 мгц и надо проц на 3.5 мгц (например), то надо подать очень редкий LE, описав его в самом начале вот так:
Code: Select all

always @(posedge clk)
     if( LE )
     begin
         действия
     end


тогда этот LE пойдёт на входы разрешения загрузки триггеров. Правда обконстрейнить придётся весь модуль, чтоб оно знало, что не на 100мгц работать придётся.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby lvd » 05 Aug 2009, 18:10

deathsoft wrote:Ну не надо на предельных частотах работать без запаса.

дело не в частотах а сдвиге 2 фронтов разных клоков относительно друг друга, и проблемы даже на 1 гц могут вылезть.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby lvd » 05 Aug 2009, 18:11

deathsoft wrote:то выходы всех триггеров меняются одновременно.

Ага, и задержки рутинга тоже одинаковые получаются. Щясте-то какое.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby deathsoft » 05 Aug 2009, 18:15

lvd wrote:Ага, и задержки рутинга тоже одинаковые получаются. Щясте-то какое.

Щетчик надо паковать в один логический блок, где все триггеры находятся рядом и у них гарантировано общий клок, если триггеры разбросаны по всему кристаллу - тогда да - будет смещение клоков из за задержек входного клока.
Last edited by deathsoft on 05 Aug 2009, 18:16, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby KOE » 05 Aug 2009, 18:22

если делаешь один счетчик - то да, а если делаешь проект на 5 тыщ ячеек - то тут не всегда все так здорово.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4682
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby KOE » 05 Aug 2009, 18:26

блин, жалко нема все это не читает, щас бы мат стоял, да в стихах, как из рога изобилия.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4682
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby deathsoft » 05 Aug 2009, 20:25

KOE wrote:блин, жалко нема все это не читает, щас бы мат стоял, да в стихах, как из рога изобилия.

Немо умелец изобретать всякие бредовые термины типа ДММЦ для своих поделок. И делать вид что сделал мировое открытие. (Кстати посомтри как у немы делитель сделан на кольцевом счетчике в кай 1024)
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

PreviousNext

Return to Hardware

Who is online

Users browsing this forum: No registered users and 6 guests

cron