我学习FPGA的总结

2011-02-28 12:40:11来源: 互联网
阅读本文的人群:熟悉数字电路基本知识(如加法器、计数器、RAM等),熟悉基本的同步电路设计方法,熟悉HDL语言,对FPGA的结构有所了解,对FPGA设计流程比较了解。

一.序 言

1.FPGA的好处

设计工程师不在需要画繁琐的原理图PCB连线,从而将工作重心转移到功能实现上,极大地提高了工作效;随着HDL(Hardware Description Language)硬件描述语言语言综合工具及其它相关工具的推广已经加大的FPGA的应用普及。

2.工程师们在使用FPGA时的一些坏习惯

任何事务都是一分为二的,有利就有弊。

我们发现现在越来越多的工程师不关心自己的电路实现形式,以为“我只要将功能描述正确,其它事情交给工具就行了”。

在这种思想影响下,工程师在用HDL语言描述电路时,脑袋里没有任何电路概念,或者非常模糊;也不清楚自己写的代码综合出来之后是什么样子,映射到芯片中又会是什么样子,有没有充分利用到FPGA的一些特殊资源。遇到问题,首先想到的是换速度更快、容量更大的FPGA器件,导致物料成本上升;更为要命的是,由于不了解器件结构,更不了解与器件结构紧密相关的设计技巧,过分依赖综合等工具,工具不行,自己也就束手无策,导致问题迟迟不能解决,从而严重影响开发周期,导致开发成本急剧上升。

3.学好FPGA应该要具备的知识

目前,我们的设计规模越来越庞大,动辄上百万门、几百万门的电路屡见不鲜。同时我们所采用的器件工艺越来越先进,已经步入深亚微米时代。而在对待深亚微米的器件上,我们的设计方法将不可避免地发生变化,要更多地关注以前很少关注的线延时(我相信,ASIC设计以后也会如此)。

如果我们不在设计方法、设计技巧上有所提高,是无法面对这些庞大的基于深亚微米技术的电路设计。而且,现在的竞争越来越激励,从节约公司成本角度出发,也要求我们尽可能在比较小的器件里完成比较多的功能。

二.谈谈FPGA的工具几个关键问题

4.关于我们对FPGA工具过分依赖的问题认识

硬件描述语言和综合工具的产生,极大地提高了工程师的工作效率。然而,随着它们的普及与推广,一种不好的现象也在逐步蔓延;在设计过程中,只关注功能是否实现,而不考虑或很少考虑电路到底是如何实现的;过分依赖综合等工具来提高设计性能(如速度、面积等),而不是从设计本身来考虑自己的电路是否最佳。

如果将设计看成是一个化学变化,那么工具只是起到催化剂的作用,我们所掌握的背景知识、电路设计方法及有关技巧,才是参加化学反应的分子,是起决定作用的因素。

因此,设计遇到困难时,不能完全指望工具,更不能怪罪工具。只有我们才是决定设计成败的关键。

5.不管使用何种综合工具,都包括两个过程

过程1:是把行为级的描述通过一定的算法转化为门级的描述,该过程与设计的工艺库无关、与用户约束无关。

过程2:是把已经转化的门级描述在用户的约束下,通过算法映射到相应的工艺库中的器件上。对ASIC,是映射到厂商的Gate库中,对FPGA,是映射到FPGA器件的单元结构中。

从上两个步骤可知,当设计代码的的风格不一样时,则在综合第一步就已大部分决定了设计的性能(对ASIC来说,因为是转成Gate, 器件库一般也是Gate, 相对影响较少)因此,我们不难理解代码风格对FPGA设计的重要性。

6.说说具体的综合工具性能

不同综合工具的针对目标不一致和各综合工具的不同性能,导致了综合出来的结果也不同。

目前,综合工具主要有DC(Design Compiler)、FC2(FPGA Compiler II)、Synplify、Leonardo、Galileo 等综合工具:
1)DC:主要是用于ASIC的综合工具
2)FC2:是DC在FPGA综合方面的增强版
3)Leonardo:是做FPGA综合工具的先驱
4)Synplify:是目前成长最快的综合工具(由Synplicity公司出品)

        无论哪家综合工具,对FPGA的综合,都必须紧密结合各FPGA厂家的FPGA结构,否则无法更好利用FPGA提供的优点;从目前来看,优选Synplify或Leonardo综合工具;DA的FPGA综合性能差但事宜ASIC综合。
到目前为止第三方的综合工具都未能很好利用FPGA器件,因为代码风格没有跟上,导致无法得到很好的性能。


7.逻辑代码风格的重要性
因为综合工具无法最大使用到器件所提供的优越性能,导致最终的产品性能变差;若想得到更好的性能,这要求在FPGA设计上,最好对一些设计采用一些Core(但这种基于FPGA器件(特有工艺)的代码设计,将降低设计代码的重用性能、以及FPGA设计与ASIC设计的兼容性)。

8.举例:以Xilinx为例,我们怎样采取恰当的代码风格,以提高电路性能:
1)        资源共享的应用限制在同一个module里。这样,综合工具才能最大限度地发挥其资源共享综合作用。
2)        尽可能将Critical path上所有相关逻辑放在同一个module里。这样,综合工具能够发挥其最佳综合效果。
3)        Critical path所在的module与其它module分别综合,对critial path采用速度优先的综合策略,对其它module采用面积优先的综合策略。
4)        尽可能Register所有的Output。做到这一点,对加约束比较方便;同时一条路径上的组合逻辑不可能分散在各个module里,这对综合非常有利。可以比较方便地达到面,积速度双赢的目的。
5)        一个module的size不能太大。具体大小,由各综合工具而定。
6)        一个module尽量只有一个时钟,或者整个设计只有一个时钟。



关键字:学习  fpga  总结

编辑:小来 引用地址:http://www.eeworld.com.cn/FPGA/2011/0228/article_1897.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
学习
fpga
总结

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved