当前课程知识点:IC设计与方法 > 2、数字集成电路设计方法 > a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比) > 讲课视频
前面我们讲了
集成电路有很多的应用
在生活中的各个方面都有
在我们这门课里面呢
我们只关注数字集成系统
或者说数字系统的实现
我们先来看一下数字系统
都有哪些实现的方法
通常来说
为了去搭建一个数字系统
我们首先来想象一下数字系统是什么样子的
我们最常见的数字系统
就是一个电路板上装载了好多好多的芯片
装载了好多好多的集成电路
能够去完成我们所需要的一个功能
比如说像计算机的主板
或者说这个手机的主板
数字系统
我们说这样的一个板子上装的这个芯片
以及芯片所实现的功能
都是一些基于数字逻辑的功能
为了实现这样的一个数字系统
我们通常有三大类方法来设计、来实现
一个是ASSP
也就是固定标准功能的集成电路来实现
第二种是使用PLD
或者叫可编程器件
用CPLD和FPGA来实现这样的一个系统
第三种方法
是用一些专用的集成电路
顾名思义就是专门为我这个系统的功能
去设计一个集成电路来实现我这个系统的功能
首先我们来看一下ASSP
ASSP顾名思义
是用一些已经具备某些特定的功能的芯片
去搭建我们的数字系统
就好像说我们要建一幢楼房
我们先用已经有的东西
已经有的是什么呢
是一些砖块
一些混凝土构件
用这些东西来搭建我们的数字系统
常见的ASSP有什么芯片呢
例如早期的74系列
74系列以及4000系列的芯片
4000系列是一种CMOS工艺的芯片
其次就是基于双极型工艺的芯片
在这些芯片里面
做了一些简单的功能
比如说简单的D触发器
简单的与非门
简单的非门等等这些门电路
我们作为设计人员
要用这些门电路去把最终的电路搭建起来
用ASSP的好处是什么呢
这些构件种类非常地繁多
非常的多
而且价格非常的便宜
可以采购的来源非常的多
你可以从不同的公司
从不同的网站去采购到你所需要用的芯片
这就是它的好处
而且这些芯片是通用的
用A公司的芯片跟B公司芯片
功能几乎是完全一样的
大家甚至可以做到pin-to-pin的兼容
这是它的优点
缺点是什么呢
集成度非常非常的低
一个74系列的或者是4000系列的标准门电路
它可能只集成了6个非门
或者是6个与非门
只集成了几个门
如果你要去搭建一个几千门几万门
甚至几十万门的电路
是难以想象的
注意
是难以想象
并不是说不可能实现
我们来看一下
这是两个特别简单的芯片
比如说这是一个7400的芯片
它是一个二输入
他集成了四个2输入的与非门
可以用若干个或者几十个
这样的芯片去搭建出一个复杂的系统
用ASSP搭建的系统是什么样子呢
我们来看一下
当我还是学生的时候
我在大学二年级的时候
我们那时候上课就是要用
这样的74系列的芯片去搭出一个系统
怎么搭呢
在一个面包板上去把这样一个电路给搭出来
当然在搭之前自己要先在纸上把思路想好
规划好
你要用哪几个芯片
他们怎么进行连接
去实现你所要实现的(功能)
比如说我们当时做的是一个4位的处理器
应该是个4位的处理器
怎么用
用哪几个芯片
怎么连接,把这个处理器能够实现出来
有了这些想法以后呢
还要去想
这些芯片应该怎么在这些面包板上摆放
然后
怎么连线能够比较方便的连出来
才能够把这个系统给它搭出来
有这些想法以后
最终把这些芯片插在这个电路板上以后
然后就辛辛苦苦的去剪这些线
剪这些黄色的线
把它连好
最终去实现出我们最初脑子里
或者是草稿纸上规划的这样一个电路
大家可以看这样一个电路板上
大概应该有在几十根到上百根线
我们那时候是用两个星期的时间
有时候是每天工作10到20个小时
甚至只睡两三个小时
三四小时去争取把线一次给它摆好
有可能你睡觉以后
第二天已经忘了都布完几根线了
对吧 所以要花好长好长时间
才能把这个板子给它弄好
如果摆好以后
线都摆好了
发现功能不对了怎么办
那就麻烦了
得去找问题在什么地方
有可能是你连线的时候
当时脑子迷迷糊糊地插错孔了
导致电路错了
也有可能是你的设计方案本身是错的
所以这样的电路一旦出现了问题
要去发现这个问题
以及改正这个问题的难度可想而知
这就是ASSP来搭系统的难的地方
ASSP搭这样的电路板
应该说呢
是10年前甚至20年前的事情了
现在的话呢
基本上大家不会再用这样的手段去做这样的事情
那是不是说这个事情就已经没有任何的意义了
还是很有意义的
我们来看一下
这是某个工程师用ASSP搭建的一个数字系统
他搭建了一个计算机系统
在这个计算机系统上能够运行简单的操作系统
能够运行国际象棋和小型的游戏
玩这样的事情
这样的一个计算机就是拿ASSP的芯片搭建起来的
这样一件事是在最近这几年才完成的
这个工程师最近这几年做的这件事
还参加了2009年的一年一度的创业大会
并且得到了很好的反应
虽然这个处理器的指标并不是很高
运算的速度也并不是很高
但是这件事是很有创意的一件事情
我们来看一下它内部的电路
大家可以看到内部的电路非常非常的复杂
有无数的线
密密麻麻的线
所以他这个项目的名字起的很有意思
项目的名字叫Big Mass of Wires
一大堆连线所组成的处理器
他布线的工作量可以想像是非常大
从这里面
我们作为技术人员
我们能发现什么呢
大家仔细去观察一下这些线
这里面还是有学问的
观察一下
在这里面它并没有用
我们在通用的面包板上去用一根线去插
他用到了很多线柱
然后线是绕上去的
这个技术早期的时候
是在航天电子里面才会用的一种技术
是用一种专门的打线机去把线绕在铜柱上
通过这种绕接方式以后
可以让连线的可靠性达到航天级
这种可靠性的要求
这样的话呢
不但这个产品
这个线不容易断
而且线的绕接的抗震能力都非常的高
所以不要看这是一件
很小的性能指标不是很高的一个东西
但是在这里面有个很好的创意
也用到了很高的技术
这种才把这个东西做出来
所以在任何一件小事上
只要我们有想法
都能做出很不错的东西
这个叫Steve的工程师把这个产品给它做出来了
这是这颗处理器的内部的一个局部的结构图
我们可以看到在这一大堆线后面
隐藏的电路还是有一定的复杂度的
因为这虽然只是一个简单的处理器
但是
麻雀虽小五脏俱全
所以里面也包含了
一个处理器所必须要有的运算逻辑单元
必须要有的存储器、必须要有的数据通道
必须要有的输入输出设备
该有的东西它都有了
第二种实现数字系统的方法
就是用可编程逻辑器件了
这也是目前或者说当前
我们工程师最多最常见的手段
PLD从技术手段来说
又分为CPLD和FPGA
在小规模的数字系统里面
我们通常会用CPLD去实现
对于大型的数字系统
我们会用FPGA
FPGA顾名思义
它是一种可编程器件
能够实现从几十门
几百门 几千门 几万门
一直到现在FPGA能实现上千万门的数字系统
而且它的接口也包含了各种各样的通信接口
比如和存储器连接的DDR2
DDR3的接口
和网络通信相连的以太网接口
和硬盘 USB外设相连的接口等等都有
内部还有一些快速处理的数字模块
所以理论上用FPGA已经可以实现
我们所要实现的任意功能的数字系统了
包括像我们现在
如果说得夸张一点的话
哪怕像英特尔这样的一个处理器的功能
也可以在一颗FPGA里面去实现它
这是它的优点
缺点是什么呢
FPGA的价格非常昂贵
像刚才我所说的这样一个几千万门的FPGA
它的价格会达到数千甚至上万
也就是说
FPGA要去实现一颗消费类的产品
在价格上可能很难实现
它主要用在科研领域里面
去验证一个电路的设想对不对
这是最常见的使用场所
另外
在一些能够承受高价格的场所里面也会去用
例如
在军工 航天这些领域里
它对价格的承受能力比较强
所以可以用FPGA的产品
除了这两类产品之外
在一些通信领域里
也会去用
通信和消费领域里
比如说以消费领域为例
现在的大屏幕电视
它的生存
它的上市时间压力非常大
因为经常会3个月就要上市一款新的产品
而且产品的生存周期又非常的短
大概只有这个几个月到半年的时间
所以去研发一颗专用集成电路已经来不及了
这时候也会用FPGA去上到消费产品里面去
因为这样的产品的价格承受能力
相对来说会比较高一点
这是FPGA上到这个消费产品的一个例子
在通信领域里
大家都知道
移动公司的基站
遍布各地
基站的密集程度也很高
另外
移动的标准变化也很快
比如说10年前或者5年前
我们大家还在用2G第二代的手机
很快的就是3G
3G还没有用多长时间就已经变成4G了
是吧
现在可能大家又从媒体上知道
马上要开始用5G了
也就是说基站的或者说移动通信的标准
可能每隔两三年就在往上升一代
但是你想移动公司建设的基站
在全中国不说全世界
在全中国都是数十万数百万计
不可能说每上一个新的标准
就把基站全拆掉重换一遍
是吧
这样的重复投资也是难以接受的
所以
在基站里边的数字处理部分
很多也会采用FPGA
这样当产品出现升级的需求的时候
直接在FPGA内部把电路重新更新一遍
就可以实现一个新的功能了
这也是FPGA在工业现场里面
用的比较多的一个例子
FPGA刚才说有它的优点
也有它的缺点
缺点就是价格比较贵
优点是内部的电路可以不断的去改
就像一张白纸一样
你可以不断的去改
发现有问题或者需要升级的时候
去改一下就可以了
实际上
我们从应用角度来说需要一种器件
它又便宜
然后性能又好
总之
我们用户对芯片的需求是永无止境的
所以
我们就要考虑在很多场所
考虑第三种方式
用专用集成电路的方式去实现这颗芯片
专用集成电路
前面我们在讲集成电路发展的时候
讲过一颗专用集成电路的生产和
制造的成本是非常高的
以65纳米为例大概在500万人民币这个量级
注意
这是量级
用这么多钱去造一颗芯片
显然是不可接受的
在消费领域里
比如说我们的mp3
以前一个厂家的mp3的出货量
都是说一年出货量是几十万到几百万件
在这种大批量的使用场景下
用专用芯片就非常合适了
因为专用芯片的特点就是
产品的单件成本非常低
但是
产品的量又要求非常得高
这是用专用芯片的一个最常见的例子
我们总结一下专用芯片的应用
可以这么定义一下
当对一个产品的需求量大概在10万件以上的时候
你就可以考虑去设计一颗专用集成电路了
这样的话
你的产品的平均价格可以做的比较低
这是从价格角度考虑
专用集成电路在另外某些领域里面也可以去用
即使价格很高
大家可以想一想是在什么领域呢
比如说在军用或者航天
以咱们发射神舟飞船(为例)
大家都知道
国内最厉害的卫星是什么
导航卫星是吧
北斗卫星一共也就发射了几颗到十几颗
未来也不会超过100颗
也就是说
在这些卫星上的芯片的需求量
总共也就是几十片到几百片
撑死了就是上千片的需求量
但是为了提高卫星电子产品的性能
寿命以及降低产品的重量
提高它的集成度
从这个角度来说
不管这个芯片价格多贵
你都要去做成芯片
这样才能够满足卫星产品的需求
所以在这些领域里面我们也会去做芯片
这是一个领域
还有一个领域是科学研究领域
比如说
像探测引力波
在做一些电子学的探测实验
这种我们应该说是高能物理方面的一些实验
在这些实验里面的探测器
它所用到的芯片
也不是我们常规芯片所能解决问题的
所以虽然它的需求量非常的少
也要为它去做专用的芯片
在这些领域里
虽然价格非常高
我们还是用专用芯片的方式去解决问题
专业芯片还有另外一个问题
就是它的设计周期
或者说制造周期非常长
如果是用可编程器件的话
设计人员每完成一次更改
做完设计以后
只要花几秒钟几分钟或者几个小时
把设计上传到或者下载到芯片里面
芯片就能实现你所要的功能
但如果是用专用芯片的方式的话
当我们把设计做完以后
送到加工厂去加工
通常需要两个月的时间才能完成加工
然后是后道的封装测试等等过程
也就是说
这都是以月为单位来计的
通常我们一个专用芯片的设计项目
一般都是把它定义成是6个月9个月
到12个月的生产周期
也就是说
你一旦要想去做一颗芯片
你规划时间至少要放出9个月的时间来
这是我们实现数字系统的三种方法
以及各自的这个优点和缺点
最后我们再来对比一下这三种方法
从这张表里面我们可以看得非常清楚
我们可以从它的实现的
规模 性能 价格
灵活性
开发周期和开发成本上逐一的对比
我们顺便还要再提一下开发成本
前面我们没有过度的去强调开发成本
集成电路(产品)对成本来说是非常的敏感的
成本这件事也是非常的复杂
因为一个产品的成本包含很多部分
前面我们强调的
是制造成本
或者说最终产品的BOM成本
实际上在开发过程中
我们还要考虑其他隐性的成本
比如说
我们开发所用的这个人力成本
现在在一个产品的设计过程中
人力成本已经占了很大的比重
会占到整个产品的1/3、1/2甚至1/2以上
因为现在的设计工程师的费用相对来说比较高
如果说针对ASIC
也就是专用集成电路而言
它对工程师的要求非常高
只有一些特别专业的集成电路设计人员
才能满足这个要求
相应地
从事这个行业的人很少
第二
每个人的单位用工成本也非常高
所以造成人工成本很高
这是一个方面
另一方面
是我们所用的设计工具的成本
如果我们用可编程器件进行设计
我们一般是用可编程器件厂家提供的EDA工具
EDA是指电子设计自动化工具
如果我们用Xilinx公司的FPGA芯片
用的一般就是Xilinx的ISE或者是类似的工具
它的价格大概是几万人民币量级
或者是十万人民币量级
但如果我们要去做集成电路设计
那就完全是另一码事了
集成电路设计工具包含一个很复杂的设计流程
有前端工具
后端工具还有一些验证工具等等
这一套工具下来可能要到几百万
甚至上千万人民币这个量级
而且这些工具
我刚才说的几百万到上千万人民币
并不是永久性的能够使用这个工具
而只是一年的License
也就是说
你花了上百万人民币买了这个工具
厂家只允许你使用一年的时间
每年要花这么多钱
所以专用集成电路(设计)
它还有一个门槛
那就是工具的门槛
我们再总结一下
做芯片
如果是做专用芯片
特别是做专业芯片
虽然说现在由于fabless这种模式的出现
导致我们设计的门槛降低了
换句话说
任何人都能做这件事
任何一个学过数字电路
学过硬件描述语言的学生和工程师
你要有一个好的想法以后
你都可以去干这件事
这种门槛降低了
但是真正要把它变成一个产品的门槛
却在逐渐的上升
几方面 一个是EDA工具的价格非常的高
第二个做出产品的制造过程的价格非常的高
就是说制造的这个价格
我们前面讲过非常高
第三个是流程非常的长
需要整个人或者是整个团队
能够把所有的知识都掌握
才能把这件事做成
所以
应该说机会是有的
但是难度也是非常大的
-软件下载说明
-a) 集成电路的应用及市场
-a) 集成电路的应用及市场--作业
-b)集成电路的制造过程
-b)集成电路的制造过程--作业
-c)从CPU的发展看IC的进展
-c)从CPU的发展看IC的进展--作业
-d)从行业的发展看IC的进展
--Video
-d)从行业的发展看IC的进展--作业
-e)从ISSCC看IC的发展方向
--讲课视频
-e)从ISSCC看IC的发展方向--作业
-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)
--讲课视频
-a)数字系统的实现方法 (ASSP/FPGA/ASIC的对比)
-b)组合逻辑电路
--Video
-2、数字集成电路设计方法--b)组合逻辑电路
-c)时序逻辑电路(1)
-d)时序逻辑电路(2)
-2、数字集成电路设计方法--d)时序逻辑电路(2)
-a)Verilog的历史和学习要点
--讲课视频
-b)端口、信号及数据类型
--讲课视频
-b)端口、信号及数据类型--作业
-c)逻辑电平及数据操作
--讲课视频
-3、Verilog语法--c)逻辑电平及数据操作
-d)Assign 语句
-e)Assign 举例
-f)Always
-f)Always--作业
-g)阻塞与非阻塞赋值
--Video
-3、Verilog语法--g)阻塞与非阻塞赋值
-h)D触发器的描述
--Video
-i)时序电路的设计
--Video
-i)时序电路的设计--作业
-j) 面向测试的Verilog语法(1)
-k) 面向测试的Verilog语法(2)
-k) 面向测试的Verilog语法(2)--作业
-a)电路设计实例1
--Video
-b)电路设计实例2
--讲课视频
-b)电路设计实例2--作业
-c)电路设计实例3
--讲课视频
-Modelsim仿真
-a)综合及相关基本概念
--Video
-a)综合及相关基本概念--作业
-b)综合及优化
--Video
-c)门级仿真
--门级仿真
-d)Quartus综合及分析(1)
--讲课视频
-e)Quartus综合及分析(2)
--讲课视频
-e)Quartus综合及分析(2)--作业
-f)Quartus综合及分析(3)
--Video
-g)Quartus综合及分析(4)
--Video
-g)Quartus综合及分析(4)--作业