《那些年,我们拿下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是指从整个系统按功能出发,按一定原则将系统分成若干子系统,再将子系统分成若干个功能模块,直至分成很多基本模块。模块例化便是起到层与层之间的连接作用。


在Altera的开发流程中,将编译、映射过程合成综合。在Xilinx开发流程中,由设计输入得到门级王彪的过程叫做综合,而映射过程归结到某一称作实现的子步骤中。


约束分为综合约束和布局布线约束,后者又可分为位置约束和时序约束。

一般开发环境对约束有默认设置,也大部分情况是适用的。

综合约束是在综合过程中做的,不同的约束会导致生成性能不同的电路。

电路实现的速度和消耗的面积是贯穿FPGA开发过程中两个矛盾的问题。综合约束是小范围内实现实现速度和面积平衡的一种方式。

位置约束又称I/O约束。

这个是必须的。还有增量编译也会涉及到。

关于I/O约束我曾在调试ad9854的文章中讲到,有些开发环境还默认设置了电平和限流的方面,有可能会导致现象出不来的情况,这个不同版本号的开发环境也会有差别吧。

时序约束,这里不展开了,最重要的是知道系统性能决定于最差路径的延时。

我如今一般还是忽略的。


三种仿真。第一种是RTL级仿真,又称前仿真。功能仿真,只验证逻辑功能。

另外一种是门级仿真,又叫静态仿真,它是综合后LUT门级网表的仿真。目的是验证当project到了用LUT网表描写叙述的时候,从功能上验证project的正确性。

第三种是时序仿真,又叫后仿真。布局完成后,在前面的附加等待时间信息的基础上。在分析逻辑功能符合要求。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的:(FPGA)