vhdl语言入门_快速入门FPGA与Verilog HDL系列1

欢迎FPGA工程师加入官方微信技术群

点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群

96c3b36d8224f7ef9253baf7ffae033f.png

1

从新手到专家之路

任何领域从新手专家都分5个阶段:

探索期   入门期   胜任期   高手期   专家期

从入门期到胜任期再到高手期都是可以通过项目历练而达到,但是从高手器到专家期一般由人的思维而决定。

这其中最难的就是入门期的新手入门阶段,由于新手期的迷茫,特别是没有高人指点的情况下,新手的学习状态曲线呈现出波荡起伏的趋势:

5544af3ba7dad2593ced9e8ca9e51431.png

新手学习曲线

新手们凭着兴趣一腔热血扎入到FPGA和Verilog的学习中去,一个个的难点使之挫折,直至厌恶怀疑:我为什么要学这?如果还能坚持,经过了这段低谷期后,你开始慢慢找到感觉,然后逐渐开窍:不过如此嘛!此刻激情已然褪去,自满导致麻木,但是在你接触到更多的项目后你才会领悟到:我还差得远呢!此刻你已经入下一个快速提升期。

起步之后的专家之路同样是起伏的曲线:

ffc7bffd87ea8ade490020a13419d878.png

专家之路

缓慢起步期:往往对什么都有兴趣,但是都不能深入的去学习,一个个的拦路虎使我们知难而退,大多数人熬不过缓慢起步期,起步期对应的就是我们的入门阶段。

快速提升期:在这一阶段,已经克服了第一个困难,成功地发现了学习的方法,是提升最快的阶段。

高原期:只有极少数的人能够进入这个阶段,因为大多数人依赖原有的学习方法,不能建立属于自己的方法论,思维限制了他们的进步。

2

FPGA学习之路

a32400549668d76ebbf638623e9886c8.png

FPGA的学习之路是一个模仿、学习、动手、创新、设计,不断迭代的过程。

初学者往往是从模仿别人的代码开始,学习语法、学习建模方法、学习代码风格等等,在学习的基础上动手修改出自己的代码,熟练后开始加入自己的创新点,可以独立的做自己的设计。

FFPGA初学者会常见现象:

  1. 数字电路理论不扎实,概念不清。这个是最要命的,因为数字逻辑是FPGA的基础,就像是你要建一座房子,你可以不会用斧子、铲子等工具,但你不能不知道房子长什么样子。

  2. Verilog语法不精,Verilog HDL语法书翻了一遍又一遍,学了忘,忘了学,循环往复,直至兴趣殆尽。这个现象的根源是没有在实践中学习。Verilog HDL就是为开发FPGA而开发的一款工具而已,就像是盖房子用的斧子锤子一样,要多动手才能精通。

  3. 工具软件不会用。Xilinx、Altera(已被Intel收购)等FPGA厂家都有各自的开发软件,虽然软件不同,但是开发流程都是一致的,学会一种,另外一种自然而然的也会了,因为思维指导行动,一精百通。以后我会以ISE和ModelSim为例,教大家学习Verilog和FPGA。

  4. 最后一点就是用软件的思维去写Verilog代码,其实这个和第一点是一个问题。以后会在教程中给大家具体的讲解。

3

FPGA与ASIC?

说到FPGA,往往离不开介绍ASIC。从字面意思上来说:

FPGA(Field-Programmable Gate Array),即现场可编程门阵列;

ASIC(ASIC,Application Specific Integrated Circuit)是用于供专门应用的集成电路芯片技术。

我的理解是FPGA是可编程的ASIC,FPGA是一个百变星君,可以孙悟空的七十二变,在FPGA内部资源允许的情况下,FPGA可以实现ASIC芯片的功能,反之,ASIC内部的逻辑都是定死的,只能实现固定的功能,ASIC远没有FPGA灵活。打个比方:如果说ASIC是一块砖,那么FPGA就是水泥,可以揉捏成任意的形状。

下面是一些FPGA芯片和ASIC芯片的实物图片:

8be9171482fc4cf2248f0896b89e588d.png

FPGA芯片

0fb2538a761022bd189d79ef6dc2f9b1.png

ASIC芯片

4

FPGA与ASIC的本质

从FPGA和ASIC的实物图片可以看出:FPGA和ASIC也没有什么区别嘛,从外观上看都是芯片嘛!恭喜你答对了,他们都是芯片,FPGA和ASIC的本质的都是由晶体管组成,所以他们看着差不多

86941c26829c18cd9120bc796dca2e82.png

去掉芯片的保护外壳(封装),会漏出里面的的裸片(die),芯片的管脚就是从裸片上的PAD用金线连接出来的,如下图所示。

39e2963977d9d508f515cf7864ef7c1d.png

裸片是从晶圆上一片片的切下来的,晶圆的样子如下图所示,

d38a8bc18a49ddc08076a340f25fd675.png

晶圆是指硅半导体集成电路制作所用的硅晶片,由于其形状为圆形,故称为晶圆。在硅晶片上可加工制作成各种电路元件结构,而成为有特定电性功能的集成电路产品。上图中的晶圆,每一个长方形就是一片芯片的裸片,每一个裸片将来都可以封装成一块芯片。

芯片是如何在硅晶片生产出来的呢?这几需要集成电路的版图了,版图就好比PCB文件,只不过集成电路版图用于指导芯片的生产,PCB用于印制电路板的生产。下图就是一个芯片的版图,周围黄色的方形就是将来封装芯片时,用金线连接芯片管脚的PAD。

b2534e267c1a47aa4ca02d631f8506cc.png

像PCB一样,版图也是分层的立体结构。

9d3974740fc223242ca614b9acd9fc63.png

以一个或非门为例,它的版图结构如下所示:

9f12d7d8a0136a50b17c80770fa26b3b.png

一个芯片的版图就是由千千万万个类似于或非门的基础电路搭建而成,门级电路又是由更基本的单元:PMOS和NMOS组成。

MOS管的剖面结构如下所示:

334ae50ea85fb2044c12530b8d3b0371.png

综上所述:任何的数字芯片都是由晶体管组成的

5

为什么芯片的逻辑可以用晶体管搭建而来?

数电中我们学过卡诺图化简逻辑表达式的方法:

95d7a2b775d128fbf2bb356ed72ab56d.png

可以得知,任何的数字逻辑表达式最终都可以化简成与或非组合的形式。

b943b6bda2abe8cdf6fc4d5785242795.png

非门、与非门、或非门由晶体管级的PMOS和NMOS组成,组成电路如上图所示。

所以,任何的数字组合逻辑电路都可以有晶体管组成。

6

FPGA的原理与结构

FPGA的原理是基于SRAM的查找表结构。通俗的讲就是:可以将FPGA看做是一片SRAM,利用开发工具软件计算出所有的输入组合排列对应的输出结果,然后将输入组合作为SRAM的地址,该地址中存放的是与输入组合对应的输出。当输入信号变化时,到相应的地址中读取提前计算好存入的结果,然后输出。

FPGA结构组成包括以下:

  1. 可编程输入输出单元(IOB) 

  2. 可配置逻辑块(CLB)

  3. 时钟管理模块(DCM) 

  4. 嵌入式块RAM(BRAM) 

  5. 丰富的布线资源

  6. 底层内嵌功能单元

  7. 内嵌专用硬核

其中1-5是FPGA必须具备的,6、7一些低级的FPGA可能不具备。具体不再细讲,几乎每一本FPGA的书籍都会有详细的讲述。

57ce027cb412c357151edccc6d6d132d.png

FPGA结构示意

cdc2cb63a8906e1bec7870dafa499286.png

FPGA就像积木一样,只要合理运用,通过使用不同的结构进行搭配组合,可以得到你想要的。

7

Verilog HDL概述

如何将一堆积木零件搭建出我们想要的结构呢(将FPGA配置成我们所需要的电路)?这就需要我们的Verilog HDL登场了。

Verilog HDL是一种硬件描述语言,可以抽象的描述硬件电路。硬件描述语言同样可以用于ASIC设计和FPGA设计。

常用的硬件描述语言还有VHDL,关于VHDL和Verilog HDL,我的总结就是:VHDL语法严谨(潜台词:规矩多),适用与大型电路设计;Verilog HDL语法灵活,上手快。所以建议新手学习Verilog HDL。即使没学过VHDL,但是精通Verilog HDL也照样能够看懂VHDL,因为建模思想都是一样的,猜也能猜个八九不离十。

8

如何快速上手Verilog HDL?

你必须知道的,Verilog的所有语法中:

•Verilog语法中30%的语言用于电路设计(可综合,可产生实际电路) 

•70%的语言用于功能仿真,也就是测试

也就是说,你没必要掌握所有的语法。有的同学抱着本Verilog语法书从头到尾一直不拉的啃,妄想着学会说有语法后再去设计电路,殊不知他拿着80%的时间去学习着70%的可能用不到的语法。我并不是说仿真的语法不重要,我的意思是先掌握基本的简单语法,四个字:先干起来。

学习Verilog就像是盖房子,妄图掌握所有语法的人想着我一定要把地基打牢,所以花费了巨量的经历和时间磨语法,就一直在打地基。而先干起来的同学虽然房子不完整,但是轮廓已经起来了,以后修修补补,就能完工。

b07a0da345694273409ef644210f5791.png

先干起来

9

总结

在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路,深刻理解逻辑功能,对于学习HDL语言大有裨益,往往会起到事半功倍的效果。

当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。

我后续推出的快速入门Verilog HDL及FPGA视频教程的学习方式将是:

aa7a9d3a2391c608676b5cc79e74bba2.png 4e7d0975b4c71dbb4653e5b1725b667c.png

欢迎FPGA工程和嵌入式等工程师关注公众号

3da7909f96816e347be14993506a4a6d.png

全国第一大FPGA微信技术群

欢迎大家加入全国FPGA微信技术群,这个群体拥有数万工程师、一群热爱技术的工程师,这里的FPGA工程师相互帮助,相互分享,技术氛围浓厚!赶紧叫上小伙伴一起加入吧!

31b2b0db1260efbccc1966c29af03470.png

用手指按住就可以加入FPGA全国技术群哦

FPGA之家元器件芯城

优势元器件服务,有需求请扫码联系群主:金娟 邮箱:293580331@qq.com 欢迎推荐给采购

ACTEL、AD部分优势订货(经营全系列):

0ff7c6cbec06388ce29be0d1cc91047e.png

XILINX、ALTERA优势现货或订货(经营全系列):

22f6282662162a10cf114ec1cafd14f7.png

(以上器件为部分型号,更多型号请咨询群主金娟)

服务理念:FPGA之家元器件自营芯城,旨在方便工程师快速方便购买器件服务,经过数年竭诚服务,我们的客服遍布国内大型上市公司、军工科研单位、中小企业、最大的优势是强调服务至上的理念、并且做到快速交货、价格优惠!

直营品牌:Xilinx ALTERA ADI TI NXP ST E2V、镁光 等百余元器件品牌,尤其擅长欧美对华禁运器件,欢迎工程师朋友把我们推荐给采购或者亲自咨询我们!我们将一如既往提供业内最佳服务!

b8fa049affc905e99a441c6dde7e7eee.png

FPGA技术群官方鸣谢品牌:Xilinx、 intel(Altera)、microsemi(,Actel)、LattIC e,Vantis,Quicklogic,Lucent等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值