Altera的-6、-7、-8速度等级逆向排序,Xilinx速度等级正向排序。

不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法

“序号越高,速度等级也越高”这是Xilinx FPGA的排序方法

从那时起,就一直没搞明白speed grade是怎么来的,唯一的概念是:同一款芯片可以有多个速度等级,不同的速度等级代表着不同的性能,不同的性能又导致芯片价格的巨大差异。脑子里总有 一个模模糊糊的推测:FPGA厂家为了提高利润,专门给同一款芯片生产了不同的速度等级。

直到一年前和一位学过IC设计的同事hammer讨论这一问题时,才有了新的认识:对FPGA厂家来说,为了得到同一款芯片的不同速度等级而专门设 计不同的芯片版图是不划算的;所以芯片的速度等级不应该是专门设计出来的,而应该是在芯片生产出来之后,实际测试标定出来的;速度快的芯片在总产量 中的比率低,价格也就相应地高。

这一解答很是合理,纠正了我的一个错误认识。但是我仍然有两点困惑:1. 是什么因素导致了同一批芯片的性能差异;2. 如果因素已知,为什么不人为控制这些因素,提高高速芯片的产率,达到既增加芯片厂商的利润又降低高速芯片价格的目的呢。

前些天在博客里看到hugu朋友的一篇FPGA speed grade,激发了我进一步探索上述问题的动力。通过在网络上搜索,逐步得到了以下一些 认识:

1. 芯片的速度等级决定于芯片内部的门延时和线延时,这两个因素又决定于晶体管的长度L和容值C,这两个数值的差异最终决定于芯片的生产工艺。怎样的工艺导致了这 一差异,我还没找到答案。

2. 在芯片生产过程中,有一个阶段叫做speed binning。就是采用一定的方法、按照一组标准对生产出来的芯片进行筛选和分类,进而划分不同 的速度等级。“测试和 封装”应该就包含这一过程

3. 速度等级的标定不仅仅取决于芯片本身的品质,还与芯 片的市场定位有很大关系,返修概率和成本也是因素之一。

4. 芯片的等级可以在测试后加以具体调整和改善,在存储器芯片的生产中这一技术应用很广泛

5. 芯片生产的过程是充满各种变数的,生产过程可以得到控制,但是控制不可能精确到一个分子、一个原子,产品质量只能是一个统计目标。同一个wafer上的芯 片会有差异,即使是同一芯片的不同部分也是有差异的。速度等级是一个统计数字,反映了一批芯片的某些共同特性,不代表个别芯片的质量。而且由于某些芯片的 测试是抽样进行的,也不排除个别芯片的个别性能会低于标定的速度等级。不过,据说FPGA的测试是极严格的,很可能我们拿到手的芯片个个都经过了详尽的测 试。这也是FPGA芯片价格高于普通芯片的原因。

Statistical Static Timing Analysis - A Better Alternative

6. 同一等级的芯片中的绝大多数,其性能应该高于该速度等级的划分标准。这也是为什么在FPGA设计中,有少许时序分析违规的设计下载到芯片中仍然能够正常运 行的原因(时序分析采用的模型参数是芯片的统计参数,是最保守也是最安全的)。不过,由于同一等级的芯片仍然存在性能差异,存在时序违规但是单次测试成功 的FPGA设计不能确保在量产时不在个别芯片上出现问题(出了问题就要返修或现场调查,成本一下子就上去了)。所以,还是要把时序收敛了才能放心量产,这 就是工程标准对产品质量的保证。

7. 概率和统计学源于工程实践,对工程实践又起到了巨大的指导作用。工程实践中的标准都是前人经验教训的积累,是人类社会的宝贵精神财富。

8. 现实世界是模拟的,不是数字的。在考察现实问题时,我们这些数字工程师和软件工程师应该抛弃“一是一、〇是〇”的观念,用连续的眼光看待这个连续变化的真 实世界。

9. 芯片生产过程中的不确定性导致了芯片的性能差异,这一差异影响了芯片的价格,价格和性能的折中又影响了我们这些FPGA设计工程师在器件选型、设计方法上 的决策,我们生产的产品的性价比决定了产品的销售,产品的销量又决定了芯片的采购量,采购量又影响了芯片的采购价格...。原子、分子级别上的差异,就这 样一级一级地传递和放大。人类社会就是这样环环相扣,互相制约的。嘿,真是神奇!

FPGA speed grade的更多相关文章

  1. FPGA速度等级

    转自http://wenku.baidu.com/view/ea793deef8c75fbfc77db263.html?from=rec 最初接触speed grade这个概念时,很是为Altera的 ...

  2. Xilinx Zynq FPGA Boards板

    Xilinx Zynq FPGA Boards板 Xilinx Zynq FPGA Boards 介绍 Styx是一个易于使用的Zynq开发模块,具有Xilinx的Zynq ZC7020 SoC和FT ...

  3. 设计简单算法体验Vivado HLS的使用

    前言 本文主要讲解了使用Vivado HLS设计简单C语言的二选一选择器算法的硬件HLS开发的全流程,包括工程创建-算法验证和仿真-算法综合-RTL仿真-IP封装等步骤. 参考网站: http://b ...

  4. Quartus11中新建工程

    最近在使用CycloneII的开发板,但是高版本的Quartus不支持II系列的开发,于是只能用Q11了.好久没玩FPGA了,新建工程的过程中遇到了一些问题,这里把这些问题记下了以便以后查看. Qua ...

  5. 【黑金原创教程】【TimeQuest】【第二章】TimeQuest模型角色,网表概念,时序报告

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  6. 【黑金原创教程】【TimeQuest】【第五章】网表质量与外部模型

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  7. ITU-R BT.656 协议

    ITU-R BT.601和ITU-R BT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准.严格来说,ITU-R ...

  8. 如何确定FPGA电路中DDR4的Speed bin 是否兼容?

    原创 by DeeZeng DDR4 是否兼容,拿更快速度的DDR4,是否可以不改FPGA工程,直接换料就能直接用? 实际工作中,经常会碰到因为DDR3/4 或其他料件换料了,需要判断FPGA工程中I ...

  9. FPGA Timing笔记

    很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路 ...

随机推荐

  1. static、final、static final 用法

    1.使用范围:类.方法.变量.2.区别和联系:2.1.static 含义:静态的,被 static 修饰的方法和属性只属于类不属于类的任何对象.2.2.static 用法:2.2.1.static 可 ...

  2. php的SAPI,CLI SAPI,CGI SAPI

    首先一个问题:在命令行下执行:php -r 'echo 12;' 控制台会打印出 12: 这个过程不是很奇妙么,我输入的是shell命令,但是执行的却是php脚本.php脚本执行完成之后的输出还能在控 ...

  3. 2015 Multi-University Training Contest 1 - 1002 Assignment

    Assignment Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Mean: 给你一个数列和一个k,求连续区间的极值之 ...

  4. Oracle工程建设行业解决方案

    为何选择Oracle工程建设行业解决方案? Oracle为工程建设企业提供一套全面.开放且集成的业务管理软件.服务器和存储解决方案.这些解决方案经过集成设计,能够实现卓越性能,从而优化业务的方方面面. ...

  5. 重构第21天 合并继承 (Collapse Hierarchy)

    理解:本文中的”合并继承”是指如果子类的属性和方法也适合于基类,那么就可以移除子类,从而减少依赖关系. 详解:上一篇我们讲到“提取子类”重构是指当基类中的一个责任不被所有的子类所需要时,将这些责任提取 ...

  6. Python入门笔记(11):集合

    一.目录 1.集合概述 2.关于集合的操作符.关系符号 3.集合的一系列操作(添加.更新.访问.删除) 4.关于集合的内建函数.内建方法 5.小结 二.集合概述 集合(set):把不同的元素组成一起形 ...

  7. jquery ajax给外部变量赋值 async: false

    开发过程中用到检查是否存在手机号问题. //验证手机号是否注册            var bl = false;            $.ajax({                type: ...

  8. 论httpclient上传带参数【commons-httpclient和apache httpclient区别】

    需要做一个httpclient上传,然后啪啪啪网上找资料 1.首先以前系统中用到的了commons-httpclient上传,找了资料后一顿乱改,然后测试 PostMethod filePost = ...

  9. 邻接矩阵c源码(构造邻接矩阵,深度优先遍历,广度优先遍历,最小生成树prim,kruskal算法)

    matrix.c #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include < ...

  10. Linux FTP配置文件说明

    一.vsftpd说明: LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd. 访问 ...