如何现场对硬件进行编程呢

可编程逻辑

1343人已加入

描述

那么我们设计完一款芯片的Verilog,按传统方法,首先经过软件最基本的逻辑测试。看看Verilog的基本语法有没有错误,硬件需要的功能在逻辑上能不能满足。

SDRAM

左侧提示:编译错误

假设编译通过了,接着再用综合软件生成最底层的硬件逻辑电路网图。比如随便举一个例子,在一张100*100的平面坐标系,(1,1)上放着非门,(2,1)上放着或门,他们之间有一根(1--2,1)的导线连接,像这样各种这样的坐标组合形成了芯片的网图。

再用时序测试软件,模拟在真实世界的物理规律下,这个逻辑电路能不能正常运行(一般是没啥问题,软件都给你算好了,只是在电路面积和运行速度上会存在差距)。

如果都能正常运行,那么最后就把芯片设计出来的最底层的硬件逻辑电路网图发给制造芯片的厂商,比如台积电、中芯国际这样的公司进行流片。如果实际测试成功,那么就能大批量生产,投入市场。这样生产出来的芯片我们称之为ASIC。

但是发现问题没有?ASIC成本似乎很高,前期光是一堆复杂的测试就要花费大量的人力物力,最后流片还得找芯片生产厂商。先不说我们这种“个体户”能不能联系上这样的芯片生产厂商,就算联系上了,几十万乃至上亿的流片费用(流片需要生产针对该芯片的配套设备,所以造成价格高昂,但后续大量生产就不再需要投入这一成本了)也不是谁都能承担起的。

就没有适合普通玩家的游戏攻略?

FPGA把普通玩家的愿望带进了现实。FPGA全称Field Program mable Gate Array,中文名为现场可编程门阵列,顾名思义,在现场就能完成逻辑门阵列的编程。我再结合前文概括翻译一下,那就是现场就能完成流片!!!

Ohhhhh(是不是有奇怪的视频片段乱入)

FPGA其实质是一种类型的芯片,简称为FPGA芯片。对应的开发板(集成了FPGA芯片和一系列周边配套硬件电路)简称为FPGA开发板。这类开发板市场价格根据性能不同在几百到几万不等。那么为什么它能把上述动辄几十万的流片成本压缩到几百元?这就要谈到FPGA芯片的原理了。

芯片从设计到生产的过程,其实就是确定各种逻辑门在一张平面图上的排布和连线的过程。那有没有这样一种可能?在这张平面图上摆满了各种逻辑门,然后把所有逻辑门按一定的拓扑结构连起来,然后按照我的意愿控制通断?

这个思路是没问题的,但还能更进一步。我们没必要摆满各种逻辑门,前面说过每一种组合逻辑都可以用三级与或非门形成一个乘积项,因此我们只需要级联这三级与或非门即可形成一个小的组合逻辑电路,再经过crossbar十字交叉电路将这些小的组合逻辑连接形成大的我们想要的组合逻辑电路。思路差不多是这样,但是它的名字叫作CPLD,虽然和FPGA一样是一种可编程逻辑器件,但不是今天的主角。

FPGA其实不同于CPLD,它并不是摆满了上面说的那三级逻辑门,取而代之的是“百变逻辑门”,这“百变逻辑门”的真实名称叫作查找表。想一想,是不是这么回事,每个逻辑门按其输入和输出都可以写成一张真值表,多个逻辑门组合形成的组合逻辑电路的输入输出就可以写成一张更大的真值表。那么我舍弃其内在结构,直接记着这个表不就完事了?

想法挺好,但是这样是不是更费事?本来直接用逻辑门可以直接生成出来的真值表,现在得用另外一个电路结构来记录真值表。然而在芯片里面,我们一般采用寄存器来记录数值,但是大约8个逻辑门才能记住一个bit的数据,这查找表效率也太低了吧?但是谁说只能用寄存器来记录数值的?别忘了,我们还有DRAM和SDRAM,这俩类存储介质抛弃了逻辑门结构,能极大增加内部逻辑密度。(就是速度可能慢了点)那么我们如何现场对硬件进行编程呢?答案就是更改查找表的数据。

那和ASIC(即前文中提到的传统方式生产的芯片)相比,FPGA的优缺点有哪些呢?

首先是性能问题,相同逻辑结构的FPGA因为其灵活性肯定要比ASIC性能要差挺多。注意,这边用词是相同逻辑结构,听说过FPGA加速电路吗?这玩意就是用FPGA灵活可变的特点,设计出大量的并行运算结构,从而实现比ASIC生产出来的CPU具有更快的运算速度。成本问题,上文提到过了,此处不再赘述。再就是安全问题,部分小型企业因为成本问题使用FPGA芯片用于他们的产品中,但是FPGA由于其查找表数据都存在一块存储芯片上,芯片设计很容易被剽窃。还有就是稳定性问题。由于采用的是DRAM和SDRAM,相比寄存器这类逻辑门结构更具有可靠性,不易受外界电磁干扰,因此广泛用于航空航天等事业。


审核编辑:刘清


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分