对FPGA开发流程系统的学习

FPGA 开发流程:

HDL(Hardware Design Language)和原理图是两种最常用的数字硬件电路描述方法,HDL 设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计中被广泛使用。所以,我们在使用 FPGA 设计数字电路时,其开发流程是基于 HDL 的。

1、 需求定义(功能定义)

设计和实现一个系统的第一步,是明确整个系统的性能指标,然后进一步将系统功能划分为可实现的具体功能模块,同时明确各模块的功能与基本时序,还可大致确定模块间的接口,如时钟、读写信号、数据流和控制信号等。

2、 RTL 级 HDL 描述

RTL 级(寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少逻辑门、逻辑门的连接拓扑结构等),通过描述寄存器到寄存器之间的逻辑功能的 HDL 设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL 级的最大特点是可以直接用综合工具将其综合为门级网表。RTL 级设计直接决定着系统的功能和效率。我们使用的 HDL 语言是 verilog。

3、 功能仿真(前仿真)

功能仿真也称综合前仿真,其目的是验证 RTL 级描述是否与设计意图一致。为了提高效率,功能仿真需要建立 testbench,其测试激励一般使用行为级 HDL 语言描述。

4、管脚分配与设计约束

无论是 RTL 级还是门级的 HDL 设计方法,在实现该逻辑时都需要与实际的 FPGA 芯片相匹配。管脚分配是指将设计文件的输入输出信号指定到器件的某个管脚,设置此管脚的电平标准、电流强度等。设计约束指对设计的时序约束和在综合、布局布线阶段附加的约束等。

5、综合

将 RTL 级 HDL 语言翻译成由与、或、非门等基本逻辑单元组成的门级连接(网表),并根据设计目标与要求(约束条件)优化所生成的逻辑连接,输出门级网表文件。

6、门级仿真(综合后仿真)

在综合后通过后仿真来检查综合结果是否与原设计一致。一般,综合后仿真和功能仿真的测试激励相同。由于综合工具日益完善,在目前的 FPGA 设计中,这一步骤被省略掉。

7、 布局布线

布局布线就是使用综合后的网表文件,将工程的逻辑与时序要求与器件的可用资源相匹配。也可以简单地将布局布线理解为对 FPGA 内部查找表和寄存器资源的合理配置,那么‘布局’ 可以被理解挑选可实现设计网表的最优的资源组合,‘布线’就是将这些查找表和寄存器资源以最优方式连接起来。

8、时序/时延分析

通过时序/时延分析获得布局布线后系统的延时信息,不仅包括门延时,而且还有实际的布线延时。时序/时延分析的时序仿真是最准确的,能较好地反映芯片的实际工作情况,同时发现时序违规((Timing Violation)即不满足时序约束条件或者器件固有时序规则(建立时间、保持时间)的情况。

9、 配置与下载

通过编程器(programmer)将布局布线后的配置文件下载至 FPGA 中,对其硬件进行编程。配置文件一般为.pof 或.sof 式,下载方式包括 AS(主动)、PS(被动)、(边界扫描)等方式。

入口:免费领取fpga教程、项目、入行指导。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/775952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDK新特性之协程

在 JVM 中,java 线程直接映射内核线程,因此 java 线程的创建、销毁和调度都要依赖内核态的操作(系统调用)。而协程是真正的用户线程,如上图所示很多的协程可以映射很少的几个内核线程,并且协程的创建、销毁…

【kubectl详解】最全的kubectl命令用法

文章目录 简介一.命令帮助翻译1.1.基本命令(初学者):1.2.基本命令(中级):1.3.部署命令:1.4.群集管理命令:1.5.疑难解答和调试命令:1.6.高级命令:1.7.设置命令…

腾讯混元文生图开源模型推出小显存版本,仅需 6G 显存即可运行

腾讯宣布开源小显存版本的混元文生图模型,降低至 6G 显存即可运行,方便个人电脑本地部署。同时,混元 DiT 模型升级至 1.2 版本,图片质感与构图提升。混元 Captioner 打标模型也正式开源,支持中英文双语,优化…

linux ifconfig未找到命令

linux ifconfig未找到命令 1、使用yum安装net-tools yum install net-toolsyum报未找到命令请查看文章vim未找到命令,且yum install vim安装vim失败 2、安装后使用ifconfig命令 ifconfig

数据库、创建表、修改表

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表,具体要求如下 员工表 user…

智慧校园-资产管理系统总体概述

智慧校园资产管理系统是面向教育机构设计的一体化数字平台,其核心目标在于通过先进的信息技术手段,全面优化校园内部的资产管理流程。该系统致力于提升资产管理的效率与透明度,同时降低成本并确保所有操作符合财务及审计规范,为校…

高效PD,稳定传输,LDR6023CQ芯片,打造顶级直播体验

在当今市场,一款备受瞩目的直播神器——无线领夹麦克风(MIC),正风靡于网红直播、在线教育、专业采访、高清视频录制及视频会议等多个领域。麦克风,这一昔日课堂上的常见设备,已随着科技的飞速发展而焕然一新…

GRPC使用之HelloWorld

使用grpc的好处是提供高效的序列化能力,能够跨语言进行调用。这一节我们来学习grpc的入门应用,整篇文章分成3部分: 接口定义,使用grpc的IDL,创建proto文件,编译/生成grpc文件服务端开发,处理客户端请求&am…

wsl安装Linux系统到指定位置

默认情况下,wsl安装的系统,会安装到系统C盘,长期下去,很容易把C盘的空间消耗完,从而影响系统的正常运行,所以我建议是将wsl所有的系统都安装到其它磁盘中,便于维护。 1、导出镜像 通过wsl -l -v 查看当前已安装的系统版本。 导出到当前目录位置,也可以指定目录位置。 w…

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

又到一月一度的 CloudQuery 发版时间啦! 本次版本更新,对多个模块进行了功能的优化和完善,比如将文本导入与 insert 权限脱离使文本导入可单独控制;将工具权限与权限等级脱离,使其能独立授权和提权;操作模…

【JavaWeb程序设计】JSP编程

目录 一、编写JSP页面,在界面上显示1-9,9个链接,单击每个链接,能够在另一个页面打印该数字的平方。 1. 运行截图 2. 第一个jsp页面(index.jsp) 3. 第二个jsp页面(square.jsp) 二…

Purple Pi OH 更改SDK的编译选项

本文适用于在Purple Pi OH开发板更改SDK编译选项。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。 该主板主要针对学生党,极客,工程师,极大降低了开源鸿蒙开发者的入门门槛,具有以下…

【一念发动便是行】念头,就是命运

一个个恶念累积就是负能量,念头就是命运,克除恶念,防范念头,念头都有能量,学圣学须内外庄严检肃,言语有灵 多数人的问题都是出在念头上,念头,就是自己的命运; 当我们对自…

12 Dockerfile详解

目录 1. Dockerfile 2. Dockerfile构建过程 2.1. Dockerfile编写规则: 2.2. Docker执行Dockerfile的大致流程 2.3. 总结 3. Dockerfile指令 3.1. FROM 3.2. MAINTAINER 3.3. RUN 3.4. EXPOSE 3.5. WORKDIR 3.6. USER 3.7. ENV 3.8. VOLUME 3.9. ADD …

51单片机STC89C52RC——14.1 直流电机调速

目录 目的/效果 1:电机转速同步LED呼吸灯 2 通过独立按键 控制直流电机转速。 一,STC单片机模块 二,直流电机 2.1 简介 2.2 驱动电路 2.2.1 大功率器件直接驱动 2.2.2 H桥驱动 正转 反转 2.2.3 ULN2003D 引脚、电路 2.3 PWM&…

大模型LLMs概述:利用大模型 (LLMs) 解决信息抽取任务

论文标题:Large Language Models for Generative Information Extraction: A Survey 论文链接:https://arxiv.org/pdf/2312.17617.pdf 论文主要探讨了大型语言模型(LLMs)在生成式信息抽取(IE)任务中的应用…

知识库系统平台管理与优化

在之前做的关于FAQ知识库问答系统中,总结了相关踩坑内容,梳理如下,供大家参考。系统平台的管理与优化对于企业来说至关重要,它不仅关乎数据处理的效率,还直接影响到用户体验和业务成果。本文将从系统平台管理方式、系统…

World of Warcraft [CLASSIC] Talent Tree

World of Warcraft [CLASSIC] Talent Tree 天赋树模拟器 01)初始化整个页面,选择游戏职业,初始化3个天赋树 02)初始化天赋树结构,层次为N层 03)每层有4个技能,设置可显示,设置隐藏…

通用代码生成器模板体系,语句和语句组

通用代码生成器或者叫动词算子式通用目的代码生成器是一组使用Java编写的通用代码生成器。它们的原理基于动词算子和域对象的笛卡尔积。它们没有使用FreeMarker和或者Velocity等现成的文件式模板引擎。而是使用java语言开发了一套专门为动词算子式代码生成器使用的模板API。而其…

uniapp启动安卓模拟器mumu

mumu模拟器下载 ADB: android debug bridge , 安卓调试桥,是一个多功能的命令行工具,他使你能够与连接的安卓设备进行交互 # adb连接安卓模拟器 adb connect 127.0.0.1:port # 查看adb设备 adb deviceshubuilderx 有内置的adb&a…