dimasen 0 20 октября, 2021 Опубликовано 20 октября, 2021 · Жалоба Всем привет. Кто сталкивался, при синтезе FIFO на основе BSRAM и SSRAM результаты совершенно разные? Выбираем SSRAM или REG - ФИФО работает адекватно и правильно. Если выбрать BSRAM , ФИФО выдаёт Empty невпопад и снимает его когда захочет. Такое ощущение, что всё, что использует блоки BSRAM работает криво. Включая их собственный Gowin Analyzer Oscilloscope. Он вообще не видит движение сигналов, без которых работы девайса не могла бы быть вообще. Хотя ROM на BSRAM'е читается корректно. Чип GW2AR-LV18EQ144C8/I7. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 20 октября, 2021 Опубликовано 20 октября, 2021 · Жалоба Попробуйте записать - читать с BRAM, если все норм то можно фифо самому описать... или взять готовое описание... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 59 20 октября, 2021 Опубликовано 20 октября, 2021 · Жалоба 7 hours ago, dimasen said: Включая их собственный Gowin Analyzer Oscilloscope. Он вообще не видит движение сигналов, без которых работы девайса не могла бы быть вообще. У меня эту хрень (по другому не назовешь) не удалось запустить. Делал все по их методичке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 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 отлаживал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 3 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 11 minutes ago, dimasen said: Если синтез через Verilog (типа reg [7:0] mem[255:0]; и т.д.) то не работает Извиняюсь, если что-то не так понимаю (с данными микросхемами не сталкивался) - а Вы тайминги учитываете при самописной реализации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 34 minutes ago, Yuri124 said: Извиняюсь, если что-то не так понимаю (с данными микросхемами не сталкивался) - а Вы тайминги учитываете при самописной реализации? Констрейны заданы. По частоте троекратный запас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 3 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 10 minutes ago, dimasen said: Констрейны заданы. По частоте троекратный запас. я не про это. Может нужно, чтобы какое-то количество тактов какому-то сигналу соответствовало. Помнится, когда напрямую в Альтере обращался к встроенной памяти - при записи было такт в такт, а при чтении -надо было один такт подождать при первом чтении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 2 minutes ago, Yuri124 said: я не про это. Может нужно, чтобы какое-то количество тактов какому-то сигналу соответствовало. Помнится, когда напрямую в Альтере обращался к встроенной памяти - при записи было такт в такт, а при чтении -надо было один такт подождать при первом чтении. Это конечно. У меня при написании памяти на Верилоге вообще ничего на выходе Q нет. Никогда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 21 октября, 2021 Опубликовано 21 октября, 2021 · Жалоба 1 hour ago, dimasen said: Это конечно. У меня при написании памяти на Верилоге вообще ничего на выходе Q нет. Никогда. В симуляторе тоже? Или это видно только в кристалле? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 25 октября, 2021 Опубликовано 25 октября, 2021 · Жалоба 20.10.2021 в 14:56, dimasen сказал: Чип GW2AR-LV18EQ144C8/I7. Я бы начал с проверки ревизии чипа. Вангую, что у Вас Revision C (это можно проверить по маркировке на корпусе - после датакода должен быть указано номер ревизии, например, литера С). Если так, то у Вас не совсем корректно указана целевая микросхема ( и в проекте, и в настройках IP-ядра) - семейство нужно указать как GW2AR-18C. Если мне не изменяет склероз, то одним из главных отличий чипов первой ревизии (без литеры после датакода) и ревизии С, были отличия в работе как раз BSRAM. У первой ревизии было что-то не в порядке с режимом DPB (и это пытались компенсировать разными схемотехническими костылями в среде разработки). В ревизии С режим DPB поправили. Но для корректности работы IP-генератора нужно при выборе целевой микросхемы правильно указывать семейство (с учетом ревизии чипа). Если у Вас таки revision C, то измените выбор семейства в проекте Gowin EDA, и попробуйте еще раз с нуля сгенерировать FIFO на BSRAM. Что при этом будет получаться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 25 октября, 2021 Опубликовано 25 октября, 2021 · Жалоба On 10/21/2021 at 10:57 AM, dimasen said: Хрень Фифо с независимыми клоками, да ещё фёст-ворд-фолл-сру - штука непростая, сигналы имеют право запаздывать. Единственное, проверьте что все клоки у вас фри-раннинг. Гейтить их можно только с приличным отступом от изменения каких-либо сигналов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 25 октября, 2021 Опубликовано 25 октября, 2021 · Жалоба например Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 2 ноября, 2021 Опубликовано 2 ноября, 2021 · Жалоба 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 начал работать адекватно. Благодарю!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться