Первый старт Nios Altera на Verilog

Nios первый старт Софт микропроцессор Nios от Altera хорошо известен в среде плисоводов. Но чтобы приступить к его использованию в каком-либо проекте новичку, необходимо уяснить несколько довольно муторных моментов. В данном посте первая часть - создание микропроцессора и его небольшой обвъязки в среде Quartus 9 и SOPS Buider.

Для тех кто привык иметь дело с обычными микроконтроллерами, например AVR или даже ARM, Nios на первый взгляд довольно непривычная штука. В основном эта непривычность определяется средствами сборки микропроцессора, а вернее средствами его программирования и отладки.

Итак начнем. Все опереации будем описывать базируясь на отладочном модуле DE0 Board ссылка на который имеется в посте Uart VHDL, хотя при наличии его отсутствия вполне можно все операции повторить и на любой другой отладочной плате с ПЛИС от Altera позволяющей установку на ней системы Nios. Для начала нужно запустить Quartus (будем работать в Quartus 9.0), в последующих версиях все будет работать не хуже, создать пустой проект, например NiosPio (будем тестировать работу PIO контроллера NIOS на светодиодах) и затем запустить SopsBuilder, Главное меню/Tools/SOPS Builder и дать название будущей системы с определением языка описания системы. В нашем случае систему соберем на Verilog, как показано на картинке и дадим ей название NiosPioSops. Кстати, в процессе, не помешает посетить раздел учебников Verilog VHDL.

Сборка микропроцессора NIOS в SOPS BUILDER

В SOPS Builder необходимо просто создать конфигурацию нашей микропроцессорной системы. Это делается двойным кликом по нужному компоненту библиотеки представленной в левом верхнем окне SOPS Builder. Процессор для начала вполне подойдет не навороченный, например такой.

Nios

Не помешает в этом процессе букварик типа SOPS Builder Handbook. Пока, чтобы не усложнять процесс, все выполним на базе внутренней памяти ПЛИС. В дальнейшем, для развитых пректов, внутренней памяти ПЛИС конечно же будет не достаточно и нужно будет подключать к проекту внешнюю SDRAM. В результате манипуляций мышкой и клавиатурой получится система представленная на картинке ниже.

Микропроцессорная система Nios

Нужно обратить внимание на то, что после создания системы в процессоре (cpu_0) пока не установлены Reset Vector: Memory: и Exception Vector: Memory. Их нужно установить перейдя в редактирование процессора как показано на рисунке.

Редактирование Nios

Nios установка Reset Vector

Теперь можно нажать на кнопку Generate, начнется процесс генерирования микропроцессорной системы на Verilog с записью сгенерированных файлов в папку проекта. В частности для нашей системы самый главный файл будет назван NiosPioSops_inst.v. Далее нужно перейти в ID Quatus и создать верхнеуровневый Verilog файл, например NiosPioTop.v, в котором дать названия и выполнить необходимые присвоения внешним сигналам. Все показано ниже.


// --------------------------------------------------------------------

module NiosPioTop
	(
		// Входной клок	 	
		CLOCK_50,							//	50 MHz
		// Выходы GPIO				//
		GPIO_0			
	);

//	Входной клок	 	
input			CLOCK_50;				//	50 MHz
// Выходы GPIO
output		[7:0]	GPIO_0;		//	

//=======================================================
//  Structural coding
//=======================================================
// Системный сброс
wire system_reset_n;
assign system_reset_n = 1'b1;

// Внешние соединение системы 
NiosPioSops NiosPioSops_inst
	(
	// глобальные сигналы:
  .clk_0					(CLOCK_50),
  .reset_n				(system_reset_n),
                   
	// GPIO_0
	.out_port_from_the_pio_0     (GPIO_0)      
	);

endmodule

В данном соединении не используется только сигнал system_reset_n В дальнейших проектах его можно будет использовать для сброса любых других присоединенных модулей системы. Теперь можно файл NiosPioTop.v назначить верхнеуровневым и запустить компиляцию проекта. После успешной компиляции необходимо в Pin Planer присвоить сигналам нужные ноги. Чтобы не морочиться, назначения для DE0 Board на картинке ниже.

Node Pin Planer

Далее запускаем IDE Nios нажав на кнопку 'Nios || IDE' в SOPS Builder которая находится на вкладке System Generation. Пришло время реально помигать светодиодами. Продолжение в следующем посте Altera Nios GPIO контроллер.

Top.Mail.Ru