软核处理器

SOPC技术,即软核处理器,最早是由Altera公司提出来的,它是基于FPGA的SOC片上系统设计技术。是使用FPGA的逻辑和资源搭建的一个软核CPU系统,由于是使用FPGA的通用逻辑搭建的CPU,因此具有一定的灵活性,用户可以根据自己的需求对CPU进行定制裁剪,增加一些专用功能,例如除法或浮点运算单元,用于提升CPU在某些专用运算方面的性能,或者删除一些在系统里面使用不到的功能,以节约逻辑资源。

另外也可以根据用户的实际需求,为CPU添加各种标准或定制的外设,例如UART,SPI,IIC等标准接口外设,同时,用户也可以自己使用FPGA的逻辑资源,编写各种专用的外设,然后连接到CPU总线上,由CPU进行控制,以实现软硬件的协同工作,在保证系统性能的同时,增加了系统的灵活性。

而且,如果单个的软核CPU无法满足用户需求,可以添加多个CPU软核,搭建多核系统,通过多核CPU协同工作,让系统拥有更加灵活便捷的控制能力。

由于是使用FPGA资源实现的,所以具有很大的灵活性,可以实现根据需要实现多种处理器,如8051,RISC-V,Xilinx的 MicroBlaze ,Altera的Nios-II等等。

硬核处理器

由于软核CPU是使用FPGA的通用逻辑资源搭建的,相较使用经过布局布线优化的硬核处理器来说,软核处理器够运行的最高实时钟主频要低一些,而且也会相应的消耗较多的FPGA逻辑资源以及片上存储器资源,因此SOPC方案仅适用于对于数处理器整体性能要求不高的应用,例如整个系统的初始化配置,人机交互,多个功能模块间的协调控制等功能。

所以,各大FPGA厂家推出了SoC FPGA技术,是在芯片设计之初,就在内部的硬件电路上添加了硬核处理器,是纯硬件实现的,不会消耗FPGA的逻辑资源,硬核处理器和FPGA逻辑在一定程度上是相互独立的,简单的说,就是SoC FPGA就是把一块ARM处理器和一块FPGA芯片封装成了一个芯片。

例如比较有名的Xilinx的ZYNQ/PYNQ系列集成ARM Cortex-A9处理器,同时具有ARM软件的可编程性FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上高度集成 CPU、DSP、ASSP 以及混合信号功能

ZYNQ开发板

ZYNQ开发板

Intel的Cyclone V系列,集成双核Cortex-A9,于2013年发布,在单一芯片上集成了双核的ARM Cortex-A9处理器和FPGA逻辑资源的新型SoC芯片,相较于传统的单一ARM处理器或FPGA芯片,它既拥有了ARM处理器灵活高效的数据运算和事务处理能力,同时又集成了FPGA的高速并行处理优势,同时,基于两者独特的片上互联结构,使用时可以将FPGA上的通用逻辑资源经过配置,映射为ARM处理器的一个或多个具有特定功能的外设,通过高达128位宽的AXI高速总线进行通信,完成数据和控制命令的交互。由于片上的ARM处理器是经过布局布线的硬线逻辑,因此其能工作的时钟主频较高,因此单位时间内能够执行的指令也更多。

区别和联系

从架构的角度来说,SOPC和SoC FPGA是统一的,都是由FPGA部分和处理器部分组成。在SoC FPGA 中,嵌入的是纯硬件基础的硬核处理器,简称HPS(Hardware Processor System),而SOPC技术中,嵌入的是使用FPGA逻辑资源实现的软核处理器,两者指令集不一样,处理器性能也不一样。

一般来说,硬核处理器的性能要远远高于软核处理器。另外,硬核处理器除了CPU部分,还集成了各种高性能外设,如MMU、DDR3控制器、Nand FLASH控制器等,可以运行成熟的Linux操作系统和应用程序,提供统一的系统API,降低开发者的软件开发难度。而软核CPU虽然可以通过配置,用逻辑资源来搭建相应的控制器以支持相应功能,但是从性能和开发难度上来说,基于SoC FPGA架构进行设计开发是比较好的选择。

ZYNQ内部框图

ZYNQ框图

另外,虽然SoC FPGA芯片上既包含了有ARM,又包含了有FPGA,但是两者一定程度上是相互独立的,SoC芯片上的ARM处理器核并非是包含于FPGA逻辑单元内部的,FPGA和ARM(HPS)处理器只是封装到同一个芯片中,JTAG接口、电源引脚和外设的接口引脚都是独立的,因此,如果使用SoC FPGA芯片进行设计,即使不使用到片上的ARM处理器,ARM处理器部分占用的芯片资源也无法释放出来,不能用作通用的FPGA资源。

而SOPC则是使用FPGA通用逻辑和存储器资源搭建的CPU,当不使用CPU时,CPU部分占用的资源可以被释放,重新用作通用FPGA资源。

1.2020年第4期《单片机与嵌入式系统应用》电子刊新鲜出炉!

2.物联网时代的嵌入式系统......

3.GCC为何如此强大?

4.为什么很难创造出新的处理器?

5.聊聊苹果公司技术部门的宫斗和冷战

6.编程生涯21载,那些我踩过的坑

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

FPGA硬核和软核处理器的区别~相关推荐

  1. nios 和arm 是硬核还是软核?

    核(CORE)是一个数字系统的核心,负责整个系统的内存调度,中断管理,算术逻辑运算等,如同整个系统的大脑,是由物理电气实现逻辑功能的关键.尽管复杂,但不可忽略的是,核同其他数字器件一样,也是一个典型的 ...

  2. (28)FPGA计数器设计(软核实现)

    (28)FPGA计数器设计(软核实现) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA计数器设计(软核实现) 5)结语 1.2 FPGA简介 FPGA(Fiel ...

  3. 播放器解码硬解跟软解有什么区别

    1.什么是硬解?硬解是要机器中的专门的解码芯片来完成,质量因厂家的技术能力而定,部分厂商技术实力强,兼容性和解码效果做的比较好,而有些厂商技术实力稍差,兼容性和解码效果做的就不尽如意. 2.什么是软解 ...

  4. FPGA的IP软核、硬核以及固核

    PART1 IP(Intellectual Property)就是常说的知识产权.美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC.ASSP和PLD等当中,并且是预先设计好的电路模块 ...

  5. FPGA的软核、硬核以及固核的概念

    核(CORE)是一个数字系统的核心,负责整个系统的内存调度,中断管理,算术逻辑运算等,如同整个系统的大脑,是由物理电气实现逻辑功能的关键.尽管复杂,但不可忽略的是,核同其他数字器件一样,也是一个典型的 ...

  6. 3级调度 fpga_FPGA的软核、硬核、固核

    "核" 现在的FPGA设计,规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的.一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设 ...

  7. NIOS软核处理器入门实验

    NIOS软核处理器入门实验 脚本方式的优势: •便于工程的复制和搬移, 命令脚本能够较好的解决文件路径的相对关系 •便于参数的集中修改,命令脚本的参数相对集中, 在配置文件的集中区域可以完成所有的设定 ...

  8. 软核、固核、硬核的区别【转】

    IP(Intellectual Property)就是常说的知识产权.美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC.ASSP和PLD等当中,并且是预先设计好的电路模块.IP核模块 ...

  9. 软核,硬核、固核的区别!

    软核,硬核.固核的区别! IP(Intellectual Property)就是常说的知识产权.美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC.ASSP和PLD等当中,并且是预先设 ...

最新文章

  1. Codeforces Round #323 (Div. 2)
  2. sql server 替换有反斜杠的字符串_SQL注入思维导图
  3. 职务与职级并行套改表_公务员职务职级并行时,15年的主仼科员能套四级调研员吗?...
  4. multiple versions of scala libraries detected解决方案
  5. 每天都在红绿灯前面梭行,不如自己来实现个红绿灯?
  6. P1297-[国家集训队]单选错位【期望概率】
  7. LeetCode 344 反转字符串
  8. 108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合
  9. Python新式类与经典类(旧式类)的区别
  10. Flex 学习笔记 提高编译速度
  11. 19. 镜像二叉树(C++版本)
  12. 移动办公APP的开发费用和开发流程开发流程
  13. unity编写一个简单的小游戏
  14. 获取股票数据【使用JQData查询行情数据、财务指标、估值指标】
  15. [数学理论]最大熵模型
  16. Python 带你高效剪辑创作短视频
  17. vue.js中实现方法内某些代码延时执行
  18. 计算机网络MTU什么意思,三招使你的网速加速-mtu值怎么设置
  19. 2021语言与智能技术竞赛:机器阅读理解任务 实验报告
  20. mysql 8.x改密码的姿势

热门文章

  1. JavaWeb(14) 页面静态化之使用freemarker模板生成一个html静态页面
  2. 论文阅读(一) 注意力机制
  3. ERA5再分析数据(二)
  4. 实习前端工程师的第一天(第一篇)
  5. Python基础教程,Python神仙级入门教程(非常详细)
  6. 用javascript输出杨辉三角到页面上
  7. 简单的直接转矩控制模型
  8. 【原创】MAC 格式化 U 盘后如何恢复 U 盘在 Windows 下的正常使用
  9. 图书馆借阅数据分析系统设计与实现
  10. 【架构师修炼之路】Redis 极简教程 : 基本数据结构, 跳表原理, Spring Boot 项目使用实例...