原创 FPGA研发之道(21)-鸡肋?

2014-7-28 23:19 2516 11 13 分类: FPGA/CPLD 文集: FPGA研发之道

 通常认为,SOPCFPGA设计中的鸡肋,“弃之可惜,食之无味”。诚然,SOPC一直不是FPGA的主流应用设计,制约主要因素则是性能,因为作为处理器使用时,处理器主频是其应用范围的瓶颈(SOPC的软核处理器一般运行几十兆到百兆,而一般的嵌入式处理器系统在几百兆到Ghz的主频)。但是若因此说成“鸡肋”,也确实夸张。厂家推出SOPC的设计,其优点主要有一下几点,其一:是差异化竞争的需要。其二,扩大应用范围,争取更多的软件工程师能够从事FPGA设计。其三,可以替代低性能处理器,减少板级的面积和BOM成本。

那么,那么FPGA内部基于软核处理器的系统的主要应用场景有哪些,总结如下:

(1)               管理配置:对于性能无要求的管理配置功能。如某外接芯片或FPGA内部IP在其工作之前,需进行初始化和管理配置,而初始化的模块较多或者管理配置较为复杂,此种情况下,用软件处理更为方便合理。因此,假如FPGA内部资源较为充足,通过内部建立SOPC系统,利用片内的软件给多个外围模块或者内部IP进行初始化的配置管理,即省去配置CPU,减少板级面积,也能便于配置的修改,同时还可以作为前面讲的可测性设计的一部分,用于内部各模块计数统计,功能测试等。

(2)               配合专用硬件加速单元使用: SOPC系统可以通过总线扩展专用协处理单元。即将关键模块硬件化实现,实现高速的处理。举例说,如实现图像处理功能,而SOPC的软件性能不能支持高分辨率图像的处理能力,则可以通过逻辑实现专用的图像处理算法,通过总线接口与SOPC系统连接。,SOPC只作为数据的管理和调度使用。 此外厂商还这么提供了SOPC优化手段,例如通过算法指令分析,确定最多的操作,通过专用指令硬件实现,通过在程序中调用专用指令,也是能够提升性能的方式之一。

(3)               多核并行:这里多核并行通常意义不同,指通过多个SOPC系统,并行执行,可以提升系统的性能。对于单指令集多数据流的业务,通过将业务流分配到多个SOPC上,通过多个SOPC系统并行处理的方式,来提升整个系统的性能。此种情况下,通过多个SOPC系统并行处理,需满足几个条件:(1)即业务之间没有关联性,不需要再多个SOPC之间进行数据的交互,否则会影响整个系统的性能。(2)程序区不能太大,最好全部存储在片内RAM中。而不用占用外部存储区(DDR或者SRAM),否则,多个片上存储系统争抢外部存储区,可能会造成系统性能的瓶颈,如需存储在片外,则接口竞争部分则是关键设计。

20140728231754450.jpg

       SOPC就像一个偏科生,其优点和缺点都是那么明显,即其强大的灵活性和可编程性,配置其可怜的主频。但是通过一系列提升性能的手段,SOPC在某些业务中也可以大显身手,尤其是需求频繁变更的业务,将变化部分通过软件实现,而不变部分硬件化实现,可以更快的满足市场的需求。

    最后,软核CPU处理能力的瓶颈,也促使现有FPGA厂商提供了基于硬核CPUSOC+FPGA的解决方案,而这些的努力将促进FPGA应用场景的扩展。FPGA广阔天地,大有可为。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1458803 2015-3-3 18:28

个人不太看好SOC+FPGA(如zynq)。甚至觉得软核应用的空间相比之下反而大一些。 第一:使用 软核/硬核+FPGA,通常都是成本敏感型的应用场景。而像zynq这种在量不大时,采购成本比FPGA+ARM(例如cyclone/spartan + ARM)要高挺多的。 第二:高端应用场景下,CPU一般都是做成可插拔的子卡形式,不同的性能需求下,更换不同的CPU,而承载板上FPGA不用更换。 真心希望FPGA厂商能够降低FPGA的价格,让更多的公司使用FPGA芯片。让FPGA的应用更加广泛。让我们这些FPGA开发人员有更多的就业选择机会。

用户1748817 2014-8-4 15:07

学习中😊
相关推荐阅读
阿昏豆 2015-11-21 23:25
把大象关冰箱的步骤 --- NAND FLASH控制器磨损管理算法芯片化硬实现
把大象关冰箱的步骤 --- NAND FLASH控制器磨损管理算法芯片化硬实现   目前,存储领域包括eMMC,SATA SSD ,PCIe SSD等控制器是一个非常热门的领域。通常,由于...
阿昏豆 2015-11-09 22:25
平行宇宙的追逐--异步FIFO控制器的设计
  平行宇宙的追逐--异步FIFO控制器的设计。    在逻辑设计中,通常会用到异步FIFO,异步FIFO控制器是经典的异步信号传输的范例,通过FIFO控制器与异步双端口RAM的组合实现数据的...
阿昏豆 2014-08-23 23:36
FPGA研发之道(25)-管脚
     管脚是FPGA重要的资源之一,FPGA的管脚分别包括,电源管脚,普通I/O,配置管脚,时钟专用输入管脚GCLK等。 (1)电源管脚:    通常来说: FPGA内部的电压包括...
阿昏豆 2014-08-10 22:22
FPGA研发之道(24)-控制(下)
   首先依次回答上篇提出的几个问题:       第一个问题:如何避免状态机产生lacth 示例如下,通过在always(*)语句块中,添加默认赋值,ns_state = cs_state; alw...
阿昏豆 2014-08-07 21:53
FPGA研发之道(23)-控制(上)
本质上说,FPGA的模块设计就是将输入转化成想要得到的输出结果。而除了某些简单模块,即在当拍内完成,即将输入进行逻辑操作后,再输出。(如简单加法器等)。其余大部分的设计需要通过时序逻辑和组合逻辑混合实...
阿昏豆 2014-08-06 23:12
FPGA研发之道(23)-控制(上)
本质上说,FPGA的模块设计就是将输入转化成想要得到的输出结果。而除了某些简单模块,即在当拍内完成,即将输入进行逻辑操作后,再输出。(如简单加法器等)。其余大部分的设计需要通过时序逻辑和组合逻辑混合实...
我要评论
2
11
关闭 站长推荐上一条 /3 下一条