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

 
 
> Метастабильность по входу CE для FF Xilinx, Есть? Нету?
MegaVolt
сообщение Jun 8 2015, 07:20
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Может кто находил толковую доку на тему метастабильности по входу CE для триггеров Xilinx. Т.е. что плохого будет если не будет соблюдаться setup/hold для этого входа?
1. Данные будут неопределены (метастабильность)?
2. Данные могут защёлкнуться или не защёлкнуться но метастабильности не будет.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 49)
dvladim
сообщение Jun 9 2015, 18:03
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Полагаю, что результат аналогичен для любых триггеров. Метастабильность будет. Вопрос только в длительности.
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jun 9 2015, 18:38
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(MegaVolt @ Jun 8 2015, 10:20) *
1. Данные будут неопределены (метастабильность)?
2. Данные могут защёлкнуться или не защёлкнуться но метастабильности не будет.

1) вероятность 0,00000000001%
2) вероятность 99,99999999999%
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Jun 10 2015, 05:59
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



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

Сообщение отредактировал MegaVolt - Jun 10 2015, 06:00
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jun 10 2015, 07:47
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(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 триггера).
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jun 10 2015, 16:41
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(MegaVolt @ Jun 10 2015, 08:59) *
Спасибо sm.gif
Одно не понятно если с CE всё так хорошо почему его не используют в схемах для перехода из одного домена в другой?

Как уже сказали, CE это обычный пин.
Только я не понял, что вы называете "хорошо".
Хорошо или плохо, зависит от задачи.
Если вас волнует один провод, поставьте один синхронизатор и всего делов.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Jun 11 2015, 06:49
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



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

Однако по сказанному выше понимаю что будет.
Собственно вопрос снят.
Спасибо sm.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 11 2015, 07:05
Сообщение #8


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

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



Будет, будет метастабильность... А Dr.Alex с процентами лажанулся. rolleyes.gif
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jun 11 2015, 07:15
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(MegaVolt @ Jun 11 2015, 09:49) *
Собственно вопрос снят.

Чё-то у меня нет ощущения что вопрос снят :-)))))
Во-первых, нужно писать на HDL, а не рисовать схему, поэтому вы всё равно не будете знать, куда придёт ваш сигнал.
Во-вторых, рассуждать о метастабильности в терминах "будет - не будет" это жуткое дилетантство.
Она характеризуется вероятностью появления, которая крайне низка, но никогда не 0.
Поэтому в зависимости от ситуации вы либо можете на неё забить вообще,
либо просто поставить лишний триггер-синхронизатор, и тем самым гарантировать что в случае появления она не распространится дальше.
В вашем случае именно так и нужно поступить просто потому что это просто.
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 11 2015, 12:15
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



если setup/hold соблюдены, то никакой метастабильности не будет (ее зона гораздо уже)
причем без разницы - либо этот вход приводится к данным (через мультиплексор с выхода)
либо пересчитывается в блокировку тактового сигнала (clock gating). чего, по-моему, для FPGA не бывает

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

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

upd: просмотрел _не_ хххх setup/hold
извиняйте - тогда синхронизатор. разницы между CE и D нету
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 11 2015, 12:22
Сообщение #11


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

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



Цитата(yes @ Jun 11 2015, 15:15) *
если setup/hold соблюдены, то никакой метастабильности не будет (ее зона гораздо уже)

Так вопрос именно в том, если не соблюдены... Если, к примеру, переключение разрешения попадает на самый опасный интервал в границах setup-hold. Будем иметь метастабильный улет гарантированно. biggrin.gif
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jun 11 2015, 13:59
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(ViKo @ Jun 11 2015, 15:22) *
Будем иметь метастабильный улет гарантированно. biggrin.gif

Гарантированно с ничтожной вероятностью.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 11 2015, 15:42
Сообщение #13


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

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



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

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

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

Вы бы хотели, чтобы самолет сбоил раз в час? rolleyes.gif
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Jun 12 2015, 11:48
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(Dr.Alex @ Jun 11 2015, 10:15) *
Чё-то у меня нет ощущения что вопрос снят :-)))))
Снят снят sm.gif
Цитата
Во-первых, нужно писать на HDL, а не рисовать схему, поэтому вы всё равно не будете знать, куда придёт ваш сигнал.
Я ещё помню 155 серию sm.gif)) По этому я ещё долго буду рисовать схемы sm.gif)) и переводить их на xHDL
Цитата
Во-вторых, рассуждать о метастабильности в терминах "будет - не будет" это жуткое дилетантство.
Она характеризуется вероятностью появления, которая крайне низка, но никогда не 0.
Для данных само собой. Я выяснял так ли это для CE Может по каким то причинам вход CE свободен от этой особенности.
Цитата
В вашем случае именно так и нужно поступить просто потому что это просто.
Не люблю ставить нечто не понимая до конца его необходимость.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 15 2015, 07:15
Сообщение #15


Знающий
****

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



Цитата(MegaVolt @ Jun 12 2015, 14:48) *
Снят снят sm.gifЯ ещё помню 155 серию sm.gif)) По этому я ещё долго буду рисовать схемы sm.gif))

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

Ограничения по setup даются с некоторым запсом в расчете на паспортные PVT углы эксплуатации ПЛИС. Т.е. нарушения ведут лишь к сужению диапазноа температур и питаний, где ПЛИС будет работать. При маленьких нарушениях, в комнате будет не заметно. При больших - микросхему придется морозить, чтобы работала без сбоев ) А если с холдом проблема - тогда наборот нагревать может понадобиться :Р
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 15 2015, 07:36
Сообщение #16


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Уважаемые, объясните в двух словах про метастабильность - если я ищу фронт у импульса через такую конструкцию:
CODE
reg [3:0] front1;
always @(posedge clk) front1<={front1[1:0],start}
if (front1==3'b011) .......

и на длительность импульса приходится минимум 4 такта клоковой частоты, мне же нечего боятся метастабильности?
з.ы.
прошу прощения за оффтопик.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 15 2015, 07:48
Сообщение #17


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

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



А одного триггера не хватит? rolleyes.gif Как перекинулся в 1, так, значит, был положительный импульс. Если на входе не было 1, выход триггера никогда не полезет в 1.
А, если хотите длительность в 1 такт, тогда - да, как у вас - правильно.
Go to the top of the page
 
+Quote Post
TRILLER
сообщение Jun 15 2015, 08:47
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



Цитата
Код
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) .......
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 15 2015, 08:55
Сообщение #19


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (TRILLER @ Jun 15 2015, 12:47) *
Так делать нельзя!

..спасибо!
з.ы.
Открыт для других мнений или таких - же.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 15 2015, 19:20
Сообщение #20


Знающий
****

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



Цитата(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];
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 16 2015, 07:36
Сообщение #21


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..спасибо за целебные советы!


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 16 2015, 10:54
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Не забудьте про один подводный камень -
Код
always @(posedge clk) front1<={front1[2:0],start}

Если вы в этой конструкции не будете потом использовать front[1:0], а возьмете front[2] и далее, то синтезатор вполне может свернуть начальные биты в примитив сдвигового регистра (SLR16), а он в качестве CDC синхронизатора не работает smile3046.gif
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 16 2015, 11:05
Сообщение #23


Знающий
****

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



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

Все auto inferring опции синтезатора можно включать и выключать. И потом, при правильных констрейнтах CDC такой ситуации не случится, думаю.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 16 2015, 11:09
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



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

Правильно, но их надо не забыть задать laughing.gif
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 16 2015, 11:15
Сообщение #25


Знающий
****

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



Цитата(XVR @ Jun 16 2015, 14:09) *
Это слишком сильное решение rolleyes.gif

Обычное решение. Нельзя все отдавать на откуп индийским программистам.
Go to the top of the page
 
+Quote Post
TRILLER
сообщение Jun 16 2015, 11:57
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



Цитата(XVR @ Jun 16 2015, 13:54) *
..примитив сдвигового регистра (SLR16), а он в качестве CDC синхронизатора не работает smile3046.gif

Поясните пожалуйста.
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 16 2015, 12:02
Сообщение #27


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

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



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

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


--------------------
Go to the top of the page
 
+Quote Post
TRILLER
сообщение Jun 16 2015, 14:55
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



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

Спасибо.
Думал, там схема как-нибудь по-хитрому перестраивается. Однако.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 17 2015, 06:28
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(des00 @ Jun 16 2015, 19:02) *
SRL16 и ее аналоги это память с генераторами адреса, бороться с метастабильностью не может.
Хм... никогда не задумывался об этой тонкости. А где про это почитать (что бороться не может)? Чисто абстрактные логические рассуждения, не привязанные к SRL: если SRL - это память, а ведь память же это триггеры, а триггеры борются с метастабильностью. Почему SRL не борется?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 17 2015, 10:42
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Krys @ Jun 17 2015, 09:28) *
если SRL - это память, а ведь память же это триггеры, а триггеры борются с метастабильностью. Почему SRL не борется?
Потому что триггеры тогда борются с метастабильностью, когда они включены в цепочку в количестве более одного. В SRL (как и в памяти вообще) цепочки из триггеров нет - грубо говоря он там один. Точнее их много, но включены они параллельно, а не последовательно rolleyes.gif

Go to the top of the page
 
+Quote Post
dvladim
сообщение Jun 17 2015, 16:23
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



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

Т.к. это сдвиговый регистр на памяти, то это счетчики на адрес чтения, адрес записи. А метастабильность по адресу - это запись неизвестно куда и неизвестно откуда.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 18 2015, 02:22
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



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

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


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 18 2015, 03:05
Сообщение #33


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

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



Цитата(Krys @ Jun 18 2015, 10:22) *
А есть первоисточник информации, что SRL лишь имитирует сдвиговый регистр, а не физически переключает взаимосвязи?

Даташит на любую хилую плису в которой есть SLICEM


--------------------
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 18 2015, 06:31
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



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


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 18 2015, 07:41
Сообщение #35


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

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



Цитата(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 + текст выше


--------------------
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 18 2015, 10:14
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(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 в явной форме виден классический сдвиговый регистр, без всякой имитации. Хотя, допускаю, что здесь показано лишь логическое построение сдвигового регистра, его функциональность. Физически это всё равно может быть реализовано в виде имитации. Но тогда эти хилые индусы - эдакие запутывальщики )))


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 18 2015, 12:37
Сообщение #37


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

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



Цитата(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)


--------------------
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jun 18 2015, 16:50
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(Krys @ Jun 18 2015, 05:22) *
В свою защиту (или в защиту возможности подавления метастабильности на SRL) скажу, что при имитации сдвигового регистра по принципам FIFO в каждом триггере информация хранится несколько тактов.

Метастабильность в регистре хранения конечно устаканится, но метастабильность возникает и на счетчиках адресов. И если вы не знаете в какой адрес записали и с какого считываете, то как тут корректно работать?
Что касается реализации, то у альтеры есть мегафункция сдвигового регистра на памяти. Там реализация вполне очевидна. Блок памяти у которого чтение и запись происходят с одного и того же адреса (режим записи после чтения), счетчик адреса считает до константного значения (глубина регистра) и сбрасывается в 0. Не думаю что у SRL будет какая-либо иная реализация.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 18 2015, 17:12
Сообщение #39


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

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



И что, регистр на памяти не умеет правильно записывать и читать относительно своих же тактов, переключающих счетчик адреса?
Инкрементировался счетчик адреса, сработал сигнал записи, данные пошли записываться... (вдруг, бац, данные стали меняться, ай, беда... в следующем такте запишутся rolleyes.gif ). Автоматика записи-чтения памяти работает-то на своей частоте... безупречно.
Где подвох?
P.S. Из параллельного регистра можно сделать последовательный. rolleyes.gif
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jun 18 2015, 18:18
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



А пожалуй да, нарушение времянок между клоком и данными, на адреса это влиять не должно.
Интересно было бы сравнить на тестовой схеме.
У альтеры, кстати, где-то была приведена схема считающая сбои из-за метастабильности.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 19 2015, 02:31
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(ViKo @ Jun 19 2015, 00:12) *
Автоматика записи-чтения памяти работает-то на своей частоте... безупречно.
Вот-вот, Вы меня опередили )) Счётчики записи-чтения вообще независимы от линии данных, она поступает на свой отдельный вход.


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


Цитата(dvladim @ Jun 18 2015, 23:50) *
Не думаю что у SRL будет какая-либо иная реализация.
"Думаю, не думаю..." в данном случае неуместно ))) Надо факты


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 19 2015, 04:09
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(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а как синхронной памяти. Да, в выделенным Вами куске есть упоминание того, что есть что-то похожее, как у памяти. Те же самые входы. Ну и что, что входы те же? Это ещё не значит, что и работать будет совершенно так же. Да и входы те же, но не все, а только перечисленные далее после двоеточия: вход данных, тактовая и разрешение. Ну и что такого, что перечисленные входы имеются у сдвигового регистра? Да без них он в принципе не может быть построен. Это тоже никак не говорит об имитации. Если у двух чёрных ящиков одинаковые входы (да ещё и не все), то это не значит, что они и работать будут одинаково.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
jks
сообщение Jun 19 2015, 06:53
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



https://docs.google.com/viewer?url=patentim...s/US5889413.pdf
https://docs.google.com/viewer?url=patentim...s/US6388466.pdf
https://docs.google.com/viewer?url=patentim...s/US6411124.pdf
https://docs.google.com/viewer?url=patentim...s/US7093084.pdf

судя по этим картинкам метастабильности не должно быть.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 19 2015, 07:24
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



А где там говорится про метастабильность?
Судя по этим картинкам, хилые делают сдвиговый регистр "в лоб", а альтера - имитируют с использованием принципов реализации FIFO на памяти.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
jks
сообщение Jun 19 2015, 10:14
Сообщение #45


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Я про использование сдвигового регистра на LUT-RAM в качестве синхронизатора.
Там классический сдвиговый регистр, который используется как LUT, память 16 бит или сдвиговый регистр.
Если на вход Din подавать данные, а снимать их с отводов N=2-15, то получится обычный синхронизатор,
если вход LUT не меняется (номер отвода зафиксирован).

У АЛЬТЕРы судя по всему на Циклонах до V серии входы CE глобальные для LAB, т.е. в регистрах LE нет CE входа.
Т.е. клок CLK0/CLK1 формируется в CLKCTRL блоке LAB из CE0/CE1.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 19 2015, 11:27
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



а где там про синхронизатор?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
jks
сообщение Jun 19 2015, 11:49
Сообщение #47


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата
Потому что триггеры тогда борются с метастабильностью, когда они включены в цепочку в количестве более одного. В SRL (как и в памяти вообще) цепочки из триггеров нет - грубо говоря он там один. Точнее их много, но включены они параллельно, а не последовательно rolleyes.gif


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


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

Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 22 2015, 02:17
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



дак а вдруг этот сдвиговый регистр сделан в виде имитации по принципам FIFO на памяти? )) Там же картинка может показывать образно: мол, логически - по цепочке, а физически - как FIFO на памяти )) Я просто не вчитывался, только картинки глянул. Может и неправ.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 22 2015, 11:40
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



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.

Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 23 2015, 05:16
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Спасибо!

А я вот что там же нашёл на форуме:
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 такта что-то уже должно устаканиться, а потребление ресурсов будет минимальным.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

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

 


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


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