FPGA nios学习笔记

  • IP核:美国著名的Dataquest咨询公司将半导体产业的IP定义为“用于ASIC或FPGA中的预先设计好的电路功能模块”。IP主要分为软IP、固IP和硬IP。软IP是用Verilog/VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。固IP是完成了综合的功能块。硬IP提供设计的最终阶段产品——掩膜。
  • Qsys的前身是“SOPC Builder”,在最新的Quartus版本中,Qsys再次被升级为
    “Platform Designer”。因此在我们看到“Platform Designer”时,要知道它实际上就是
    我们所常用的Qsys。
    Qsys是Quartus II中的一个系统集成工具,它是用来搭建、开发以及维护“系统”的平
    台,这个系统通常是指以Nios II处理器为核心的嵌入式系统。利用Qsys所搭建的一个基本的嵌入式系统包含系统时钟、Nios II处理器、JTAG接口、ROM和RAM等
  • nios硬件设计的具体步骤如下
    (1) 创建 Quartus II 工程,需要选择与开拓者开发板上的 FPGA 芯片相对应的器件型号;
    (2) 在 Qsys 工具中,选择需要的 IP 核并设置其参数,搭建 Qsys 嵌入式系统;
    (3) 将 Qsys 系统集成到 Quartus II 工程的顶层模块中。
    (4) 给顶层模块的输入输出信号分配引脚,并编译整个工程。
    (5) 将生成的 sof 文件下载到 FPGA 开发板上;
  • 搭建好的Qsys系统,从Name一栏往下看,系统包含以下几个单元模块:
    时钟(clk)、处理器(nios2_qsys)、片内存储(onchip_rom、onchip_ram)、串行通信
    (jtag_uart),以及System ID(sysid_qsys)。
  • eclips是以workspace作为单元(就是一个完整的功能工程)的,里面可以包括多个相互关联依赖的工程,而且还可以导入工程等操作,所以每次打开新的完整的工程就得用switch workspace,这样打开或者切换新的工程空间。不能直接打开一个单独的项目,我们去文件夹也是确实看不到这个项目图标的,只能以workspace为单元进行打开
  • 一个eclipse写的workspace单片机程序是与一个xx.sof(完全在Quatus中用IP核等组合起来,然后顶层verilog程序建立的,然后马上就可以烧录进入FPGA里面,与c语言程序没有任何关系)的nios软核程序对应的,因为在eclipse建立c语言程序的时候,需要先读取nios的xx.sopcinfo文件,实际上就是读取软核的systemID和一些软核的信息,用于BSP工程的一些驱动库函数生成。当在eclips中写好了c语言单片机程序,就可以直接在eclipse里面下载进入软核了(也就是FPGA芯片此时已经是一个单片机了,下载到这个软核上跑起来),和Quatus没有任何关系了。但是eclipse烧录c语言程序的时候,如果本c程序用的systemID(也就是之前建立工程时候读取的)和此时FPGA芯片里面的软核的systemID不一样,那么会报错,无法烧录。也就是一个c语言程序对应一个软核,我们想想确实是这样。一个特定的单片机程序当然只能跑在这个特定的单片机上面。

你可能感兴趣的:(FPGA学习)