Почему всякий раз, когда я смотрю информацию о том, как использовать SDRAM моего DE1-SOC в Интернете, мне нужно использовать NIOS-II?

Я делаю простой проект: беру 100 чисел из внешней памяти (одно за другим), выполняю простую арифметику с этим числом (например, добавляю 1) и возвращаю его в другую память.

Я успешно выполнил этот проект, «представляющий» память в коде Verilog, однако теперь я хочу синтезировать свой дизайн, но с использованием SDRAM платы. То, как я загружаю данные в SDRAM или что я делаю с результирующими данными, выводимыми снова в SDRAM, не имеет значения для моей домашней работы.

Но я никак не могу понять, что делать, вся информация в инете приводит меня к использованию NIOS-II. Учитывая, что мне нужно загрузить данные в SDRAM, чтобы она могла меня обслуживать, и по другим причинам, может быть, NIOS-II является наиболее рекомендуемым способом сделать это? Можно ли обойтись без него, и будет ли это практичнее?


person sujeto1    schedule 19.09.2016    source источник


Ответы (1)


возможно, это не то место, где можно делать домашнюю работу. Кроме того, ваш вопрос очень неясен. Попробуем все же:

Я успешно выполнил этот проект, «представляющий» память в коде Verilog.

Я предполагаю, что вы имеете в виду, что вы загрузили модель, соответствующую памяти, установленной на вашей плате.

взятие 100 номеров из внешней памяти

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

Конечно, вам понадобятся правильные ограничения для вашего устройства. Поэтому я предлагаю вам взять пример с NIOSII, запустить его и избавиться от NIOSII на следующем этапе. По крайней мере, вы будете уверены, что интерфейс между контроллером и sdram правильный. Тогда читайте даташит контроллера. Вероятно, у вас есть строб чтения, строб записи, входной и выходной порт данных, некоторая конфигурация, возможно, длина пакета. Если вам нужна помощь с этим, вам нужно придумать более конкретный вопрос

person chrisvp    schedule 19.09.2016
comment
взяв 100 номеров из внешней памяти, я не использовал внешнюю память от макетной платы. Я сделал симуляцию или представление в другом файле, где я загружаю данные с помощью команды $readmemb, но это невозможно синтезировать, это только для проверки. Я проверил, и он работает нормально, но теперь я хочу передать дизайн в правильный DE1-SOC, и я думаю, что больше не могу использовать $readmemb, но мне нужно научиться использовать SDRAM на плате. Одноклассник сказал мне, что для этого не обязательно использовать NIOS-II, достаточно использовать мегаволшебник и написать правильный verilog. - person sujeto1; 19.09.2016
comment
Я думал, что $readmemb можно синтезировать для загрузки значений памяти по умолчанию на FPGA. - person Morgan; 19.09.2016
comment
@Morgan: Нет. Обратитесь к этому обсуждению: stackoverflow.com /questions/4321067/ некоторые инструменты синтеза могут устанавливать эти начальные значения в синтезированной логике. SDRAM — это отдельная история. - person chrisvp; 19.09.2016
comment
@sujeto1: псевдокод: если сбросить, то инициализировать := 0; часы elsif: если init = 0, то для i в диапазоне (от 0 до 100) записать значение по адресу i, если i = 100, init := 1; иначе делайте обычные вещи, инициализация завершена - person chrisvp; 19.09.2016
comment
@chrisvp для чего это? - person sujeto1; 22.09.2016
comment
@ sujeto1: он описывает (p) функциональность сброса для вашего sdram в ответ на ваш вопрос - person chrisvp; 22.09.2016
comment
@ Морган, ты имел в виду внутреннюю память FPGA? правильный? - person sujeto1; 28.09.2016
comment
@ sujeto1, да, внутренняя память FPGA, но я не специалист по FPGA и исхожу только из комментариев, которые я получил от других людей. В примере, на который ссылается chrisvp, говорится, что его синтезируемость зависит от вашего набора инструментов. С Verilog нет определения того, что можно синтезировать, а что нельзя! разные инструменты (версии) поддерживают разные конструкции. - person Morgan; 28.09.2016