Перейти к содержанию
    

Gowin GW2AR FIFO BSRAM не работает

Всем привет.

Кто сталкивался, при синтезе FIFO на основе BSRAM и SSRAM результаты совершенно разные?

Выбираем SSRAM или REG - ФИФО работает адекватно и правильно. Если выбрать BSRAM , ФИФО выдаёт Empty невпопад и снимает его когда захочет.

Такое ощущение, что всё, что использует блоки BSRAM работает криво. Включая их собственный Gowin Analyzer Oscilloscope. Он вообще не видит движение сигналов, без которых работы девайса не могла бы быть вообще. Хотя ROM на BSRAM'е читается корректно.

Чип GW2AR-LV18EQ144C8/I7.

356106936_.thumb.png.5bbff7e92b7c71fed563b8625922d243.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте записать - читать с BRAM, если все норм то можно фифо самому описать...

или взять готовое описание...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, dimasen said:

Включая их собственный Gowin Analyzer Oscilloscope. Он вообще не видит движение сигналов, без которых работы девайса не могла бы быть вообще.

У меня эту хрень (по другому не назовешь) не удалось запустить.

Делал все по их методичке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 hours ago, Maverick_ said:

Попробуйте записать - читать с BRAM, если все норм то можно фифо самому описать...

или взять готовое описание...

Спасибо. Попробовал. Вроде всё пишется/читается корректно. Если BSRAM генерить через визард. Если синтез через Verilog (типа reg [7:0] mem[255:0]; и т.д.) то не работает.

Есть какие-то готовые реализации двух-клоковых FIFO? Желательно с режимом "Show ahead"(или First-Word Fall-Through)

12 hours ago, dimka76 said:

У меня эту хрень (по другому не назовешь) не удалось запустить.

Делал все по их методичке.

Хрень действительно ещё та... Совершенно интуитивно не понятно и неудобно. Но как-то худо-бедно работает. Вот как-раз память BSRAM отлаживал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, dimasen said:

Если синтез через Verilog (типа reg [7:0] mem[255:0]; и т.д.) то не работает

Извиняюсь, если что-то не так понимаю (с данными микросхемами не сталкивался) - а Вы тайминги учитываете при самописной реализации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 minutes ago, Yuri124 said:

Извиняюсь, если что-то не так понимаю (с данными микросхемами не сталкивался) - а Вы тайминги учитываете при самописной реализации?

Констрейны заданы. По частоте троекратный запас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, dimasen said:

Констрейны заданы. По частоте троекратный запас.

я не про это. Может нужно, чтобы какое-то количество тактов какому-то сигналу соответствовало.

Помнится, когда напрямую в Альтере обращался к встроенной памяти - при записи было такт в такт, а при чтении -надо было один такт подождать при первом чтении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Yuri124 said:

я не про это. Может нужно, чтобы какое-то количество тактов какому-то сигналу соответствовало.

Помнится, когда напрямую в Альтере обращался к встроенной памяти - при записи было такт в такт, а при чтении -надо было один такт подождать при первом чтении.

Это конечно. У меня при написании памяти на Верилоге вообще ничего на выходе Q нет. Никогда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, dimasen said:

Это конечно. У меня при написании памяти на Верилоге вообще ничего на выходе Q нет. Никогда.

В симуляторе тоже?

Или это видно только в кристалле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20.10.2021 в 14:56, dimasen сказал:

Чип GW2AR-LV18EQ144C8/I7.

Я бы начал с проверки ревизии чипа.

Вангую, что у Вас Revision C (это можно проверить по маркировке на корпусе - после датакода должен быть указано номер ревизии, например, литера С).

Если так, то у Вас не совсем корректно указана целевая микросхема ( и в проекте, и в настройках IP-ядра) - семейство нужно указать как GW2AR-18C.

Если мне не изменяет склероз, то одним из главных отличий чипов первой ревизии (без литеры после датакода) и ревизии С, были отличия в работе как раз BSRAM.

У первой ревизии было что-то не в порядке с режимом DPB (и это пытались компенсировать разными схемотехническими костылями в среде разработки).

В ревизии С режим DPB поправили. Но для корректности работы IP-генератора нужно при выборе целевой микросхемы правильно указывать семейство (с учетом ревизии чипа).

Если у Вас таки revision C, то измените выбор семейства в проекте Gowin EDA, и попробуйте еще раз с нуля сгенерировать FIFO на BSRAM.

Что при этом будет получаться? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/21/2021 at 10:57 AM, dimasen said:

Хрень

 

Фифо с независимыми клоками, да ещё фёст-ворд-фолл-сру - штука непростая, сигналы имеют право запаздывать.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/25/2021 at 9:49 PM, StewartLittle said:

Я бы начал с проверки ревизии чипа.

Вангую, что у Вас Revision C (это можно проверить по маркировке на корпусе - после датакода должен быть указано номер ревизии, например, литера С).

Если так, то у Вас не совсем корректно указана целевая микросхема ( и в проекте, и в настройках IP-ядра) - семейство нужно указать как GW2AR-18C.

Если мне не изменяет склероз, то одним из главных отличий чипов первой ревизии (без литеры после датакода) и ревизии С, были отличия в работе как раз BSRAM.

У первой ревизии было что-то не в порядке с режимом DPB (и это пытались компенсировать разными схемотехническими костылями в среде разработки).

В ревизии С режим DPB поправили. Но для корректности работы IP-генератора нужно при выборе целевой микросхемы правильно указывать семейство (с учетом ревизии чипа).

Если у Вас таки revision C, то измените выбор семейства в проекте Gowin EDA, и попробуйте еще раз с нуля сгенерировать FIFO на BSRAM.

Что при этом будет получаться?

@StewartLittle, похоже оказался прав. У меня серия "C". И заново собранный FIFO для серии GW2AR-18C начал работать адекватно.

Благодарю!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...