Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MicroBlaze + DDR3 + my_IP на AXI
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Страницы: 1, 2
serg_k1
Цитата(akorud @ Jun 24 2013, 18:38) *
Да, он.
Простой рабочий пример (только на передачу).
Сигналы ETHERNET_* - прямо на пины PHY. Не забудьте phy_reset_n установить в 1 так он active low.
clk_125M_tx - ваша забота; clk_125M_rx - придет от PHY.

в примере IP Core головной файл core_eth_example_design.v, связанный с PHY и с core_eth_fifo_block.v , который включает в себя core_eth_ten_100_1g_eth_fifo.v , включающий core_eth_tx_client_fifo.v и core_eth_rx_client_fifo.v, и связанный с pat_gen. в вашем примере как бы часть core_eth_fifo_block.v который стал головным и связан с PHY и он должен включать в себя core_eth_tx_client_fifo.v и core_eth_rx_client_fifo.v . это нужно сделать? и вместо pat_gen по axi stream через
.tx_axi_clk(clk_125M_tx),
.tx_axis_mac_tdata(eth_axis_tdata),
.tx_axis_mac_tvalid(eth_axis_tvalid),
.tx_axis_mac_tlast(eth_axis_tlast),
.tx_axis_mac_tuser(1'b0),
.tx_axis_mac_tready(eth_axis_tready),
нужно подключить пакет для передачи?
пакет это преамбула ? , разделитель?, адрес приемника(4 или 6 ?), адрес передатчика(4 или 6 ?), длина , данные, crc.
или это самодостаточный модуль как бы core_eth.v, открываемый из core_eth.xco. и к нему подключаться также по axi stream по тем же сигналам.
и еще вопрос по axi stream. данные записываются пока не появится tready под каждый клок новый байт.если не успеваю сформировать новый байт , то выдавать tvalid. а tlast - конец пакета и если нет tready можно писать следующий.
serg_k1
Цитата(serg_k1 @ Jun 25 2013, 15:14) *
или это самодостаточный модуль как бы core_eth.v, открываемый из core_eth.xco.

с этим вроде бы разобрался. - это модуль , в который уже включена декларация ядра из core_eth.veo.
akorud
Цитата(serg_k1 @ Jun 25 2013, 13:14) *
.tx_axi_clk(clk_125M_tx),
.tx_axis_mac_tdata(eth_axis_tdata),
.tx_axis_mac_tvalid(eth_axis_tvalid),
.tx_axis_mac_tlast(eth_axis_tlast),
.tx_axis_mac_tuser(1'b0),
.tx_axis_mac_tready(eth_axis_tready),
нужно подключить пакет для передачи?
пакет это преамбула ? , разделитель?, адрес приемника(4 или 6 ?), адрес передатчика(4 или 6 ?), длина , данные, crc.
или это самодостаточный модуль как бы core_eth.v, открываемый из core_eth.xco. и к нему подключаться также по axi stream по тем же сигналам.
и еще вопрос по axi stream. данные записываются пока не появится tready под каждый клок новый байт.если не успеваю сформировать новый байт , то выдавать tvalid. а tlast - конец пакета и если нет tready можно писать следующий.

Я пример не смотрел, так что там не помогу.
Пакет - все что угодно, что выглядит как более-менее правильный Ethernet frame. Начинается от destination MAC (6). Т.е. 14 байт заголовка и свои данные. Я заголовок просто делал 0 1 2 3 ... 0xd - проходило.
Про AXI-stream - вообще-то спецификация открытая, но вкратце - байт считается переданным если tvalid = 1 и tready = 1. Если приемник не готов принимать - он выставит tready = 0, если вы не готовы передавать - устанавливаете tvalid = 0. tlast - означает последний байт пакета (устанавливается вами).
TimeToSleep
Здравствуйте, akorud .
Тема достаточно забытая, но я столкнулся с подобной проблемой сейчас.
Задача состоит в том, чтобы по сути создать своего мастера на шину AXI руками.
Вы очень продвинутый человек по этой тематике, насколько я понял из сообщений, и я прошу вашей помощи.

Задача изначально сводится к тому, чтобы по нажатию кнопки загорался светодиод по шине акси от мастера, написанного
в user_logic. Плата KC705 (Kintex 7). Создан microblaze, далее периферия AXI с галочками на мастера и user_logic.
Кнопку естественно завел в юзера, прописал в .mhs и .ucf.
Прочитал также протокол передачи по шине. Шина AXI4 (создал обычную, но он вроде как переделал её в Lite).
Это всё делается для освоения мастера на шине, чтобы в будущем управлять устройствами в обход microblaze'a (ускорить его работу,
отвлекая его от ненужной нагрузки).

Я могу менять полностью внутреннюю корку User_logic, так ведь? Каким образом мне нужно выставлять данные на выход шины? Я должен управлять регистром mst_reg (control reg, address, status(?? его самому нужно задавать? ), byte enable,length,go), Задавать биты разрешения mst_read_ack,mst_reg_read_sel, писать данные в фифо внутри user_logic (единичку, чтобы зажегся светодиод). А потом соответственно у меня он сразу и зажгется? (Сделал всё то, что сказал, но оно не сработало sad.gif )


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


Поясните, пожалуйста, поподробнее. Если, например, в последней передаче будет 27 бит информации, то какой будет BE? Он ведь читает лишь с 15 до 0 бита сигнала Bus2IP_Data

Код
        -- be register (byte 8 to 9)
        for byte_index in 4 to 14 loop
          if ( mst_byte_we(byte_index) = '1' ) then
            mst_reg(byte_index) <= Bus2IP_Data(
                                     (byte_index-(byte_index/BE_WIDTH)*BE_WIDTH)*8+7 downto
                                     (byte_index-(byte_index/BE_WIDTH)*BE_WIDTH)*8);
          end if;
        end loop;


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

Цитата(serg_k1 @ Jun 24 2013, 15:03) *
я нашел только Tri_mod_Eth с AXI-stream и в нем там масса модулей...? и если это он , то можно поподробней.



Здравствуйте
Хотел бы подключить и вас к этой теме (указана выше в теме).
Буду очень признателен за помощь

Цитата(Golikov A. @ Jun 17 2013, 20:47) *
да ничего там не условноsm.gif.

В модуль входит шина АКСИ - сложная.
Есть компонент от ксалинкса который сложную акси переделывает в Bus2IP и IP2Bus.

Один от шины в компонент, другой от компонента в шину. Зачем их делать 2 направленными то?
TimeToSleep
Цитата(akorud @ Jun 20 2013, 16:51) *
Зачем ДМА? Зачем 2 порта памяти? Насколько я понял речь идет о 1Gbps - это медленно.
Я сам собственноручно написал модуль принимающий пакеты по ethernet и складывающий в ДДР без участия microblaze. Все чудесно работает с однопортовой ДДР, при частоте шины 50MHz. Где-то тут я уже постил скриншот из XPS.


Доброго времени суток.

Еще у меня возник вопрос по протоколу передачи по AXI4. Он состоит в том, что передаётся сигнал valid совместно с адресом, далее по принятому сигналу ready, начинается чтение данные (передача данных в slave). Затем по принятому сигналу Last (или Last только при Burst передаче?) посылается последний пакет передачи и собственно передача закончилась. Я правильно всё понял? Но сигналы Valid и Ready относятся к топовому модулю axi_master.vhdl, как я могу ими управлять и нужно ли это делать? Если я просто сымитирую выставление адреса, сигнала чтения (запрос на выдачу данных мастером на шину), и данные, зажжется ли в этом случае светодиод?

Помимо этого у меня возник вопрос о работе платы. Я загрузил часть своего проекта, в котором microblaze посредством той же шины AXI управляет другим светодиодом (мигает), (кстати, можно ли два мастера на шине? т.е. Microblaze со своим светодиодом и я, управляя user_logic'ом, другим светодиодом мигать по кнопке посредством той же шины?). Так вот при загрузке проекта на плату kc705(kintex 7) у меня не работают XMD и ChipScope одновременно. Прошерстил множество интернета, но в основном пишут про jumper'ы и про криво поставленные драйвера, у меня с этим проблем нет (ну вроде). Еще говорилось про DIP_Switch и я их выставил на соединение по JTAG. Поэтому не понимаю в чем проблема может быть sad.gif

Прошу вас попытаться помочь с данными проблемами
akorud
Цитата(TimeToSleep @ Feb 12 2016, 08:16) *
Но сигналы Valid и Ready относятся к топовому модулю axi_master.vhdl

Если используется Bus2IP i IP2Bus то о AXI вам, в общем случае, знать не нужно и напрямую управлять ее сигналами тоже. IP2Bus конвертирует канал записи AXI master в "локальную шину", которая по задумке программистов Xilinx проще для понимания. Но они сами уже отказались от таких странностей и в Vivado все куда проще.
Готовый пример AXI master по внешнему сигналу (ваша кнопка) пишет заданные данные по заданному адресу.
А зажжется ли светодиод - никто вам не скажет, так как неизвестно как и куда он подключен.

По второму вопросу ничем помочь не могу, так как не помню использовал ли Chipscope в системах с Microblaze и уж точно не использовал платы KC705.

Да, очень рекомендую пройти Lab 4 из UG940 - вот прямо в режиме "делай раз, делай два" :-)
TimeToSleep
Цитата(akorud @ Feb 13 2016, 16:45) *
Если используется Bus2IP i IP2Bus то о AXI вам, в общем случае, знать не нужно и напрямую управлять ее сигналами тоже. IP2Bus конвертирует канал записи AXI master в "локальную шину", которая по задумке программистов Xilinx проще для понимания. Но они сами уже отказались от таких странностей и в Vivado все куда проще.
Готовый пример AXI master по внешнему сигналу (ваша кнопка) пишет заданные данные по заданному адресу.
А зажжется ли светодиод - никто вам не скажет, так как неизвестно как и куда он подключен.

По второму вопросу ничем помочь не могу, так как не помню использовал ли Chipscope в системах с Microblaze и уж точно не использовал платы KC705.

Да, очень рекомендую пройти Lab 4 из UG940 - вот прямо в режиме "делай раз, делай два" :-)


Т.е. если я напрямую посылаю сигнала на IP2Bus, то это уже означает, что по адресу должны присваиваться данные slave'ом? Если так, то у меня не выставляются данные (светодиод не загорается), может ли быть это связано с тем, что на шине два мастера (microblaze и я)? (Адрес светодиода я узнал из XPS.)
К сожалению, я пользуюсь не Vivado, а ISE Project Navigator в силу того, что мне никто не сможет помочь по вивадо (хотя и по ISE мне не могут помочь с мастером).

Ну ладно. Спасибо.

Хорошо, попробую. Правда там опять же вивадо, но попробую на ISE перенести.
Большое спасибо
TimeToSleep
Цитата(akorud @ Jun 19 2013, 15:27) *
BE - Byte Enable. Т.е. если Bus2IP_Data шире 8 бит, то BE указывает какие из байтов несут данные (если ширина данных < ширины Bus2IP_Data).
Типичные сценарии:
- запись 8-битного значения на 32-битной шине;
- при burst передаче если размер burst в байтах не кратный 4 (на 32-битной шине) - то при передаче последнего 32-битного слова не все биты Bus2IP_BE будут 1.
Если у вас все данные размерности шины можно записать туда все 1 и не париться.


»Поясните, пожалуйста, поподробнее. Если, например, в последней передаче будет 27 бит информации, то какой будет BE? Он ведь читает лишь с 15 до 0 бита сигнала Bus2IP_Data

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



Цитата(akorud @ Feb 13 2016, 16:45) *
1) Если используется Bus2IP i IP2Bus то о AXI вам, в общем случае, знать не нужно и напрямую управлять ее сигналами тоже. IP2Bus конвертирует канал записи AXI master в "локальную шину"


2) Готовый пример AXI master по внешнему сигналу (ваша кнопка) пишет заданные данные по заданному адресу.

3) А зажжется ли светодиод - никто вам не скажет, так как неизвестно как и куда он подключен.


1) В каком плане конвертирует канал записи? То, что я описал выше ("...напрямую посылаю сигнала на IP2Bus, то это уже означает, что по адресу должны...") это относится к этому?

2) Эм. А где этот готовый пример? sm.gif

3) А почему неизвестно, если я в XPS подключил его к одной и той же шине AXI, и знаю адреса этих gpio?
TimeToSleep
Цитата(akorud @ Jun 24 2013, 11:03) *
Я бы сделал (и уже делал) так:
1. берем IP Ethernet стандартный. У него вход данных AXI-stream, проще некуда;
2. Насколько я помню ничего в PHY изменять не надо, он сам стартует в режиме 1Gb Autoneg, я правда делал на KC705 но даже не интересовался какой там PHY.
3. Пишем свой модуль который будет генерировать фиксированный заголовок Ethernet перед каждыми N (например 1500) байтами полезных данных и высылать по AXI-stream.
4. На PC запускаем простейшую программку под Linux принимающую все это через raw socket и далее можно делать что душе угодно - хоть в файл, хоть в UDP, хоть в TCP.
На все - день работы.
Все усложнения (микроблейз например) должны ясно следовать из условий ТЗ, ну или если поиграться хочется и бюджет есть sm.gif

А вы же работали на KC705, если я правильно прочитал пост, разве нет? Поэтому и уточнил, что я на ней же работаю.

По пройденной работе на данный момент:
Изменил структуру внутреннюю, а именно по сигналу с кнопки у меня выставляется адрес, данные (проверил через chipscope), WrReq (для запуска state machine), выставил mst_go (он на такт выставляется, потом сбарсывается), обозначил длину через '1'. Но на выходе не формируется сигнала Valid и соответственно сигнала Ready. Светодиод не загорается. И ничего не происходит. Приложу заодно скрины что ли





akorud
Цитата(TimeToSleep @ Feb 18 2016, 08:40) *
1) В каком плане конвертирует канал записи? То, что я описал выше ("...напрямую посылаю сигнала на IP2Bus, то это уже означает, что по адресу должны...") это относится к этому?

2) Эм. А где этот готовый пример? sm.gif

3) А почему неизвестно, если я в XPS подключил его к одной и той же шине AXI, и знаю адреса этих gpio?


1. По монстрам Bus2IP и IP2Bus я Вам уже не помогу - последний раз работал в ними года 3 назад и уже все забыл.

2. Vivado -> Tools -> "Create and package IP" -> и Next, Next, Next... :-)

3. Вам известно, а нам нет. Вы кажется даже не писали, что он к GPIO подключен.

Далее, на приложенной картинке в видимом времени транзакции на шине AXI нет от слова вообще.
Да и зачем вам 2 шины? Куда проще своим мастером писать в память видимую Microblaze и смотреть записалось ли.
TimeToSleep
Цитата(akorud @ Feb 22 2016, 11:43) *
1. По монстрам Bus2IP и IP2Bus я Вам уже не помогу - последний раз работал в ними года 3 назад и уже все забыл.

2. Vivado -> Tools -> "Create and package IP" -> и Next, Next, Next... :-)

3. Вам известно, а нам нет. Вы кажется даже не писали, что он к GPIO подключен.

Далее, на приложенной картинке в видимом времени транзакции на шине AXI нет от слова вообще.
Да и зачем вам 2 шины? Куда проще своим мастером писать в память видимую Microblaze и смотреть записалось ли.



1) Но вы уже помогли. Спасибо вам большое. Конечно, самому разбираться необходимо, но ваша помощь, учитывая, что для вас это забытая информация, не оценима:-)

2) Хорошо, с вивадо попробую посмотреть что это такое. А это случаем не то же самое что Core Generator IP в ISE, попробую в нём сначала?

3) Эм... 05.gif извините, упустил этот момент.

Хм. Как нет...
А у меня зажегся светодиод, кстати laughing.gif , оказывается я забыл выставить регистр byte enable (BE) в единицы (и после этого по кнопке всё он загорелся). А вообще да, меня тоже частично смущает то, что я вижу на Chipscope'e.
(А вообще светодиод зажегся после того, как я выставил wr_ack (подтверждение записи), BE, mst_go, addr, length (нужно ли её выставлять еще не уверен, но проверю сегодня). А также два регистра выходных это IP2Bus_MstWr_d и IP2Bus_Data. Но мне кажется, что последний не нужно писать, т.к. это шина может выдавать на выход различные регистры из mst_reg, который в свою очередь представляет собой массив из 16 8-ми разрядных регистров ( в нем регистры статуса, контроля, адреса, BE, mst_go).

(Забыл сказать, на скрине последние строки в чипскопе data_out_d и data_out_addr это то, что явыставляю на шину адреса и IP2Bus_MstWr_d, IP2Bus_Data. А вообще меня напрягает, что нет ответа от слейва в виде сигнала M_AXI_BRESP, которое оповещает о нормальной транзакции)

Да на самом деле не нужны 2 шины. Одна просто для моргания одним светодиодом. По этой же шине я хотел управлять своим светодиодом с кнопкой. Я разделил их на две разные шины, чтобы убедиться, что по кнопке загорится светодиод. Я сегодня проверю будет ли работать это на одной шине, но я не учитываю то, что нужен арбитр для 2х мастеров на шине, поэтому пока не уверен, что это сработает, а как арбитра настроить, я не знаю :-(

В память видимую microblaze'oм? Ого! А подскажите как это сделать? Это было бы гораздо удобнее, чем проверять это через светодиод и чипскоп (особенно учитывая ту проблему, что у меня не работают одновременно chipscope и xmd)
akorud
Цитата(TimeToSleep @ Feb 25 2016, 08:00) *
Да на самом деле не нужны 2 шины. Одна просто для моргания одним светодиодом. По этой же шине я хотел управлять своим светодиодом с кнопкой. Я разделил их на две разные шины, чтобы убедиться, что по кнопке загорится светодиод. Я сегодня проверю будет ли работать это на одной шине, но я не учитываю то, что нужен арбитр для 2х мастеров на шине, поэтому пока не уверен, что это сработает, а как арбитра настроить, я не знаю :-(

В память видимую microblaze'oм? Ого! А подскажите как это сделать? Это было бы гораздо удобнее, чем проверять это через светодиод и чипскоп (особенно учитывая ту проблему, что у меня не работают одновременно chipscope и xmd)


Если Вы подключите 2 мастера к одной "колонке" AXI арбитр будет сгенерирован автоматически. Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине). Только я смотрю у Вас ее нет - создайте что-то вроде AXI BRAM если не хочется с DDR возиться.
TimeToSleep
Цитата(akorud @ Feb 25 2016, 10:48) *
Если Вы подключите 2 мастера к одной "колонке" AXI арбитр будет сгенерирован автоматически. Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине). Только я смотрю у Вас ее нет - создайте что-то вроде AXI BRAM если не хочется с DDR возиться.


Да, действительно. Арбитр автоматически формируется.
Сделал сегодня на одной шине и microblaze и свой gpio (led), который по кнопке зажигается. И, кстати, length не нужно выставлять для нормальной транзакции. IP2Bus_Data тоже не нужен для передачи. Но на нём видимо будет ответ, когда я буду пытаться читать по адресу, это следующая задача.

С DDR вроде не так всё просто, поэтому наверно начну с BRAM. Это ведь оно то, что на картинке?

akorud
Да, оно.
TimeToSleep
Цитата(akorud @ Feb 25 2016, 12:48) *
Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине).


А можете подсказать как смотреть память, записалось ли туда какое либо значение? По XMD? Он разве не сбросит программу (точнее остановит и сбросит вроде как) на плате?
Или читать посредством своего же мастера?
Еще вопрос по поводу burst передачи. Можно тоже небольшую консультацию. У меня "окно" примерно на 40 тактов 100МГц сигнала на передачу single beat (единичная передача), при меньшем окне передача удачно не заканчивается, что-то подвисает и светодиод больше не реагирует на кнопку, но это вероятно связано с тем, как я строю "свой" протокол (сделанный вручную проще говоря и подгоняемый под стандартный). Насколько я понимаю при burst передаче всё должно происходить значительно быстрее? Или я не прав?
Хочу попытаться реализовать что-то представленное на скрине (думаю, что всё прозрачно понятно на нём)

CODE



Что-то BRAM далеко не такой простой. Как писать по шине AWID (которое характеризует ID компонента, как я понял) и WSTRB (это ведь строб? зачем он нужен?) ?
akorud
Цитата(TimeToSleep @ Feb 26 2016, 08:11) *
А можете подсказать как смотреть память, записалось ли туда какое либо значение? По XMD? Он разве не сбросит программу (точнее остановит и сбросит вроде как) на плате?

Ну написать простую программку на microblaze - UART консоль с командами (например команда "mr" прочитает память и напишет содержимое на консоли).
Цитата(TimeToSleep @ Feb 26 2016, 08:11) *
Что-то BRAM далеко не такой простой. Как писать по шине AWID (которое характеризует ID компонента, как я понял) и WSTRB (это ведь строб? зачем он нужен?) ?

Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится.

Что касается количества тактов - AXI ориентирована на пакетную передачу и накладные расходы на передачу одного байта весьма высоки, вполне может быть 40 тактов. В стандарте хорошо описано (и даже нарисовано :-) что и как происходит.
TimeToSleep
Цитата(akorud @ Feb 26 2016, 13:17) *
Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится.



Здравствуйте.
Да, я вас понял, спасибо.
Я сначала пробовал через Bus2IP, но не получилось, поэтому начал лазить в "потрохах", через которые у меня получилось мигать светодиодом. Дальше, я решил писать через Bus2IP, и у меня выставляется адрес, биты разрешения, длина пакета на выходе мастера, но данных на выходе нет, а при моделировании данные на выходе есть. Никак не могу понять с чем это связано. Необходимо ли управлять еще такими сигналами, как:

-- bus2ip_mstrd_rem -- Bus to Ip master read data rem
-- bus2ip_mstrd_sof_n -- Bus to Ip master read start of frame
-- bus2ip_mstrd_eof_n -- Bus to Ip master read end of frame
-- bus2ip_mstrd_src_rdy_n -- Bus to Ip master read source ready
-- bus2ip_mstrd_src_dsc_n -- Bus to Ip master read source dsc

-- bus2ip_mstwr_dst_rdy_n -- Bus to Ip master write dest. ready
-- bus2ip_mstwr_dst_dsc_n -- Bus to Ip master write dest. ready

При моделировании я использовал такие сигналы, как
Bus2IP_MstRd_src_rdy_n
Bus2IP_MstWr_dst_rdy_n и выставлял их в 0 (т.е. активное).
Но их игнорирование, как и всех сигналов, что перечислил, всё равно позволяет выставить данные на шине ip2bus_mstwr_d

Прикладываю скрины моделирования и chipscope'а после загрузки программы на плату. (ip2bus_mstwr_d на скринах выделен)



TimeToSleep
Цитата(akorud @ Feb 26 2016, 13:17) *
Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится.


Всё работает корректно, кроме srl_fifo_f. При моделировани отдельно от user_logic этот буфер выдаёт данные. Но при моделировании системы он также выдаёт их ,но не в случае загрузки кода на плату.
Подскажите, пожалуйста, может стоит заменить fifo на собственную? Или же лучше подразобраться в этой?
TimeToSleep
Подскажите, пожалуйста, сталкивался ли кто-то с тем, что при симуляции программы всё работает идеально, а при загрузке на плату работа совершенно отличается, сигналы, которые должны быть в активном уровне, находятся в "0", хотя сигналы, управляемые ими, изменяются? Абсолютно не понимаю почему так происходит 05.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.