Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Метастабильность по входу CE для FF Xilinx
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
MegaVolt
Может кто находил толковую доку на тему метастабильности по входу CE для триггеров Xilinx. Т.е. что плохого будет если не будет соблюдаться setup/hold для этого входа?
1. Данные будут неопределены (метастабильность)?
2. Данные могут защёлкнуться или не защёлкнуться но метастабильности не будет.
dvladim
Полагаю, что результат аналогичен для любых триггеров. Метастабильность будет. Вопрос только в длительности.
Dr.Alex
Цитата(MegaVolt @ Jun 8 2015, 10:20) *
1. Данные будут неопределены (метастабильность)?
2. Данные могут защёлкнуться или не защёлкнуться но метастабильности не будет.

1) вероятность 0,00000000001%
2) вероятность 99,99999999999%
MegaVolt
Цитата(Dr.Alex @ Jun 9 2015, 21:38) *
1) вероятность 0,00000000001%
2) вероятность 99,99999999999%
Спасибо sm.gif
Одно не понятно если с CE всё так хорошо почему его не используют в схемах для перехода из одного домена в другой?
Timmy
Цитата(MegaVolt @ Jun 10 2015, 08:59) *
Спасибо sm.gif
Одно не понятно если с CE всё так хорошо почему его не используют в схемах для перехода из одного домена в другой?

В известной книге Digital Design and Computer Architecture раздел 3.2.5 приводится схема триггера с CE, в FPGA используется вариант a), таким образом, CE ничем в принципе не отличается от других логических сигналов, и нарушение setup/hold для него будет приводить к метастабильности с той же вероятностью(естественно, только если изменение CE влечёт изменение сигнала на внутреннем входе D триггера).
Dr.Alex
Цитата(MegaVolt @ Jun 10 2015, 08:59) *
Спасибо sm.gif
Одно не понятно если с CE всё так хорошо почему его не используют в схемах для перехода из одного домена в другой?

Как уже сказали, CE это обычный пин.
Только я не понял, что вы называете "хорошо".
Хорошо или плохо, зависит от задачи.
Если вас волнует один провод, поставьте один синхронизатор и всего делов.
MegaVolt
Цитата(Dr.Alex @ Jun 10 2015, 19:41) *
Как уже сказали, CE это обычный пин.
Только я не понял, что вы называете "хорошо".
Хорошо это если на данных стоит 1 а асинхронный сигнал затащить на CE и на выходе не будет метастабильности.

Однако по сказанному выше понимаю что будет.
Собственно вопрос снят.
Спасибо sm.gif
ViKo
Будет, будет метастабильность... А Dr.Alex с процентами лажанулся. rolleyes.gif
Dr.Alex
Цитата(MegaVolt @ Jun 11 2015, 09:49) *
Собственно вопрос снят.

Чё-то у меня нет ощущения что вопрос снят :-)))))
Во-первых, нужно писать на HDL, а не рисовать схему, поэтому вы всё равно не будете знать, куда придёт ваш сигнал.
Во-вторых, рассуждать о метастабильности в терминах "будет - не будет" это жуткое дилетантство.
Она характеризуется вероятностью появления, которая крайне низка, но никогда не 0.
Поэтому в зависимости от ситуации вы либо можете на неё забить вообще,
либо просто поставить лишний триггер-синхронизатор, и тем самым гарантировать что в случае появления она не распространится дальше.
В вашем случае именно так и нужно поступить просто потому что это просто.
yes
если setup/hold соблюдены, то никакой метастабильности не будет (ее зона гораздо уже)
причем без разницы - либо этот вход приводится к данным (через мультиплексор с выхода)
либо пересчитывается в блокировку тактового сигнала (clock gating). чего, по-моему, для FPGA не бывает

вероятность равна перебросу триггера из одного состояния в другое, что при отсутствии рядом ядерного реактора и т.п., присутствии нормального питания и температуры, (то есть в рабочих условиях) = 0

не знаю причем здесь схемы или HDL, но если написаны констрейны и STA их удовлетворил - можно не переживать

upd: просмотрел _не_ хххх setup/hold
извиняйте - тогда синхронизатор. разницы между CE и D нету
ViKo
Цитата(yes @ Jun 11 2015, 15:15) *
если setup/hold соблюдены, то никакой метастабильности не будет (ее зона гораздо уже)

Так вопрос именно в том, если не соблюдены... Если, к примеру, переключение разрешения попадает на самый опасный интервал в границах setup-hold. Будем иметь метастабильный улет гарантированно. biggrin.gif
Dr.Alex
Цитата(ViKo @ Jun 11 2015, 15:22) *
Будем иметь метастабильный улет гарантированно. biggrin.gif

Гарантированно с ничтожной вероятностью.
ViKo
Цитата(Dr.Alex @ Jun 11 2015, 16:59) *
Гарантированно с ничтожной вероятностью.

Не забывайте про тактовую частоту хрен знает сколько мегагерцев. Глядишь, за минуту улет гарантирован на 99%. rolleyes.gif

От технологии зависит. От чистоты питания. От температуры.

Вы бы хотели, чтобы самолет сбоил раз в час? rolleyes.gif
MegaVolt
Цитата(Dr.Alex @ Jun 11 2015, 10:15) *
Чё-то у меня нет ощущения что вопрос снят :-)))))
Снят снят sm.gif
Цитата
Во-первых, нужно писать на HDL, а не рисовать схему, поэтому вы всё равно не будете знать, куда придёт ваш сигнал.
Я ещё помню 155 серию sm.gif)) По этому я ещё долго буду рисовать схемы sm.gif)) и переводить их на xHDL
Цитата
Во-вторых, рассуждать о метастабильности в терминах "будет - не будет" это жуткое дилетантство.
Она характеризуется вероятностью появления, которая крайне низка, но никогда не 0.
Для данных само собой. Я выяснял так ли это для CE Может по каким то причинам вход CE свободен от этой особенности.
Цитата
В вашем случае именно так и нужно поступить просто потому что это просто.
Не люблю ставить нечто не понимая до конца его необходимость.
Shivers
Цитата(MegaVolt @ Jun 12 2015, 14:48) *
Снят снят sm.gifЯ ещё помню 155 серию sm.gif)) По этому я ещё долго буду рисовать схемы sm.gif))

Про 155 серю хорошо вспомнили - так и надо, начинать со схематика. К слову, про setup-hold, если хотите увидеть "как оно работает", раздобудьте схему триггера зайлинкса, и промоделируйте на спайсе. Очень хорошо и понятно будет про метастабильность и прочее.

Ограничения по setup даются с некоторым запсом в расчете на паспортные PVT углы эксплуатации ПЛИС. Т.е. нарушения ведут лишь к сужению диапазноа температур и питаний, где ПЛИС будет работать. При маленьких нарушениях, в комнате будет не заметно. При больших - микросхему придется морозить, чтобы работала без сбоев ) А если с холдом проблема - тогда наборот нагревать может понадобиться :Р
Lmx2315
Уважаемые, объясните в двух словах про метастабильность - если я ищу фронт у импульса через такую конструкцию:
CODE
reg [3:0] front1;
always @(posedge clk) front1<={front1[1:0],start}
if (front1==3'b011) .......

и на длительность импульса приходится минимум 4 такта клоковой частоты, мне же нечего боятся метастабильности?
з.ы.
прошу прощения за оффтопик.
ViKo
А одного триггера не хватит? rolleyes.gif Как перекинулся в 1, так, значит, был положительный импульс. Если на входе не было 1, выход триггера никогда не полезет в 1.
А, если хотите длительность в 1 такт, тогда - да, как у вас - правильно.
TRILLER
Цитата
Код
reg [3:0] front1;
always @(posedge clk) front1<={front1[1:0],start}
if (front1==3'b011) .......

Так делать нельзя!
У вас front1[0] как раз и будет время от времени находится в метастабильном состоянии. Но это не самое плохое - самое плохое то, что вы непонятный уровень нулевого бита используете в логике. А это конец гарантированно.
Нужно сделать так:
Код
reg [3:0] front1;
always @(posedge clk) front1<={front1[2:0],start}
if (front1[3:1]==3'b011) .......
Lmx2315
QUOTE (TRILLER @ Jun 15 2015, 12:47) *
Так делать нельзя!

..спасибо!
з.ы.
Открыт для других мнений или таких - же.
Shivers
Цитата(Lmx2315 @ Jun 15 2015, 11:36) *
[code]reg [3:0] front1;
always @(posedge clk) front1<={front1[1:0],start}

IF-ы выкиньте.

В двух словах:
разряд 0 сдвигового регистра- наибольшая вероятность метастабильности, использовать нельзя
разряд 1 - вероятность меньше, в обычных применениях можно использовать, в высоконадежных - нет.
разряд 2 - веротяность метастабильности еще меньше. в высоконадежных системах использовать можно.
разряд 3 и далее - вероятность метастабильности почти 0. Но если копать теорию, то по тереме Марино метастабильность будет присутсовать всегда, хоть тысячу разрядов поставьте в сдвиговый регистр.

Будем исходить из того, что у вас обычная система. Следовательно, используйте разряды 1,2.. и т.д.
Фронт, про который вы спрашивали:

assign rise = front1[1] & ~front1[2];
Lmx2315
..спасибо за целебные советы!
XVR
Не забудьте про один подводный камень -
Код
always @(posedge clk) front1<={front1[2:0],start}

Если вы в этой конструкции не будете потом использовать front[1:0], а возьмете front[2] и далее, то синтезатор вполне может свернуть начальные биты в примитив сдвигового регистра (SLR16), а он в качестве CDC синхронизатора не работает smile3046.gif
Shivers
Цитата(XVR @ Jun 16 2015, 13:54) *
Если вы в этой конструкции не будете потом использовать front[1:0], а возьмете front[2] и далее, то синтезатор вполне может свернуть начальные биты в примитив сдвигового регистра (SLR16), а он в качестве CDC синхронизатора не работает smile3046.gif

Все auto inferring опции синтезатора можно включать и выключать. И потом, при правильных констрейнтах CDC такой ситуации не случится, думаю.
XVR
Цитата(Shivers @ Jun 16 2015, 14:05) *
Все auto inferring опции синтезатора можно включать и выключать.
Это слишком сильное решение rolleyes.gif
Цитата
И потом, при правильных констрейнтах CDC такой ситуации не случится, думаю.

Правильно, но их надо не забыть задать laughing.gif
Shivers
Цитата(XVR @ Jun 16 2015, 14:09) *
Это слишком сильное решение rolleyes.gif

Обычное решение. Нельзя все отдавать на откуп индийским программистам.
TRILLER
Цитата(XVR @ Jun 16 2015, 13:54) *
..примитив сдвигового регистра (SLR16), а он в качестве CDC синхронизатора не работает smile3046.gif

Поясните пожалуйста.
des00
Цитата(TRILLER @ Jun 16 2015, 19:57) *
Поясните пожалуйста.

SRL16 и ее аналоги это память с генераторами адреса, бороться с метастабильностью не может. ISE/Vivado/Quartus обожают их пихать по поводу и без. Простой способ борьбы добавление асинхронного сброса (и то не всегда, симплифай умеет обоходить это) или атрибуты синтеза
TRILLER
Цитата(des00 @ Jun 16 2015, 15:02) *
SRL16 и ее аналоги это память с генераторами адреса, бороться с метастабильностью не может. ISE/Vivado/Quartus обожают их пихать по поводу и без. Простой способ борьбы добавление асинхронного сброса (и то не всегда, симплифай умеет обоходить это) или атрибуты синтеза

Спасибо.
Думал, там схема как-нибудь по-хитрому перестраивается. Однако.
Krys
Цитата(des00 @ Jun 16 2015, 19:02) *
SRL16 и ее аналоги это память с генераторами адреса, бороться с метастабильностью не может.
Хм... никогда не задумывался об этой тонкости. А где про это почитать (что бороться не может)? Чисто абстрактные логические рассуждения, не привязанные к SRL: если SRL - это память, а ведь память же это триггеры, а триггеры борются с метастабильностью. Почему SRL не борется?
XVR
Цитата(Krys @ Jun 17 2015, 09:28) *
если SRL - это память, а ведь память же это триггеры, а триггеры борются с метастабильностью. Почему SRL не борется?
Потому что триггеры тогда борются с метастабильностью, когда они включены в цепочку в количестве более одного. В SRL (как и в памяти вообще) цепочки из триггеров нет - грубо говоря он там один. Точнее их много, но включены они параллельно, а не последовательно rolleyes.gif

dvladim
Цитата(Krys @ Jun 17 2015, 09:28) *
Почему SRL не борется?

Т.к. это сдвиговый регистр на памяти, то это счетчики на адрес чтения, адрес записи. А метастабильность по адресу - это запись неизвестно куда и неизвестно откуда.
Krys
спасибо, дошло, как такое может быть физически. Я себе представлял, что там взаимосвязи между триггерами переключаются в режим физического сдвигового регистра. Но теперь понимаю, что сдвиговый регистр имитируется на основе принципов FIFO. А есть первоисточник информации, что SRL лишь имитирует сдвиговый регистр, а не физически переключает взаимосвязи?

Цитата(XVR @ Jun 17 2015, 17:42) *
Потому что триггеры тогда борются с метастабильностью, когда они включены в цепочку в количестве более одного. В SRL (как и в памяти вообще) цепочки из триггеров нет - грубо говоря он там один. Точнее их много, но включены они параллельно, а не последовательно
В свою защиту (или в защиту возможности подавления метастабильности на SRL) скажу, что при имитации сдвигового регистра по принципам FIFO в каждом триггере информация хранится несколько тактов. А за это время метастабильность устаканится (с какой-то вероятностью. Вполне допускаю, что она меньше, чем для цепочного соединения триггеров).
des00
Цитата(Krys @ Jun 18 2015, 10:22) *
А есть первоисточник информации, что SRL лишь имитирует сдвиговый регистр, а не физически переключает взаимосвязи?

Даташит на любую хилую плису в которой есть SLICEM
Krys
ug384, это на спартан6. Вчитывался-вчитывался в параграф про сдвиговые регистры, ничего не нашёл, что бы хоть как-то косвенно указывало на имитацию. Более того, нашёл косвенные подтверждения обратного: наличие цепочного соединения сдвиговых регистров. Согласно рисунку 19 на странице 27, SRL имеет отдельный выход старшего бита для цепочного соединения, но и отдельный выход для динамического выбора какого-либо промежуточного бита. В случае имитации потребовалось бы 2 порта на чтение и один порт на запись, все с разными адресами, т.е. нужна 3-портовая память. С одной стороны, нигде не говорится, что она не 3-портовая внутри (по выводам снаружи она 2-портовая). Но с другой стороны, не слишком ли много усложнений для этой самой имитации: городить внутренний, не используемый снаружи, третий порт, городить 3 счётчика доступа...? Не проще ли сделать сдвиговый регистр "в лоб", подсоединив выход более младшего бита ко входу более старшего?
des00
Цитата(Krys @ Jun 18 2015, 14:31) *
Вчитывался-вчитывался в параграф про сдвиговые регистры, ничего не нашёл, что бы хоть как-то косвенно указывало на имитацию.

:-e :-e :-e
ug331.pdf -> Spartan-3 Generation FPGA User Guide -> Section 1: Designing with Spartan-3 Generation FPGAs -> Using Look-Up Tables as Shift Registers (SRL16) -> Shift Register Architecture
ug384.pdf -> Spartan-6 FPGA Configurable Logic Block -> Spartan-6 FPGA CLB -> Slice Description -> Figure 3: Diagram of SLICEM
и там же -> Spartan-6 FPGA Configurable Logic Block -> Spartan-6 FPGA CLB -> Slice Description -> Figure 17: 32-bit Shift Register Configuration + текст выше
Krys
Цитата(des00 @ Jun 18 2015, 14:41) *
ug384.pdf -> Spartan-6 FPGA Configurable Logic Block -> Spartan-6 FPGA CLB -> Slice Description -> Figure 3: Diagram of SLICEM
и там же -> Spartan-6 FPGA Configurable Logic Block -> Spartan-6 FPGA CLB -> Slice Description -> Figure 17: 32-bit Shift Register Configuration + текст выше
Да именно это я и перекопал вдоль и поперёк, о чём писал в прошлом сообщении. Ну не вижу я там чего-то, откуда бы следовало, что сдвиговый регистр имитируется на принципах построения FIFO на памяти.
То ли мы о разном говорим, то ли что... Потому что вот тут Вы ссылаетесь на документ, где, наоборот, прямо показано противоположное:
Цитата(des00 @ Jun 18 2015, 14:41) *
ug331.pdf -> Spartan-3 Generation FPGA User Guide -> Section 1: Designing with Spartan-3 Generation FPGAs -> Using Look-Up Tables as Shift Registers (SRL16) -> Shift Register Architecture
Здесь на рисунке 7-2 на стр. 230 в явной форме виден классический сдвиговый регистр, без всякой имитации. Хотя, допускаю, что здесь показано лишь логическое построение сдвигового регистра, его функциональность. Физически это всё равно может быть реализовано в виде имитации. Но тогда эти хилые индусы - эдакие запутывальщики )))
des00
Цитата(Krys @ Jun 18 2015, 17:14) *
Да именно это я и перекопал вдоль и поперёк, о чём писал в прошлом сообщении. Ну не вижу я там чего-то, откуда бы следовало, что сдвиговый регистр имитируется на принципах построения FIFO на памяти.
То ли мы о разном говорим, то ли что... Потому что вот тут Вы ссылаетесь на документ, где, наоборот, прямо показано противоположное:
Здесь на рисунке 7-2 на стр. 230 в явной форме виден классический сдвиговый регистр, без всякой имитации. Хотя, допускаю, что здесь показано лишь логическое построение сдвигового регистра, его функциональность. Физически это всё равно может быть реализовано в виде имитации. Но тогда эти хилые индусы - эдакие запутывальщики )))

Простите меня великодушно, но вы либо издеваетесь либо вам отказывает логика здравого смысла и вам принципиально тролить по черному.
Черным по белому :
Цитата
With the SRL16 configuration, the fixed LUT values are configured instead as an addressable shift register (see Figure 7-2). The shift register inputs are the same as those for the synchronous RAM configuration of the LUT: a data input, clock, and clock enable (not shown)
dvladim
Цитата(Krys @ Jun 18 2015, 05:22) *
В свою защиту (или в защиту возможности подавления метастабильности на SRL) скажу, что при имитации сдвигового регистра по принципам FIFO в каждом триггере информация хранится несколько тактов.

Метастабильность в регистре хранения конечно устаканится, но метастабильность возникает и на счетчиках адресов. И если вы не знаете в какой адрес записали и с какого считываете, то как тут корректно работать?
Что касается реализации, то у альтеры есть мегафункция сдвигового регистра на памяти. Там реализация вполне очевидна. Блок памяти у которого чтение и запись происходят с одного и того же адреса (режим записи после чтения), счетчик адреса считает до константного значения (глубина регистра) и сбрасывается в 0. Не думаю что у SRL будет какая-либо иная реализация.
ViKo
И что, регистр на памяти не умеет правильно записывать и читать относительно своих же тактов, переключающих счетчик адреса?
Инкрементировался счетчик адреса, сработал сигнал записи, данные пошли записываться... (вдруг, бац, данные стали меняться, ай, беда... в следующем такте запишутся rolleyes.gif ). Автоматика записи-чтения памяти работает-то на своей частоте... безупречно.
Где подвох?
P.S. Из параллельного регистра можно сделать последовательный. rolleyes.gif
dvladim
А пожалуй да, нарушение времянок между клоком и данными, на адреса это влиять не должно.
Интересно было бы сравнить на тестовой схеме.
У альтеры, кстати, где-то была приведена схема считающая сбои из-за метастабильности.
Krys
Цитата(ViKo @ Jun 19 2015, 00:12) *
Автоматика записи-чтения памяти работает-то на своей частоте... безупречно.
Вот-вот, Вы меня опередили )) Счётчики записи-чтения вообще независимы от линии данных, она поступает на свой отдельный вход.


Цитата(dvladim @ Jun 18 2015, 23:50) *
Что касается реализации, то у альтеры есть мегафункция сдвигового регистра на памяти. Там реализация вполне очевидна. Блок памяти у которого чтение и запись происходят с одного и того же адреса (режим записи после чтения), счетчик адреса считает до константного значения (глубина регистра) и сбрасывается в 0.
Мы говорим о сдвиговом регистре однобитного сигнала или о линии задержки многобитной шины на блочной памяти? И откуда там "реализация вполне очевидна"? Можете дать ссылку на документ и страницу плиз?


Цитата(dvladim @ Jun 18 2015, 23:50) *
Не думаю что у SRL будет какая-либо иная реализация.
"Думаю, не думаю..." в данном случае неуместно ))) Надо факты
Krys
Цитата(des00 @ Jun 18 2015, 19:37) *
Простите меня великодушно, но вы либо издеваетесь либо вам отказывает логика здравого смысла и вам принципиально тролить по черному.
Не гневайтесь, есть ещё третий вариант: я хочу докопаться до истины, не полагаясь слепо на мнение авторитетных гуру )))


Цитата(des00 @ Jun 18 2015, 19:37) *
Черным по белому :
With the SRL16 configuration, the fixed LUT values are configured instead as an addressable shift register (see Figure 7-2). The shift register inputs are the same as those for the synchronous RAM configuration of the LUT: a data input, clock, and clock enable (not shown)
Ну и где тут говорится о реализации сдвигового регистра с помощью имитации по принципам реализации FIFO на памяти? Давайте переводить.
Но для этого нужно ещё привести абзац ранее, чтобы не вырывать фразы без контекста:
The LUT can be described as a 16:1 multiplexer with the four inputs serving as binary
select lines, and the values programmed into the LUT serving as the data being selected.

Здесь говорится как введение, что в режиме LUTа (не в режиме SRL) "значения" (в терминологии выделенного куска), подаваемые на входы данных мультиплексора, запрограммированы (т.е. жёстко сидят в прошивке).
Теперь следующее предложение:
With the SRL16 configuration, the fixed LUT values are configured instead as an addressable shift register (see Figure 7-2).
Теперь уже в нужной нам конфигурации SRL те самые, указанные в предыдущем предложении "значения", которые были в режиме LUT как fixed (а в предыдущем предложении они же для запутывания читателя были названы programmed), вместо этого сконфигурированы как адресуемый сдвиговый регистр. Возможно, Вас смутило слово адресуемый? Ну дак это относится к адресации выхода, что на картинке 7-2 указано как мультиплексор. Всё логично.
Следующее предложение.
The shift register inputs are the same as those for the synchronous RAM configuration of the LUT: a data input, clock, and clock enable (not shown)
Перевод: входы сдвигового регистра те же самые, что и для конфигурации LUTа как синхронной памяти. Да, в выделенным Вами куске есть упоминание того, что есть что-то похожее, как у памяти. Те же самые входы. Ну и что, что входы те же? Это ещё не значит, что и работать будет совершенно так же. Да и входы те же, но не все, а только перечисленные далее после двоеточия: вход данных, тактовая и разрешение. Ну и что такого, что перечисленные входы имеются у сдвигового регистра? Да без них он в принципе не может быть построен. Это тоже никак не говорит об имитации. Если у двух чёрных ящиков одинаковые входы (да ещё и не все), то это не значит, что они и работать будут одинаково.
Krys
А где там говорится про метастабильность?
Судя по этим картинкам, хилые делают сдвиговый регистр "в лоб", а альтера - имитируют с использованием принципов реализации FIFO на памяти.
jks
Я про использование сдвигового регистра на LUT-RAM в качестве синхронизатора.
Там классический сдвиговый регистр, который используется как LUT, память 16 бит или сдвиговый регистр.
Если на вход Din подавать данные, а снимать их с отводов N=2-15, то получится обычный синхронизатор,
если вход LUT не меняется (номер отвода зафиксирован).

У АЛЬТЕРы судя по всему на Циклонах до V серии входы CE глобальные для LAB, т.е. в регистрах LE нет CE входа.
Т.е. клок CLK0/CLK1 формируется в CLKCTRL блоке LAB из CE0/CE1.
Krys
а где там про синхронизатор?
jks
Цитата
Потому что триггеры тогда борются с метастабильностью, когда они включены в цепочку в количестве более одного. В SRL (как и в памяти вообще) цепочки из триггеров нет - грубо говоря он там один. Точнее их много, но включены они параллельно, а не последовательно rolleyes.gif


Цитата
SRL16 и ее аналоги это память с генераторами адреса, бороться с метастабильностью не может. ISE/Vivado/Quartus обожают их пихать по поводу и без. Простой способ борьбы добавление асинхронного сброса (и то не всегда, симплифай умеет обоходить это) или атрибуты синтеза


Там написано про сдвиговый регистр. т.е. если есть сдвиговый регистр, то есть и синхронизатор.

Krys
дак а вдруг этот сдвиговый регистр сделан в виде имитации по принципам FIFO на памяти? )) Там же картинка может показывать образно: мол, логически - по цепочке, а физически - как FIFO на памяти )) Я просто не вчитывался, только картинки глянул. Может и неправ.
XVR
http://www.xilinx.com/support/answers/58652.html
Цитата оттуда -
Цитата
The SRL16 is not a chain of registers, so it does not resolve metastability when it occurs.

Krys
Спасибо!

А я вот что там же нашёл на форуме:
http://forums.xilinx.com/t5/Implementation...ght/true/page/2
и из этой темы такая ссылка:
https://groups.google.com/forum/#!topic...pga/5xSMNecxMDI
Тут конечно никто авторитетно ничего не заявляет. Точнее заявляет, но авторитетность проверить нельзя. Говорят то же самое, что SRL-ки не годятся для синхронизаторов.

Короче, общий вывод такой, что в SRL-ках не полноценные триггеры. В частности, это подтверждается картинками 1 и 4 из этого документа: Patent Number: 5,889,413, Date of Patent: *Mar. 30, 1999. Там видно, что память реализована хитрым образом, как 2 инвертора. Т.е. видно, что это не триггер. Хотя, конечно, не факт, что в плисинах именно такая схема.

С другой стороны, кому не критична длительность задержки при синхронизации, но хочется сэкономить ресурсы, можно поставить SRL на 32 такта. Уж за 32 такта что-то уже должно устаканиться, а потребление ресурсов будет минимальным.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.