首页 > 代码库 > 《那些年,我们拿下了FPGA》摘记
《那些年,我们拿下了FPGA》摘记
spld、cpld及fpga等能实现任何逻辑的本质是,任何一个逻辑都能由多项式表示(或逼近)。多项式无非就是乘运算和加运算。而正好,与门符合乘,或门符合加。
fpga扩展架构SOPC,即片上可编程系统。分为两种,一种是纯FPGA架构的SOPC,称SOPC系统。一般内嵌乘法器、乘加器、吉比特传输模块等等,可以使原来利用逻辑实现的资源消耗多、速度慢的算法得到很大的优化。另一种是围绕FPGA的多芯架构的SOPC。包括FPGA+处理器(CPU、ARM……),FPGA+DSP,FPNA等等。
一般内存用的是DRAM,它与SRAM区别在于DRAM需要一段时间刷新一次,需要额外的定时刷新电路,因为硬件结构是电容充放电。这种小规模的DRAM来讲,刷新电路的消耗得不偿失,对FPGA而言太复杂。因此FPGA用的是SRAM,不需要动态刷新,一旦载入数据将保持不断电。
基于LUT(查找表)技术的FPGA实现机里是事先通过综合器将所有可能的输入进行换算得到所有可能的结果(真值表),真值表的计算过程实际上是开发过程中的综合过程。然后把这些结果载入LUT(是SRAM)存储单元,在通过不同输入进行索引出相应结果。需要说明的是,LUT硬件本身就存在二选一多路器结构,尝试着理解一下。
对于一个n输入的查找表来上,它能够实现任何n输入组合函数的功能。目前大多是基于4输入LUT的。为充分利用LUT,如果LUT是4输入的,那么逻辑信号宽度最好用4的倍数。比如23位,那就用24位。一来不浪费资源,二来可以防止计数溢出。
熔丝和反熔丝的概念对比保险丝。
mux是指二选一多路选择器,说基于mux实际上也是基于反熔丝技术的FPGA。
FPGA的应用:图像处理、通信、数字信号处理、CPU等等。一般软件提供相关的IP核(回头看看)。
嵌入式一般指嵌入处理器。所以我的理解是单片机、fpga这些不算是很严格的嵌入式系统。
硬核,是直接将微处理器放到fpga芯片里面。软核则是将一组逻辑资源块配置成一个微处理器,速度慢一点,但简单。在资源允许情况下,可以配置多个软核。
top-down是指从整个系统按功能出发,按一定原则将系统分成若干子系统,再将子系统分成若干个功能模块,直至分成许多基本模块。模块例化便是起到层与层之间的连接作用。
《那些年,我们拿下了FPGA》摘记