Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблема с третим циклоном
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
lons83
Заранее извиняюсь если такая тема уже была.
Использую третий циклон.
когда установлено на OnChipMemory 40960 байт - все работает. (Картинка 1)
Когда ставлю больше выдается ошибка (Картинка 2).

Вопрос: Как мне установить память больше? когда по моим подсчетам памяти должно хватит на целый 76 килобайт.
Или я что-то не так делаю.

Заранее спасибо)))
novartis
Память OnChipMemory скорее всего у вас создается на M9K, их то и не хватает, там где квартус выдает ошибку, можно развернуть ошибку и посмотреть точнее, чего ему не нравится.
Мне в проекте для циклон 3 максимум удавалось 45КБайт задать для OnChipMemory. Если больше поставить - квартус ругается на нехватку M9K.
gosu-art
Потому что в системе с ниосом память используют и другие его компоненты (dma, sgdma, jtaguart, epcscontroler и д.р.) sgdma так вообще не хиленько сожрать может rolleyes.gif
lons83
Цитата(novartis @ Jun 3 2013, 11:22) *
Память OnChipMemory скорее всего у вас создается на M9K, их то и не хватает, там где квартус выдает ошибку, можно развернуть ошибку и посмотреть точнее, чего ему не нравится.
Мне в проекте для циклон 3 максимум удавалось 45КБайт задать для OnChipMemory. Если больше поставить - квартус ругается на нехватку M9K.


Когда поставил 60 Килобайт ошибка:
Код
Error (170040): Can't place all RAM cells in design
    Info (170034): Selected device has 66 memory locations of type M9K. The current design requires 71 memory locations of type M9K to successfully fit.
    Info (170033): Memory usage required for the design in the current device: 108% M9K memory block locations required


работает до 47Кбайт но при них выдает timelimited.sof или как-то так...

Цитата(gosu-art @ Jun 3 2013, 11:28) *
Потому что в системе с ниосом память используют и другие его компоненты (dma, sgdma, jtaguart, epcscontroler и д.р.) sgdma так вообще не хиленько сожрать может rolleyes.gif


а можно в SOPC (где я союираю систему ) отключить sgdma? или без sgdma никак не обойтись?
novartis
У процессора НИОС можно выбрать три его версии: младшую, среднюю и самую мощную/навороченную. Если выбираете самую младшую, то будет обычный sof, если любую из помощнее - то timelimited.sof.

sgdma - это компонент, который можно добавить в qsys, если вы сами не добавляли, то его и нет.

А вообще если будут еще вопросы, выкладывайте скриншот qsys (или SOPC, смотря что используете).
Копейкин
Вам прямо указывается, что проект требует 71 блок M9K, а есть только 66.
1) Когда создаёте JTAG UART для отладки, поставьте галочки - "использовать логику вместо памяти для FIFO"
2) Судя по timelimited, вы берёте FAST процессор Nios, уменьшите в опциях размер кеша данный и инструкций.
3) Для отладки EPCS контроллер можно и не ставить, тоже память экономит.
4) В отчётах компиляции найдите распределение onchip-памяти по модулям и посмотрите, без чего пока можно обойтись или где уменьшить аппетит.
lons83
Цитата(novartis @ Jun 3 2013, 11:54) *
А вообще если будут еще вопросы, выкладывайте скриншот qsys (или SOPC, смотря что используете).


Да в принципе уже все ясно((((
то есть на ОнЧип храниться и Quartus ( с его схемами) и программа в Ниосе. И на все это отводиться M9K ?
и я так понимаю что вместо ОнЧип я могу использовать любую внешнюю память. например SRAM или Flash ?


Цитата(Копейкин @ Jun 3 2013, 12:08) *
1) Когда создаёте JTAG UART для отладки, поставьте галочки - "использовать логику вместо памяти для FIFO"
4) В отчётах компиляции найдите распределение onchip-памяти по модулям и посмотрите, без чего пока можно обойтись или где уменьшить аппетит.


1) Наверно глупый вопрос, но я запутался: JTAG UART - нужен только для отладки или он нужен и для того чтобы через USB-Blaster зашить программу?
2) а где найти этот отчет с распределением памяти по модулям?
Копейкин
1) JTAG UART нужен для отладки, в релизе его можно будет убрать.
2) После полной компиляции смотри Compilation report->Fitter->Resource Section->RAM Summary.
Там фиттер даёт подробный отчёт кто, сколько и куда sm.gif
0) Для конфигурации логики не используются блоки M9K, это кирпичики, из которых строится схема.
Но эта память м.б. инициализирована сразу в процессе заливки конфигурации программатором или из флэш-памяти.
lons83
Цитата(Копейкин @ Jun 3 2013, 14:22) *
2) После полной компиляции смотри Compilation report->Fitter->Resource Section->RAM Summary.
Там фиттер даёт подробный отчёт кто, сколько и куда sm.gif


выкладываю скрин. что-то понятно. только не ясно почему на ОнЧип не дает больше 49Кбайт (((
Копейкин
Ну, не могу так, с ходу сказать.
Вроде, по приведённой картинке, должно ещё 11 блоков M9K остаться.
Однако могут быть тонкости реализации и ресурсы этих 11-ти блоков уже задействованы.
Посмотри документацию на реализацию Dual port RAM на Циклоне3.
novartis
Интересно было бы посмотреть на то, как квартус развел проект по кристаллу в Chip Planer'e.
alexPec
Цитата(lons83 @ Jun 3 2013, 16:04) *
выкладываю скрин. что-то понятно. только не ясно почему на ОнЧип не дает больше 49Кбайт (((

Не, не бывает так. Что-то недопоказали. В секции resource utilization by entity показывается все как есть. Если после нее остается 11 блоков - значит остается 11 блоков.
Другое дело что этот проект например у вас компилируется, а когда увеличиваете на 1 кб память - уже нет, поскольку по 1 кб память добавлять квартус не может, используя на каждый добавленный килобайт 1 m9к. Скорее всего при добавлении 1 кб он добавляет до 64 кб, просто использует блоки не полностью.
lons83
выкладываю скрины двух реализаций:
1) память 49Кбайт
2) память 50Кбайт

P.S. сделан только SOPC. никаких остальных схем. Процессор самый слабый.
Последние 2 фото - resource utilization by entity - для 50Кбайт
Копейкин
Обрати внимание на оба отчёта фиттера.
В первом случае, для памяти программ резервируется 48 M9K блоков и всё влезает.
Во втором, случае резервируется уже 64 M9K блока и, разумеется, не хватает (в сумме более 66).
Похоже, производится округление размера ОЗУ, до какого-то разумного значения.
М.б. более опытные товарищи ответят?
Golikov A.
похоже блоки добавляются по 16 в параллель, то есть блок хранит бит от слова, а не все слово...
lons83
Цитата(Golikov A. @ Jun 5 2013, 08:29) *
похоже блоки добавляются по 16 в параллель, то есть блок хранит бит от слова, а не все слово...

а это как-то можно изменить? настройки где-то?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.