利用混合信号FPGA和先进的软件工具实现简易系统设计
基本设计流程概念
标准现货微处理器基本上只是一块功能性硅片,需要设计人员进行指令编码,例如在初始设置中配置外设、运行主要功能、与外界连接等。微处理器要在设计人员给予“身份”之后才能开始工作,它既可被编程和现场重编程,也能够进行多次重新定义。
另一方面,FPGA也是一块功能性硅片,它可能包含一些特殊的功能性模块(如存储器),但同样必须在定义“身份”后才能工作。尽管FPGA在I/O的选择使用上灵活性稍大,而且可并行操作,但它和微处理器一样,都需要设计人员赋予它们“生命”。
虽然嵌入式设计人员很少同时从事FPGA设计,FPGA设计人员一般也不会踏进嵌入式领域,但他们的设计流程其实极为相似。如图1所示,两者在设计器件时都是从零开始,采用某种语言编写、编译或构建代码,然后对器件进行编程和调试。他们都能够设计出出色又独特的实现方案,可能简单如控制一盏灯,也可能复杂似一件艺术品。这些形容简化了编写的内容,同时也意味着设计流程偏向于并行化,而且更具兼容性。
集成嵌入式处理器的FPGA
过去十多年间出现了两类集成处理器的FPGA:带有处理器软核的FPGA和带有处理器硬核的FPGA。它们各有其优缺点,但其中有些FPGA得以幸存,有的却惨遭淘汰。问题在于嵌入式与 FPGA 设计人员的设计流程和相反特性究竟在多大程度上阻碍了这些器件的快速采纳。
带处理器软核的FPGA
带处理器软核的FPGA主要是由FPGA供应商提供的产品或解决方案。它为FPGA设计人员提供了尝试嵌入式设计的机会,不过由于FPGA设计人员在AVR、8051、PIC或ARM等标准处理器上往往拥有自己的个人偏好、经验和代码库,因而往往无法超过真正的嵌入式设计人员。多年来,爱特公司一直致力于为航天产品提供处理器软核(如8051和Leon),最近更推出了集成了ARM7、8051和ARM?誖CortexTM-M1处理器的快闪FPGA。
处理器软核的优势一般包括:(1)可以根据需要增加外设;(2)在某些无需使用所有功能的情况下,可以简化指令集以减小占用空间;(3)在需要时可以把设计移植到更大的FPGA中。
但是这种方案中仅仅是处理器本身就要使用相当大的硅面积,因而成本高于独立式处理器。外设数量的增加可能导致时序问题,而这超出了嵌入式设计人员的经验范围。此外,SRAM FPGA没有闪存来存储代码和数据,所以必须配置额外的闪存器件,而这也会影响到I/O要求、电路板版图和设计复杂性。
从设计角度来看,进行嵌入式设计的FPGA设计人员首先必须解决FPGA中处理器的硬件版图问题,然后再进行FPGA内部嵌入式应用的调试。如果只有一个设计人员进行产品开发工作,则开发流程基本上是串行化的。如果在设计中存在缺陷或问题,便需要深入剖析许多层面才能找出原因所在(是代码问题、RTL问题,还是硬件时序问题)。所有这些都影响着产品的上市时间和可靠性,最终关系到该项技术的全面采纳。
带嵌入式处理器硬核的FPGA
带处理器硬核的FPGA有多种形式,均为行业标准产品,这一点十分有利于加速产品的推广应用。例如,Triscend公司拥有8051/ARM FPGA,爱特梅尔(Atmel)则推出了基于AVR的FPSLICTM器件。由于Triscend在FPGA和现有FPGA设计流程方面缺乏深厚背景,所以根据器件需要开发出了一个对自己有利的工具流程。这个工具流程能够更加直观地整合各种组件,但缺少一般FPGA用户期望的FPGA详细设计功能。爱特梅尔拥有FPGA技术背景,其设计流基于FPGA/嵌入式并行流程,并可通过配置对话来定义两者间的接口。
这些FPGA都具有一个优点,即采用业界标准处理器。其他优点还包括:由于采用业界标准处理器,能够使用业界领先的编译器(如KeilTM和IAR Systems?誖),从而再次进入主流嵌入式领域。处理器硬核的设计流程已被证明对双方都很有利,不过FPGA和微处理器之间接口的调试可能是一大挑战。
一直以来,较高的硅成本都是带有处理器硬核的FPGA的缺点。硬核处理器的成本曾非常接近独立式处理器的成本,而当时FPGA仍然十分昂贵,因此说服那些使用1美元或2美元器件的嵌入式设计人员在成本只有15美元的设备中使用FPGA,还要增加一个额外的外设,对销售人员或工程师来说都不是一个好主意。对于FPGA设计人员而言,这些器件中的FPGA实在太小,无法激起很大兴趣。FPSLIC曾是一个不错的点子,工程师都希望找到这方面的项目,不过一旦进入定价和物流阶段,许多机会都无法满足应用的实际需求。
暂无评论