shide_3 0 22 февраля, 2013 Опубликовано 22 февраля, 2013 · Жалоба приветствую. никак не могу взять в толк, каким образом может происходить одновременное чтение и запись в двухпортовую память? нет-схемотехнически всё понятно, но вот момент , если в ячейку памяти (триггер) чтото пишется и читается в тот же момент (пока еще выход триггера не установился) то при чтении может же получиться абракадабра? и в фифо же тоже самое. никогда об этом не задумывался... ведь в простой регистр я никогда ничего не записываю, в момент когда его читаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 22 февраля, 2013 Опубликовано 22 февраля, 2013 · Жалоба http://www.efo.ru/cgi-bin/go?48 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shide_3 0 22 февраля, 2013 Опубликовано 22 февраля, 2013 · Жалоба http://www.efo.ru/cgi-bin/go?48 я только что как раз оттуда :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Djamal 0 27 февраля, 2013 Опубликовано 27 февраля, 2013 (изменено) · Жалоба но вот момент , если в ячейку памяти (триггер) чтото пишется и читается в тот же момент (пока еще выход триггера не установился) то при чтении может же получиться абракадабра? Ну дык все правильно, об этом по ссылке выше и пишут: Во всех схемах с асинхронным доступом к общим ресурсам неизбежно возникают конфликтные ситуации. Применительно к двухпортовому ОЗУ, конфликты появляются при одновременном обращении двух независимых активных устройств к одной и той же ячейке памяти в процессе выполнения следующих операций: запись через порт L - запись через порт R; запись через порт L - чтение через порт R; Соответственно вводится арбитр который "разруливает" спорные ситуации в пользу того кто обратился первым Или я не понял суть вопроса? Изменено 27 февраля, 2013 пользователем Djamal Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troiden 0 27 февраля, 2013 Опубликовано 27 февраля, 2013 · Жалоба Если говорить о Xilinx, то там у каждого блока памяти есть выбор из 3 режимов работы при одновременном чтении и записи ( WRITE_FIRST, READ_FIRST и NO_CHANGE ), который и определяет, как будет разруливаться коллизия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость ffilin 31 октября, 2018 Опубликовано 31 октября, 2018 · Жалоба Мне нужна такая двух портовая оперативная память с асинхронным доступом, для решения нескольких задач. Один порт только для записи, второй только для считывания. Без всяких там колизих Первая это сделать что то типа видео карты. На вход с тюнера поступает сигнал оцифровывается с одним форматом количество кадров в секунду и количество точек в строке. А выводится на монитор в реальном времени в другом формате, с другой частотой кадров. Вторая это сделать Цифровой осциллограф для гео радара, сигнал поступает, записывается в память, с АЦП быстро, а обрабатывается контроллером мелено. Третья сделать что то типа светодиодного 3D тетриса, то есть объяденить идею тетриса на матричных светодиодах и пару 8 х 8 х 8 стоящих друг на друге 3D кубов. двух портовая память нужна чтобы увеличить частоту динамической индикации и разгрузить контроллер. то есть скрестить Спойлер Спойлер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 31 октября, 2018 Опубликовано 31 октября, 2018 · Жалоба Приветствую! On 2/27/2013 at 2:50 PM, troiden said: Если говорить о Xilinx, то там у каждого блока памяти есть выбор из 3 режимов работы при одновременном чтении и записи ( WRITE_FIRST, READ_FIRST и NO_CHANGE ), который и определяет, как будет разруливаться коллизия. Это справедливо только для синхронного режима работы памяти - при асинхронном (при разных тактовых на портах) одновременные запись и чтение по одному и тому же адресу приведет к неопределенным данным чтения. 14 minutes ago, ffilin said: Мне нужна такая двух портовая оперативная память с асинхронным доступом, для решения нескольких задач. ... Для всех этих задач достаточно "виртуальной" дву/много-портовости - достаточно разнести во времени циклы чтения/записи на обычной памяти и ни каких конфликтов не будет. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 3 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба On 2/22/2013 at 12:30 PM, shide_3 said: ведь в простой регистр я никогда ничего не записываю, в момент когда его читаю Разве? always @ (posedge clock) begin reg2 <= reg1; reg1 <= input_data; end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба 14 часов назад, ffilin сказал: Мне нужна такая двух портовая оперативная память с асинхронным доступом, для решения нескольких задач. Один порт только для записи, второй только для считывания. Без всяких там колизих Первая это сделать что то типа видео карты. На вход с тюнера поступает сигнал оцифровывается с одним форматом количество кадров в секунду и количество точек в строке. А выводится на монитор в реальном времени в другом формате, с другой частотой кадров. Вторая это сделать Цифровой осциллограф для гео радара, сигнал поступает, записывается в память, с АЦП быстро, а обрабатывается контроллером мелено. Третья сделать что то типа светодиодного 3D тетриса, то есть объяденить идею тетриса на матричных светодиодах и пару 8 х 8 х 8 стоящих друг на друге 3D кубов. двух портовая память нужна чтобы увеличить частоту динамической индикации и разгрузить контроллер. то есть скрестить Все отлично, только вот я что-то никакой "двухпортовости" не вижу. Обычная память с раздельными входами и выходами и одной шиной адреса... И потому там об "одновременном чтении и записи" речь и близко не идет. Кто генерирует адрес? Так только один "командоаппарат", который в видеокарте сначала делает развертку видео, а во время обратного хода луча быстренько дергает данные из какого-нибудь ФИФО и пишет их в видеопамять... Цифровой осциллограф - так то-же самое. Он сначала пишет буфер, потом читает... Если пишет на максимальной для ПЛИС скорости, то сначала заполняет весь буфер, а потом... А если пишет медленно, то в паузах между записями успеет и прочитать... А уж в Тетрисах, там вообще окно для чтения можно выделить раз в долю секунды... Вывод. Термин "с асинхронным доступом" здесь применен неверно. Доступ будет вполне в определенные моменты времени, а вот по адресации - к произвольным адресам... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость ffilin 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба по задачам 1 задача две камеры не синхронизированные миниатюрные, стоят на квадракоптере или иной авиа моделе, разнесены на расстояние человеческих глаз, на одной камере красный светофильтр, на другой синезелёный (можно без светофильтров). Сигнал принимается на два приёмника, потом выводится на обычный цветной телевизор или монитор. С красной камеры на красные пиксели, с сине зелёной на синие и зелёные, в одном луче. Частота монитора может не совпадать с частотами камеры. Также можно использовать не аналиграфические очки, а очки с ЖК затемнением, синхронным с отображением изображения каждой камеры. Ни какого буфера FIFO там нет. Также не возможно писать в одну банку памяти считывать с другой, а потом менять их местами. задача 2 сложнее чем кажется. запись и считывание происходит в нелинейных шкалах, т.е. с переменной скоростью дискретизации, нужно для определённых задач. Виртуальная двух поротовость не подойдёт из-за скорости. задача 3. Ролики с 3D кубом снимают при выключенном свете. Это не из за того что слабо светится, а из-за мерцания при динамической индикации. При выключенном свете выдержка увеличивается и мерцания на камере не видно. Если сделать частоту выше, то будет более приличное видео, и вообще более высокая частота отображения делает свечение более "мягким". Лучше скажите где найти шуструю двух портовую асинхронную память, а то работал только SRAM а именно с AS7C256A Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба Приветствую! 28 minutes ago, ffilin said: по задачам ... Лучше скажите где найти шуструю двух портовую асинхронную память, а то работал только SRAM а именно с AS7C256A Вы для начала определитесь на сколько шустрая память вам нужна и какого размера а потом уж искать беритесь. Когда будет конкретика требований к пропускной полосе, тип и режимы работы по портам, тогда и можно судить подойдет ли виртуальная много-портовость или потребуется "железная" DP-RAM. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость ffilin 17 ноября, 2018 Опубликовано 17 ноября, 2018 · Жалоба Есть двух портовая память на 1К байт CY7C130 есть ещё на 1,2,4 килобайта IDT7130, IDT7132, IDT7134 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 18 ноября, 2018 Опубликовано 18 ноября, 2018 (изменено) · Жалоба On 10/31/2018 at 9:02 PM, ffilin said: Мне нужна такая двух портовая оперативная память с асинхронным доступом, для решения нескольких задач. Один порт только для записи, второй только для считывания. Без всяких там колизих Первая это сделать что то типа видео карты. На вход с тюнера поступает сигнал оцифровывается с одним форматом количество кадров в секунду и количество точек в строке. А выводится на монитор в реальном времени в другом формате, с другой частотой кадров. Зачем усложнять то что давно решено с использованием плис и ддр - xilinx ip vdma с 3-мя буферами в ддр делает это на ура. Практически готовое решение расписано в рефдизайнах для досок кзаленса. Сам так конвертил цифровой видеопоток с гигабитной оптики в различные разрешения для обычных мониторов с dvi. Изменено 19 ноября, 2018 пользователем fguy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться