реклама на сайте
подробности

 
 
> MicroBlaze + DDR3 + my_IP на AXI, подключение к AXI
zuuuuk
сообщение May 5 2013, 15:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Добрый день.
У меня система на SPARTAN6 Mbz + MCB_DDR3 на шине AXI.
Я хочу подключить свой IP блок ко второму порту MCB и получить доступ к DDR3.
т.е. мой IP блок должен быть мастером. Для чтения данных из DDR3.

Подскажите,пожалуйста, какой-нибудь пример подключения своего IP к шине AXI.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jun 14 2013, 13:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



сдается мне у кого-то полная путаница в головеsm.gif..


создайте сначала компонент без браст записи, для акси лайт шины, для слейв модуля.

сделайте так чтобы из проца вы в него писали, а от этого загорались лампочки, и чтобы вы нажимали кнопочки, а от этого по заданному адресу данные менялись. И вы все поймете как оно устроено.

глобально компонент это

1. Модуль обертка - который вешается на шину внутри содержит:
1.1 вспомогательный модуль который работает с шиной и преобразует ее сложные сигналы в понятный набор сигналов
Bus2IP - бас ту айпи, от шины к вам и
IP2Bus - обратно
клоки чипселекты, и прочие вспомогательные сигналы.
1.2 Пользовательский модуль, куда заведены эти понятные сигналы

Последний сделан для вас, для редактирования. Изначально он не содержит ничего кроме набора регистров с прописанным примером их чтения и записи.

Дальше вы в него пихаете компоненты, написанные вами прочие модули, и все все все что вам надо. И делаете управление всем этим через регистры. И выдачу данных обратно через регистры. и все.

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

Также в модуль обертки можно добавить еще пользовательский модуль если это надо...

Только надо понимать что это все для взаимодействия вашего модуля с микроблайзом, а если микроблайза нет, то и с шиной париться не надо, и можно писать обычный плисовый не процессорный модуль, что иногда бывает проще... без регистров, оберток и прочеее
Go to the top of the page
 
+Quote Post
serg_k1
сообщение Jun 19 2013, 12:21
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 21-03-07
Пользователь №: 26 368



Цитата(Golikov A. @ Jun 14 2013, 17:59) *
глобально компонент это
1. Модуль обертка - который вешается на шину внутри содержит:
1.1 вспомогательный модуль который работает с шиной и преобразует ее сложные сигналы в понятный набор сигналов
Bus2IP - бас ту айпи, от шины к вам и
IP2Bus - обратно
клоки чипселекты, и прочие вспомогательные сигналы.
1.2 Пользовательский модуль, куда заведены эти понятные сигналы

Последний сделан для вас, для редактирования. Изначально он не содержит ничего кроме набора регистров с прописанным примером их чтения и записи.

Только надо понимать что это все для взаимодействия вашего модуля с микроблайзом, а если микроблайза нет, то и с шиной париться не надо, и можно писать обычный плисовый не процессорный модуль, что иногда бывает проще... без регистров, оберток и прочеее

помогите разобраться.
1.модуль ,такой как есть, может работать только по командам от процессора?
2.если да и я хочу чтобы он работал полностью извне, то нужно вот этими сигналами управлять работой.
Bus2IP_Clk : in std_logic;
Bus2IP_Resetn : in std_logic;
Bus2IP_Data : in std_logic_vector(C_SLV_DWIDTH-1 downto 0);
Bus2IP_BE : in std_logic_vector(C_SLV_DWIDTH/8-1 downto 0);
Bus2IP_RdCE : in std_logic_vector(C_NUM_REG-1 downto 0);
Bus2IP_WrCE : in std_logic_vector(C_NUM_REG-1 downto 0);
IP2Bus_Data : out std_logic_vector(C_SLV_DWIDTH-1 downto 0);
IP2Bus_RdAck : out std_logic;
IP2Bus_WrAck : out std_logic;
IP2Bus_Error : out std_logic;
и через них получить доступ к регистрам?
Go to the top of the page
 
+Quote Post
akorud
сообщение Jun 19 2013, 13:25
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(serg_k1 @ Jun 19 2013, 14:21) *
помогите разобраться.
1.модуль ,такой как есть, может работать только по командам от процессора?

Если вы о том примере - да
Цитата(serg_k1 @ Jun 19 2013, 14:21) *
2.если да и я хочу чтобы он работал полностью извне, то нужно вот этими сигналами управлять работой.

Можно конечно, но зачем такое извращение?
Если вам нужно извне управлять - заведите свои сигналы управления модуль.
А что касается регистров - все это условно.
Например FSM bus master - ему откуда-то надо знать что можно начинать работу, откуда и сколько писать или читать. В случае если командует процессор - регистры очевидное решение. Но у вас же своя задача и свои сигналы.... У меня например адрес и размер были вообще зафиксированы, команда "старт" приходила от таймера и регистр я оставил один - для подсчета байтов.
Но никто вам не мешает сделать свой мастер который через упомянутые сигналы будет писать/читать регистры.

Сообщение отредактировал akorud - Jun 19 2013, 13:26
Go to the top of the page
 
+Quote Post
serg_k1
сообщение Jun 19 2013, 14:05
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 21-03-07
Пользователь №: 26 368



Цитата(akorud @ Jun 19 2013, 17:25) *
Если вы о том примере - да

Можно конечно, но зачем такое извращение?
Если вам нужно извне управлять - заведите свои сигналы управления модуль.
А что касается регистров - все это условно.
Например FSM bus master - ему откуда-то надо знать что можно начинать работу, откуда и сколько писать или читать. В случае если командует процессор - регистры очевидное решение. Но у вас же своя задача и свои сигналы.... У меня например адрес и размер были вообще зафиксированы, команда "старт" приходила от таймера и регистр я оставил один - для подсчета байтов.
Но никто вам не мешает сделать свой мастер который через упомянутые сигналы будет писать/читать регистры.

я записываю в фифо данные. они не считываются пока нет команды на запуск. и что можно прямо так
mst_reg(0) <= x"0a"; -- Control Register 0x02= single data beat 0x0a=Burst Assertion Control+Write Request Control
mst_reg(1) <= x"01"; -- Status Register
mst_reg(4) <= x"80"; -- Target Address
mst_reg(5) <= x"00";
mst_reg(6) <= x"00";
mst_reg(7) <= x"00";
mst_reg(8) <= x"00"; -- Master BE
mst_reg(9) <= x"00";
mst_reg(12) <= x"04"; -- Length Register -- bit 0-3 - Reserved
mst_reg(13) <= x"00"; -- bit 4-15 - Transfer Length
mst_reg(14) <= x"00";
mst_reg(15) <= x"0a"; -- Go Register



Цитата(akorud @ Jun 19 2013, 17:25) *
Но никто вам не мешает сделать свой мастер который через упомянутые сигналы будет писать/читать регистры.

т.е. именно те сигналы , которые я перечислил? с сигналом Bus2IP_BE не понятно ведь он завязан с Bus2IP_Data при записи в регистры. Не могли бы пояснить как?
Go to the top of the page
 
+Quote Post
akorud
сообщение Jun 19 2013, 14:27
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(serg_k1 @ Jun 19 2013, 16:05) *
т.е. именно те сигналы , которые я перечислил? с сигналом Bus2IP_BE не понятно ведь он завязан с Bus2IP_Data при записи в регистры. Не могли бы пояснить как?

BE - Byte Enable. Т.е. если Bus2IP_Data шире 8 бит, то BE указывает какие из байтов несут данные (если ширина данных < ширины Bus2IP_Data).
Типичные сценарии:
- запись 8-битного значения на 32-битной шине;
- при burst передаче если размер burst в байтах не кратный 4 (на 32-битной шине) - то при передаче последнего 32-битного слова не все биты Bus2IP_BE будут 1.
Если у вас все данные размерности шины можно записать туда все 1 и не париться.

Сообщение отредактировал akorud - Jun 19 2013, 14:29
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zuuuuk   MicroBlaze + DDR3 + my_IP на AXI   May 5 2013, 15:44
- - akorud   Цитата(zuuuuk @ May 5 2013, 17:44) Добрый...   May 5 2013, 18:47
|- - serg_k1   Цитата(akorud @ May 5 2013, 22:47) Лучше ...   Jun 7 2013, 10:11
|- - aabmail   Цитата(serg_k1 @ Jun 7 2013, 14:11) если ...   Jun 7 2013, 12:19
|- - serg_k1   Цитата(aabmail @ Jun 7 2013, 16:19) Могу ...   Jun 10 2013, 06:33
|- - aabmail   Цитата(serg_k1 @ Jun 10 2013, 10:33) было...   Jun 11 2013, 08:01
|- - serg_k1   Цитата(aabmail @ Jun 11 2013, 12:01) Откр...   Jun 11 2013, 09:35
|- - aabmail   Цитата(serg_k1 @ Jun 11 2013, 13:35) все ...   Jun 11 2013, 09:54
|- - akorud   Цитата(aabmail @ Jun 11 2013, 11:54) Ваш ...   Jun 11 2013, 10:52
||- - aabmail   Цитата(akorud @ Jun 11 2013, 14:52) Подде...   Jun 11 2013, 16:42
||- - serg_k1   Цитата500 слов раз в секунду или чаще? 32р 400 сло...   Jun 13 2013, 05:36
||- - aabmail   Цитата(serg_k1 @ Jun 13 2013, 09:36) 32р ...   Jun 13 2013, 09:56
||- - serg_k1   Цитата(aabmail @ Jun 13 2013, 13:56) Разъ...   Jun 13 2013, 11:52
||- - aabmail   Цитата(serg_k1 @ Jun 13 2013, 15:52) 32р ...   Jun 13 2013, 15:34
||- - serg_k1   Цитата(aabmail @ Jun 13 2013, 19:34) 3. к...   Jun 14 2013, 06:42
|- - serg_k1   Цитата(aabmail @ Jun 11 2013, 13:54) Ваш ...   Jun 11 2013, 12:11
- - Golikov A.   А что если так. Делаете микроблайз в нем включае...   Jun 10 2013, 10:44
|- - serg_k1   Цитата(Golikov A. @ Jun 10 2013, 14:44) А...   Jun 10 2013, 12:24
- - Golikov A.   так вы что хотите написать свой акси конектор что ...   Jun 10 2013, 14:07
|- - serg_k1   Цитата(Golikov A. @ Jun 10 2013, 18:07) т...   Jun 11 2013, 06:43
- - Golikov A.   я делаю визардом из XPS компонент, обычно с верило...   Jun 12 2013, 07:42
- - Golikov A.   на гигабитном езернете, в крайне не оптимальном ре...   Jun 13 2013, 17:19
- - Golikov A.   такс... ФИФО это компонент с входом и выходом пар...   Jun 14 2013, 07:00
|- - serg_k1   Цитата(Golikov A. @ Jun 14 2013, 11:00) Д...   Jun 14 2013, 07:54
|- - akorud   Цитата(serg_k1 @ Jun 14 2013, 09:54) созд...   Jun 16 2013, 20:54
|- - aabmail   Цитата(akorud @ Jun 17 2013, 00:54) Ну та...   Jun 17 2013, 10:09
|- - akorud   Цитата(aabmail @ Jun 17 2013, 12:09) Обыч...   Jun 17 2013, 13:26
- - aabmail   ЦитатаКогда на входе строба записи появляется един...   Jun 14 2013, 08:04
- - Golikov A.   то данные из data_in на этом же цикле записываются...   Jun 14 2013, 10:36
|- - serg_k1   Цитата(Golikov A. @ Jun 14 2013, 14:36) я...   Jun 14 2013, 12:53
|- - serg_k1   Цитата(Golikov A. @ Jun 14 2013, 17:59) ...   Jun 14 2013, 14:11
|- - serg_k1   Цитата(Golikov A. @ Jun 14 2013, 17:59) г...   Jun 17 2013, 13:25
|- - serg_k1   Цитата(akorud @ Jun 19 2013, 18:27) BE - ...   Jun 20 2013, 13:53
|- - akorud   Не соглашусь, ну на то тут и форум чтобы можно был...   Jun 20 2013, 15:51
||- - TimeToSleep   Цитата(akorud @ Jun 20 2013, 16:51) Зачем...   Feb 12 2016, 07:16
||- - akorud   Цитата(TimeToSleep @ Feb 12 2016, 08:16) ...   Feb 13 2016, 15:45
||- - TimeToSleep   Цитата(akorud @ Feb 13 2016, 16:45) Если ...   Feb 17 2016, 14:34
||- - TimeToSleep   Цитата(akorud @ Jun 19 2013, 15:27) BE - ...   Feb 18 2016, 07:40
||- - akorud   Цитата(TimeToSleep @ Feb 18 2016, 08:40) ...   Feb 22 2016, 10:43
||- - TimeToSleep   Цитата(akorud @ Feb 22 2016, 11:43) 1. По...   Feb 25 2016, 07:00
||- - akorud   Цитата(TimeToSleep @ Feb 25 2016, 08:00) ...   Feb 25 2016, 09:48
||- - TimeToSleep   Цитата(akorud @ Feb 25 2016, 10:48) Если ...   Feb 25 2016, 12:40
|||- - akorud   Да, оно.   Feb 25 2016, 18:58
||- - TimeToSleep   Цитата(akorud @ Feb 25 2016, 12:48) Далее...   Feb 26 2016, 07:11
||- - akorud   Цитата(TimeToSleep @ Feb 26 2016, 08:11) ...   Feb 26 2016, 10:17
||- - TimeToSleep   Цитата(akorud @ Feb 26 2016, 13:17) Что-т...   Mar 9 2016, 06:04
||- - TimeToSleep   Цитата(akorud @ Feb 26 2016, 13:17) Что-т...   Mar 11 2016, 06:13
|- - akorud   Цитата(serg_k1 @ Jun 20 2013, 15:53) спас...   Jun 21 2013, 06:58
- - Golikov A.   да ничего там не условно. В модуль входит шина АК...   Jun 17 2013, 19:47
- - Golikov A.   чет я не понимаю. вроде бы 2 задачи 1. У вас модул...   Jun 20 2013, 05:01
|- - akorud   Цитата(Golikov A. @ Jun 20 2013, 07:01) ....   Jun 20 2013, 08:18
- - Golikov A.   каким мастером? как можно управлять мастером? я т...   Jun 20 2013, 10:13
- - Golikov A.   вообщем это делается так. Есть микроблайз с ДДР, ...   Jun 20 2013, 15:02
- - Golikov A.   Да я что-то уже путаюсь. Мне кажется что топикстар...   Jun 20 2013, 18:41
|- - serg_k1   Цитата(Golikov A. @ Jun 20 2013, 22:41) Д...   Jun 24 2013, 05:43
|- - akorud   Как то все очень запутано - кажется ТС пробует ...   Jun 24 2013, 10:03
|- - serg_k1   Цитата(akorud @ Jun 24 2013, 14:03) Как т...   Jun 24 2013, 14:03
||- - akorud   Цитата(serg_k1 @ Jun 24 2013, 16:03) я на...   Jun 24 2013, 14:38
||- - serg_k1   Цитата(akorud @ Jun 24 2013, 18:38) Да, о...   Jun 25 2013, 11:14
||- - serg_k1   Цитата(serg_k1 @ Jun 25 2013, 15:14) или ...   Jun 25 2013, 12:29
||- - akorud   Цитата(serg_k1 @ Jun 25 2013, 13:14) .tx_...   Jun 25 2013, 13:28
|- - TimeToSleep   Цитата(akorud @ Jun 24 2013, 11:03) Я бы ...   Feb 19 2016, 12:55
- - TimeToSleep   Здравствуйте, akorud . Тема достаточно забытая, н...   Feb 11 2016, 14:20
- - TimeToSleep   Подскажите, пожалуйста, сталкивался ли кто-то с те...   Mar 18 2016, 06:03


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01535 секунд с 7
ELECTRONIX ©2004-2016