想必学习Altera家FPGA的小码农们都会有一个共同的困扰吧,那就是Nios II该不该学的问题。这个问题说白了,就是学Nios II到底有没有用。观点1、无用论,常常会听FPGA群里的某位前辈说道,目前市场上用Nios II做产品的几乎没有,学了压根没用;观点2、Nios II属于嵌入式软核,使用C语言代码编程,简化了系统设计的复杂度。
关于Nios II的讨论虽然有以上两种观点,但是实际上,支持观点1的人数绝对明显多于观点2的人数。在此,先暂时不表明我个人的观点,我们先来分析一下FPGA系统的常规设计结构。
FPGA系统,顾名思义,其核心是一块FPGA芯片。但是光有这么一块芯片是不可能满足系统设计的要求的。我们还需要其他子模块,他们与FPGA共同组成一个系统。常见的子模块有:电源转换模块(供电模块),下载模块,数码管,LED灯等等。我们不可能一一说全,但是我们可以大致将这些模块分为几类,至于电源模块,下载模块和其他不涉及到编程设计的模块不算在这些分类里面。

从图中,可以看到5个模块类型。一休哥与FPGA接触了1年多,所完成的FPGA项目中,也难逃出这些模块。

  • 传感器模块:摄像头,AD等;
  • 存储模块:SRAM、SDRAM和DDR等;
  • 显示模块:VGA接口、HDMI接口、数码管和LED等,DA和蜂鸣器也属于这类;
  • 通信模块:USB系列,以太网系列和串口等;
  • 算法模块:信号处理类,图像处理类等。

可以说,我们学习FPGA,就是学习用FPGA来控制上述5类模块。这也是我们学习FPGA的目的,和难点所在。其中,关于存储模块的使用是非常重要的一点,因为FPGA芯片本身的内存资源十分有限,因此我们需要借助片外的存储器来完成存储操作。自然而然的,当FPGA系统的规模越大,FPGA需要实时处理和存储的数据量也就越多,存储模块的使用就显得格外重要了。
举一个简单的例子,使用VGA显示一副图片(也就是我上一个帖子中所讲的),在那个例子中,我们没有用到片外存储芯片,使用的是FPGA片内的内存资源。由于可用的资源太少,我们只显示了一副174*179的8bit图片。自然的,那么问题来了,我们想要显示更大分辨率的,颜色更丰富的图片该怎么办呢?
①使用SDRAM呀,再接一个分辨率大颜色深度高的摄像头,来一个实时传输图片数据给FPGA,由于摄像头的数据输入速率和VGA显示的数据读取速率有很大不同,需要让FPGA用SDRAM来缓存摄像头的数据,然后让VGA来读取SDRAM中缓存的数据。再给SDRAM来一个乒乓存储的操作,结果是相对完美的,解决这一问题了。
可是,大家有没有想过这一问题,上述过程的代码量是较为庞大的,而且Altera没有提供关于SDRAM的控制代码,可以说,我们需要几乎百分百的编程代码,不容丝毫马虎。所以这个工程量对于刚入门的小白来说是巨大的,目前网络上也涌现了大批SDRAM的控制代码,这些都是十分宝贵的资料,但是由于SDRAM的操作较为复杂,想完全理解SDRAM,实现SDRAM的控制,大家还需要花较长的时间刻苦学习。(题外话,一休哥以后也会讲述SDRAM的控制原理和代码哦,先提前预告下~)
②如果想暂时绕开SDRAM的控制该如何做呢。答案还是Altera。Altera虽然没有提供SDRAM控制的Verilog代码,但是在Nios II中有一个操作十分简单的SDRAM控制器IP核。因此我们可以通过Nios II来间接控制SDRAM,我个人认为,这是Nios II最具有吸引力的一个优点。
讲到这里,我也要表明我对文章开始的那个问题的个人见解了。如果你是Altera家FPGA的学习者,但是你还没有接触过Nios II,那么很遗憾,没有调查就没有发言权,你还不能发表观点;如果你学过一点Nios II,会使用PIO IP核来完成一些简单的操作,如点亮LED灯、数码管。那么也很抱歉,你还没有掌握Nios II真正的精髓所在——自定义IP核;讲真,只有当你学会了如何自定义IP核时,你才算真正了解Nios II,到了那个时候,你才算有资格,有能力说出你的有价值的观点。
学Nios II到底有没有用,这是一个个人的问题。什么叫有用? 我认为应该指的是有没有价值。这种价值不是货币,没有无法统一度量。有没有价值取决于每个人的价值观(需要通过更丰富的工作经验来提升个人的价值观)。所以…,你觉得没用就没用,我觉得有用就有用。

欢迎大家扫描下方的二维码添加关注,一休哥的个人公众号:一休哥FPGAer,QQ:932903610

小插曲:我和Nios II的故事相关推荐

  1. 【原创】FPGA (Verilog/NIOS II/Microblaze) 编程小提醒

    1.打开NIOS II IDE  建立好工程以后,先编译一下(Ctrl+B),然后打开system.h检查下目标硬件信息是否正确, 避免选择错误的目标硬件. 2.在NIOS II IDE 编写程序的时 ...

  2. nios ii小实验——第一个demo指导书

    1.新建工程:打开Quartus II 13.0,点击File->New Project Wizard,点击Next后可以看到如图2所示的对话框,选择工程路径给工程命名(注意:工程名必须和顶层模 ...

  3. [笔记].如何使用Nios II的中断:PIO中断与定时器中断

    引子 定时器中断,我以前在艾米电子论坛发帖讨论过:PIO中断我在博客里也讨论过,最近发现以前的总结有一点小错误.于是结合我最近玩触摸屏的一点点心得,写篇博文. 软硬件环境 硬件:艾米电子EP2C8核心 ...

  4. NIOS II 创建示例设计_Quartus II 9.0

    安装设计文件 在继续之前,您必须安装 Quartus II 软件和 Nios II 嵌入式设计套件. 分析系统要求 本部分介绍的教程示例设计的系统要求.设计的目标如下: 有关这些和其他组件,完整详细信 ...

  5. [原创].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?

    概述:此处,我以Lcd12864(ST7920)作为范例,进行粗浅讲解,望各位网友踊跃拍砖.   0 软硬件环境 软件:Altera Quartus II 9.1 + Nios II  9.1 Sof ...

  6. 【连载】【FPGA黑金开发板】NIOS II那些事儿--LED实验(四)

    声明:本文为原创作品,版权归本博文作者所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 这一节,我将给大家讲解第一个与硬件有关的程序,虽然内容简单,却极具代表性. ...

  7. 第七部分:小插曲,Deferred

    第七部分:小插曲,Deferred 你可以从这里从头开始阅读这个系列 回调函数的后序发展 在第六部分我们认识这样一个情况:回调是Twisted异步编程中的基础.除了与reactor交互外,回调可以安插 ...

  8. [转载].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?

    1 硬件部分 1.1 Avalon-MM接口(读作:阿窝龙妹妹接口) Avalon Memory-Mapped接口,简称为 Avalon-MM接口,用于在存储映射系统中描述主从元件(component ...

  9. (原創) 如何使用ModelSim-Altera對Nios II仿真? (SOC) (Nios II) (SOPC Builder) (ModelSim) (DE2)...

    Abstract 在剛學習Nios II時,每次在Run As Nios II Hardware下方,看到Run As Nios II ModelSim就覺得很好奇,Nios II明明是嵌入式系統,怎 ...

最新文章

  1. 网易伏羲论文入选 CVPR:AI 感知表情能力或实现巨大突破!
  2. 正则严格验证身份证信息
  3. IntelliJ IDEA 常用设置
  4. java练手代码大全手机版_java循环练习的简单代码实例
  5. 想和产品大咖一对一沟通吗?
  6. GridView隐藏列, 并能读取列值的解决方法(转载)
  7. 图像马赛克原理及实现
  8. 爱宠无人看护?别担心人工智能已经来了
  9. 深入理解Magento – 第六章 – 高级Magento模型
  10. day08 文件操作
  11. sql server中的注释快捷键
  12. 0代码隐藏GroupedTableView上边多余的间隔
  13. 航测空三用的软件_航测数据处理答疑55问!涉及CC、Pix4D、Photoscan、EPS等常见软件问题...
  14. Linux转发性能评估与优化-转发瓶颈分析与解决方案(补遗)
  15. EndNote X7 for Mac破解版
  16. 2022年汽车修理工(中级)上岗证题库及答案
  17. 因创新而更美,永洪科技获大数据产业创新百强
  18. 社区角色(Kubernetes社区Maintainer是什么角色?)
  19. 【Qt开发】QThread中的互斥、读写锁、信号量、条件变量
  20. 最牛茅台投资人的一席真言

热门文章

  1. 【点云数据预处理】ModelNetDataLoader.py
  2. 论文学习日记2.19
  3. 使用vue框架,在前端实现工单动态表格
  4. wireshark练习:根据包文分析出账号密码
  5. 【数据采集】基于FPGA通用数据采集测试系统
  6. 如何客制化某两个activity切换时的窗口动画?
  7. 大牛喊你来参会 1000+技术精英爬梯即将开幕(MDCC 2016参会指南)
  8. HDU 6445 Search for Answer(最小费用最大流-mcmf)
  9. 【静态分析】【系列1-南大软件分析】1.0 导论学习笔记
  10. Intellij IDEA中包下建包总在同一级的解决方法