FPGA后仿真流程
- 格式:doc
- 大小:789.50 KB
- 文档页数:21
QuartusII的设计流程QuartusII软件的使用方法一、设计输入1。
建立工程任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。
此文件夹将被EDA软件默认为工作库(Work Library)。
一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
首先建立工作库目录,以便存储工程项目设计文件。
在D盘下新建文件夹并取名Mydesign。
双击QuartusII软件启动图标,即可启动QuartusII软件,启动界面如图1—2所示。
使用New Project Wizard 可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其他源文件、用户库和EDA 工具,以及目标器件系列和具体器件等。
在此要利用“New Preject Wizard”工具选项创建此设计工程,并设定此工程的一些相关的信息,如工程名、目标器件、综合器、仿真器等。
(1)打开建立新工程管理窗.选择菜单File→New Preject Wizard 命令,即弹出“工程设置"对话框(图1-3),以此来建立新的工程。
(2)在单击图1-3后,出现了设置工程的基本信息,如图1-4所示.单击此对话框最上一栏右侧的“… "按钮,可以选择工程存放在硬盘上的位置,此例中将工程放在D盘Mydesign文件夹下.这三行的第一行的d:\Mydesign表示工程所在的工作库文件夹;第二行的half_add 表示此项工程的工程名,工程名可以取任何其他的名,也可直接用顶层文件的实体名作为工程名,在此就是按这种方式取的名;第三行是当前工程顶层文件的实体名,这里即为half_add。
(2)将设计文件加入工程中。
单击图1—4中的Next 按钮,弹出对话框如图1—5所示,在对话框中单击File name 右侧的“… ”按钮,可以将与工程相关的所有VHDL 文件(如果有的话)加入进此工程,此工程文件加入的方法有两种:第1 种方法是单击“Add … ”按钮,从工程目录中选出相关的VHDL 文件;第2 种方法是单击Add All 按钮,将设定的工程目录中的所有VHDL 文件加入到工程文件栏中。
FPGA初学之前后仿真分析最近在学习FPGA,感觉语⾔的学习到时很容易,但是由于缺乏电路图的硬件知识,所以看起来⽐较难懂,下⾯是对FPGA中仿真的⼀点理解,以后需要学习的地⽅还有很多啊。
⼀、使⽤ISE环境进⾏FPGA系统设计的时候,仿真是⼀个必不可少的步骤,即仿真过程是正确实现设计的关键环节,有两种:1.功能仿真(前仿真):在设计实现前对所创建的逻辑进⾏的验证其功能是否正确的过程,即布局布线以前的仿真。
2.时序仿真(后仿真):指布局布线后仿真,因为加⼊了线延迟信息,所以这⼀步的仿真和真正芯⽚的⾏为最接近,也是⽤于仿真芯⽚时序约束是否添加正确,布局布线后是否还满⾜时序等。
相同:两者仿真使⽤的仿真器是相同的,所需的流程和激励也是相同的;不同:时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,⽽功能仿真没有。
ISE环境中前后仿真的选项:以⼀个ALU的实现功能为例分析前后仿真的不同,其前仿真和后仿真的结果图为:前仿真图后仿真图从时序仿真图可以看出,后仿真存在着延迟。
本实验中存在的延迟也就是⼏ns,但是频率很⾼的时候,延迟可能会达到⼀个或者⼏个周期,这就要求⼯作频率不能超过最⾼⼯作频率。
那么最⾼频率怎么计算呢?⼆、计算最⼤⼯作频率⾸先需要知道FPGA中存在的延时有哪些,下⾯是常⽤的四种:1、纯组合逻辑延时(输⼊引脚到输出引脚),如图:2、输⼊引脚到同步元件之间的延时,如图delay23、同步元件到输出引脚之间的延时,如图delay34、不同时钟Clk1和Clk2之间的异步延时,如图delay4我们知道,⼏乎所有的FPGA设计平台都包含静态时序分析⼯具,利⽤这类⼯具可以获得映射或布局布线后的时序分析报告,从⽽对设计的性能做出评估。
⼯作频率的计算受到时序延时delay1、 delay2、 delay3、 delay4的影响。
在影响⼯作频率的参数中,由于针对某⼀个器件delay2 和delay3 是固定的,因此我们在设计中需要考虑的参数主要就是delay1 和delay4。
fpga开发流程及工具链FPGA(Field-Programmable Gate Array)的开发流程包括设计、仿真、综合、布局布线和配置等几个步骤。
常用的工具链包括Vivado、Quartus Prime等。
开发流程如下:1. 设计:在HDL(硬件描述语言)中使用VHDL或Verilog等语言对FPGA的逻辑电路进行设计。
可以使用设计工具如Vivado或Quartus Prime进行设计,也可以使用其他常用的IDE(集成开发环境)进行开发。
2. 仿真:使用仿真工具对设计进行验证。
通过仿真可以提前检测设计中的错误,以保证FPGA系统的正确性。
常用的仿真工具有ModelSim、VCS等。
3. 综合:将设计转化为可实现的逻辑电路,并生成布局和布线所需的网表。
综合工具会将设计转换为FPGA可以理解和实现的硬件描述,并生成逻辑网表。
常用的综合工具包括Synplify、Xilinx ISE等。
4. 布局布线:将逻辑网表映射到FPGA芯片的具体物理位置,并进行信号线的布线。
布局布线工具会根据设计的物理约束,将逻辑电路映射为FPGA芯片上的实际连线。
常用的布局布线工具有PAR(Place and Route)等。
5. 配置:将生成的bit文件(二进制配置文件)下载到FPGA芯片中,使其按照设计的功能进行配置和工作。
配置工具一般由FPGA厂商提供,如Xilinx的Vivado、Altera的Quartus Prime等工具。
常用的工具链有:1. Xilinx Vivado:Xilinx公司推出的综合工具和开发环境,用于设计、仿真和配置Xilinx FPGA芯片。
2. Altera Quartus Prime:Altera公司(现为Intel)的FPGA开发工具,支持设计、仿真、综合和布局布线等。
3. ModelSim:Mentor Graphics公司的一款通用的数字电路仿真工具,可用于FPGA开发中的设计验证。
FPGA仿真流程FPGA(Field Programmable Gate Array)是一种可编程的逻辑器件,能够根据用户的需求进行逻辑设计。
为了验证设计的正确性和性能,需要进行FPGA仿真。
FPGA仿真流程包括设计和验证两个主要阶段。
设计阶段:1.确定需求:首先,需要明确设计的功能和性能需求。
这包括功能要求、接口要求、时钟频率等。
2. 开发RTL代码:根据需求,开发RTL(Register Transfer Level)代码。
RTL是一种硬件描述语言,可用于表示各种逻辑电路的功能和行为。
3.进行功能仿真:使用功能仿真工具,对RTL代码进行仿真测试。
功能仿真能够验证设计的功能正确性,例如输入和输出的正确性、电路的数据通路等。
4.优化设计:根据仿真结果,对设计进行分析和优化。
可以通过调整电路结构、改进算法等方式,提高设计的性能和效率。
5.进行时序仿真:时序仿真是对电路的时序特性进行仿真测试,包括时钟频率、信号延迟等。
时序仿真能够验证设计在不同时钟频率下的工作稳定性,并发现可能存在的时序问题。
6.进行可综合性仿真:可综合性仿真是对设计的可综合性进行仿真测试。
可综合性是指RTL代码能否被综合工具转换成逻辑门级的网表文件,从而实现在FPGA中的可编程。
验证阶段:1.进行功能验证:功能验证是使用验证平台或模拟器,对设计进行全面的功能测试。
在验证平台中,可以模拟各种输入和环境条件,对设计进行全面的测试和验证。
2.进行时序验证:时序验证是对设计的时序特性进行验证。
使用时序验证工具,验证电路在不同频率、不同延迟条件下的工作稳定性和正确性。
3.进行电路板级仿真:在电路板级仿真中,将FPGA设计与外部电路、接口进行联合仿真。
通过电路板级仿真,可以验证设计在整个电路环境中的正确性和性能。
4.进行物理布局和布线仿真:通过物理布局和布线仿真,可以验证设计的物理约束和布局是否合理,能否满足时序要求。
5.进行系统级仿真:系统级仿真是对整个系统进行仿真测试。
验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC 开发流程中,验证主要包括功能验证和时序验证两个部分。
为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。
FPGA开发流程和IC的开发流程相似,主要分为以下几个部分:1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来;2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确;常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL,Aldec公司的Active HDL VHDL/Verilog HDL等。
仿真过程能及时发现设计中的错误,加快了设计进度,提高了设计的可靠性。
3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。
常用的专业综合优化工具有Synplicity公司的synplify/Synplify Pro、Amplify等综合工具,Synopsys公司的FPGA Compiler II综合工具(Synopsys公司将停止发展FPGA Express软件,而转到FPGA Compiler II平台),Exemplar Logic公司出品的LeonardoSpectrum等综合工具。
另外FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST等。
4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。
此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。
FPGA设计流程与规范FPGA(现场可编程门阵列)设计流程与规范是指在FPGA设计中所需遵循的一系列步骤和规定,以确保设计的正确性、可靠性和高效性。
在进行FPGA设计时,按照一定的流程和规范进行,可以确保设计的正确性,并最大限度地提高设计的效率。
下面将详细介绍FPGA设计流程与规范。
1.设计需求分析:在进行任何FPGA设计工作之前,首先需要明确设计的需求和目标。
包括了解所需实现的功能、性能要求、资源限制等。
这个阶段需要与项目的相关方(如产品经理、硬件工程师等)进行充分的沟通和讨论,以确保设计的准确性和可行性。
在分析需求的过程中,也要考虑到设计的灵活性和扩展性,以便在将来的版本迭代中进行更新和修改。
2.架构设计:在完成需求分析后,需要进行架构设计。
架构设计是将需求细化为硬件实现的关键步骤。
在这个阶段,需要选择适当的FPGA芯片,并确定设计的模块划分和通信接口。
同时,还需要考虑电源管理、时钟分配、数据流控制等方面的设计。
架构设计需要综合考虑性能需求、资源利用和硬件复杂度等因素,以找到最合适的设计方案。
3. 硬件设计:通过使用硬件描述语言(如Verilog或VHDL),根据架构设计进行硬件设计。
这个阶段需要将设计划分为多个模块,并对每个模块进行详细的设计。
每个模块的设计需要考虑数据流和控制流,确定寄存器传输级RTL描述、信号接口等。
在设计过程中,需要根据设计规范和最佳实践进行设计,以确保设计的正确性和可维护性。
4.仿真与验证:在完成硬件设计后,需要进行仿真和验证工作。
通过使用仿真工具,可以对设计进行功能仿真和时序仿真,以验证设计的正确性和性能。
此外,还可以使用专门的验证工具来对设计进行验证。
在这个阶段,需要与设计规范对比,检查设计是否满足要求,并及时修复和改进设计中的错误和缺陷。
5.综合与布局:在完成仿真和验证后,需要对设计进行综合和布局。
综合是将设计转换为门级电路的过程,布局是将综合后的门级电路放置在FPGA芯片上的过程。
用ISE与Modelsim进行FPGA后仿真(时序仿真)的两种方法作者:毕成炜2012年1月30日星期一我使用的是ISE_12.2,集成MODELSIM_6.5e。
后仿真的方法分为直接和间接两种。
直接是指从ISE上起动MODELSIM。
间接是单独起动MODELSIM,然后使用ISE生成的用于后仿的文件夹netgen。
下面分别叙述。
(一) 直接方法:1.建立一个文件夹给ISE工程用,比如D:\timing_sim,然后将源文件和测试文件放到它的下面:2.在ISE中如有旧的Project正在使用,则关闭它:这样画面清静。
然后新建一个New Project,点Next,选好器件和仿真器:点Next,点Finish.为了能够在ISE中直接唤起MODELSIM,还需要一些设置,主要是两处:双击器件:保证下图红圈处选中你要的仿真器:点OK后,在主菜单中点:保证在红圈处指定好MODELSIM执行文件所在的位置编译仿真库可以在这里双击Compile HDL Simulation Libraries,也可以在C:\Xilinx\12.2\ISE_DS\ISE\bin\nt下面找到,双击它,注意红圈处所标的是你的ISE版本所支持的MODELSIM版本,不能低于它。
否则仿真过程可能出问题。
点Next,点Next,选定你针对什么器件编译仿真库,点Next,点Next,注意,ISE可能最初不带modelsim.ini,它在此步会自动生成这个文件,并且是可写的,即它的“只读”属性是已经自动去掉的。
生成仿真库的映射关系自动写入了ISE的这个modelsim.ini,位于C:\Xilinx\12.2\ISE_DS\ISE\bin\nt,但是,它并不会自动去更新MODELSIM软件的modelsim.ini,而且MODELSIM使用的是它自己的modelsim.ini,位于C:\modeltech_6.5e。
所以需要把ISE的modelsim.ini中的映射关系再COPY到MODELSIM自己的modelsim.ini中。
quartus里面自带两种仿真functional和timing(还有一个简化版的timing)分别是功能仿真和时序仿真,其实如果验证正确,没有必要进行后仿真了。
在EDA开发的流程中,按理说应该进行后仿真back-annoted,但实际上这一步已经逐步淡化了。
FPGA验证(介绍FPGA设计流程,STA,后仿真)验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC开发流程中,验证主要包括功能验证和时序验证两个部分。
为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。
FPGA开发流程和IC的开发流程相似,主要分为以下几个部分:1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来;2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确;常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL,Aldec公司的Active HDL VHDL/Verilog HDL等。
仿真过程能及时发现设计中的错误,加快了设计进度,提高了设计的可靠性。
3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。
常用的专业综合优化工具有Synplicity公司的synplify/Synplify Pro、Amplify等综合工具,Synopsys公司的FPGA Compiler II综合工具(Synopsys公司将停止发展FPGA Express软件,而转到FPGA Compiler II平台),Exemplar Logic公司出品的LeonardoSpectrum等综合工具。
用ISE与Modelsim进行FPGA后仿真(时序仿真)的两种方法作者:毕成炜2012年1月30日星期一我使用的是ISE_12.2,集成MODELSIM_6.5e。
后仿真的方法分为直接和间接两种。
直接是指从ISE上起动MODELSIM。
间接是单独起动MODELSIM,然后使用ISE生成的用于后仿的文件夹netgen。
下面分别叙述。
(一) 直接方法:1.建立一个文件夹给ISE工程用,比如D:\timing_sim,然后将源文件和测试文件放到它的下面:2.在ISE中如有旧的Project正在使用,则关闭它:这样画面清静。
然后新建一个New Project,点Next,选好器件和仿真器:点Next,点Finish.为了能够在ISE中直接唤起MODELSIM,还需要一些设置,主要是两处:双击器件:保证下图红圈处选中你要的仿真器:点OK后,在主菜单中点:保证在红圈处指定好MODELSIM执行文件所在的位置编译仿真库可以在这里双击Compile HDL Simulation Libraries,也可以在C:\Xilinx\12.2\ISE_DS\ISE\bin\nt下面找到,双击它,注意红圈处所标的是你的ISE版本所支持的MODELSIM版本,不能低于它。
否则仿真过程可能出问题。
点Next,点Next,选定你针对什么器件编译仿真库,点Next,点Next,注意,ISE可能最初不带modelsim.ini,它在此步会自动生成这个文件,并且是可写的,即它的“只读”属性是已经自动去掉的。
生成仿真库的映射关系自动写入了ISE的这个modelsim.ini,位于C:\Xilinx\12.2\ISE_DS\ISE\bin\nt,但是,它并不会自动去更新MODELSIM软件的modelsim.ini,而且MODELSIM使用的是它自己的modelsim.ini,位于C:\modeltech_6.5e。
所以需要把ISE的modelsim.ini中的映射关系再COPY到MODELSIM自己的modelsim.ini中。
芯片fpga验证流程1. 原理图设计FPGA验证的第一步是进行原理图设计,即将设计的电路拆分成逻辑门、时钟、控制器等基本部件,并将这些部件根据需要布局和布线。
由于FPGA具有可编程性,因此一般使用HDL(Hardware Description Language)语言进行设计和模拟。
2. 仿真验证在进行FPGA设计之前,需要进行仿真验证,以保证设计的正确性。
使用仿真工具对设计的电路进行模拟,可以快速检测出设计中的错误和不足之处。
仿真验证需要注意时钟同步、数据传输、芯片会场布局等问题。
3. 物理验证在完成电路的设计后,需要进行物理验证。
其中包括板级布局、芯片级布局、测试访问机制等物理设计。
在这一阶段中,需要考虑布局对时序、信号完整性和电磁干扰等方面的影响。
4. 静态时序分析静态时序分析是验证在各种情况下FPGA系统的信号传输时间是否能满足硬性时序要求的一项关键任务。
这一过程通常包括设置时钟时延、根据门级网络实现和约束文件添加关键路径等。
5. 时钟分析时钟是FPGA设计中非常重要的元素,“时钟域过渡捕捉”是指当信号从一个时钟域转到另一个时钟域时,捕捉到信号的过程。
在FPGA设计过程中,出现时钟域过渡捕捉错误会导致系统不可预测的行为,因此时钟分析是不可或缺的一步。
6. 功耗分析FPGA芯片设计中,功耗一般分为静态功耗和动态功耗。
在FPGA设计的过程中,需要对功耗进行有效控制,以确保芯片设计能够满足功耗规格和限制。
这一步骤的目标是将功耗保持在可行范围内,同时确保电路的性能和功能稳定。
7. 芯片测试和验证芯片测试和验证是FPGA设计流程中的最后一步,用于确定芯片设计的正确性、性能和可靠性。
在芯片测试和验证过程中,需要进行硬件测量和软件测试,依据测试结果对设计进行修改和纠正,直到达到设计要求。
以上就是FPGA验证流程的主要步骤。
在实际工作中,还需要根据实际情况进行调整和修改,以达到最佳的验证效果。
fpga设计以及仿真流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 需求分析:确定设计的功能和性能要求。
考虑系统的约束条件,如时钟频率、资源利用等。
Modelsim与debussy在FPGA仿真和debug中的应⽤仿真是FPGA设计中的⼀个⾮常重要的环节,但很多朋友在做FPGA设计的过程中,却并没有意识到仿真的作⽤,也没有⼀个好的仿真流程来保证仿真验证的效果。
我们做仿真的⽬的是要通过仿真找到设计中潜在的问题并解决之,这就需要⼀个debug 的过程。
在这篇⽂章中,会讨论⼀下我对FPGA设计中仿真验证和debug的看法,也介绍⼀下modelsim+Debussy在仿真和debug中的应⽤流程。
记得在学校的时候,搭硬件系统要⽤到FPGA。
那时候没有任何FPGA设计的经验,也没有好的设计流程可以参考。
在做设计的时候,基本上是很随意的去写代码,很少顾及到甚⾄很基本的设计原则。
代码写好后,尽管有验证代码正确性的意识,但并没有成熟可靠的⽅法可以使⽤,基本上就是画⼀些简单的波形作为激励信号,通过开发软件⾃带的仿真⼯具,⼤概看⼀下输出的波形是不是正确。
这样做存在很多问题。
⾸先测试覆盖率⾮常的低,激励信号不可能做的很复杂,不可能涵盖所有需要验证的设计环节;再者就是要看被测设计的输出波形来检验设计是否正确,这样就需要⼤量的时间,效率很低。
在发现设计有问题的时候,检查设计代码,也⽤很原始的⼿段,⼀⾏⼀⾏的去查看,没有意识到或者说根本就不知道有⼯具软件可以来做trace。
更通常的验证⽅法就是在FPGA程序写好以后,综合出来,烧录到实际的系统中,在系统上直接验证。
但这种做法,效率低下且有问题的话,很难debug。
另外⽐较糟糕的是很难发现⼀些⽐较特殊的问题。
后来在公司的时候,做IC设计,公司有⽐较成熟和完善的设计流程。
主要⽤NC来做仿真,⽤debussy来做debug。
成熟和完善的设计流程带来的就是⽐较⾼的仿真的效率和⽐较⾼的覆盖率,我们在debug的时候,基于⽐较好的流程和⽅法,效率也⽐较⾼。
数年⼯作下来,让我建⽴起了⼀个基本的仿真验证的概念,这个时候,再回头看当初做FPGA设计的时候所遇到的问题,感触颇深。
FPGA的设计开发流程主要包括四个步骤:设计输入(Design Entry)、仿真(Simulation)、综合(Synthesis)及布局布线(Place & Route)。
1. 设计输入(Design Entry)Summit公司的VisualHDL、Mentor公司的Renoir、Aldec公司的ActiveHDL。
均支持图文混合的层次化设计。
三者都提供PC版本,VisualHDL还有工作站版本。
图形输入包括状态图、真值表、流程图、方框图等。
其中流程图输入方法是Renoir独有的。
文本输入包括VHDL和Verilog,上述工具都而且同时支持两种语言。
Renoir支持HDL2GRAPH,即从VHDL/Verilog语言模块转换到图形。
这一特性有助于分析已有HDL的语言结构。
ActiveHDL提供HDL语法高亮显示、自动产生文本结构、自动格式化文本等非常有益的文本编辑浏览特性。
Renoir和VisualHDL甚至不提供最基本的HDL语法高亮显示。
2. 仿真(Simulation)仿真包括功能仿真和时序仿真。
其中,功能仿真在布局布线之前;时序仿真在布局布线之后。
仿真工具有Mentor公司的Modelsim和Aldec公司的ActiveHDL,二者同时支持VHDL和Verilog的仿真。
Cadence公司也提供仿真工具,似乎对Verilog的支持更强,没有评估过。
Modelsim同时提供PC和工作站版本,ActiveHDL只有PC版本。
其中Modelsim是工业界应用最广的仿真工具,已经成为事实上的标准。
界面简洁,仿真速度快,功能强大而稳定。
ActiveHDL提供图示化仿真激励输入,而且有testbench的自动生成模板,这些特性都是独有的。
而且语言的在线帮助系统非常好。
3. 综合(Synthesis)综合工具实现从HDL语言到FPGA或ASIC网表的生成。
目前有Synopsys公司的FPGA Compiler II、Mentor公司的Examplar和Synplify公司的Synplicity。
Xilinx Fpga前后仿真Buffalo_liu 花了大量的时间去弄明白什么是前/后仿真,现总结如下:我的理解是:前仿真就是一个重点面向功能的仿真,器件是理想的,后仿真是一个重点面向器件的仿真,器件不再是理想的了。
前仿真:基本上是行为级的仿真,就是用自己的代码在modelsim里跑,看一下理想状况下的行为是否符合自己的要求。
如果在设计代码的时候充分考虑可能的延迟(就是多注意一(注:在行为级设计里,尽量少用实例化的模块,. 利用综合工具来将设计映射到具体的模块库里(这个时候需要后仿真来检验映射的功能是否依然和自己的设计一致,因此后仿真是个很重要的步骤).后仿真:在xilinx里,有多个级别的综合和方针,如post-synthesis , function post-NGDbuild,function post-map, post route-timing. 其实只有最后一个才是我们最需要的后仿真,前面几个都是可选的,也许一步步做下来有利于我们找到错误的所在. 这些都可以在向xilinx的ise环境里完成,记住一点的是,需要提前把需要的fpga 库编译好。
这是个很简单的步骤。
就省去不提了,然后用ise的new一个test文件出来(可以是波形的,也可以是文本的),这个时候点击这个test文件,就会发现很多各个级别的仿真选项出来。
剩下的步骤就很傻瓜了,略去不提。
下面是一个表,是关于各个级别仿真所需要的库现在想专门提一下如何单独用modelsim作后仿真。
(实验无数,:)很辛苦)前提条件:1.把自己的行为级设计翻译成对应器件的设计,可以通过ise的implement design里的generate post-translate simulation model 来产生(模块名)_translate.v这个文件(还有generate post-map simulation model,generate post-place&route simulation model ),打开看看,发现里面基本按照自己的设计,重新生成了一个面向器件的新文件,是不是很有成就感!。
典型的FPGA设计开发流程(2019-10-02 16:08:17)分类:专业总结标签:杂谈FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。
FPGA的开发流程一般如图1所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以和芯片编程与调试等主要步骤。
图1 FPGA开发的一般流程1.电路功能设计在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。
系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。
一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。
2.设计输入设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。
常用的方法有硬件描述语言(HDL)和原理图输入方法等。
原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。
这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。
更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。
目前,在实际开发中应用最广的就是HDL语言输入法,利用文本描述设计,可以分为普通HDL和行为HDL。
普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。
而在中大型工程中,主要使用行为HDL,其主流语言是Verilog HDL和VHDL。
这两种语言都是美国电气与电子工程师协会(IEEE)的标准,其共同的突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。
FPGA实验的流程包括以下步骤:
1. 方案论证、系统设计和FPGA芯片选择等准备工作。
2. 将设计的系统或电路硬件描述语言表示出来,输入至EDA工具中。
3. 将高级抽象层次的描述转换成较低层次的描述,即综合。
4. 综合后仿真,用于检查综合结果与原设计是否一致。
在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。
5. 将从何生成的逻辑网表配置到具体的FPGA芯片上,实现过程是将逻辑网表配置到具体的FPGA芯片上,布局布线是其中关键步骤。
6. 时序仿真与验证,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规。
时序仿真包含的延迟信息最准确,能较好地反映芯片的实际工作情况。
7. 板级仿真与验证,主要应用于高速电路设计中,对高速心态的信号完整性、电磁干扰等特性进行分析。
以上步骤仅供参考,具体操作可能会因实验需求和条件而有所不同。
在进行FPGA实验时,建议遵循相关的实验规范和安全操作规程,确保实验的顺利进行和结果的可靠性。
FPGA软件的使用流程1. 准备工作在开始使用FPGA软件之前,需要完成以下准备工作:•安装FPGA软件:根据硬件型号和供应商提供的资料,下载并安装相应的FPGA软件。
常见的FPGA软件包括Xilinx ISE、Altera Quartus等。
•学习基础知识:了解FPGA的基本原理,掌握HDL(硬件描述语言)的知识,例如Verilog或VHDL。
同时,理解FPGA的架构和工作流程也是必要的。
2. 创建新工程在使用FPGA软件之前,首先需要创建一个新的工程。
按照以下步骤进行:1.打开FPGA软件:双击桌面上的应用程序图标或通过开始菜单打开相应的应用程序。
2.选择“创建新工程”:在软件界面上找到“新建工程”或类似的选项,点击进入新工程界面。
3.命名工程:为工程命名,选择保存路径,并指定工程的类型(例如Xilinx或Altera)。
4.选择设备型号:根据所使用的FPGA硬件,选择相应的设备型号。
如果不清楚型号,可以参考FPGA供应商的技术手册或官方网站。
3. 设计RTL电路RTL(Register Transfer Level)是描述数字电路的一种方法,FPGA软件可以通过RTL描述用户的电路设计。
在设计RTL电路时,可以按照以下步骤进行:1.打开设计视图:在FPGA软件界面中,找到“设计视图”或类似选项,打开RTL设计界面。
2.添加模块:在设计界面上,选择“添加模块”或类似选项,将所需的模块添加到设计中。
3.连接模块:使用软件提供的连接工具,将各模块按照设计要求连接起来。
4.编写HDL代码:使用HDL语言(如Verilog或VHDL),编写每个模块的逻辑代码。
5.进行仿真:使用软件提供的仿真工具,对设计的RTL电路进行仿真验证。
4. 进行综合在完成RTL电路设计后,需要进行综合(Synthesis)操作,将RTL代码转化为FPGA支持的逻辑元件。
按照以下步骤进行:1.打开综合工具:在FPGA软件界面中,找到“综合”或类似选项,打开综合工具。
学习FPGA,被它的各种仿真弄的晕头转向。
前仿真、后仿真、功能仿真、时序仿真、行为级仿真、RTL级仿真、综合后仿真、门级仿真、布局布线后仿真……好吧,反正我是晕了。
先说一下Quartus和Modelsim软件的仿真形式:Quartus ii的两种仿真:1、功能仿真2、时序仿真;Quartus ii调用Modelsim的两种仿真:1、RTL级仿真2、Gate-level仿真。
查阅了各种资料如下:资料一:1.当用quartus进行仿真时,分为功能仿真(al)和时序仿真(Timing)。
2.当用Modelsim-Altera时,分为功能仿真(RTL)、综合后仿真(post-synthesis)和布局布线仿真(Gate-level)。
其中,功能仿真又称为前仿真,布局布线仿真又称为后仿真。
注:此处的功能仿真(RTL)与1中的功能仿真(al)是不一样的,前者是HDL级仿真,后者是门级网表的功能仿真。
(1)当在quartus中调用Modelsim-Altera进行RTL仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:a) 编写源文件和测试文件;b) Assignment->setting->simulation->不选中run gate leve simulation.....,选中nativelink->添加测试文件,填写文件名;c) start analysis&elabration;d) Tools->start RTL simulation;(2)综合后仿真一般不做。
(3)当在quartus中调用Modelsim-Altera进行Gate-level仿真时(前提是在第三方仿真工具中选择Modelsim-Altera),步骤如下:a) 编写源文件和测试文件;b)Assignment->setting->simulation->选中run gate leve simulation.....,选中nativelink->添加测试文件,填写文件名;c)全编译;评价:对于Assignment->setting->simulation->"run gate leve simulation automatically after comlilation"选不选中根本没必要说明,完全可以不用选中,需要在设置处把测试文件testbench添加就可以了(不添加的话到时候quartus调用出modelsim软件后需要手动添加编译,下面补充了)。
Xilinx FPGA仿真流程
版本:1.0
(本流程是基于设计代码已完成)
电路设计的各个阶段都与仿真紧密联系在一起的,可以分为以下几个阶段的仿真:1.行为级:用于验证电路框架及算法的正确性;
2.RTL级(寄存器传输级):可以验证功能正确性,一般称为前仿真;
3.门级:综合出门级网表之后,网表中加入了门的延时信息,仿真结果更接近于真实情况;4.后仿真:布局布线后,可以将连线延时加入到网表中,此时可以验证电路的时序是否正确;
实际上我们在编写设计代码时,一般从是RTL级开始。
RTL级仿真通过,然后直接进入后仿真。
只要后仿真通过了,我们就认为设计代码通过验证,可以下载到FPGA里。
所以我们需要仿真的只有RTL级和后仿真就行了!
一.RTL级仿真步骤:
1.打开ModelSim,新建一个project,如图1.1
图1.1
得到Creata Project 的弹出窗口,如图 1.2 所示。
在Project Name 栏中填写你的项目名字。
Project Location 是你的工作目录,你可通过Brose 按钮来选择或改变。
Ddfault Library Name 可以采用工具默认的work库。
(推存,此库包括一个特殊的文件_info)
图1.2
2.给工程加入文件:ModelSim会自动弹出Add Items to the project 窗口,如图1.3 所示。
选择Add Exsiting File 后,根据相应提示将文件加到该Project 中。
图1.3
出现图1.4
图1.4
点击Browse,出现
添加你所要的.v文件,出现。
当然也可以这样添加你所要的.v文件,
3.编译:编译(包括源代码和库文件的编译)。
编译可点击ComlileComlile All 来完成。
也可以这样编译文件
编译成功后,所有的文件后会打勾。
5.装载文件:如图2.5所示,
出现,选中你的test文件,点击OK
6.开始仿真,添加波形图
点击run all
出现波形
二.后仿真步骤:
1.启动ISE的Project Navigator,然后新建一个project。
点击File->New Project,出现
然后选择器件和综合工具,注意选择适当的Generated Simulation Language
点击下一步,直到完成
2.添加文件
3.开始综合
4.综合通过后,准备生成布局布线后的SDF文件
6.再运行ModelSim之前,首先把glbl.v文件(网表文件)复制到的ISE工程所在文件夹里,和你的代码放在一起。
glbl.v文件所在路径为:
复制到
7.运行ModelSim,加入相应的后仿真库,有以下3个:
Unisim:仅仅用来做功能仿真,在这个库中包括了Xilinx公司全部的标准元件,可以被绝大多数综合工具推论。
XilinxCoreLib:仅仅用来做功能仿真,在这个库中包括了使用Xilinx Core Generator工具产生的IP仿真模型。
Simprims:用来做时序仿真或门级功能仿真。
在File->Chang Directory
路径为/Modeltech_6.0/verilog_src
新建一个Libary
输入Library Name
选中Unisim,然后Compile
找到\Xilinx\verilog\src\unisims,Compile 所有unisims库里的文件。
文件太多,建议分几次编译
同样的方法编译XilinxCoreLib和Simprim
9.新建一个Project,和ISE的工程存放在一起
10.添加glbl.v(网表文件),*_timesim.v(sdf时序约束文件)和你的test.v(测试文件)文件
11.编译后,启动Simulate.
在Libaries下,添加Simprim库
在SDF下,添加SDF文件
注意Apply to Region, 为你的test文件包含你的功能文件的路径
接下来在Design->work下,同时选中glbl和test文件,点击OK
10.于RTL级仿真一样,开始仿真,添加波形图。