1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Verilog HDL スタディ

Last updated at Posted at 2019-06-20

##環境

  • Terasic DE0-Nano
  • Quartus Prime 18.1 Lite Edition
  • DE0-Nano_v.1.2.4_SystemCD Users Manual
  • DE0-Nano_My_First_Fpga_v1.0.pdf
  • My_First_NiosII_Qsys.pd

Verilog HDLでLチカ

DE0-Nano_My_First_Fpga_v1.0.pdfの通りやってLチカ成功。

NiosIIでLチカ

My_First_NiosII_Qsys.pdfに記述されている方法を試す。

Creation Hardware Design

my_first_niosii.v
DE0_NANO_QSYS DE0_NANO_QSYS_inst
	(
		.clk_50							(CLOCK_50),
		.out_port_from_the_pio_led	(LED),
		.reset_n							(1'b1)
	);

これの通りでは以下のエラーが出る。
Error (12002): Port "clk_50" does not exist in macrofunction "DE0_NANO_QSYS_inst"
Error (12002): Port "out_port_from_the_pio_led" does not exist in macrofunction "DE0_NANO_QSYS_inst"
Error (12002): Port "reset_n" does not exist in macrofunction "DE0_NANO_QSYS_inst"

以下の記述でコンパイルが通る

my_first_niosii.v
DE0_NANO_QSYS DE0_NANO_QSYS_inst
	(
		.clk_clk						(CLOCK_50),
		.pio_led_external_connection_export	(LED),
		.reset_reset_n							(1'b1)
	);

Qsys -> Generate -> Show Installation Templateの記述を参考にした。

Creation of Software Design

NiosII EclipseでHello Worldテンプレートを使ってビルドすると以下のエラーになる。
error: ld returned 1 exit status

以下を参考にenable_lightweight_device_driverを有効にすることで解決した。

LチカCコードをビルドすると、以下のエラーになる。

hello_world.c:31:32: error: 'LED_BASE' undeclared (first use in this function)
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, count & 0x01);

LED_BASEの記述は、Platform DesignerでPIOに名付けた名前に「_BASE」を後ろにつけるルールらしい。
以下のコードで通るようになった。

hello_world.c
#include <system.h>
#include <altera_avalon_pio_regs.h>

int main()
{
  printf("Hello from Nios II!\n");

  int count = 0;

  int delay;

  while(1)
  {
	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count & 0x01);

	  delay = 0;

	  while(delay < 1000000)
	  {
		  delay++;
	  }

	  count++;
  }

  return 0;
}

実行するためRun -> Run Configuration -> Nios II Hardwareを選択すると以下のエラーが出た。

[Target Connection]: Connected system ID hash not found on target at expected base address.

単純にハードが起動していないことが原因だった。
Quartus Programmer -> Start を押下して、ハードを起動させる。
Nios II Eclipse -> Runとして、ソフトを走らせる。

Lチカ成功!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?