FPGA是一种可编程逻辑器件,与传统的硬连线电路不同,它具有高度的可编程性和灵活性。FPGA的设计方法包括硬件设计和软件设计两部分,硬件设计包括FPGA芯片电路、存储器、输入输出接口电路等等,软件设计则是HDL程序开发,以及软硬件的联调。

本文主要介绍FPGA设计的基本流程,让大家对FPGA开发流程有一个整体的认识。

一、FPGA的基本开发流程

FPGA的设计流程主要包括开发需求分析、设计框架搭建、硬件电路设计、软件编程以及验证测试等多个阶段,每个阶段都需要专业的EDA开发软件和编程工具进行支持。

通过这些工具,设计人员可以对FPGA进行仿真、合成、布局布线等操作,从而实现对FPGA芯片的开发和优化。

二、具体流程介绍

1、设计定义

在FPGA设计项目开始之前,根据任务要求和系统的功能,对工作速度和器件本身的资源、成本等方面进行权衡,选择合适的设计方案和合适的器件类型,并根据功能需求来设计定义整个项目的架构设计。

架构设计的目的是将设计需求转化为硬件结构,确定模块划分、信号传输方式、时序关系等。在进行架构设计时,我们需要考虑到设计复杂度、资源利用率、功耗消耗等多个方面。

这块需要资深FPGA来设计,同时设计方案需要分析和验证,确保FPGA器件的资源和性能可以达到功能的要求,可能需要迭代多个版本,这部分需要经验积累。

2、HDL实现

这块主要是编写代码,按照设计需求和架构设计,将功能模块拆分为各个子模块,然后编写相应的模块代码,常用HDL语言是verilog HDL和VHDL。

这部分涉及到verilog开发,推荐使用Vivado+Visual Studio Code的开发环境,写起代码来还是很方便的。

3、功能仿真

功能仿真,是在编译之前进行逻辑功能验证的过程,主要用来验证。

此时的仿真没有考虑电路的延迟信息,只能对逻辑功能进行检测,并不能保证上板运行的正确性。

功能仿真需要编写测试激励,需要根据要测试的功能,来编写测试激励逻辑。

功能仿真是一种非常重要的验证手段,可以尽早发现设计中的问题和错误,从而减少后期的调试和修改工作。

常用的仿真软件有Vivado自带仿真器和modelsim仿真器,其中modelsim仿真速度比Vivado仿真速度快,推荐使用modelsim仿真。

4、 逻辑综合

综合(Synthesis)是将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表的过程。综合的目标是将较高级的抽象描述转化成较低层次的描述,并进行优化,以提高电路的性能和效率。

综合优化根据目标和要求来优化所生成的逻辑连接,使层次设计平面化,为FPGA布局布线软件提供实现支持。

综合的时间,与FPGA工程大小有关,工程越复杂,时间则越长。

5、综合后仿真

综合后仿真,主要是检查综合结果是否和原设计一致,但这个仿真很耗时和耗资源,一般可以跳过这个仿真,不如直接上板调试来的靠谱

6、实现与布局布线

这步是FPGA设计流程中非常重要的一步,可以将综合生成的逻辑网表配置到具体的FPGA芯片,同时也是耗时特别长的一个阶段。

布局布线根据时序约束条件,以及芯片内部各个逻辑单元的布局结构,通过连线资源,将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,这部分往往需要在速度优化和面积优化之间找平衡。

可以在开发软件上,设置实现和布局布线策略,一般情况下使用默认设置即可。

7、 时序仿真

时序仿真,也称为后仿真,主要检测布局布线后的电路是否有时序不满足的情况。这块一般用的少,建议直接略过这一步,上板调试更好。

8、上板调试

一般是通过JTAG在线下在bit文件到FPGA芯片中,接入实际的输入信号,在线实时测试,这里在第一次测试时,大概率会运行异常。

我们调试的时候,要保持耐心,要根据现象大胆推荐可能的原因,并将存在问题的模块信号,加入ILA,抓取实时信号出来分析,如果实在是没哟头绪,那就只要一个个模块排查,猜测可能的原因。

上板调试经验,需要不断积累,做项目越多,越熟练,注意总结和复盘。

三、总结

FPGA设计流程包括分析设计需求、FPGA架构设计、HDL代码编写、逻辑综合、布局布线、仿真调试和生成比特流文件等步骤。这些步骤并不是一次完成的,可能需要多次迭代,反复编译和调试,才能完成项目。当然了项目经验需要不断积累的,多思考,多总结,才能进步。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

学习资料分享github开源代码:“FPGA知识库

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

FPGA开发基本流程详解相关推荐

  1. APP开发项目流程详解,长知识了!

    APP的开发流程并不复杂,APP开发人员一般都包含着UI设计师 .前端开发.后端开发.测试专员.产品经理等等. 而根据开发人员的分工不同,可以把APP的开发项目流程分为三个阶段:需求阶段–开发阶段–发 ...

  2. RPD快速产品开发全流程详解

    一.什么是RPD? RPD定义-Rapid Product Development(快速产品开发): 借鉴了业界主流的产品开发流程:IPD.敏捷开发等: 结合企业当前软硬件开发实践,RPD是包括了思想 ...

  3. 国内征信行业模型开发全流程详解

    1. 前言 目前国内的金融体系主要由银行.互联网消费金融.助贷机构组成,本人参与过国内外大型银行.消金.助贷机构的征信模型开发,相对而言,对当前国内的征信模型具有一定的发言权.下面,我将从技术角度全面 ...

  4. 软件项目开发基本流程详解

    软件项目开发流程图是用来详细描述了软件在开发过程中产品调研.设计.开发.测试等各个阶段中各个角色,包含产品经理.研发.测试.用户等需要处理的事情,以及在不同阶段可以达到哪种效果.那么,一款软件从研发到 ...

  5. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  6. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解

    点击上面 "电动知家"可以订阅哦! BMS功能安全开发流程详解 BMS和ISO26262 - BMS & ISO26262简介 BMS即Battery Management ...

  7. 苹果app开发流程详解​

    苹果App Store上传应用流程详解,在向AppStore提交应用之前,开发者首先要成为苹果iOS开发者项目的成员,每年向苹果缴纳99美元或199美元的费用(具体申请方法后期更新).​ 免688开发 ...

  8. 【联机对战】微信小程序联机游戏开发流程详解

    现有一个微信小程序叫中国象棋项目,棋盘类的单机游戏看着有缺少了什么,现在给补上了,加个联机对战的功能,增加了可玩性,对新手来说,实现联机游戏还是有难度的,那要怎么实现的呢,接下来给大家讲一下. 考虑到 ...

  9. 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

最新文章

  1. Cocos Creator 键盘监听事件
  2. win7系统下访问网上邻居提示用户名密码错误
  3. 企业传播可以考虑放弃公众号了
  4. sql截去最后一位_sql 取最后一条记录
  5. 小学计算机教案表格式,小学信息技术教案表格数据处理.docx
  6. spring + groovy 转
  7. Spark SQL兼容Hive及扩展
  8. xmind使用教程思维导图
  9. Windows数据类型探幽
  10. 没有用递归,写了一个文本转成树的小程序,代码凑和看吧
  11. PATA1034题解
  12. excel如何快速统计一列中相同数值出现的个数
  13. 用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率),或快速估算年利率
  14. python 微信二次开发_python微信公众账号二次开发
  15. realtek card reader是什么软件
  16. 计算机组成原理实验脱机运算器,计算机组成原理实验二: 脱机运算器实验
  17. 发生系统错误 1275.此驱动程序被阻止加载
  18. 林仕鼎谈数据中心计算(三):学术界与工业界,以及未来展望
  19. 迟到的认可:计算机科学之父图灵将登50英镑新钞
  20. AR眼镜——Vuzix Blade填坑笔记

热门文章

  1. Android雷达图(蜘蛛网图)绘制
  2. Android N BlockedNumberContract原生黑名单(一)
  3. OPPO Find5 X909T ColorOS1.0系统精简笔记
  4. 数据结构——图书信息管理系统的顺序表实现
  5. 中国人不便宜了,医疗信息化才有希望
  6. 刘强东:我请你来,不是让你证明我错了!
  7. 【2023春招】美团技术岗笔试10min+AK
  8. i春秋-密码-IceCTF-Alien Message
  9. 关于Safari的思考(转载)
  10. 通达信分时接口dll的算法