doom13 0 11 августа, 2015 Опубликовано 11 августа, 2015 · Жалоба В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования? PS Судя по тому, что память не читается, так делать нельзя? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 11 августа, 2015 Опубликовано 11 августа, 2015 · Жалоба В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования? PS Судя по тому, что память не читается, так делать нельзя? Я что то не понял. Почему ( зачем ) используется ДВА "процессор систем ресет" ??? и до кучи две тактовых clock и mem_clk ??? ps "в теории" axi-шина допускает использование различных тактовых на своих шинах. однако я не помню (надо читать) какие они должны быть (тактовые) кратные ? или совсем асихнхронные ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба Я что то не понял. Почему ( зачем ) используется ДВА "процессор систем ресет" ??? и до кучи две тактовых clock и mem_clk ??? В проекте используется PCIe мост, который работает от одного источника тактирования, а вся остальная периферия (Timer, GPIO, ...) от другого. Через AXI Interconnect мост имеет доступ к регистрам GPIO, Timer и всё нормально работает. MicroBlaze имеет общий источник тактирования со всей периферией и прекрасно с ней работает. Начал добавлять в систему CDMA и задумался, правильно ли что на AXI мастер и слейв находятся в разных клоковых доменах? ps "в теории" axi-шина допускает использование различных тактовых на своих шинах. однако я не помню (надо читать) какие они должны быть (тактовые) кратные ? или совсем асихнхронные ? Тут у меня используются одинаковые частоты, но от разных генераторов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kaktus 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования? PS Судя по тому, что память не читается, так делать нельзя? Вообще-то работать должно и интерконнект должен все учитывать. В плане исследования можно открыть "плюсиком" сам блок интерконнекта и его составляющие и посмотреть где он вставил клок конвертеры, а где еще чего (Это я в соседней теме негодовал, что вивадо ругается на xdc этих самых конвертеров). Потом, можно посмотреть на Synthesis - Report Clock Interaction. За последние дни я уже успел столкнуться с ситуацией, когда одно из периферийных устройств подвешивало, при обращении к нему, Микроблейз. Пересобрал проект заново - все работает. Возможно где-то что-то изменил по мелочи, а может эффект сборки с чистого листа. (Чистить директории по Вашему совету пока не пробовал). Система у меня аналогичная: PCIe (ядро 2.6), DMA (будет), Ethernet. В предыдущей версии Вивадо сталкивался с ситуацией, когда во время работы над периферией, при уменьшении/увеличении количества портов в блоке интерконнект внешне все нормально, а внутри порты оставались подвешенными в воздухе. Еще обратите внимание, что в интерконнекте в настройках можно FIFO добавлять для отдельных портов, что может быть полезным при различных частотах Master/Slave. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба Вообще-то работать должно и интерконнект должен все учитывать. В плане исследования можно открыть "плюсиком" сам блок интерконнекта и его составляющие и посмотреть где он вставил клок конвертеры, а где еще чего (Это я в соседней теме негодовал, что вивадо ругается на xdc этих самых конвертеров). Да, спасибо, клок конверторы ставит. Похоже, это опять был какой-то фокус Vivado + SDK. Удалил всё из папки .sdk, пересобрал и экспортировал новое железо - работает, память читает. Потом, можно посмотреть на Synthesis - Report Clock Interaction. За последние дни я уже успел столкнуться с ситуацией, когда одно из периферийных устройств подвешивало, при обращении к нему, Микроблейз. Пересобрал проект заново - все работает. Возможно где-то что-то изменил по мелочи, а может эффект сборки с чистого листа. (Чистить директории по Вашему совету пока не пробовал). Система у меня аналогичная: PCIe (ядро 2.6), DMA (будет), Ethernet. В предыдущей версии Вивадо сталкивался с ситуацией, когда во время работы над периферией, при уменьшении/увеличении количества портов в блоке интерконнект внешне все нормально, а внутри порты оставались подвешенными в воздухе. Вот у меня ситуация с подвисанием MicroBlaze получалась при обращении к памяти для системы приведённой на рисунке выше. Её собрал для проверки (на чём-то простом), как будет работать при наличии разных источников тактирования в системе. Еще обратите внимание, что в интерконнекте в настройках можно FIFO добавлять для отдельных портов, что может быть полезным при различных частотах Master/Slave. Спасибо, учту такую возможность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 20 августа, 2015 Опубликовано 20 августа, 2015 · Жалоба Есть передатчик AXI-Stream трафика, работает на частоте X MHz. Хотел даннае от него запихнуть в FIFO, а из FIFO их забирать при помощи CDMA на частоте Y MHz. Посмотрел все варианты FIFO в IP Catalog, но нужного мне не нашёл. У всех один порт - slave (вход данных), второй - master (выход данных). Нужен совет, что использовать в данной ситуации? Как вообще FIFO повесить на AXI Interconnect? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 20 августа, 2015 Опубликовано 20 августа, 2015 · Жалоба Есть передатчик AXI-Stream трафика, работает на частоте X MHz. Хотел даннае от него запихнуть в FIFO, а из FIFO их забирать при помощи CDMA на частоте Y MHz. Посмотрел все варианты FIFO в IP Catalog, но нужного мне не нашёл. У всех один порт - slave (вход данных), второй - master (выход данных). Нужен совет, что использовать в данной ситуации? Как вообще FIFO повесить на AXI Interconnect? AXI DMA (не путать с CDMA и VDMA) имеет два канала AXI Stream (туда-обратно) и соответствующие каналы MM в память. Либо есть AXI4-Stream FIFO, тоже должно вам подойти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 26 августа, 2015 Опубликовано 26 августа, 2015 · Жалоба AXI DMA (не путать с CDMA и VDMA) имеет два канала AXI Stream (туда-обратно) и соответствующие каналы MM в память. Либо есть AXI4-Stream FIFO, тоже должно вам подойти. Нашёл эти ядра, спасибо, что-то сразу не разобрался с их настройками. В системе уже есть ядро CDMA, получится ли с его помощью забирать данные из FIFO (AXI4-Stream FIFO v4.1)? Смотрю доку (pg080) там какая-то хитрая последовательность для чтения, или тут просто перед запуском CDMA читаем нужные регистры FIFO, а потом DMA выгребает данные? Возможно, лучше разобраться и использовать для этой задачи (сообщение #36) DMA? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться