|
Nios+SRAM, максимальная скорость???CS&WE? |
|
|
|
Sep 28 2009, 17:58
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Уважаемые знатоки NIOSа,помогите мне пожалуйста! Собрал nios+sram.Поставил самое производительное ядро.Потом написал на Си простенькую программку передачи нуля и единички в SRAM. Посмторел осциллографом CS и WE и удивился,что скорость маленькая((((использовал 80Мгц). Может кто знает как разгоняется она????или какие нибудь есть настройки для этого!????
|
|
|
|
|
Sep 29 2009, 10:44
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
1)Собрал nios(самое производительное ядро) и скомпелил,ошибок нет.(использовал SRAM IDT71V416). 2)Дальше скомпелил весь проект в квартусе. 3)Создаю проект в Nios IDE и компелирую проект полностью. вот программа: Код #include "count_binary.h"
#define LED_PIO_BASE 0x00003000 #define EXT_RAM_BEGIN 0x00100000
unsigned int i;
int main(void) { i = 0; while(1) { *(unsigned int*)EXT_RAM_BEGIN =0; *(unsigned int*)EXT_RAM_BEGIN =1; } return 0; } 4)потом пять лезу в квартус и компелирую весь проект. 5)Сейчас решил загрузить конфигурацию в EPCS.Все грузится. 6)хочу проверить сигналы CS и WE,но уже осциллограф ничего не показывает. Почему не пойму?? может что я не так в Nios IDE?
Сообщение отредактировал Omen_13 - Sep 29 2009, 20:47
Эскизы прикрепленных изображений
|
|
|
|
|
Sep 30 2009, 02:02
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
давайте не так быстро  шаги 4 и 5 пока лишние. попробуйте собрать проц без кэшей, есть подозрение, что вот это "*(unsigned int*)EXT_RAM_BEGIN =0; *(unsigned int*)EXT_RAM_BEGIN =1;" он делает в кэш-памяти. кстати, выложите еще настройки линкера. upd: проверил на циклоне3(стартер-кит), так и есть пишет в кэш. если сделать так Код #include <sys/alt_cache.h> #include <alt_types.h> ... alt_u32 *p; p=alt_remap_uncached(EXT_RAM_BEGIN,4); while(1); { *p=0; *p=1; } то будет писать в off-chip memory. на всякий случай проект прилагаю. упс, не влез. вот он
|
|
|
|
|
Oct 5 2009, 16:33
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Уважаемые гуру Niosa. Подскажите ,пожалуйста где я могу почитать про библитоетки и их функции,комманды для Nios-a. А то что-то трудновато пока дается его изучение?
|
|
|
|
|
Oct 11 2009, 18:23
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Попробовал Nios_s посмотрел осциллографом cs и wr и не понял как он работает?(пробовал программу,предложенную выше).Хотелось бы узнать длительность cs,wr,rd на нем и на Nios_f?И вообще как он работатет с памятью?
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 12 2009, 17:46
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Так вот я не пойму,во время cs проходит 8 импульсов(т.е. мы посылаем наши 1 и 0). Нопочему именно 8?каков смысл работы?хотелось бы узнать может он пошустрее с памятью работает чем мультикор?это было бы радостно)
|
|
|
|
|
Oct 13 2009, 08:44
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(ROMЫ4 @ Oct 12 2009, 21:46)  Так вот я не пойму,во время cs проходит 8 импульсов(т.е. мы посылаем наши 1 и 0). Нопочему именно 8?каков смысл работы?хотелось бы узнать может он пошустрее с памятью работает чем мультикор?это было бы радостно) Опишите свою систему подробнее: 1. Какую память используете - только внешнюю SRAM, или On-chip RAM тоже? 2. Где у Вас располагается кодовый сегмент (т.е. откуда выбирается исполняемый код)? Куда указывает вектор сброса процессорного яда? 3. Какова разрядность Вашей внешней SRAM? Думаю, что если Вы для себя выясните эти вопросы, то и сами со своей проблемой разберетесь
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Oct 14 2009, 17:50
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082

|
Я, как и ROMЫ4, создавший эту тему, "удивился,что скорость маленькая". К сожелению понятных ответов я не увидел, может ROMЫ4 спрашивал как то не так? Спрошу тогда я по-своему, может кто знает? Отсимулировал я проект работы с SSRAM, который выложил vadimuzzz, и получил при тактовой частоте 80 MHz следующее
Также отсимулировал сборку NIOSa-fast, кот. меня ещё больше интересует: тактовая 50МГц, память программ и данных в SDRAM 16-бит, обмен с асинхронной SRAM, обмен для примера происходит так: while (1) { IOWR_32DIRECT(SRAM_0_BASE, 0, 9); IOWR_32DIRECT(SRAM_0_BASE, 4, 10); IOWR_32DIRECT(SRAM_0_BASE, 8, 11); IOWR_32DIRECT(SRAM_0_BASE, 12, 12); IORD_32DIRECT(SRAM_0_BASE, 0); IORD_32DIRECT(SRAM_0_BASE, 4); IORD_32DIRECT(SRAM_0_BASE, 8); IORD_32DIRECT(SRAM_0_BASE, 12); } Получил следующие результаты:
В связи с этим вопросы: 1) Можно как-то ускорить обмен с SRAM без DMA? Понимаю, что больше всего обмен тормозит 16-бит память программ и данных, думал, что кэширование инструкций как-то эффективней будет работать. Может что не так делаю? 2) Как работать с ДМА? Пробовал пример из Quartusa 9.0 memtest.c, что то не заработало. Может кто покажет, как надо сделать программу отдельно для записи в SRAM и отдельный пример для чтения из SRAM.
|
|
|
|
|
Oct 14 2009, 19:33
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082

|
Цитата(dim99 @ Oct 14 2009, 23:16)  Простите, можно вопрос: приведенные графики моделирования где были сделаны, это model sim ? да
|
|
|
|
|
Oct 15 2009, 19:31
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Уважаемые знатоки Nios-a,хочу спросить Вас следущее: Есть плата,на ней циклон и внешняя SRAM(8-ми разрядная). Т.к. сам Nios 32-х разрядный, а память 8-ми разрядная хотелось бы научиться писать и читать из памяти. Для этого нужно: 1)подключаю ядро; 2)внутреннюю память(ROM); 3)Tri-State bridge; Дальше я так думаю надо писать проект на vhdl, который бы помог "соеденить"память(SRAM) и Nios. Может кто встречался с такой задачей? Можете подсказать алгоритм как правильно научить писать и читать в 8-и разрядную память(SRAM) с помощью Nios2?
|
|
|
|
|
Oct 16 2009, 08:49
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(ROMЫ4 @ Oct 15 2009, 23:31)  Дальше я так думаю надо писать проект на vhdl, который бы помог "соеденить"память(SRAM) и Nios. Не надо ничего писать! Надо читать - спецификацию шины Avalon и описание SOPC Builder'а . Для подключения внешней SRAM к Avalon Tristate Bridge нежно сделать компонент на основе заготовки (template). Запускайте Component Editor, выбирайте Template, далее Avalon Tristate Slave, и описывайте разрядности Вашей SRAM. Также нужно поставить галку, что даный компонент - это память (не помню точно, на какой закладке - посмотрите сами). И все. Никаких чудес. Все остальное за Вас сделает SOPC Builder.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Oct 22 2009, 17:35
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Вот схема микроконтроллера.Думаю, что можно осуществить связь между Nios и им по SPI. Правильно ли я делаю: 1)создаю ядро. 2)далее подсоеденяю к нему внешюю память. 3)добавляю SPI; 4)в Nios ID написал программку по заполнению SRAM. А как можно сделать, чтобы микроконтроллер был мастером? что-то пока не получается Не могли бы Вы помочь с последовательностью действий За ранее спасибо
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 23 2009, 16:16
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 31-08-09
Пользователь №: 52 107

|
Хотелось бы побыстрее скорость.можно ли это реализовать?у меня на плате микроконтроллер соеденен с плис ножками wr,rd,data,ale,int. Можно ли,каким-нибудь образом организовать байтовую пересылку напрямую из микроконтроллера в Nios. может с помощью интерфейса Avalon ST Sourse и Avalon ST sink?Там вроже можно настроить передачу и прием даных. Что-то пока на ум не приходит,что между ними должно быть
|
|
|
|
|
Oct 23 2009, 16:42
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(ROMЫ4 @ Oct 23 2009, 20:16)  Хотелось бы побыстрее скорость.можно ли это реализовать?у меня на плате микроконтроллер соеденен с плис ножками wr,rd,data,ale,int. Можно ли,каким-нибудь образом организовать байтовую пересылку напрямую из микроконтроллера в Nios. может с помощью интерфейса Avalon ST Sourse и Avalon ST sink?Там вроже можно настроить передачу и прием даных. Что-то пока на ум не приходит,что между ними должно быть  Ну Вам же русским языком ответили, что "между ними" должен быть Avalon Master. Этого мастера вы должны создать сами. Как это сделать - читайте документацию. Ссылки я приводил. Не стоит гнаться за лаврами очередного "не читателя" За Вас тут Ваш проект никто делать не будет.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|