FPGA上的嵌入式Linux


10

我对FPGA的经验非常有限(Altera-仅使用视觉设计工具)。

我正在计划一个需要FPGA的新项目,并且可以从运行在同一块板上的实际linux中受益匪浅(主要用于TCP通信以及某些DSP)。

我的问题是,是否有推荐的FPGA,它为此准备了受支持的嵌入式Linux?没有花哨的驱动程序(仅以太网,wifi可能是一个加号,...)。我想象FPGA中会内置一个微控制器(这意味着它将占用大量FPGA,而我需要一个更大的FPGA)。

Answers:


15

能够运行no-mmu版本的linux的教科书32位RISC处理器内核实际上并不需要那么大-所需的实际资源是比任何FPGA都更多的RAM(10兆字节),因此您我可能会在板上需要SDRAM,而在FPGA中则需要一个控制器。

就是说,如果您想获得比平凡的性能更高的性能,则可能需要具有一些优化(流水线等)的内核,并且这会在某种程度上增加大小。添加完整的mmu将使内存(重新)分配更加有效,并启用通常的写时复制fork()行为。

两家主要的FPGA供应商都拥有带有可用Linux端口的软处理器内核-用于Xilinx的Microblaze,用于Altera的Nios II。您可能应该阅读他们的文档,以了解特定的平台建议,因为它当然是随时间变化的目标。如果第三方核心设计是以更可移植的方式编写的,并且没有针对给定的FPGA系列进行专门优化,则其性能可能会更大。

从历史上看,已经有可用的芯片将硬核(通常是powerpc)与可配置的FPGA结构区域结合在一起。要查看的另一种选择是与FPGA在同一板上的独立处理器(可能是ARM)。

很多决定将取决于您需要多么紧密地耦合处理器和FPGA。如果您可以将问题减少到配置寄存器和数据流,则它可以像将带有快速USB芯片的FPGA板悬挂在BeagleBoard或RasberryPi等嵌入式Linux板的USB主机端口上一样模块化。为了实现更紧密的集成,您可能希望将FPGA放在同一块板上并位于处理器的外部总线上。或者对于低数据速率,将SPI寄存器接口放置在FPGA中是微不足道的,而UART接口则完全可行,尽管有点棘手。

最后,这是一个问题,如果您实际上需要一个完整的操作系统(例如linux),还是一个“微控制器大小”的嵌入式TCP堆栈是否可以解决您的问题,同时又需要更少的内存。


6

赛灵思的Microblaze可以运行Linux并能很好地运行,前提是它足够快地满足您的目的-在较便宜的设备中只能实现10s的MIPS,而在昂贵的设备中只能达到100-200 MIPS。

Xilinx有一个git repo,或者有一些Xilinx特定的发行版。由于您的存储器映射和IRQ映射,甚至可用的外围设备都可能在项目开发过程中发生变化,因此FPGA的灵活性可能会有些痛苦,而且会带来很多麻烦。

Petalinux具有脚本来管理这种情况,并根据您最新,最出色的系统设计来更新重要的内核配置。


4

Xilinx的Virtex系列具有带有硬核PowerPC的FPGA版本。在PowerPC上运行Linux相当容易,我的学生已经在许多高级设计项目中做到了。他们仍然具有大量可配置的结构,可以满足您的硬件设计需求。

Virtex2临评估板是在教育和学术研究项目十分常见。由于Xilinx在其最近的工具中已不再支持该版本的芯片,因此您可以以相对便宜的价格购得该芯片。我认为它在9.x左右的版本中都受支持。嗯 那是几年前的事,所以也许我有点怀旧了。无论如何,我仍会将这些委员会分发给感兴趣的学生,让他们随心所欲地做任何事情。


1
如果我没记错的话,它们被称为Virtex xilinx.com/onlinestore/v2pro_boards.htm
阿里

1
@Ali-我认为您没有记错,您的断言有相当可靠的参考。在这种情况下,请随时提出修改建议!
凯文·维米尔

3

Actel的SmartFusion在单芯片设备中将FPGA与硬IP ARM Cortex-M3内核和高级模拟引擎集成在一起。

uClinux在SmartFusion的Cortex-M3内核上运行良好。检查此站点以获取更多详细信息。


2

根据您的时间框架,您可能还会研究Xilinx的新Zynq-7000系列,该系列将ARM处理器与Artix-7或Kintex-7结合在一起。赛灵思声称他们将在2012年下半年开始量产。

其他供应商可能有类似的产品。我不知道Xilinx是否或何时将Zynq支持引入免费的ISE WebPack。现在,他们声称您需要ISE嵌入式版本。


你为什么要做出这个答案社区维基?那可能是不必要的。
凯文·维米尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.