• FPGA设计流程


    FPGA20年最有影响力的25个研究成果 – CAD算法篇 - 知乎 (zhihu.com)

    逻辑综合知识点总结

    设计流程和工具

    image-20220918113805097

    基于HDL(硬件描述语言)

    设计对象是由Verilog HDL或VHDL等HDL描述的RTL(寄存器传输级)级别电路。大体的设计流程包括对RTL描述进行逻辑综合、技术映射、布局布线、生成配置,最后写入FPGA进行系统验证。

    逻辑综合和技术映射

    • 逻辑综合(logic synthesis)是指从RTL描述生成逻辑电路的过程。逻辑综合的结果是输出网表(netlist)文件,其中包括逻辑门、触发器等逻辑元素的集合以及它们的连接关系。

    • 将网表所表示的逻辑映射到哦FPGA实际的逻辑元素的过程称为技术映射(technology mapping)。大部分FPGA采用LUT(查找表)作为可编程元素。

    image-20220918113907439

    RTL 仿真

    RTL仿真是指使用testbench对RTL电路描述进行仿真的过程,目的是确认所设计的电路是否得到了预期输出。

    仿真工具一般由仿真用的编译器(对源代码解析生成中间代码提高仿真效率)、仿真引擎(基于中间代码仿真,按时序引发电路运行事件完成处理)和波形查看器等部分组成。

    根据考虑参数的精度,分为以下模型:

    1. 对RTL所描述行为的直接仿真:可以对RTL描述的功能和行为的正确性进行验证
    2. 对综合后的网表进行仿真:需要在逻辑综合后执行,基于分配的逻辑元素、记忆元素的延迟,对信号变化的时许、动作的延迟等进行确认,也可以根据信号的变化计算功耗
    3. 考虑了布局布线结果的仿真:在布局布线完成后执行。可以估算布线事件,并在仿真时考虑这些因素。此阶段的仿真所得到的时序分析、耗电分析精度最高,但也最为耗时

    布局布线

    布局布线(place and route)利用片上逻辑和布线等资源实现网表的过程。首先对逻辑元素进行布局,然后进行网络布线。

    image-20220918114952475

    配置FPGA

    完成布局布线的电路,最终会以FPGA内逻辑元素和布线开关的编程数据的形式保存。这种数据文件的叫法有配置数据、比特流、编程文件等,文件扩展名为bit或sof。

    image-20220918115434232

    将配置文件写入器件需要使用编程器,具体有下面几种方式:

    1. 通过JTAG写入:操作简单,断电重置后配置信息就会丢失。
    2. 通过编程用非易失性存储器写入(板载ROM)
    3. 通过存储卡或USB存储器写入。

    image-20220918120631484

    其他

    实机功能验证:向FPGA写入配置数据后,可以在实机上进行用户电路的功能验证

    优化:一般实现某种功能或行为的电路设计不唯一,逻辑综合、逻辑映射、布局布线等任何阶段存在多个结果。朝着给定目标修改编译条件从而改善结果,叫作优化。

    HLS设计

    由行为描述生产的电路的技术被称为高层次综合(High Level Synthesis, HLS)或行为综合(behavioral synthesis)

    大多数行为综合工具采用C语言,一般吧变量映射为寄存器实例,数组映射为内存实例,函数映射为电路模块实例。顺序执行、分支、循环、函数调用等流程控制用状态机实现。

    行为综合:基于C语言的行为级描述生成RTL级描述的过程,称为高层次综合或行为综合。通过数据流图和控制流图决定运行顺序和运行时刻称为调度,将变量和运算映射到寄存器或运算器的过程称为绑定,寄存器或运算器的数据选择器相连,并按照调度进行切换实现的运算称为数据通路。

    image-20220918122455546

    基于IP的设计方法

    通过高效地重复利用成品模块可以减轻开发周期、成本问题。

    这种可以通用和重复使用的设计资产被称为IP,也可以叫作IP模块、IP核、IP宏等等。

    包含处理器的设计

    硬核处理器就是以硬核形式集成在FPGA里的处理器。软核处理器是在FPGA可编程逻辑上实现的处理器。

    构建过程中处理器、总线结构、内存以及外围电路都需要进行配置。硬核处理器通常只能设置工作主频,而软核处理器可以对流水线、缓存、运算器、指令等进行详细定制。

    然后构建内存并将其连接到总线。

    处理器系统运作需要对其进行软件开发。

    将基于处理器系统所开发的硬件核软件整合,就可以在FPGA上运行了。

    image-20220918123751545

  • 相关阅读:
    CRM销售管理系统是如何进行数据分析的
    基于java+springmvc+mybatis+vue+mysql的老年人健康饮食管理系统
    java httpclient的digest验证(可恨,找遍全网没有靠谱的,不是少包就是少文件。含泪整理o(╥﹏╥)o~~~~)
    GPDB7-新特性-角色创建
    【电路笔记】-节点电压分析和网状电流分析
    【python】常见的正则表达式用法;匹配字符串
    Leetcode 22. 括号生成
    Centos8搭建npm和maven的nexus私服
    看着2022年世界杯,我无比怀念98世界杯
    毕业设计 STM32远程车锁控制系统 -物联网 单片机
  • 原文地址:https://blog.csdn.net/qq_45364953/article/details/126916250