FPGA速度等级
转自http://wenku.baidu.com/view/ea793deef8c75fbfc77db263.html?from=rec
最初接触speed grade这个概念时,很是为Altera的-6、-7、-8速度等级逆向排序的方法困惑过一段时间。不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法,“序号越高,速度等级也越高”这是Xilinx FPGA的排序方法。
从那时起,就一直没搞明白speed grade是怎么来的,唯一的概念是:同一款芯片可以有多个速度等级,不同的速度等级代表着不同的性能,不同的性能又导致芯片价格的巨大差异。脑子里总有一个模模糊糊的推测:FPGA厂家为了提高利润,专门给同一款芯片生产了不同的速度等级。
直到一年前和一位学过IC设计的同事hammer讨论这一问题时,才有了新的认识:对FPGA厂家来说,为了得到同一款芯片的不同速度等级而专门设计不同的芯片版图是不划算的;所以芯片的速度等级不应该是专门设计出来的,而应该是在芯片生产出来之后,实际测试标定出来的;速度快的芯片在总产量中的比率低,价格也就相应地高。
这一解答很是合理,纠正了我
前些天在博客里看到huge朋友的一篇FPGA speed grade,激发了我进一步探索上述问题的动力。通过在网络上搜索,逐步得到了以下一些认识: 的一个错误认识。但是我仍然有两点困惑:1. 是什么因素导致了同一批芯片的性能差异;2. 如果因素已知,为什么不人为控制这些因素,提高高速芯片的产率,达到既增加芯片厂商的利润又降低高速芯片价格的目的呢。
1. 芯片的速度等级决定于芯片内部的门延时和线延时,这两个因素又决定于晶体管的长度L和容值C,这两个数值的差异最终决定于芯片的生产工艺。怎样的工艺导致了这一差异,我还没找到答案。
2. 在芯片生产过程中,有一个阶段叫做speed binning。就是采用一定的方法、按照一组标准对生产出来的芯片进行筛选和分类,进而划分不同的速度等级。“测试和封装”应该就包含这一过程。
关于speed binning的技术有很多专利: riple
Integrated circuit with adaptive speed binning
Semiconductor device with speed binning test circuit and test method thereof
Method and apparatus for determining wafer quality profiles
Method of sorting dice by speed during die bond assembly and packaging to customer order
Method for prioritizing production lots based on grade estimates and output requirements
3. 速度等级的标定不仅仅取决于芯片本身的品质,还与芯片的市场定位有很大关系,返修概率和成本也是因素之一。
4. 芯片的等级可以在测试后加以具体调整和改善,在存储器芯片的生产中这一技术应用很广泛。
5. 芯片生产的过程是充满各种变数的,生产过程可以得到控制,但是控制不可能精确到一个分子、一个原子,产品质量只能是一个统计目标。同一个wafer上的芯片会有差异,即使是同一芯片的不同部分也是有差异的。速度等级是一个统计数字,反映了一批芯片的某些共同特性,不代表个别芯片的质量。而且由于某些芯片的测试是抽样进行的,也不排除个别芯片的个别性能会低于标定的速度等级。不过,据说FPGA的测试是极严格的,很可能我们拿到手的芯片个个都经过了详尽的测试。这也是FPGA芯片价格高于普通芯片的原因。
6. 同一等级的芯片中的绝大多数,其性能应该高于该速度等级的划分标准。这也是为什么在FPGA设计中,有少许时序分析违规的设计下载到芯片中仍然能够正常运行的原因(时序分析采用的模型参数是芯片的统计参数,是最保守也是最安全的)。不过,由于同一等级的芯片仍然存在性能差异,存在时序违规但是单次测试成功的FPGA设计不能确保在量产时不在个别芯片上出现问题(出了问题就要返修或现场调查,成本一下子就上去了)。所以,还是要把时序收敛了才能放心量产,这就是工程标准对产品质量的保证。
7. 概率和统计学源于工程实践,对工程实践又起到了巨大的指导作用。工程实践中的标准都是前人经验教训的积累,是人类社会的宝贵精神财富。
8. 现实世界是模拟的,不是数字的。在考察现实问题时,我们这些数字工程师和软件工程师应该抛弃“一是一、〇是〇”的观念,用连续的眼光看待这个连续变化的真实世界。
9. 芯片生产过程中的不确定性导致了芯片的性能差异,这一差异影响了芯片的价格,价格和性能的折中又影响了我们这些FPGA设计工程师在器件选型、设计方法上的决策,我们生产的产品的性价比决定了产品的销售,产品的销量又决定了芯片的采购量,采购量又影响了芯片的采购价格...。原子、分子级别上的差异,就这样一级一级地传递和放大。人类社会就是这样环环相扣,互相制约的。嘿,真是神奇!
FPGA速度等级的更多相关文章
- 如何通过卡面标识区分SD卡的速度等级
现在很多设备都可以插存储卡,而比较流行的就是SD(Secure Digital Memory Card)卡和Micro SD(原名TF,Trans-flash Card )卡,这两种卡主要就是尺寸不同 ...
- 提高FPGA速度的quartus编译选项
Turning on some optimizations in Quartus II may help increase it. Here are some you may want to try: ...
- 【转载】如何在FPGA设计环境中添加加时序约束
转自:http://bbs.ednchina.com/BLOG_ARTICLE_198929.HTM 如何在FPGA设计环境中加时序约束 在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序 ...
- 【小梅哥FPGA进阶学习之旅】基于Altera FPGA 的DDR2+千兆以太网电路设计
DDR2电路设计 在高速大数据的应用中,高速大容量缓存是必不可少的硬件.当前在FPGA系统中使用较为广泛的高速大容量存储器有经典速度较低的单数据速率的SDRAM存储器,以及速度较高的双速率DDR.DD ...
- FPGA speed grade
Altera的-6.-7.-8速度等级逆向排序,Xilinx速度等级正向排序. 不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法, “序号越高,速度等级也越高”这是Xili ...
- FPGA笔试必会知识点2—FPGA器件
FPGA 综合工具并不一定保证能够充分利用芯片结构特点以达到最优目的而且工具本身也不一定非常智能,因为设计本身是复杂多样的且一直在变化,问题总会越来越多,因此在这种情况下,我们必须了解我们的器件结构, ...
- 第一个FPGA工程—LED流水灯
这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...
- FPGA中IBERT核的应用(转)
https://wenku.baidu.com/view/50a12d8b9ec3d5bbfd0a74f7.html (必看) 摘要 IBERT即集成式比特误码率测试仪,是Xilinx专门用于具 ...
- 如何新建Quartus工程—FPGA入门教程【钛白Logic】
这一章我们来实现第一个FPGA工程—LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...
随机推荐
- mysql事务四大特性
本篇讲诉数据库中事务的四大特性(ACID)和简单操作 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务 ...
- (九)ROS安装rviz模拟器
一 . 什么是 rviz rviz : The ROS Visualization Tool ,即机器人操作系统3D可视化工具.它的作用就是:一个虚拟世界,用来模拟机器人在现实世界的运行效果. 简单的 ...
- JFinal文件上传时直接使用getPara()去接受表单的数据接收到的数据一直是null?
解决方案: 在文件上传页面form 标签中使用: enctype="multipart/form-data" 在controller类中先调用getFile系列方法才能使getPa ...
- gRPC的.netClient客户端第一次连接出现StatusCode=Unavailable的解决办法?
1.问题还原: The service does not automatically connect, free after a period of time, the first call will ...
- C#使用MiniDump捕获异常
c/c++语言里MiniDump是一个重要的调试手段,他们没有C#/java这样语言有很多异常输出信息( JVM异常导出bug日志功能,通常在jdk目录,文件格式hs_err_%pid%.log,pi ...
- session是什么
初识session,跟大家一起学习下 session是什么 首先,我们需要知道session是什么.我们普遍将session称之为会话控制.说实在的,我现在也不清楚session到底算是什么.我个人认 ...
- HTML&&css练习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [转载] Linux中的搜索文件命令
搜索文件用处很大,我们往往需要知道一个文件存放在什么地方,我们又知道Linux是命令强大的一个系统,所以也有好多非常优秀的搜索命令.通常find不常用,因为速度慢,耗费硬盘空间.通常我们先使用wher ...
- export export defalut
require/exports 和 import/export 形式不一样 require/exports 的用法只有以下三种简单的写法: const fs = require('fs') expor ...
- VirtualBox中安装Fedora9及其ARM开发环境配置
因为要学习Tiny4412开发板的嵌入式编程,需要用到Fedora9系统(和手册对应),我就在VirtualBox虚拟机(此虚拟机安装在Ubuntu12.04上)上安装了Fedora9,下面就讲解一下 ...