专注【中高档】餐饮家具定制
当前位置: 主页 > 企业动态 > 企业新闻
菜鸟级别零基础学转FPGA“9499登陆网址”
来源: / 发布时间:2025-06-24 18:45:01 / 浏览次数:

本文摘要:长期以来很多新的进群的菜鸟们总是在反复的问一些非常简单但是又让新手困惑不解的问题。

长期以来很多新的进群的菜鸟们总是在反复的问一些非常简单但是又让新手困惑不解的问题。作为管理员常常要给这些菜鸟们普及基础知识,但是十分意外的是很多菜鸟怀著一种颓废的心态来自学FPGA,总是急于求成。  再行再加国内大量有关FPGA的垃圾教材的误导,所以很多菜鸟一直无法入门。

为什么大量的人会实在FPGA难学?作为知名FPGA提供商Altera许可的金牌培训师,本管理员决意开贴来详尽谈一下菜鸟实在FPGA难学的几大原因。  1、不熟知FPGA的内部结构,不理解可编程逻辑器件的基本原理。

  FPGA为什么是可以编程的?难道很多菜鸟不告诉,他们也想告诉。因为他们实在这是无关紧要的。

他们潜意识的指出可编程嘛,认同就是像写出软件一样啦。软件编程的思想根深蒂固,看见Verilog或者VHDL就像看见C语言或者其它软件编程语言一样。一条条的读,一条条的分析。如果这些菜鸟们一直拒绝接受去理解为什么FPGA是可以编程的,不去理解FPGA的内部结构,要想要学会FPGA难道是天方夜谭。

虽然现在EDA软件早已十分先进设备,像写出软件那样照猫画虎也能综合出点东西,但或许只有天知道EDA软件最后综合出来的究竟是什么。或许点个灯,跑完个马还行。  这样就是为什么很多菜鸟习了N幸以后仍然是一个菜鸟的原因。

那么FPGA为什么是可以编程的呢?首先来理解一下什么叫程。救赎程只不过是一堆具备一定含义的01编码而已。编程,只不过就是撰写这些01编码。只不过我们现在有了很多开发工具,一般来说都不是必要撰写这些01编码,而是以高级语言的形式来撰写,最后由开发工具切换为这种01编码而已。

对于软件编程而言,处理器不会有一个专门的译码电路逐项把这些01编码翻译成为各种掌控信号,然后掌控其内部的电路已完成一个个的运算或者是其它操作者。  所以软件是一条一条的读,因为软件的操作者是一步一步已完成的。而FPGA的可编程,本质也是依赖这些01编码构建其功能的转变,但有所不同的是FPGA之所以可以已完成有所不同的功能,不是依赖像软件那样将01编码翻译成出来再行去掌控一个运算电路,FPGA里面没这些东西。FPGA内部主要三块:可编程的逻辑单元、可编程的连线和可编程的IO模块。

可编程的逻辑单元是什么?其基本结构某种存储器(SRAM、FLASH等)做成的4输出或6输出1输出地真值表再加一个D触发器包含。任何一个4输出1输入人组逻辑电路,都有一张对应的真值表,某种程度的如果用这么一个存储器做成的4输出1输出地真值表,只必须改动其真值表内部值就可以等效出有给定4输出1输入的人组逻辑。  这些真值表内部值是什么?就是那些01编码而已。如果要构建时序逻辑电路怎么办?这不又D触发器嘛,任何的时序逻辑都可以切换为人组逻辑+D触发器来已完成。

但这却是只构建了4输出1输入的逻辑电路而已,一般来说逻辑电路的规模那是非常的大哦。那怎么办呢?这个时候就必须中用可编程连线了。在这些连线上有很多用存储器掌控的链接点,通过重写对应存储器的值就可以确认哪些线是连上的而哪些线是插入的。这就可以把很多可编程逻辑单元人组一起构成大型的逻辑电路。

最后就是可编程的IO,这只不过是FPGA作为芯片级用于必需要留意的。任何芯片都必定有输出插槽和输入插槽。有可编程的IO可以给定的定义某个非专用插槽(FPGA中有专门的非用户可用于的测试、iTunes用插槽)为输出还是输入,还可以对IO的电平标准展开设置。总归一句话,FPGA之所以可编程是因为可以通过类似的01代码制作成一张张真值表,并将这些真值表人组一起以构建大规模的逻辑功能。

  不理解FPGA内部结构,就无法明白最后代码如何变到FPGA里面去的。也就无法了解的理解如何需要充分运用FPGA。现在的FPGA,不单单是有前面谈的那三块,还有很多专用的硬件功能单元,如何利用好这些单元构建简单的逻辑电路设计,就是指菜鸟迈进高手的路上必需要解决的障碍。

而这一切,还是必需再行从理解FPGA内部逻辑及其工作原理转行。  2、错误解读HDL语言,怎么看都没什么硬件结构。

  HDL语言的英语全称是:HardwareDescriptionLanguage,留意这个单词Description,而不是Design。老外为什么能用Description这个词而不是Design呢?因为HDL显然不是用用来设计硬件的,而意味着是用来叙述硬件的。叙述这个词准确地体现了HDL语言的本质,HDL语言不过是未知硬件电路的文本表现形式而已,只是将以后的电路用文本的形式叙述出来而已。

而在撰写语言之前,硬件电路应当早已被设计出来了。语言只不过是将这种设计转化成为文字表达形式而已。

  但是很多人就不解读了,既然硬件都早已被设计出来了,必要拿去制作部就完了,为什么还要转化成为文字表达形式再行通过EDA工具这些困难的流程呢?只不过这就是很多菜鸟没理解设计的抽象层次的问题,任何设计还包括什么服装、机械、广告设计都有一个抽象层次的问题。就拿广告设计来说吧,最初的设计或许就是一个概念,设计出有这个概念也是就是一个点子而已,离最后拍成电影广告还差得很近。硬件设计也是有有所不同的抽象层次,每一个层次都必须设计。

  最低的抽象层次为算法级、然后依序是体系结构级、寄存器传输级、门级、物理版图级。用于HDL的益处在于我们早已设计好了一个寄存器传输级的电路,那么用HDL叙述以后转化成为文本的形式,只剩的向更加低层次的切换就可以让EDA工具去做到了,这就大大的减少了工作量。

这就是可综合的概念,也就是说在对这一抽象层次上硬件单元展开叙述可以被EDA工具解读并转化成为底层的门级电路或其他结构的电路。  在FPGA设计中,就是在将这以抽象化层级的意见叙述成HDL语言,就可以通过FPGA开发软件转化成为问题1中所述的FPGA内部逻辑功能构建形式。  HDL也可以叙述更高的抽象化层级如算法级或者是体系结构级,但目前受限于EDA软件的发展,EDA软件还无法解读这么低的抽象层次,所以HDL叙述这样抽象化层级是无法被转化成为较低的抽象化层级的,这也就是所谓的不能综合。

所以在读者或撰写HDL语言,特别是在是可综合的HDL,不应当看见的是语言本身,而是要看见语言背后所对应的硬件电路结构。  如果看见的HDL一直是一条条的代码,那么这种人总有一天挣脱没法菜鸟的宿命。假如哪一天看见的代码仍然是一行行的代码而是一块一块的硬件模块,那么恭贺瓦解了菜鸟的级别,转入不那么菜的鸟级别。

  3、FPGA本身不算什么,一切均在FPGA之外这一点难道也是很多学FPGA的菜鸟最无以解读的地方。  FPGA是给谁用的?很多学校说明为给学微电子专业或者集成电路设计专业的学生用的,只不过这不过是很多学校不受资金容许,买不起专业的集成电路设计工具而用FPGA工具替代而已。

只不过FPGA是给设计电子系统的工程师用于的。这些工程师一般来说是用于有数的芯片配上在一起已完成一个电子设备,如基站、机顶盒、视频监控设备等。

当现有芯片无法符合系统的市场需求时,就必须用FPGA来较慢的定义一个能用的芯片。  前面说道了,FPGA里面无法就是一些真值表、触发器、各种连线以及一些硬件资源,电子系统工程师用于FPGA展开设计时无非就是考虑到如何将这些以后资源人组一起构建一定的逻辑功能而已,而不用像IC设计工程师那样仍然要注目到最后芯片是不是需要被生产出来。本质上和利用现有芯片组制备有所不同的电子系统没区别,只是必须注目更加底层的资源而已。

要想要把FPGA用一起还是非常简单的,因为无非就是那些资源,在解读了前面两点再行做个实验板,橘子实验,做到点非常简单的东西是可以的。而确实要把FPGA用好,那光不懂点FPGA科学知识就远远不够了。因为最后要让FPGA里面的资源如何人组,构建何种功能才能符合系统的必须,那就必须懂更好更加普遍的科学知识。


本文关键词:9499登陆网址

本文来源:9499登陆网址-www.jianxingnotwork.com