|
MicroBlaze (Vivado 2015.1), beginner questions |
|
|
|
Aug 11 2015, 10:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования? PS Судя по тому, что память не читается, так делать нельзя?
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2015, 13:08
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(doom13 @ Aug 11 2015, 13:31)  В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования?
PS Судя по тому, что память не читается, так делать нельзя? Я что то не понял. Почему ( зачем ) используется ДВА "процессор систем ресет" ??? и до кучи две тактовых clock и mem_clk ??? ps "в теории" axi-шина допускает использование различных тактовых на своих шинах. однако я не помню (надо читать) какие они должны быть (тактовые) кратные ? или совсем асихнхронные ?
|
|
|
|
|
Aug 12 2015, 06:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Alex77 @ Aug 11 2015, 16:08)  Я что то не понял. Почему ( зачем ) используется ДВА "процессор систем ресет" ??? и до кучи две тактовых clock и mem_clk ??? В проекте используется PCIe мост, который работает от одного источника тактирования, а вся остальная периферия (Timer, GPIO, ...) от другого. Через AXI Interconnect мост имеет доступ к регистрам GPIO, Timer и всё нормально работает. MicroBlaze имеет общий источник тактирования со всей периферией и прекрасно с ней работает. Начал добавлять в систему CDMA и задумался, правильно ли что на AXI мастер и слейв находятся в разных клоковых доменах? Цитата(Alex77 @ Aug 11 2015, 16:08)  ps "в теории" axi-шина допускает использование различных тактовых на своих шинах. однако я не помню (надо читать) какие они должны быть (тактовые) кратные ? или совсем асихнхронные ? Тут у меня используются одинаковые частоты, но от разных генераторов.
|
|
|
|
|
Aug 12 2015, 07:28
|

Участник

Группа: Участник
Сообщений: 52
Регистрация: 5-05-05
Из: Санкт-Петербург
Пользователь №: 4 756

|
Цитата(doom13 @ Aug 11 2015, 13:31)  В системе есть память, которая тактируется от отдельного генератора. MicroBlaze и вся остальная система тактируется от другого генератора. MicroBlaze через блок AXI Interconnect имеет доступ к данной памяти. Учитывает ли блок AXI Interconnect, что в системе два источника тактирования? PS Судя по тому, что память не читается, так делать нельзя? Вообще-то работать должно и интерконнект должен все учитывать. В плане исследования можно открыть "плюсиком" сам блок интерконнекта и его составляющие и посмотреть где он вставил клок конвертеры, а где еще чего (Это я в соседней теме негодовал, что вивадо ругается на xdc этих самых конвертеров).
Потом, можно посмотреть на Synthesis - Report Clock Interaction. За последние дни я уже успел столкнуться с ситуацией, когда одно из периферийных устройств подвешивало, при обращении к нему, Микроблейз. Пересобрал проект заново - все работает. Возможно где-то что-то изменил по мелочи, а может эффект сборки с чистого листа. (Чистить директории по Вашему совету пока не пробовал). Система у меня аналогичная: PCIe (ядро 2.6), DMA (будет), Ethernet. В предыдущей версии Вивадо сталкивался с ситуацией, когда во время работы над периферией, при уменьшении/увеличении количества портов в блоке интерконнект внешне все нормально, а внутри порты оставались подвешенными в воздухе. Еще обратите внимание, что в интерконнекте в настройках можно FIFO добавлять для отдельных портов, что может быть полезным при различных частотах Master/Slave.
|
|
|
|
|
Aug 12 2015, 08:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(kaktus @ Aug 12 2015, 10:28)  Вообще-то работать должно и интерконнект должен все учитывать. В плане исследования можно открыть "плюсиком" сам блок интерконнекта и его составляющие и посмотреть где он вставил клок конвертеры, а где еще чего (Это я в соседней теме негодовал, что вивадо ругается на xdc этих самых конвертеров). Да, спасибо, клок конверторы ставит. Похоже, это опять был какой-то фокус Vivado + SDK. Удалил всё из папки .sdk, пересобрал и экспортировал новое железо - работает, память читает. Цитата(kaktus @ Aug 12 2015, 10:28)  Потом, можно посмотреть на Synthesis - Report Clock Interaction. За последние дни я уже успел столкнуться с ситуацией, когда одно из периферийных устройств подвешивало, при обращении к нему, Микроблейз. Пересобрал проект заново - все работает. Возможно где-то что-то изменил по мелочи, а может эффект сборки с чистого листа. (Чистить директории по Вашему совету пока не пробовал). Система у меня аналогичная: PCIe (ядро 2.6), DMA (будет), Ethernet. В предыдущей версии Вивадо сталкивался с ситуацией, когда во время работы над периферией, при уменьшении/увеличении количества портов в блоке интерконнект внешне все нормально, а внутри порты оставались подвешенными в воздухе. Вот у меня ситуация с подвисанием MicroBlaze получалась при обращении к памяти для системы приведённой на рисунке выше. Её собрал для проверки (на чём-то простом), как будет работать при наличии разных источников тактирования в системе. Цитата(kaktus @ Aug 12 2015, 10:28)  Еще обратите внимание, что в интерконнекте в настройках можно FIFO добавлять для отдельных портов, что может быть полезным при различных частотах Master/Slave. Спасибо, учту такую возможность.
|
|
|
|
|
Aug 26 2015, 15:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(dm.pogrebnoy @ Aug 20 2015, 21:21)  AXI DMA (не путать с CDMA и VDMA) имеет два канала AXI Stream (туда-обратно) и соответствующие каналы MM в память. Либо есть AXI4-Stream FIFO, тоже должно вам подойти. Нашёл эти ядра, спасибо, что-то сразу не разобрался с их настройками. В системе уже есть ядро CDMA, получится ли с его помощью забирать данные из FIFO (AXI4-Stream FIFO v4.1)? Смотрю доку (pg080) там какая-то хитрая последовательность для чтения, или тут просто перед запуском CDMA читаем нужные регистры FIFO, а потом DMA выгребает данные? Возможно, лучше разобраться и использовать для этой задачи (сообщение #36) DMA?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|