juvf 17 2 марта, 2011 Опубликовано 2 марта, 2011 · Жалоба пожалуй, проще начать с tristate bridge. посмотрите эту тему, я там описывал создание компонента из шаблона. при добавлении такого компонента-заглушки и бриджа, сигналы шины Avalon будут выведены наружу, прицепите их к памяти. Спасибо, что-то получаться стало. ....... вот мой тсл # TCL File Generated by Component Editor 10.1 # Wed Mar 02 13:46:07 YEKT 2011 # DO NOT MODIFY # +----------------------------------- # | # | DAC_memOut "DAC_memOut" v1.0 # | Anisimov 2011.03.02.13:46:07 # | # | # +----------------------------------- # +----------------------------------- # | request TCL package from ACDS 10.1 # | package require -exact sopc 10.1 # | # +----------------------------------- # +----------------------------------- # | module DAC_memOut # | set_module_property NAME DAC_memOut set_module_property VERSION 1.0 set_module_property INTERNAL false set_module_property OPAQUE_ADDRESS_MAP true set_module_property GROUP "Memories and Memory Controllers/SDRAM" set_module_property AUTHOR Juvf set_module_property DISPLAY_NAME DAC_memOut set_module_property INSTANTIATE_IN_SYSTEM_MODULE false set_module_property EDITABLE true set_module_property ANALYZE_HDL AUTO # | # +----------------------------------- # +----------------------------------- # | files # | # | # +----------------------------------- # +----------------------------------- # | parameters # | # | # +----------------------------------- # +----------------------------------- # | display items # | # | # +----------------------------------- # +----------------------------------- # | connection point avalon_tristate_slave # | add_interface avalon_tristate_slave avalon_tristate end set_interface_property avalon_tristate_slave activeCSThroughReadLatency false set_interface_property avalon_tristate_slave associatedClock clock set_interface_property avalon_tristate_slave explicitAddressSpan 0 set_interface_property avalon_tristate_slave holdTime 0 set_interface_property avalon_tristate_slave isMemoryDevice true set_interface_property avalon_tristate_slave isNonVolatileStorage false set_interface_property avalon_tristate_slave maximumPendingReadTransactions 0 set_interface_property avalon_tristate_slave printableDevice false set_interface_property avalon_tristate_slave readLatency 0 set_interface_property avalon_tristate_slave readWaitStates 0 set_interface_property avalon_tristate_slave readWaitTime 0 set_interface_property avalon_tristate_slave setupTime 0 set_interface_property avalon_tristate_slave timingUnits Cycles set_interface_property avalon_tristate_slave writeWaitTime 0 set_interface_property avalon_tristate_slave ENABLED true add_interface_port avalon_tristate_slave addr address Input 10 add_interface_port avalon_tristate_slave data data Bidir 16 add_interface_port avalon_tristate_slave rd read Input 1 add_interface_port avalon_tristate_slave wr write Input 1 add_interface_port avalon_tristate_slave cs chipselect_n Input 1 # | # +----------------------------------- # +----------------------------------- # | connection point clock # | add_interface clock clock end set_interface_property clock clockRate 0 set_interface_property clock ENABLED true add_interface_port clock clk clk Input 1 # | # +----------------------------------- add_interface_port avalon_tristate_slave addr address Input 10 - десяти разрядная шина адреса. почему в графически ниос показывает 11 разрядную шину? бага? Чем тактировать внеешнее озу? клоками ядра? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 2 марта, 2011 Опубликовано 2 марта, 2011 · Жалоба почему в графически ниос показывает 11 разрядную шину? бага? это для побайтовой адресации. просто игнорируйте младший разряд Чем тактировать внеешнее озу? клоками ядра? да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Доброго времени суток Уважаемые гуру. Прошу о помощи. С 2009 года занимаюсь учебной исследовательской работой в университете на теме: "Диагностика и тестирования ПЛИС", мною были самостоятельно изучены основы работы в Quartus II 8.0 собственно в нём год и прошёл. Теперь поступило новое задание, переписать всё что было сделано на Verilog(е) за год под Nios II С/С++. И тут прям со старта я наткнулся на проблемы... на ПК стоит Quartus II 8.0 Web Edition и Nios II EDS 8.0, в теме нашел много полезной литературы для обучения, но везде предлагается создавать проект Nios II Application and BSP from Template, который у меня отсутствует в меню >Создать. Осмелюсь предположить, что это из-за того, что установлен Nios II 8.0 IDE, а нужен Nios II 8.0 SBT, но это лишь моё предположение. К сожалению на мой запрос о данной версии Nios(а) гугл ничего толкового не дал, на сайте Alter(ы) я увидел мою же версию но по новее 10.1 (боюсь что моя лицензия не подойдёт), на сайте Eclipse тоже пусто... Прошу о помощи. Заранее благодарен, с Уважением Дмитрий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба И тут прям со старта я наткнулся на проблемы... До девятых версий термин "BSP" Альтера не использовала. Вместо него пользовались понятием "System Library". В Вашем случае проект нужно создавать так - File - New - Project - Altera Nios II - Nios II C/C++ Application. При создании проекта указать "Create a new system library" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба SBT появился в 9-й версии (по-моему 9.1). лицензия на ниосовские IDE не нужна, они бесплатные. да и на квартус веб-эдишн тоже Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 3 марта, 2011 Опубликовано 3 марта, 2011 · Жалоба Благодарю, пошел грызть гранит науки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 4 марта, 2011 Опубликовано 4 марта, 2011 · Жалоба Доброго времени. Подключил к 2-хпортовому озу ниос. вопрос - как из ниоса достучатся до озу? как писать туда? В эклипсе в BSP создал секцию памяти и разместил её на своем Avalon Memory Mapped Tristate Slave. теперь из кода программы пытаюсь записать в озу что-нибудь. пишу так __attribute__ ((section (".dac"),used)) unsigned int dacData[512]; .... while(1) { dacData[16] = 0x55aa; pauseMm(1000); } смотрю сигналТапом сигнал WR- нету. В нуле всегда. на шине данных и шине адреса что-то меняется. а WR - нет. Может я не правильно dacData[512] разместил? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 4 марта, 2011 Опубликовано 4 марта, 2011 (изменено) · Жалоба Во млин!!! Удалось записать в озу данные, и даже тайминги все правильно расставленны. Пишу с помощю IOWR_16DIRECT(DAC_MEM_BASE, 10, 0x55aa); - кто бы мог подумать, что доступ к внешнему озу..... через IOWR_16DIRECT. Хотя тут же SDRAM стоит, через альтеровский контроллер подключенна: обращяюсь к ней без всяких IOWR_16DIRECT. ps в порты PIO пишу через IOWR_ALTERA_AVALON_PIO_DATA(IOLED_BASE, led);. По идее, если сделать секцию памяти .myPio в BSP и разместить её по адресу IOLED_BASE ..... яже могу потом обращаться без всяких IOWR_ALTERA_AVALON_PIO_DATA , а как-то __attribute__ ((section (".myPio "),used)) unsigned int led; ... //а потом писать в порт led = 0x12; По идее так должно работать? Изменено 4 марта, 2011 пользователем juvf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 4 марта, 2011 Опубликовано 4 марта, 2011 · Жалоба ps в порты PIO пишу через IOWR_ALTERA_AVALON_PIO_DATA(IOLED_BASE, led);. По идее, если сделать секцию памяти .myPio в BSP и разместить её по адресу IOLED_BASE ..... яже могу потом обращаться без всяких IOWR_ALTERA_AVALON_PIO_DATA , а как-то __attribute__ ((section (".myPio "),used)) unsigned int led; ... //а потом писать в порт led = 0x12; По идее так должно работать? IOWR_16DIRECT пишет в обход кэша данных. причина непоняток с памятью, видимо, в этом. можете создать указатель с адресом IOLED_BASE и писать/читать, используя разыменование указателя, следите только, чтобы 31-й бит был взведен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Создал простейшую систему в SOPC Builder (Nios tiny, On Chip Memory (4k), 3 - PIO, Timer) хотел проверить заработает ли она, и написать некое подобие команды Ping. На PIO загружаю какой то код, делаю проверку первых 8 бит, если они равны - ААh, то [7:31] вываливаю на PIO иначе на PIO нули. Т.к. с Nios(ом) еще пока дел не имел, есть пара вопросов. 1. При создании Nios II Application and BSP from Tample указал файл *.sopcinfo и тот создал мне 2 папки: 1 - Имя проекта; 2 - Имя проекта _ bsp; Файл со своим текстом программы создавать в (1) или (2)? 2. В файле с программой каким образом можно обратится к первым восьми линиям PIO? В файле system.h нашел кучу присваиваний, но конкретных имён линий не увидел. Простите за глупые вопросы, я самоучка и спросить у других специолистов возможности нет, приходится спотыкаться на элементарных вещах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Файл со своим текстом программы создавать в (1) или (2)? (1) 2. В файле с программой каким образом можно обратится к первым восьми линиям PIO? В файле system.h нашел кучу присваиваний, но конкретных имён линий не увидел. подключаете altera_avalon_pio_regs.h и читаете через макрос IORD_ALTERA_AVALON_PIO_DATA, потом маску накладываете. base address в system.h смотрите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Спасибо, щас опробуем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Ну, вот стряпал кое что. #include <stdio.h> #include <system.h> #include "altera_avalon_pio_regs.h" void main() { BYTE PING = AA; BYTE COMMAND; BYTE CODE = FF; BYTE ERROR = F0; COMMAND = IORD_ALTERA_AVALON_PIO_DATA(PIO_0_BASE); if(COMMAND == PING) { IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, CODE); } else IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, ERROR); } только почему то не хочет подключать указанные в INCLUDE файлы, если они находятся не в одной папке с главным файлом. Приходится перетаскивать всё в одну папку с _bsp. Это можно как-нибудь исправить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
barabek 0 10 марта, 2011 Опубликовано 10 марта, 2011 · Жалоба только почему то не хочет подключать указанные в INCLUDE файлы, если они находятся не в одной папке с главным файлом. Приходится перетаскивать всё в одну папку с _bsp. Это можно как-нибудь исправить? Странно, стандартные должны находиться. А вообще, свойства проекта -> c/c++build->general->include paths плюсиком добавляете нужные пути. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
W1nneR 0 10 марта, 2011 Опубликовано 10 марта, 2011 · Жалоба Кто нибудь имел дело с Nios системами ведущих обмен с FTDI? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться