FPGA学习日志——NiosII软核学习

FPGA学习日志

坚持每天写总结 2021.2.8



前言

自己亲手用verilog写过SDRAM接口模块,各种时序和时间参数查得我头皮发麻,写完接口模块甚至还要写上层的控制模块,虽然艰苦,但这让我深刻意识到了IP核的重要性。
再者想在集创杯上参加FPGA深度学习的题目,虽说Digilent也是同样的类型,但是Digilent需要买他们的板子才能参加,我果断放弃了(都怪我之前冲动买了Altera的FPGA)
听说quartusII里有可以自己定制cpu的ip核(Nios II),如果能够用我的板子定制cpu来实现功能的话,岂不美哉!让我来试试这NiosII的好处(希望别再让我后悔了)


一、NiosII是什么?

NiosII是Atlera(现在是Intel了)发布的IP,可以用来定制自己想要的cpu,配置好后,把顶层文件综合好,直接烧进板子,然后FPGA里就有了一个CPU,后续的代码工作就是C/C++编写的软件程序了

二、配置

1.Nios2

Quartus Prime Lite Edition(20.1)->Tools->Platform Designer->搜索Nios->选择Nios II Processor->进入配置界面

2.其他常用ip核配置

  • 时钟ip自带,但需要设置频率,注意这里的clk指的是CPU的运行频率,而不是板载晶振的频率,前者是由后者经过pll生成的

  • 片上rom/ram:正常的单片机系统需要ram(writable)、rom(read_only),但对于FPGA来说ram可以兼具,所以建议用片上ram

  • 片外sdram控制器:具体参数查用户手册

  • jtag uart:利用jtag接口完成uart通信的功能

  • system id:作为系统的唯一识别号

  • pll:虽然pll模块不能在Platform Designer进行连线,但有一点需要特别注意,定制的cpu与片外sdram用的都是同一个时钟频率,但是注意端口要分开,且cpu的clk相移设置为0,sdram的clk相移设置为-75左右以抵消布线所产生的相位差,以保证cpu与sdram的时钟信号严格同步

3.CPU与外设之间的连接

在Platform Designer里面的连接好像就默认使用了avalon总线控制

  • clk:时钟信号,所有都要连

  • rst可以一键连接:system->create globel reset network

  • nios2 data_master:相当于数据总线,基本上要跟所有外设的数据接口连接起来

  • nios2 instruction_master:指令总线,连接到ram,因为需要从ram里面取指令

  • nios2 debug_reset_req:需要跟所有外设连接(可以用rst的一键连接)

  • jtag uart IRQ(在右边):中断信号,可以设置优先级,与nios2连接

  • sdram_control wire:用来控制外部sdram的线,需要与外部管脚进行配置,双击export一栏,改名为sdram即可,后续的连接需要例化后,在顶层文件进行

4.解决报错

在这里插入图片描述

  • 重新设置Nios2
    复位地址reset vecter:指向ram,表示程序从ram里启动(掉电重烧);指向flash,表示程序从flash启动(掉电无妨)
    异常地址exception Vector:指向ram,实际上是程序运行地址

  • 给整个系统分配基地址
    所有外设都有其地址,在添加时都是默认为0x0000_0000
    system->assign base addresses,自动分配地址

  • 分配外部管脚

5.生成系统

在所有报错都消除后,就说明没什么问题了
system->generate

6.保存文件

建议新建文件夹为“qsys”,文件名为system_qsys

三、硬件编译

1.元件例化

在Platform Designer界面->generate->instantiation Template这里可以直接复制例化模板

2.PLL的设置

上面的ip配置有提及

3.把qsys的.qip文件加入工程中

在工程File窗口->右键File->add file in project->qsys->system_qsys->synthesis->选中system.qsys.qip文件

否则会编译失败

四、软件开发

tools->Nios2 software build tool

五、遇到的问题

  • 在第一次建立qsys时,出现了这样的报错
    在这里插入图片描述错误原因:未知,求大神们告知
    解决办法:从头开始新建qsys

  • 打不开eclipse
    错误原因:未知
    解决方法:我用的软件是quartus prime 20.1,重新安装quartus prime 18.0就能用了


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值