| |
平台背景:
操作系统:win7 64bit
开发板:DE2-115
Quartus ii:15.0及配套的NIOS ii开发平台
一、硬件系统的建立
1、在Quartus里新建工程,这是很基本的就不在介绍了
2、新建一个bdf文件并保存,设置为顶层文件
2、打开Qsys
3、添加NIOS ii process也就是我们的cpu,重命名为cpu,在这里选择f型的,这里不需要设置什么,Vector页要等我们添加好SDRAM、epcs或者是RAM后才可以设置现在是不会有这些选项的,其中Reset Vector Memory是指复位启动时Memory的类型与偏移量;Exception Vector Memory是指异常情况时Memory的类型与偏移量;
4、从IP库里添加SDRAM
Controller用于控制开发板上的SDRAM,当然这里我们也可以用on_chip_memory的RAM来做,不用RAM做的一个重要原因是FPGA上资源有限RAM的容量只能做到很小一般我们如果要编写一些小的程序还是可以用这个来做的。
SDRAM控制器的设置如下图:32bits,4个bank,13Row,10 column其他默认设置即可(这些参数一般根据开发板上的SDRAM的datasheet里的数据得出)Timing设为3,
5、添加epcs控制器,这个主要是用来控制FLASH的,当我们想要把程序固化在开发板上的时候就需要将程序烧写到FLASH里就要用到epcs控制器,设置均为默认
6、添加JTAG_UART接口(PC机与开发板进行数据传递用,包括烧写代码,接收发送数据)设置如下:
7、添加System ID这个是系统的ID标示一般设为0当然也可以自己设置一个数
8、手动连线,需要连线的主要有:
1)所有器件的时钟、复位接口;
2)非存储类器件的数据总线接口;
3)存储类器件的数据总线接口和指令总线接口;
4)中断接口;
9、System-àAssign Base Address自动设置各个器件的地址,设置各中断优先级,
双击cpu设置Vector都为SDRAM
保存文件命名为kernel;
设置时钟为100MHZ(这主要是由SDRAM工作的频率所限制)这是系统的工作频率;
点击Generate hdl产生HDL代码,点击finish
10、在之前建立的bdf文件上双击空白处将上面建立的kernel文件添加进来,注意在工程目录的files里把synthesis文件夹里的qip文件添加进来,该文件里包括kernel里所含的IP核的信息不添加的话后面编译时会出错;
11、添加pll的IP核到bdf文件中,pll的输入时钟是50MHZ,速度等级为7,一路next到设置输出时钟处将c0进行2倍频道100MHZ;c1进行2倍频到100MHZ并调整相移位为-65(实际为-63);c0为系统的时钟给kernel,c1为SDRAM的时钟,他们同频不同相至于相位差怎么算还没后面再讨论;
12、点击finish完成PLL的设置添加到bdf文件中连接c0到kernel的clock,c1接一个output接口;
13、选中kernel右击选择Generate
pins for symbol ports产生接口,pLL同理;
14、编译,按照DE2-115引脚关系配置引脚,再编译;
到此硬件系统的搭建就完成了
二、软件系统的搭建
15、按如下所示打开NIOS开发软件
16、新建NIOS工程,Nios II Application and BSP from
templare
17、将sopc信息文件指向刚刚产生的cpu文件,这样就利用这个sopc文件将软件与硬件连接起来了。
18、project->Build
all
下载文件到FPGA
19、Run as->Nios II
Hardware
20、refresh connection
21、点击run,一切工作正常出现下图