0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计流程

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-03-22 09:48 次阅读

FPGA设计流程

FPGA设计流程包括以下关键步骤,如图9.8所示。

1. 设计输入

2. 设计仿真与综合

3.设计实现

4.设备编程

b2a319d8-a91b-11ec-952b-dac502259ad0.png

图9.8 FPGA设计流程

设计输入

在设计进入之前,需要根据设计规范进行设计规划。设计规范需要转换为体系结构和微体系结构。设计架构和微架构包括将总体设计分解为小模块,以实现预期功能。在架构设计阶段,需要估计内存、速度和功率的需求。根据需要,需要为实现选择FPGA设备。

使用Verilog(.v)或VHDL(.vhd)文件完成设计输入。设计输入后,需要对设计进行仿真,以确保设计的功能正确性。这称为功能仿真。

设计仿真与综合

在功能仿真期间,将输入集应用于设计,以检查设计的功能正确性。尽管在后期的设计周期中可能会出现时间或面积、电源问题,但设计师至少对设计的功能有把握。

硬件设计工程师的主要目标是生成高效的硬件。综合是将设计抽象的一个层次转换为另一个层次的过程。在逻辑综合中,HDL被转换成网络表。网络列表独立于设备,可以采用标准格式,如电子设计互换格式(EDIF)。

设计实施

该设计经历了translate, map and place and route等步骤。在设计实现过程中,EDA工具将设计转换为所需格式,并根据所需区域将其映射到FPGA。EDA工具通过使用实际逻辑单元或宏单元来执行映射。在映射过程中,EDA工具使用宏单元、可编程互连和IO块。专用模块,如乘法器、DSP和BRAM,也使用供应商工具进行映射。这些块被放置在FPGA内部的预定义几何体上,并通过使用可编程互连来实现预期功能。这一步称为布局和布线。

为了检查设计计时性能以及是否满足约束,将执行时序分析,该分析称为布局后STA。在STA期间,使用与可编程互连相关联的延迟来检查时序路径。提取RC延迟并将其用于时序分析也称为反向注释。

设备编程

FPGA通过使用特定于供应商或专有的位流文件进行编程。位流是需要加载到FPGA中以执行特定硬件设计的二进制数据文件。

如果设计针对特定的FPGA,则EDA工具将生成设备利用率摘要。

用FPGA实现逻辑

现代FPGA的体系结构包括CLB阵列、块RAM、乘法器、DSP、IOB和数字时钟管理器(DCM)。延迟锁定环(DLL)用于赋值具有均匀时钟偏移的时钟。XILINX SPARTAN系列FPGA的平面图如下图所示。

b2b91c42-a91b-11ec-952b-dac502259ad0.png

可配置逻辑块

如下图所示,基本CLB由LUT、触发器和多路复用器逻辑组成。配置数据保存在锁存器中。CLB体系结构取决于供应商,由多个LUT、触发器、多路复用器和锁存器组成。下面的Verilog代码是使用单个四输入LUT实现的,称为组合逻辑。

b2d14c90-a91b-11ec-952b-dac502259ad0.png

图9.9 Xilinx基本CLB结构

下面的Verilog功能块在实现过程中使用单LUT和单寄存器,因此该逻辑称为时序逻辑。

b2e7b746-a91b-11ec-952b-dac502259ad0.png

图9.9所示的CLB也用于实现16位移位寄存器。LUT可以级联以设计较长尺寸的移位寄存器,也可以用于设计的流水线。

输入-输出块(IOB)

输入-输出块用于建立逻辑与外部世界的接口,由具有三态控制机制的寄存器和缓冲器的数量组成。该块可用于寄存器输入和寄存器输出。

b2f796ca-a91b-11ec-952b-dac502259ad0.png

图9.10 Xilinx基本IO块

现代FPGA的IOB结构非常复杂,可以包含许多IO控制支持,其中可能包括DDR、专用高速接口。基本IO块结构如图9.10所示。

Block RAM

XILINX Spartan-7系列支持可配置18 kbit块的形式组织的200 MHz块RAM。每个块RAM包含18432位,其中16kbit赋值用于数据存储,其余2kbit赋值用于奇偶校验。块RAM可用作单端口存储器或双端口存储器,并具有独立的端口访问。每个端口与独立时钟、时钟启用和写启用同步。读取操作本质上也是同步的,需要启用时钟。块RAM的应用是存储数据、FIFO设计、缓冲区和堆栈,甚至是在设计复杂的状态机时。单端口RAM如图9.11所示。

b30f9a68-a91b-11ec-952b-dac502259ad0.png

图9.11 Xilinx单端口Block RAM

数字时钟管理器(DCM)

Xilinx设备系列使用延迟锁定环(DLL),Altera使用锁相环(PLL)作为时钟管理器。DCM、DLL的作用是提供对相移、时钟偏移和时钟频率的完全控制。DCM、DLL支持以下功能。

相移•时钟偏移消除

频率综合。

DCM由可变延迟线和时钟赋值网络组成,基本框图如图9.12所示。

b324a1f6-a91b-11ec-952b-dac502259ad0.png

图9.12 Xilinx基本DLL块

乘法器

所有Spartan7 FPGA都有两个18位输入,并生成36位输出。乘法器为嵌入式块,每个设备有4~104个嵌入式乘法器块。嵌入式乘法器的主要优点是,与基于CLB的乘法器相比,它需要更少的功耗。它们用于以最小的通用资源实现快速算术函数。可以使用路由资源级联乘法器,下图显示了配置为22位乘以16位的乘法器,以生成38位输出的乘法器可用于有符号或无符号数字乘法。乘法器广泛应用于DSP应用中。基本块如图9.13所示。

b3382e7e-a91b-11ec-952b-dac502259ad0.png

图9.13 Xilinx基本乘法器块

b34af57c-a91b-11ec-952b-dac502259ad0.jpg

FPGA中仿真概念

b35e40c8-a91b-11ec-952b-dac502259ad0.jpg

Verilog复杂逻辑设计指南-奇偶校验生成器和校验器及筒式移位器

b38dbab0-a91b-11ec-952b-dac502259ad0.png

b3a5abd4-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序电路设计指南

b3b31e72-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序逻辑硬件建模设计(五)异步计数器&总结

b3c72b1a-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序逻辑硬件建模设计(四)移位寄存器

b3dc9efa-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序逻辑硬件建模设计(三)同步计数器

b3ecfdf4-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序逻辑硬件建模设计(二)同步和异步复位

b402e8bc-a91b-11ec-952b-dac502259ad0.jpg

Verilog时序逻辑硬件建模设计(一)锁存器D-latch和触发器Flip-Flop

Verilog组合逻辑设计指南

b432a6ce-a91b-11ec-952b-dac502259ad0.jpg

组合逻辑硬件建模设计(二)算术电路

Verilog 里面,always,assign和always@(*)区别

b4522698-a91b-11ec-952b-dac502259ad0.jpg

组合逻辑硬件建模设计(一)逻辑门

数字硬件建模-重新从另一方面理解Verilog(二)

b4763290-a91b-11ec-952b-dac502259ad0.jpg

数字硬件建模-从另一方面理解Verilog(一)

数字硬件建模综述

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593129
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132148

原文标题:FPGA设计流程

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx_fpga_设计流程

    Xilinx_fpga_设计流程
    发表于 08-02 23:51

    华为FPGA设计流程指南

    华为FPGA设计流程指南
    发表于 09-03 10:47

    发个FPGA的设计流程

    FPGA的设计流程
    发表于 09-09 12:04

    华为FPGA设计流程指南

    前言 本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是:l在于规范整个设计流程,实现开发的合理性、一致性、高效性。l形成风格良好和完整的文档
    发表于 12-08 14:47

    华为FPGA设计流程指南

    华为FPGA设计流程指南本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是:l在于规范整个设计
    发表于 12-18 10:45

    FPGA的设计流程是怎样的

    第二章 FPGA 开发流程FPGA 的设计流程就是利用 EDA 开发软件和编程工具对 FPGA 芯片进行开发的过程。原理图和HDL(Hard
    发表于 02-23 06:23

    Alter FPGA的设计流程以及DSP设计

    Alter FPGA的设计流程以及DSP设计.
    发表于 03-16 15:52 127次下载
    Alter <b class='flag-5'>FPGA</b>的设计<b class='flag-5'>流程</b>以及DSP设计

    FPGA设计流程指南

    FPGA设计的流程,步骤,选型,仿真,软硬件设计,调试流程
    发表于 05-11 14:33 29次下载

    从赛灵思FPGA设计流程看懂FPGA设计

    不断 从赛灵思FPGA设计流程看懂FPGA设计 1.XILINX ISE传统FPGA设计流程 利用XilinxISE软件开发
    发表于 02-20 20:32 1.6w次阅读
    从赛灵思<b class='flag-5'>FPGA</b>设计<b class='flag-5'>流程</b>看懂<b class='flag-5'>FPGA</b>设计

    FPGA设计流程“又臭又长”?从eda工具理解超级简单!

    对于初学者而言,FPGA的设计流程是否显的“又臭又长”呢??嗬嗬,如果真的有这样的感觉,没有关系,下面我就通过对软体的使用来了解FPGA的设计流程
    发表于 06-02 07:17 1182次阅读
    <b class='flag-5'>FPGA</b>设计<b class='flag-5'>流程</b>“又臭又长”?从eda工具理解超级简单!

    FPGA的设计流程是怎么样的?FPGA设计流程指南详细资料免费下载

    本文档的主要内容详细介绍的是FPGA的设计流程是怎么样的?FPGA设计流程指南详细资料免费下载内容包括了:1.基于HDL 的FPGA 设计
    发表于 10-17 17:50 29次下载
    <b class='flag-5'>FPGA</b>的设计<b class='flag-5'>流程</b>是怎么样的?<b class='flag-5'>FPGA</b>设计<b class='flag-5'>流程</b>指南详细资料免费下载

    FPGA设计流程及原理

    01 FPGA的设计流程 FPGA是可编程芯片,因此FPGA的设计内容包括硬件设计和软件设计两部分。硬件包括FPGA芯片电路、 存储器、输入
    的头像 发表于 11-12 18:22 5847次阅读

    华为FPGA设计流程指南电子版下载

    华为FPGA设计流程指南电子版下载
    发表于 06-04 11:03 0次下载

    FPGA设计流程指南

    FPGA设计流程指南
    发表于 11-02 16:29 9次下载

    FPGA设计流程

    FPGA的设计流程主要包括HDL代码编写、RTL综合、布局布线、静态时序分析、生成下载文件。下面将逐一介绍各部分。下面是FPGA设计的流程图。
    的头像 发表于 07-04 12:06 892次阅读
    <b class='flag-5'>FPGA</b>设计<b class='flag-5'>流程</b>