Запись данных в память на разных часах - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу записать данные в общую память, поступающую из разных часовых доменов, как я могу это сделать?У меня есть один общий блок памяти, и этот блок памяти работает на часах, имеющих частоту clk.Теперь я хочу записать данные в эту память, поступающие из разных часовых доменов, например, clk1, clk2, clk3, clk4 и т. Д. Как это сделать?

Я думал об использовании FIFO для каждого тактового домена, т. Е. В 1-й FIFO есть входClock CLK1 и вывод на CLK (так же, как память), 2-й FIFO будет иметь входные часы CLK2 и вывод на CLK (так же, как память) и т. д. Но, похоже, мой дизайн будет перерос, если я буду использовать большое количество FIFO,Пожалуйста, скажите мне правильный подход.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Для безопасной передачи единиц данных (байтов, слов и т. Д.) Между тактовыми доменами единственное безопасное решение - асинхронный FIFO. Обратите внимание, что FIFO не обязательно должен быть глубоким, но в этом случае вам может понадобиться управление потоком.
В любом случае вам может понадобиться управление потоком данных, так как у вас есть много источников, все обращаются к одной и той же памяти.

Но, похоже, мой дизайн перерастет, если я буду использовать большое количество FIFO.

Тогда у вас проблема с дизайном: ваша FPGA недостаточно велика, чтобы реализовать выбранное вами решение. Так что либо перейдите на более крупную ПЛИС или найдите принципиально другое решение вашей проблемы.

0 голосов
/ 29 апреля 2019

ОЗУ может быть записано по тактовому домену A и считано по тактовому домену B с разными тактовыми импульсами (ОЗУ с двумя портами):

http://www.asic -world.com / examples / verilog / ram_dp_ar_aw.html

Эта оперативная память должна использоваться некоторым контроллером в качестве асинхронного FIFO.

Многие fpga имеют выделенные компоненты оперативной памяти, например: UFM Altera, Xilnx BRAM, кластерный блок памяти Cypress Delta39K и т. Д.

Измените устройство, если у вас есть проблемы с большим FIFO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...