搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
PyTorch版HuggingFace Transformer模型库实战指南_huggingface transformer库
2
空气质量预测 | Python实现基于ConvLSTM的空气质量预测(多城市)_python实现基于convlstm的空气质量预测(多城市)
3
matlab 对数据进行分类,使用深度学习对文本数据进行分类
4
MIT Technology Review 2020年“十大突破性技术”解读 【中国科学基金】2020年第3期发布...
5
Spring Boot利用Spring Data JPA实现排序与分页查询实战(附源码,超详细)_如何使用spring boot实现分页和排序
6
HarmonyOS真机调试报错:INSTALL_PARSE_FAILED_USESDK_ERROR处理_鸿蒙install parse failed usesdk error
7
宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)_宽带cbf
8
大规模SFT微调指令数据的生成_sft指令微调
9
建筑主体结构健康监测,高层建筑如何预警结构异常
10
2024五一数学建模竞赛赛题浅析_钢板最优切割路径问题
当前位置:
article
> 正文
FPGA设计流程_fpga设计流程图
作者:知新_RL | 2024-07-02 16:21:07
赞
踩
fpga设计流程图
FPGA设计人体分为设计输入、综合、功能仿真(前仿真)、实现、时序仿真(后仿真)、配置下载等六个步骤,设计流程如图2所示。下面分别介绍各个设计步骤。
1 设计输入
设计输入包括使用硬件描述语言HDL、状态图与原理图输入三种方式。HDL设计方式是现今设计大规模数字集成电路的良好形式,除IEEE标准中VHDL与Verilog HDL两种形式外,尚有各自FPGA厂家推出的专用语言,如Quartus下的AHDL。HDL语言描述在状态机、控制逻辑、总线功能方面较强,使其描述的电路能特定综合器(如Synopsys公司的FPGA Compiler II或FPGA Express)作用下以具体硬件单元较好地实现;而原理图输入在顶层设计、数据通路逻辑、手工最优化电路等方面具有图形化强、单元节俭、功能明确等特点,另外,在Altera公司Quartus软件环境下,可以使用Momory Editor对内部memory进行直接编辑置入数据。常用方式是以HDL语言为主,原理图为辅,进行混合设计以发挥二者各自特色。
通常,FPGA厂商软件与第三方软件设有接口,可以把第三方设计文件导入进行处理。如Quartus与Foundation都可以把EDIF网表作为输入网表而直接进行布局布线,布局布线后,可再将生成的相应文件交给第三方进行后续处理。
2 设计综合
综合,就是针对给定的电路实现功能和实现此电路的约束条件,如速度、功耗、成本及电路类型等,通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是是说,被综合的文件是HDL文件(或相应文件等),综合的依据是逻辑设计的描述和各种约束条件,综合的结果则是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有关。
FPGA Compiler II是一个完善的FPGA逻辑分析、综合和优化工具,它从HDL形式未优化的网表中产生优化的网表文件,包括分析、综合和优化三个步骤。其中,分析是采用Synopsys标准的HDL语法规则对HDL源文件进行分析并纠正语法错误;综合是以选定的FPGA结构和器件为目标,对HDL和FPGA网表文件进行逻辑综合;而优化则是根据用户的设计约束对速度和面积进行逻辑优化,产生一个优化的FPGA网表文件,以供FPGA布局和布线工具使用,即将电路优化于特定厂家器件库,独立于硅持性,但可以被约束条件所驱动。
利用FPGA Compiler II进行设计综合时,应在当前Project下导入设计源文件,自动进行语法分析,在语法无误并确定综合方式、目标器件、综合强度、多层保持选择、优化目标等设置后,即可进行综合与优化。在此可以将两步独立进行,在两步之间进行约束指定,如时钟的确定、通路与端口的延时、模块的算子共享、寄存器的扇出等。如果设计模型较大,可以采用层次化方式进行综合,先综合下级模块,后综合上级模块。在进行上级模块综合埋设置下级模块为Don't Touch,使设计与综合过程合理化。综合后形成的网表可以以EDIF格式输出,也可以以VHDL或Verilog HDL格式输出,将其导入FPGA设计厂商提供的可支持第三方设计输入的专用软件中,就可进行后续的FPGA芯片的实现。综合完成后可以输出报告文件,列出综合状态与综合结果,如资源使用情况、综合后层次信息等。
3 仿真验证
从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;而在布局布线后,提取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真称为后仿真,它是接近真实器件运行的仿真。
4 设计实现
实现可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。通常可分为如下五个步骤。
(1)转换:将多个设计文件进行转换并合并到一个设计库文件中。
(2)映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的可配置逻辑块与输入输出块及其它资源中的过程。 (3)布局与布线:布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置,通常基于某种先进的算法,如最小分割、模拟退火和一般的受力方向张弛等来完成;布线是指利用自动布线软件使用布线资源选择路径试着完成所有的逻辑连接。因最新的设计实现工具是时序驱动的,即在器件的布局布线期间对整个信号通道执行时序分析,因此可以使用约束条件操作布线软件,完成设计规定的性能要求。在布局布线过程中,可同时提取时序信息形成报靠。
(4)时序提取:产生一反标文件,供给后续的时序仿真使用。
(5)配置:产生FPGA配置时的需要的位流文件。
在实现过程中可以进行选项设置。因其支持增量设计,可以使其重复多次布线,且每次布线利用上一次布线信息以使布线更优或达到设计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。
5 时序分析
在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。从某种程序来讲,静态时序分析可以说是整个FPGA设计中最重要的步骤,它允许设计者详尽地分析所有关键路径并得出一个有次序的报告,而且报告中含有其它调试信息,比如每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便计算各通中性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产生输入激励或测试矢量。虽然Xilinx与Altera在FPGA开发套件上拥有时序分析工具,但在拥有第三方专门时序分析工具的情况下,仅利用FPGA厂家设计工具进行布局布线,而使用第三方的专门时序分析工具进行时序分析,一般FPGA厂商在其设计环境下皆有与第三方时序分析工具的接口。Synopsys公司的PrimeTime是一个很好的时序分析工具,利用它可以达到更好的效果。将综合后的网表文件保存为db格式,可在PrimeTime环境下打开。利用此软件查看关键路径或设计者感兴趣的通路的时序,并对其进行分析,再次对原来的设计进行时序结束,可以提高工作主频或减少关键路径的跹 时。与综合过程相似,静态时序分析也是一个重复的过程,它与布局布线步骤紧密相连,这个操作通常要进行多次直到时序约束得到很好的满足。
在综合与时序仿真过程中交互使用PrimeTime进行时序分析,满足设计要求后即可进行FPGA芯片投片前的最终物理验证。
6 下载验证
下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的FPGA芯片中,也叫芯片配置。FPGA设计有两种配置形式:直接由计算机经过专用下载电缆进行配置;由外围配置芯片进行上电时自动配置。因FPGA具有掉电信息丢失的性质,因此可在验证初期使用电缆直接下载位流,如有必要再将烧录配置芯片中(如Xilinx的XC18V系列,Altera的EPC2系列)。使用电缆下载时有多种直载方式,如对Xilinx公司的FPGA下载可以使用JTAG Programmer、Hardware Programmer、PROM Programmer三种方式,而对Altera公司的FPGA可以选择JTAG方式或Passive Serial方式。因FPGA大多支持IEEE的JTAG标准,所以使用芯片上的JTAG口是常用下载方式。
将位流文件下载到FPGA器件内部后进行实际器件的物理测试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对FPGA投片生产具有较大意义。
基于多种EDA工具的FPGA设计
仿真工具Modelsim与综合工具FPGA Compiler II及布线工具Foundation Series或Quartus相配合实现FPGA设计流程图如图3所示。
在设计输入阶段,因Modelsim仅支持VHDL或Verilog HDL,所以在选用多种设计输入工具时,可以使用文本编辑器完成HDL语言的输入,也可以利用相应的工具以图形方式完成输入,但必须能够导出对应的VHDL或Verilog HDL格式。近年来出现的图形化HDL设计工具,可以接收逻辑结构图、状态转换图、数据流图、控制流程图及真值表等输入方式,并通过配置的翻译器将这些图形格式转化为HDL文件,如Mentor Graphics公司的Renoir,Xilinx公司的Foundation Series都带有将状态转换图翻译成HDL文本的设计工具。在这方面,Summit公司(现在已经合并为Innoveda)的图形化界面友好程度较高,且可以导出相应的HDL格式。
从图3中可以看到有三处可以由Modelsim进行仿真:第一处是寄存器传输级(RTL)仿真,此级仿真是对设计的语法和基本功能进行验证(不含时序信息);第二处是针对特定的FPGA厂有技术的仿真,此级伪真是在综合后、实现前而进行的功能级仿真,功能级仿真一般验证综合后是否可以得到设计者所需要的正确功能;第三处仿真是门级仿真,此级仿真是针对门级时序进行的仿真,门级仿真体现出由于布局布线而产生的实际延时。
在RTL仿真阶段,应该建立一个测试台。此测试台可以在整个FPGA流程中进行仿真验证(RTL级、功能级、时序门级)。测试台不但提供测试激励与接收响应信息,而且可以测试HDL仿真流程中的关键功能(如运算部件输出值的正确性等)。测试台的产生可以直接使用文本编程得到,也可以使用图形化工具输入,再由软件翻译为HDL格式,例如使用HDL Bencher软件利用其良好的波形输入界面输入测试激励,再由其自动转化为HDL格式而得到。
在功能级仿真阶段,一般验证综合后是否仍与RTL级仿真结果相同。
在门级仿真阶段,由于已经针对具体的FPGA厂家技术进行了功能级仿真,因此可以通过布局布线得到标准延格式下的时序信息进行门级仿真。
Mentor Graphics公司的Modelsim是业界较好的仿真工具,其仿真功能强大,且图形化界面友好,而且具有结构、信号、波形、进程、数据流等窗口。将FPGA设计(以HDL方式)输入后进行编译即可进行前仿真,其最新版本Modelsim SE/Plus 5.5支持VHDL与Verilog HDL混合仿真。在仿真时可以编写HDL激励文件或执行组模式方式。组模式方式类似批处理方式,可以连续执行事先在文件中写好的多个执行命令,这对重新仿真或重复执行多个命令特别有效。在仿真过程中可以执行性能分析与代码覆盖分析。性能分析在程序代码执行过程中可以分析出各部分代码执行时占用整个执行时间的百分率。在此信息下,设计者可以找到设计的瓶颈并通过优化代码减少仿真时间。代码覆盖分析可以使设计者确切知道在测试台上正在进行的代码位置,以方便设计者调试。
由Modelsim进行仿真,需要导出VHDL或Verilog HDL网表。此网表是由针对特定FPGA器件的基本单元组成的。这些基本单元在FPGA厂家提供的厂家库中含有其定义和特性,且厂家一般提供其功能的VHDL或Verilog VDL库。因此,在Modelsim下进行仿真,需要设置厂家库信息。如使用Altera公司的Apex20ke系列,需要将Apex20ke_atoms.v(或.vhd)与Apex20ke_component.v文件设置或编译到工程项目的对应库中。除网表外,还需要布局布线输出的标准延时文件(sdf),将sdf文件加入仿真可以在窗口化界面设置加入,或通过激励指定。如使用Verilog HDL时加入反标语句$sdf_annotate(“”,Top)通过参数路径指定即可。
在综合阶段,应利用设计指定的约束文件将RTL级设计功能实现并优化到具有相等功能且具有单元延时(但不含时序信息)的基本器件中,如触发器、逻辑门等,得到的结果是功能独立于FPGA的网表。它不含时序信息,可作为后续的布局布线使用。使用FPGA Compiler II进行综合后可以导出EDIF网络。
在实际阶段,主要是利用综合后生成的EDIF网表并基于FPGA内的基本器件进行布局布线。可以利用布线工具Foundation Series选用具体器件(如Virtex系列器件)进行布局布线加以实现,也可以使用布线工具Quartus选用Apex20ke系列器件进行布局布线加以实现,同时输出相应的VHDL或Verilog HDL格式,以便在Modelsim下进行仿真。
在数字系统设计的今天,利用多种EDA工具进行处理,同时使用FPGA快速设计专用系统或作为检验手段已经成为数字系统设计中不可或缺的一种方式,了解并熟悉其设计流血应成为现今电子工程师的一种必备知识。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/780155
推荐阅读
article
FPGA
架构笔记_
intel
的
fpga
器件内部最小
逻辑
单元
为...
了解了一些Intel
FPGA
(Altera)和Xilinx
FPGA
的
架构知识,下面是一些简单
的
笔记总结。一、Inte...
赞
踩
article
Xilinx
官方教学视频学习笔记 —— 7
Series
FPGA
Clocking
Resourc...
时钟功能输入(CCIO)每个Bank内都有自己的Clock输入引脚,每个Bank有4个,可配置为单端或差分时钟;这些引脚...
赞
踩
article
xilinx
fpga
ultrascale
器件
GTX
参考
时钟
注意点_
bank115
116
时钟
...
FPGA
GTX
_
bank115
116
时钟
bank115
116
时钟
...
赞
踩
article
基于
FPGA
的
电子
计算器
设计
(下)_
设计
一个
基于
fpga
的
简单
运算器,使之能提供以下
功能
1.完成...
今天给大侠带来
基于
FPGA
的
电子
计算器
设计
,由于篇幅较长,分三篇。今天带来第三篇,下篇,话不多说,上货。导读本篇介绍了一...
赞
踩
article
Xilinx
FPGA
:
vivado
单端
RAM
实现输出
偶数
(
单端
RAM
的简单应用)...
(2)调用IP资源找到
RAM
s&ROMs&B
RAM
s,选择其中的块资源。(1)先创建一个工程。
Xilinx
FPGA
:
v...
赞
踩
article
FPGA
入门————
LED
流水灯(超详细教程)_
led
代码
fpga
...
FPGA
入门————
LED
流水灯(超详细教程)_
led
代码
fpga
led
代码
fpga
...
赞
踩
article
Xilinx
FPGA
:
vivado
实现
超声波
测距
_
vivado
超声波
测距
串口通信...
超声波
模块测出的距离显示在数码管上。对echo信号高脉冲计时。产生trig信号的模块。_
vivado
超声波
测距
串口通信v...
赞
踩
article
altera
fpga
sdi
输出
方案
_
十年
FPGA
开发经验工程师谈
设计
技巧...
从大学时代第一次接触
FPGA
至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实...
赞
踩
article
Xilinx
FPGA
——
Vivado
生成bit文件时需要添加的约束_
edit
device
pro...
Vivado
设计过程中生成的bit流文件需要通过特定的配置引脚导入到
FPGA
中。专用配置引脚上的不同电压级别决定了不同的...
赞
踩
article
CXL
over
Ethernet
: A
Novel
FPGA
-
based
Memory Disag...
优化分离式内存的访问。利用
CXL
和RDMA结合的方法,用
CXL
支持本机内存加载/存储访问;利用RDMA进行跨机架的访问,...
赞
踩
article
【
FPGA
+
Nvidia
/算能GPU+AI】自动
驾驶
多核异构实现
16
路车载
摄像头
实时AI分析解...
基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列
FPGA
芯片设计,应用于无人
驾驶
、慢速特种车...
赞
踩
article
GPU
,
CPU
,SOC,
DSP
,
FPGA
,
ASIC
,MCU,MPU,GPP,ECU都是啥子_soc ...
上次关于TOPS的问题,似乎得到很多的关注,这里就多讲点自动驾驶芯片的内容上次也聊到了,讨论自动驾驶芯片的意义并非单纯理...
赞
踩
article
Xilinx
7系列
FPGA
高性能(HP)
接口
与
2.5
V/
3.3
V 外设IO
接口
设计
考虑_v7 f...
本文详细介绍了
Xilinx
7系列
FPGA
的HPBank和HRBank
接口
特性,探讨了电阻分压、图腾柱电阻、FET开关、电...
赞
踩
article
FPGA
的
I/O
BANK
介绍
_
fpga
读
不到
对端编号
bank
...
一般
fpga
都分为若干个
bank
例如xilinx
的
高端
fpga
,能分为22甚至更多个
bank
这么做主要是为了提高灵活性因...
赞
踩
article
Xilinx
FPGA
SelectIO
串并转换IP核使用笔记_
fpga
selectlo
ip核配...
IP核参数配置总结页:串行输入,8bit并行输出,single-end信号,速率为SDR,IO时钟驱动缓冲包括了BUFI...
赞
踩
article
Xilinx
FPGA
selectIO
笔记_
xilinx
lvpecl
...
前言内容主要来自ug471,主要记录
FPGA
的文档的学习笔记,参考的内容一个是csdn上的笔记和ug471文档此外还有部...
赞
踩
article
FPGA
SATA
高速存储设计...
今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上...
赞
踩
article
【
FPGA
、
maltab
】基于
FPGA
的
SOQPSK
调制解调技术
的
设计与实现_
soqpsk
编码
原理...
在QPSK中,将基带码元分成I、Q两路,相邻码元
的
最大相位差为180°,这样
的
相位突变在频带受限
的
系统中会引起信号包络
的
...
赞
踩
article
FPGA
-
DFT
(
离散
傅里叶
变换
)—
FFT
(快速
傅里叶
变化)...
以上从原理介绍了
DFT
(
离散
傅里叶
变换
原理),然后再介绍了
FFT
(快速
傅里叶
变换
)以及IP核的使用,和IP核使用参数以及...
赞
踩
article
FPGA
学习笔记2-
FPGA
的
主要
厂商
_
actel
fpga
...
主要
厂商:Xilinx、Altera、Actel、LatticeXilinx最牛逼,Altera被Intel收购,前两家...
赞
踩
相关标签
fpga
fpga开发
计算器
altera fpga sdi输出方案
flowable 流程设计器
mips ram设计
verilog hdl数字集成电路设计原理与应用
设计与验证verilog hdl吴继华
论文阅读
人工智能
汽车
FPGA
Serdes
串并/并串转换
SATA存储
FPGA SATA
FPGA 存储方案
SATA存储方案
690T SATA存储
zynq SATA存储