|
本帖最后由 zhiweiqiang33 于 2017-9-23 10:47 编辑
(一)
FPGA设计流程中,逻辑综合的过程非常重要。 由于HDL代码的多样性,逻辑综合的质量对最终设计性能的影响非常大。
在.18微米到.15微米的时代,FPGA的性能很大程度上取决于门延迟。根据我的经验,微米时代,FPGA内部延迟一般70%是逻辑门的延迟,而30%是线延迟。 也就是说,最高设计频率FMax取决于关键路径中寄存器间的逻辑层数。 而逻辑层数一方面取决于设计师在设计中对设计流水线的把握,另一方面就取决于逻辑综合器综合质量的好坏。因此,那个时代对逻辑综合的依赖程度那是相当强。。。。。。 ALTERA的软件一直是不错的。从90年代的maxplusii就能够做包括HDL的逻辑综合在内的全流程。到后来的Quartus,也都能做。但是,性能都很弱。。。。Xilinx的逻辑综合还不如altera,因为他们就没有逻辑综合器。 后来开发出了XST, 虽然也比较弱,但是好歹还可以用用,能凑成一套完整的流程。 所以两家公司都鼓励用户采用第三方的逻辑综合器。 这样一来,逻辑综合器就很火爆了,用的人也多,买的人也多。价格很高,还不降价。
那时的逻辑综合器一共有3个厂商在做,Synopsys, synplicity, Mentor. Synopsys的ASIC逻辑综合器DesignCompiler做的相当强。对于FPGA的逻辑综合器,Synopsys财大气粗,根本看不上,只是搞了一个小产品FPGAExpress. 虽然性能一般,但在当时也是很不错的了,因为比起A和X的工具来说,已经好太多了。 Synplicity公司抓住这个时机,推出的Synplify,和synplifyPro,性能就很强悍了,速度爆快,而且还有很多附加的功能,例如RTL图,工艺图,状态机转移图等等。。。非常好用,一时风靡整个FPGA设计领域。 Mentor公司也推了一个产品叫 Leonardo Spectrum,名字还是很好记,因为当时泰坦尼克号的男主角也叫这,而且AC米兰有个球星好像也叫莱昂纳多,反正听着挺熟的。 这个小工具俺用的不多,因为基本上用FPGAExpress就基本够用了。 -------微米时代就说这么多。明天开始纳米时代的故事。
(二)
FPGA发展到纳米时代以后,最大的特点就是规模可以做的非常大。纳米这个概念已经被用滥了。。。FPGA这个行业内纳米一般是指连线的宽度。当连线变细后,相同面积的硅片上就可以容纳更多的晶体管。所以FPGA的规模就比以前大好多。 现在最大的已经有数十万逻辑单元,数兆的RAM。 这里没有写实际的数量,实在是世界变化快。。。 但是,也带来了一个副作用: 连线的宽度越小,对信号的延迟作用就越明显。之前说过,微米时代的FPGA,逻辑延迟占到了70%,线延迟占到了30%。 而到了纳米时代,这个比例基本都在50%左右。 但是总体说来,芯片的性能还是有了很大的提高。
这个时候,对FPGA的综合技术也提出了新的要求。 当设计规模变大后,需要综合器能够在很短的时间内出结果。因为逻辑单元数太多,以前综合一次也就1小时最多了,而现在动不动就要数小时。这几个小时确实非常难熬。 怎么办呢。。。。EDA工具厂商早都料到这个结果,开始提出了各种各样的解决方案。 有的人开始开发出支持多进程的软件。也就是说,可以利用现在的多核CPU, 几个CPU同时跑一个工程,这样人多力量大,可以把编译时间缩短到几分之一。 想法是好的。现实很残酷。 为什么呢。。。 当一个算法,如果后面的计算和前面的计算没任何关系,那么我们可以把它们切成好几部分,各自跑各自的。 到最后大家把结果一汇总,行了。这样就能够节约很多的时间。 但是如果算法中前面的计算和后面的计算依赖性很强,那么不管怎么切,后面的总是要等待前面的结果出来才能继续走。 这样,即使切的再多,也无济于事。 而FPGA设计的编译似乎正是后面一种。。。。。 此路不通。 另一种方法是,把设计先划分成几块,第一次编译的时候,把每次编译的结果记录下来。 当下次再编译时,先去查查看,和上次的结果相比,到底是哪些部分被改动了。 改动过的模块,用新的内容代替,没改动过的,就不要再动了。 这个技术最早被叫做modular design. 也有叫增量编译的, 也有叫做多点综合的。。。。。 总之一句话,都是采用了这样的方式来实现这个过程的。 到纳米技术的时代,综合工具的市场也出现了一些变化。 FPGA厂商由于长期依赖与第三方的综合工具, 心里实在不舒服。 为什么呢。。。。。。 因为逻辑综合器对设计的性能影响太大了。 如果逻辑综合器综合出来的结果altera的要好于xilinx的,那altera的芯片就要占很大便宜了。。。。。名声很重要。 谁也不能戴上“不行”的帽子。 咋办呢。。。。。求人不如求己。 自己搞吧。 所以,XST就来了,并且他们一直在努力。性能上来了。 QuartusII的性能也上来了。 第三方那里,Synplicity的synplifypro一直队形保持的不错。而Mentor也崛起了:precision. 虽然运行时间上还落后于synplify,但是主要性能指标上已经和synplifypro不相上下。现在大家的选择多起来了: 厂商自己的工具,precision,synplify. 怎么选呢。。。。。。
(三)
FPGA的逻辑综合器搞的挺有劲。 ASIC也不闲着。 自从ASIC领域里有逻辑综合工具以来,一个强大的工具自始至终占领着王者的地位,它就是 DesignCompiler. 大家就叫他小名, DC。 从微米时代到纳米时代,不断有人试图和DC较劲,但都功败垂成。 什么原因呢。。。。
FPGA的最大特点是可以重新下载。而ASIC就是一锤子买卖。 这就是本质的不同。 所以,FPGA对设计可靠性的要求相对来讲就要降低很多。即使设计有问题,重新搞一下,再下载一次就好了。 而ASIC,如果不小心出一点点错误,那就全玩完。 带来的后果就是大笔的$$$付之东流。情节严重的,整个公司就会遭遇灭顶之灾。这样的公司我见亲眼见过的就有2个。。。 所以,ASIC的设计对可靠性的要求是第一位的。那如何才能提高设计的可靠性呢? 一方面需要对设计师加强教育,让他们在写代码时按规矩来。 另一方面,要对设计的各个流程严格要求,对使用的工具严格要求。 当HDL作为ASIC设计语言流行起来后, 业界著名的S公司和M公司最早就开始行动,各自出了一个牛人,合作编写了一本叫做<Reuse Methedology Manual>. 这本书中的一部分就规定了HDL代码的可综合的规则。 然后,由于书是自己编写的, 规则是自己定的,所以S公司的DC就变成了业界的标准。如果结果不对,那一定是你的错。 当然,有软件就有BUG。 有BUG就给软件打补丁。打完补丁,下次再升级时,就顺手修复。 DC在数十年的时间,积累了无数多的处理BUG的经验,所以可靠性无与伦比。 当然,这些还不仅仅是全部。 ASIC的另一个特点是会使用很多的IP. FPGA也使用IP。但是和ASIC不同。 FPGA的IP可以出现BUG, 而ASIC的IP如果出现BUG,结果是致命的。 所以,ASIC的IP供应商最重要的任务是证明自己的IP如何可靠。 很难。 但是对S公司来讲,就容易很多了。 因为他可以借助于DC的金字招牌。 S公司搞了一个很大的IP包,叫做DesignWare. 这个IP包中都放了一些经常用到的IP,例如UART,乘法器加法器之类的东西。总之大家也都习惯了用DC,干嘛不用他的DesignWare呢。。。。这样,就造成了只要S公司的DW包中有的IP,就基本上没有其他人再做了。 这样就造成了一个恶果, 离开S公司,ASIC的前端设计就很难做。。。。。 到这个时候 S公司那是相当的强。。。。。。 因为DC成为了一个垄断产品。 垄断,意味着暴利。。。。 DC的价格直到现在,还是要数十万美刀。。。。而且只要做ASIC,就不得不买。 如果你没买过,当人家问你:你用的啥综合器?你就无言以对。 在ASIC设计这个领域,这是不行的。。。。
(四)
S公司借助DC的威力一支独秀,有时也欺负下其他人。 一些只要和综合沾边的小公司,都不得不屈服,大家都忍气吞声。。。。。终于,有人看不过去了。 第一个看不过去的是Synplicity公司。 前文也提过,这家公司主要是做FPGA的逻辑综合器。 由于在FPGA综合领域里面做的风声水起,Synplicity公司的老大开始头脑发热了。。。。。。第一个目标是要把Synplicity公司变为一个全流程公司。 FPGA的市场太小,每年虽然也能划拉个5千万刀,但是比起几亿刀的S公司,还是差好多。 因此,老大开始向ASIC扩展业务。由于自己研发产品时间长,而且要市场认知的话费时费力,他们走了一个捷径--收购, 买了一家做后端功耗分析的公司,整合了一下加入到了自己的产品线。 第二个目标,是要挑战DC的权威---把Synplify的引擎稍微改一下,加入了ASIC的库,凑成了一个ASIC的综合器,业界称之为SynplifyASIC. 想法是好的,方向也对。但是返了一个根本的错误:缺乏自知之明。
(五)
要说Synplicity公司的产品性能,那还是不错的。但关键是选错了对手。 最初,S公司还不是很在意,由着他们去折腾。 所以Synplicity公司的产品有两年还真的很火,到处推销,同时,还喜欢在客户那里把两家的产品都拿来比一比,有时候性能能好一些,就到处宣扬。 终于有一天,搞大了,把工具卖给了芯片业老大Intel。这下S公司上上下下就火的不得了,开始对对手重视起来,随即制定了狠毒的策略。由于S公司家大业大,很快就攒出一个FPGA的逻辑综合器:FPGACompiler II. 工具的性能虽然差一些,但是可以用。这个工具有个最大的特点就是便宜。当遇到有人想买FPGA逻辑综合器的时候,S公司就会潇洒的说:FPGA逻辑综合器,一折甩卖,只要再买点Synopsys公司的其他产品就可以了。 由于S公司家大业大的优势,随便在哪个地方赚点,都能把FPGA逻辑综合器的损失弥补上。 这招真毒。 Synplicity碰到S后,要么一分钱也挣不到,要么也忍痛大甩卖。。。。。。 FPGA逻辑综合器是Synplicity公司的主营收入,如果这么搞下去,几年之内,不死也掉层皮。 而S公司根本不在乎,根子深,没办法。 在经过一段时间的对砍后,Synplicity公司挺不下去了。忍气吞声的和S公司达成默契,把SynplifyAsic这个生不逢时的产品一刀砍掉。而S公司也把FPGACompilerII 也撤出市场。 这场斗争基本告为段落。 而Synplicity公司在斗争中受到了严重的打击,发展势头被严重的遏制。后来又犯了几次方向性错误后,在EDA产业发展的低潮期,被Synopsys以及其便宜的价格收购,从此不复存在。 虽然产品线在收购后还存在,但是毕竟是收购的,终归会存在一些水土不服,SynplifyPro在几次失败的版本中被发现存在重大缺陷,在用户心中老大的地位也不复存在。。。。。。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|