原创 实现带你一起搞定NIOS II V12.1开发系列——(一)揭开NIOS II 的身世面纱

2015-1-22 21:59 1760 14 15 分类: FPGA/CPLD 文集: FPGA

     各位正在学习NIOS II的朋友们,首先感谢来“实现”的博客做客,实现在这里向各位看官鞠躬致谢了。书归正传,“实现”开设NIOS II V12.1开发系列的博文的目的,就是希望借助EDN提供的优秀平台与NIOS II征途上的伙伴们扶持、共勉。一方面通过自己在学习NIOS II过程的积累心得、体会为同袍们扫清路障,更快的前行;另一方面也可以多多的和大家交流学习、共同提高,同时达到“反馈激励自我的小私心37.gif

  为谁创造的NIOS-II

    圣经里最广为世人熟知的故事就是上帝在创造了亚当之后,又取他的肋骨创造了夏娃;那这个故事和我们NIOS-II有什么关系呢?这正是实现在本节博文中要讲的问题——NIOS II为谁创造,且听我慢慢道来。
  (1)FPGA并行特性的原罪
    FPGA作为当今两大嵌入式硬件平台之一,其主要应用领域涵盖了:数据采集、接口逻辑、工业控制、通信工程、高速信号处理等。但FPGA本质——并行——决定了它在系统控制方面先天不足,如果非要实现其他硬件平台的CPU一样能够顺序执行,就必须采用特权同学的那种方法,不过即使在你学会这种招式,也要在verilog 代码和流程图上付出相当的时间代价,这点上远没有在普通MCU上用C写主控代码那么爽。
    如果我要告诉你,NIOS II就可以让你在FPGA上用C语言轻松开发主控程序,你会惊喜呢,还是惊喜呢? 
   有人会说:"不就是多写几行verilog代码和考虑程序跳转的问题吗,这个难不住我们勤劳的程序员,就为这个创造出NIOS II ,我们还真不领他这份情,哥用顺序大发照样搞的定”,不过遗憾的是NIOS II还真不就这点本事。
  (2)FPGA无形特性的救赎
    FPGA的另一特性——无形——宣判了它只是一堆没有灵魂的”细胞“,虽然可以通过”硬件语言“的上帝之手创造出各种鲜活的生命,但所有万物都要从头做起,是这真会让”上帝之手“累到抽筋。
    因为,现如今的嵌入式系统开发都要集成诸如:UART、USB、PCI、SDRAM、FLASH、网口等功能模块,而且针对具体应用和实际硬件的不同,会有非常多的变化。如果每个工程的这些部分都用硬件描述语言或者IP核来实现,我们的工程师一定会累得够呛,而且一下子要掌握这么多种模块的FPGA驱动也不大现实,更别谈运行效率了。
   而我们NIOS II在这方面将工程师从繁重的工作中解救了出来,我们只要在交互式的配置界面了点击几下,就可以轻松实现对外部模块的驱动使用,从此再也不必为各种厂家的芯片手册的时序图呕心沥血了。
  (3)到底为谁创造的NIOS-II
    各位看官,那么现在问题来了,到底是为了谁创造的NIOS-II呢?要回答这个问题,我们必须要回到开篇讲的那个故事。上帝为了让亚当不再孤单,取他的肋骨创造了夏娃;而Altera公司为了让FPGA不再“永远并行”,能有多种可以直接选用的用于创造万物的“器官”,同样取了FPGA的一部分LEs,为他创造了NIOS-II。

  NIOS-II为何物

    NIOS-II是Altra公司于2004年6月推出的一款采用全新架构的高性能、可配置、通用嵌入式处理器。NIOS-II本质是一种使用FPG**上资源生成的处理器软核,可以根据您的应用配置最适合的CPU、外设和接口资源。尤其在对价格和电路面积敏感的应用中,替代分立式微处理器。
  举个实例来说明NIOS-II的强大之处,一块带有Cyclone II  SDRAM  EPCS ADV7180 ADV7123 的电路板,并且FPGA所有没使用的引脚全部通过接插件引出。那么我们用NIOS-II能让他有啥变化呢?本来我们这块电路板是用在无人机上,为了实现在视频上叠加各种航电信息的功能;但随着系统开发的深入发现最开始预留给 GPS的1路TTL串口、给重力加速度计的1路SPI接口、给磁阻传感器的IIC接口不能满足实际的需要,增加了1路IIC接口的陀螺仪,而且磁阻传感器也换成了一个使用TTL串口的其他型号。
  如果没有NIOS-II我们要么重新用FPGA的硬件语言一点一点重新生成需要的接口逻辑模块,再进行数据解析的设计;或者重新画电路、制版。有了NIOS-II只要在交互软件上点击几下重新配置软核,随你要几个串口、IIC、SPI都会轻松搞定,然后就是用C轻松的搞定后续工作。
 

  软核与硬核之争

   讲到这里,各位看官应该对NIOS-II有了一个大概的了解,但是到底啥是软核,他与硬核是怎么划分的呢?

   “软核”就是使用FPGA的硬件逻辑资源,塑造出的一个芯片(包括CPU、外设接口等),好比DIY积木,可以随意组合出自己喜欢的玩具;而“硬核”是和FPGA封装在一起的独立专用芯片,只能比作类似遥控汽车这样不能DIY的玩具。

   好了以上就是我在学习NIOS-II的一点心得体会,感谢大家支持。下一篇带来《永远的Hello world !》37.gif

      
 
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1831649 2015-3-12 20:43

很好的技术文章,非常适合入门阅读! :)
相关推荐阅读
用户1656818 2015-05-13 20:17
控制型FPGA的典型需求
 今天突发奇想,如果将FPGA作为控制器来使用,那么典型的需求是什么呢?其实这个问题有点白痴。只要看看现在的单片机有什么外设也就清楚了,不过我还是想从单片机的角度列出软件和硬件的需求。   硬...
用户1656818 2015-04-03 22:15
PID算法实例(二)
#include <stdio.h> #include<math.h> struct _pid { int pv; //integer that co...
用户1656818 2015-04-03 22:09
PID算法实例
==================================================*/   #include <string.h> #include &l...
用户1656818 2015-04-01 12:52
鏉烇箒绶犵拠鍡楀焼缁犳纭堕幀婵婄熅
1.閻╂悂鍋︾敮褍妯婂▔鏇犫�鐠併倗娲伴弽鍥︾秴缂冾噯绱濋幍鈺併亣閸氬骸浠涙潻娑楃濮濄儱顦甸悶鍡欐畱閼煎啫娲� 2.閻楃懓绶涢幓鎰絿 闁俺绻冮惌鈺佽埌鎼�鐠侊紕鐣荤涵顔款吇閻╊喗鐖i弰顖氭儊娑...
用户1656818 2015-03-18 20:07
浅谈 VGA 和 CVBS 两类模拟视频信号的借口芯片选择
    浅谈CVBS和VGA视频输出接口 博主使用FPGA输出CVBS和VGA视频,已经有一段时间。但始终对什么时候使用哪种接口芯片没有清晰的概念,基本都是在网上找资料,依葫芦画瓢搭上电路就万...
用户1656818 2015-03-15 17:23
视频信号基础知识(四)DVI数字视频信号
视频信号基础知识(四)数字视频信号 DVI(Digital Visual Interface),即数字视频接口。它是1999年由Silicon Image、Intel(英特尔)、Compaq(...
EE直播间
更多
我要评论
1
14
关闭 站长推荐上一条 /3 下一条