nios 中如何定制目标板

1. 为何要做Target Board

NiosII IDE提供了一个烧写flash的工具Flash Programmer(在Tools菜单下,如图1所示)。

1 Nois II IDETools菜单下Flash Programmer

但在使用Flash Programmer之前,必须指定当前projectTarget Board(在SOPC BuilderSystem Content页中指定,如图2)。图2中,指定的Target BoardUP3_BoardAltera给自己开发版都提供了对应的Target Board,但是对于用户自己做的板子来说,Altera提供的Target Board一般都不适用。所以用户要根据自己的板子,制作一个自己板子专用的Target Board

2 SOPC Builder中指定Target Board

 

2. Target Board是什么?

Altera的文档中是这么定义的:“the term “target board” refers to the set of files used by SOPC Builder to determine board characteristics on which the system is being implemented”。

就我理解,Target Board主要记录的是板子上各种flash芯片的信息(flash的容量等)。做一个Target Board就是做一个project用于烧写板子上的flash芯片。当使用IDE中的Flash Programmer烧写flash芯片的时候。IDE把这个Target Boardproject下载到FPGA上,并使用对应的软件程序来烧写板上的flash芯片。

 

3. 如何制作Target Board?(以UP3为实例)

打开Nios II SDK shellPrograms >Altera > Nios II Development Kit > Nios SDK

shell,如图3所示:

3 打开Nios II SDK shell

使用cd命令将当前目录改变到存放Target Boardproject的目录下。这个目录放置在硬盘上的任何地方。如图4所示,这里将要把Target Boardproject放在f:/up3这个目录下:

4 改变当前目录

执行mk_target_board命令来建立Target Boardproject模板。mk_target_board命令的有以下一些参数:

--name=<name>Target Board的名称;

--family=<family>:板子上的FPG的类型,有效值是“stratix”或者“cyclone”;

--clock=<freq>Target BoardprojectNios II系统的时钟频率。这个频率必须大于等于50MHz。如果FPGA输入的时钟频率小于50MHz,那么必须在Nios II系统外加个PLL使得Nios II系统的时钟频率大于50MHz

--index=<index>FPGA芯片在JTAG链中的编号,如果JTAG口上就只连接一个FPGA芯片,那么值为1

--epcs=<refdes>:如果板子上要使用EPCS串行配置器件来配置FPGA,并且打算通过Flash Programmer来对它进行烧写的话,才需要设置该参数。指定EPCS串行配置器件的标号,这个标号可任意设置,只要保证板子上其他flash芯片不使用这个标号即可;

--buffer_size=<size>:这个值取决于板子上FPGA芯片的型号,参照下表。

<<!--[endif]-->

如图5,这里建立名称为UP3_BoardTarget Boardmk_target_board命令执行后的提示会因为Nios II Development Kit的版本不同而有些区别。图5Nios II Development Kit评估版5.0上执行后的结果。

5 执行mk_target_board命令来建立Target Boardproject模板

UP3板子上的FPGA芯片使EP1C6,并且JTAG口上只连接一个FPGA芯片,因此设置--family=cyclone--buffer_size=4096--index=1。因为UP3板子上提供的时钟是48MHz,为了使这个projectNios II系统的时钟达到50MHz以上,必须在Nios II系统外添加一个PLL,这里打算做个倍频达到96MHz,所以设置--clock=96UP3板子上有EPCS1,并且标号为U15,所以设置--epcs=U15(设置成别的标号也可以,只要在后面的设置中,其他flash不用此标号即可)。

这个步骤完成后,可在所设置目录下看到UP3_Board文件夹,里面有执行mk_target_board命令所建立的Target Boardproject模板。

打开Target Boardproject模板。可从Quartus II中打开,也可以直接双击.qpf文件。

Assignments > Device中设置板子上的FPGA的型号,然后点击OK。如图6

6 设置FPGA型号

打开SOPC BuilderTools菜单),选择System Contents页,如图7Target BoardUnspecified BoardClock96.0MHz。这些都不需要进行改动;