首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

对于sopc的理解[转帖]

对于sopc的理解[转帖]

在论坛上看到的,觉得写的很有见地,拿来大家讨论一下!

 

很多人把主要精力放到了nios的定制上,认为可定制的CPU这一灵活的功能就是sopc的灵魂,实现了nios后,把fpga作为一个传统的mcu来使用,这实际上是一种扬长避短的行为,试想,相对于mcu系统来说,仅仅为了那一点点灵活性,就要凭空在系统设计中增添一项定制工作而得到一个并不是非常稳定可靠的cpu,然后用一个并不是很成熟的开发环境去进行和mcu系统类似的开发,这实在不是产品开发之道。当然,可以把逻辑电路也一同用fpga来实现,这就有那么一点sopc的味道了。我个人对sopc的看法如下:
1:sopc应该是nios系统+硬实时部分+逻辑电路的一个组合体,其中nios负责数据管理,通讯,人机交互等实时性相对较低的任务,硬实时部分则是独立于nios系统,充分利用现有IP,用hdl语言实现的某些实时性可靠性要求较高的关键部分,它可以和nios系统通过自定义的接口通讯。至于逻辑电路,这本就是fpga的强项,没啥可说的,做一些接口以及逻辑处理吧。
2:对于nios系统,altera已经推出了相对比较完整的方案,现在nios在功能上来讲,已经非常全面了,并且也有多种os可供选择,据说年底要推出带有mmu的nios,到时候,linux应该会在nios上大行其道。
3:对于我认为最关键的硬实时部分,我认为这才是sopc系统的精华所在,但由于纯粹要用hdl语言实现,最多是结合一些现有的ip,因此难度较高,我觉得这也正是altera一直鼓吹sopc但效果却并不理想的根本原因,不过altera自有妙计,于是推出了dsp builder。
4:至于dsp builder,纯粹是为了降低系统硬实时部分编码过于困难的一个工具,目前Altera推出的参考方案多是音视频等信号处理领域,但是由于靠上了matlab这个大牛(控制领域事实上的标准),自然是要在控制领域多下功夫,只是目前还不支持浮点,并且相应的IP也不齐备,但是基于matlab的直接代码生成,肯定是一个方向,相信dsp builder会马上支持浮点的,并且应该会在控制领域有所动作。实际上,dsp builder或者说xilinx的system generator的推出,就是为了降低开发难度,配合nios实现sopc系统,以此来和传统的dsp处理器市场。
5:举一个例子说明一下sopc的作用,以pci总线的视频卡来讲,一般来说都是dsp处理器完成视频信号处理(实时性要求较高)、数据后处理、与pc通讯等功能,系统中如果采用fpga,大都是实现pci的桥接器以及其他逻辑功能,现在有了dspbuiler,那么视频信号处理这一实时性要求较高的功能完全可以用dspbuilder直接生成,然后用nios代替传统dsp处理器的数据后处理和通讯功能,同时在集成pci接口和其他逻辑功能,如此则sopc大事成矣。
6:在控制领域,关键问题是controller的实现,首先在控制领域,我认为nios2直接做控制器还难当大任,而且就算抛开可靠性、成熟性等因素,控制领域一般都是需要硬实时(hard real-time),同时一般还会有大量的浮点处理,我个人估计nios2恐怕难以实现,这些已经决定了controller必须用硬件实现,也就是用vhdl写控制器,这样做的话,对于系统中所需要的浮点运算,最好用相应的ip实现,否则恐怕很难。
下图我所设想的一个简要的系统框图----nios+硬实时部分+逻辑电路,nios在其中主要从事通讯、人机交互等功能,控制回路则由硬实时部分配合相应的a/d和d/a实现,其他可作为逻辑电路(这个总是少不了的),当然其中错误可能不少,欢迎大家不吝指出。

返回列表