当前位置:   article > 正文

FPGA的结构和设计流程_fpga设计

fpga设计

FPGA的结构】

一般包括:
(1)可编程逻辑块(CLB)
(2)可编程输入/输出单元(IOB)
(3)时钟管理模块(DCM)
(4)嵌入式块RAM(BRAM)
(5)内嵌专用IP单元
在这里插入图片描述
(1)可编程逻辑块
CLB是FPGA内部的基本逻辑单元,其数量和特性会依据器件的不同而不同。大体上每个CLB由若干查找表及附加逻辑(如多路选择器、触发器、进位逻辑、算术逻辑等)组成,可用于实现组合逻辑和时序逻辑,还可以被配置为分布式RAM和分布式ROM。图2-4-给出了一个典型CLB的结构,包含一个4输入LUT、一个多路选择器和一个触发器。其中,触发器可以被配置(编程)为寄存器或锁存器,多路选择器可以被配置为选择一个到逻辑块的输入或LUT的输出,LUT则可以被配置以实现任何的逻辑功能。
在这里插入图片描述
FPGA采用查找表LUT实现基本的电路逻辑功能,目前大部分FPGA采用SRAM工艺实现查找表,一个4输入的查找表如图2-5所示。A、B、C、D由FPGA芯片的引脚输入或内部新信号给出,然后作为地址线连到查找表LUT。LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据Zout 输出,这样就实现了组合逻辑的功能。对于时序电路,只需要采用查找表加上触发器的结构就可以实现。FPGA芯片上电时,基于SRAM的FPGA会加载配置信息(称为器件的编程)。作为这种配置的一部分,用作LUT的SRAM单元会被加载进所所需实现逻辑功能的0或1值。对于不同的逻辑功能只需通过器件编程改变查找表中存储的内容即可,从而实现了FPGA的可编程设计。

(2)可编程输入/输出单元(IOB)
可编程输入/输出单元,简称I/O单元,是FPGA芯片与外界电路的接口部分,用于完成不同电气特性下对输入/输出信号的驱动与匹配要求。通常,FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,改变上拉或下拉电阻。目前,I/O数据传输速率越来越高,一些高端的FPGA可以支持高达2Gb/s的数据传输率。
(3)数字时钟管理模块(DCM)
目前,大多数FPGA均提供数字时钟管理模块。在时钟的管理和控制方面,DCM相比DLL功能更强大,使用更灵活。DCM的功能包括消除时钟的延迟、频率的综合、时钟相位的调整等系统方面的需求,可提供精确的时钟综合,且能够降低时钟抖动。DCM的主要优点在于:
①实现零时钟偏移(Skew),消除时钟分配延迟,并实现时钟闭环控制。
②时钟可以映射到PCB上,用于同步外部时钟,减少对外部芯片的要求,对芯片内、外的时钟进行一体化控制,利于系统设计。
DCM通常由4个部分组成。其中,最底层仍采用DLL模块,然后分别是数字频率合成器(DFS)、数字移相器(DPS)和数字频谱扩展器(DSS)
(4)嵌入式块RAM(BRAM)
嵌入式块RAM是FPGA内部除了逻辑资源外用的最多的功能块,它以硬核的形式集成在FPGA内部,成为FPGA最主要的存储资源。各种主流的FPGA芯片内部都集成了数量不等的BRAM。BRAM最大的优势在于,它不会占用任何额外的CLB资源。在集成开发环境中,通过IP核生成工具灵活的将其配置为单口RAM,简单双端口RAM,真双口RAM、ROM、FIFO等不同的存储器模式。此外,还可以将多个BRAM通过同步端口连接起来,构成容量更大的BRAM。
(5)内嵌专用IP单元
内嵌专用IP单元指由FPGA厂商提供的,预先设计好、经过严格测试和优化过的软核IP或硬核IP。如DLL、PLL、DSP或MicroBlaze处理器、Nios处理器等软核、专用乘法器、浮点运算单元、串并收发器SERDES或PowerPC、ARM等硬核。正是由于继承了丰富的内嵌专用IP单元,并在相关EDA工具的配合下,使单片FPGA逐步具备了软硬件系统设计的能力,FPGA也正在从单纯的ASIC原型验证平台逐步向SoC平台过渡。

【FPGA设计流程】

在这里插入图片描述
(1)电路功能设计在系统设计之前,首先进行的是方案论证系统设计FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。
(2)设计输入
设计输入是将所涉及的系统或电路以FPGA EDA工具要求的形式表示出来,并输入给EDA工具。常用的方法有硬件描述语言输入原理图输入
(3)功能仿真
功能仿真也称为综合前仿真,主要目的在于验证电路的功能是否符合设计要求,这个阶段中可以检查代码的语法错误以及代码行为的正确性,其中不包括延迟信息。
(4)综合
综合将设计编译为由基本逻辑单元构成的逻辑连接网表(并非真实门级电路),然后根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件来实现。
(5)综合后仿真
检查综合结果是否和原设计一致,在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,用于评估门延时带来的影响
(6)实现与布局布线
实现是将逻辑网表配置到具体FPGA上,布局布线是其中重要环节。布局是将逻辑网表中的单元配置到芯片内部的固有硬件结构上,并需要在速度最优和面积最优之间做出选择;布线是根据布局的拓扑,利用芯片内的连线资源,合理、正确地连接各元件。目前FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,FPGAEDA工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产厂商对芯片结构最为了解,所以布局布线必须选择FPGA芯片开发商提供的工具。
(7)时序仿真
时序仿真也称为后仿真,指将将布局布线的延时信息反标注到设计网表中,检测有无时序违规,此时延时最精确,能较好的反应FPGA的实际工作情况。
(8)板级仿真
板级仿真主要应用于高速电路设计中,对信号完整性和电子干扰等特性进行分析,使用第三方工具完成。
(9)芯片编程与测试
典型FPGA设计流程的最后一步就是芯片编程与调试。FPGA芯片编程是指产生使用的数据文件(位数据流文件,Bitstream),然后将其下载FPGA芯片中。FPGA芯片调试使用内嵌的在线逻辑分析仪(如Xilinx公司的ChipScope,Altera的SignalTapII等),它们只需要占用FPGA芯片少量的逻辑资源,具有较高的实用价值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/780191
推荐阅读
相关标签
  

闽ICP备14008679号