FPGA为什么是能够编程的?恐怕许多菜鸟不知道,他们也不想知道。由于他们觉得这是无关紧要的。他们潜意识的以为可编程嘛,必定便是像写软件相同啦。软件编程的思维根深柢固,看到Verilog或许VHDL就像看到C言语或许其它软件编程言语相同。一条条的读,一条条的剖析。
假如这些菜鸟们一向回绝去了解为什么FPGA是能够编程的,不去了解FPGA的内部结构,要想学会FPGA恐怕是天方夜谭。尽管现在EDA软件现已十分先进,像写软件那样照本宣科也能归纳出点东西,但或许只要天知道EDA软件终究归纳出来的究竟是什么。或许点个灯,跑个马还行。这样便是为什么许多菜鸟学了N久今后依然是一个菜鸟的原因。那么FPGA为什么是能够“编程”的呢?首要来了解一下什么叫“程”。
编程,其实便是编写这些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输出的逻辑电路罢了,一般逻辑电路的规划那是适当的大哦。那怎么办呢?这个时分就需求用到可编程连线了。
HDL言语的英语全称是:Hardware Deion Language,留意这个单词Deion,而不是Design。老外为什么要用Deion这个词而不是Design呢?由于HDL的确不是用用来规划硬件的,而仅仅是用来描绘硬件的。
描绘这个词精确地反映了HDL言语的实质,HDL言语不过是已知硬件电路的文本表现方式罢了,仅仅将今后的电路用文本的方式描绘出来罢了。而在编写言语之前,硬件电路应该现已被规划出来了。言语只不过是将这种规划转化为文字表达方式罢了。
可是许多人就不理解了,已然硬件都现已被规划出来了,直接拿去制作部就完了,为什么还要转化为文字表达方式再经过EDA东西这些费事的流程呢?
其实这便是许多菜鸟没有了解规划的笼统层次的问题,任何规划包含什么服装、机械、广告规划都有一个笼统层次的问题。就拿广告规划来说吧,开始的规划或许便是一个概念,规划出这个概念也是便是一个点子罢了,离终究拍成广告还差得很远。硬件规划也是有不同的笼统层次,每一个层次都需求规划。
FPGA是给谁用的?许多校园解释为给学微电子专业或许集成电路规划专业的学生用的,其实这不过是许多校园受资金约束,卖不起专业的集成电路规划东西而用FPGA东西代替罢了。其实FPGA是给规划电子体系的工程师运用的。
这些工程师一般是运用已有的芯片调配在一起完结一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满意体系的需求时,就需求用FPGA来快速的界说一个能用的芯片。前面说了,FPGA里边无法便是一些“真值表”、触发器、各种连线以及一些硬件资源,电子体系工程师运用FPGA进行设计时无非便是考虑怎么将这些今后资源组合起来完结必定的逻辑功用罢了,而不用像IC规划工程师那样一向要重视到终究芯片是不是能够被制作出来。
实质上和使用现有芯片组组成不同的电子体系没有差异,仅仅需求重视更底层的资源罢了。要想把FPGA用起来仍是简略的,由于无非便是那些资源,有理解了前面两点再搞个试验板,跑跑试验,做点简略的东西是能够的。而真实要把FPGA用好,那光懂点FPGA常识就远远不够了。由于终究要让FPGA里边的资源怎么组合,完结何种功用才干满意体系的需求,那就需求懂得更多更广泛的常识。