做以单片机为平台的项目能够根据功能需求,合理选择单片机型号,说明对单片机的资源是熟悉的。知道单片机的内部资源无非就是定时器,ADC,以及各种通信协议接口,以及单片机FLASH内存大小,RAM大小等等。往往资源越多功能越多,性能越好。我们程序要做的事情无非就是根据功能需要设置各个寄存器初始化,然后跑功能逻辑。
那FPGA呢,只知道里面有各种逻辑门,触发器。还有其他的不清楚。我对FPGA的理解就是:FPGA就相当于有很多个74系列的逻辑芯片被集成在一个芯片里面。并且这些逻辑芯片之间相互是没有电气连接关系的,而通过硬件描述语言,加上厂家的编译器,容易被人理解的程序代码(比如Verilog)最终会被自动转换成最优的硬件原理图,然后生成对应配置FPGA芯片的数据流,这些数据流其实就是指定FPGA内部各个逻辑门之间的电气连接关系。
简单的来说就是用硬件描述语言来对电路进行描述,这样就不需要很多的器件来搭电路。
那么问题来了,FPGA里面到底究竟都有哪些基本的东西呢?比如各种逻辑门,触发器,还有什么呢?
FPGA的资源,除了基本的单元LE,RAM之类的,一般会有PLL,乘法器等,有的还有CPU核;
mcu用的多了就可以预测一下一个东东的资源用量,FPGA也是一样的,做什么东西,大约用多少个门,要用那些资源,多了就会有一些评估了;
mcu用的多了就可以预测一下一个东东的资源用量,FPGA也是一样的,做什么东西,大约用多少个门,要用那些资源,多了就会有一些评估了;
-----------------------------------------------------------------------------
这个怎么预测,是不是类似单片机那样,比如我写过串口程序,就会知道串口初始化部分需要占用大概多少字节的flash空间。这样项目做多了,心中留有印象,自然知道各种资源组合到一起大概需要多少flash空间。
迁移到FPGA该怎么看,应该是直接看编译报告吧。
另外PLL应该和cortex M ARM单片机里面的锁相环差不多吧。
一般的reg就是一个锁存器,不过FPGA内部会有一些硬件的内存供你使用,这样比用门成本低一些,就像内部有用硬件的18*18乘法器,你就不用自己写一样;
自己写的东西是用内部的门组成的,fpga中的门是多输入的内存组成,相比用集成工艺的门电路要繁琐,这样用电路在内部做好常用的功能块会经济好多,速度也会更快
一周热门 更多>