FPGA验证简介

合集下载

fpga验证的原理

fpga验证的原理

fpga验证的原理
FPGA验证是指对FPGA芯片设计的正确性进行验证的过程。

验证的目的是确保FPGA设计的功能、时序和电气特性符合要求,以便芯片能够顺利投入使用。

FPGA验证主要包括以下几个方面:
1.功能验证:通过对FPGA设计的逻辑电路进行仿真,验证其在不同输入情况下的输出是否符合预期。

功能验证需要对设计的每个模块进行验证,并保证它们能够正确地组合起来工作。

2.时序验证:时序验证主要是通过时序约束来保证FPGA芯片在不同时钟频率和时钟相位下能够正常工作。

时序约束是指对时序路径的要求,包括最大延迟、最小延迟等。

在验证时需要对时序路径进行模拟,以确保所有路径都能够满足时序约束。

3.电气特性验证:电气特性验证是指验证FPGA芯片在不同电压、温度和工作负载下能否正常工作。

在验证时需要对FPGA芯片进行电气特性测试,以确保其能够在各种工作条件下正常工作。

在进行FPGA验证时,需要使用一系列验证工具和方法。

常用的工具包括仿真工具、时序分析工具、静态分析工具等。

验证过程需要严格按照验证计划进行,以确保验证的全面性和有效性。

同时,需要对验证结果进行分析和记录,以便后续的优化和改进。

- 1 -。

浅谈FPGA测试与验证方法

浅谈FPGA测试与验证方法

浅谈FPGA测试与验证方法摘要:FPG在各行各业中应用越来越广泛,其在硬件电路高度集成领域的优势越来越明显,因此FPGA 软件测试验证在产品设计开发中越来越受到重视,它保证了设计的正确性和强壮性,大大提高了FPGA的产品质量。

本文结合FPGA开发流程的特点,将测试验证流程嵌入进去,梳理了试验证流程,并阐述了FPGA测试验证方法。

关键词:FPGA测试;仿真测试0 引言FPGA(现场可编程门阵列,Field- Programmable Gate Array)是在PAL、GAL、CPLD等可编程器件基础上进一步发展的产物,作为专用集成电路(ASIC)领域中的一种半定制电路而出现。

随着现代电子技术的发展,对硬件电路集成度的需求越来越高,系统设计的规模也日益庞大,具备更高可集成性、可重用性、可编程设计等特点的FPGA在硬件电路设计中得到了广泛的应用。

目前,基于HDL(硬件描述语言)的综合方法是工业界普遍采用的主流设计方法,具有模块化设计、方便移植、设计灵活等优点。

随着设计需求的复杂度提高,未经验证的FPGA产品很可能提高后期硬件调试电路的复杂度,无法精确定位故障所在,潜在问题也很难发现,导致人员、时间、成本上的资源浪费。

因此为了保障最终设计产品的安全性、合规性、强壮性,对FPGA软件的工程设计进行测试验证就变得尤为重要。

1 FPGA设计开发简述目前,典型的FPGA设计是利用EDA工具针对FPGA芯片进行开发。

一般包括设计输入、功能验证、逻辑综合、实现和布局布线、时序验证、芯片编程与调试流程。

设计输入:分析设计需求,根据性能指标进行FPGA芯片选择,采用自顶向下或层次化的设计方法将所设计的系统划分功能模块,并将各个功能模块采用HDL语言进行行为级描述,实现FPGA设计向EDA工具输入的过程,此阶段可对设计添加约束。

逻辑综合:所谓综合,是指将较高级抽象层次的描述转换为低层次的描述。

即将行为级的代码语言描述编译成由与门、或门、非门、RAM、触发器等基本逻辑单元实例组成的逻辑连接网表,相对于行为级描述,门级描述可综合性更强,但在可读性、灵活性上较差,对设计人员的专业素养要求也更高。

FPGA_验证流程综述

FPGA_验证流程综述

FPGA验证流程综述张勇 陈逸韬深圳市国微电子有限公司 广东深圳 518000摘要:现场可编程门阵列(Field-Programmable Gate Array,FPGA),也被称为FPGA芯片,在通信、安防、工业等领域有着举足轻重的作用。

随着FPGA芯片的规模不断扩大、性能不断提升,其模块数量、电路网表规模、连接复杂度也随之增加。

在此趋势下,如何有效地提升大规模FPGA电路的验证效率与验证完备性变得更为重要。

一个完整的、有针对性的、结构性的验证流程方法,能更全面地对电路设计情况进行覆盖性检查,确保FPGA芯片功能的正确性。

详细叙述从底层到顶层(模块级、子系统级、全芯片级)的FPGA芯片验证方式,包括它们各自的验证方法、流程与侧重等细节,探讨了这种方式是如何帮助FPGA验证工作进行的。

关键词:FPGA芯片 验证效率 验证流程方法 全芯片级验证中图分类号:TN40;TN791文献标识码:A 文章编号:1672-3791(2024)04-0020-03 An Overview of the FPGA Verification ProcessZHANG Yong CHEN YitaoShenzhen State Microelectronics Co., Ltd., Shenzhen, Guangdong Province, 518000 China Abstract:The field-programmable gate array (FPGA) is also known as the FPGA chip, and it plays a crucial role in fields such as communications, security and industry. As the scale of FPGA chips continues to expand and their performance continues to improve, their number of modules, size of circuit netlists and connection complexity also increase. In this trend, how to effectively improve the verification efficiency and completeness of large-scale FPGA circuits has become more important. A complete, targeted and structured verification process method can compre⁃hensively check the coverage of circuit design and ensure the correctness of the function of FPGA chips. This paper detailedly describes the verification method of FPGA chips from the bottom layer to the top layer (module-level, subsystem-level, full chip-level), including details such as their respective verification methods, processes and em⁃phases, and explores how this method helps FPGA verification work.Key Words: FPGA chip; Validation efficiency; Validation process method; Full chip-level validation1 FPGA分层级验证1.1 验证层级分类根据验证侧重点,验证分为3个层级:模块级、子系统级与全芯片级。

FPGA验证(介绍FPGA设计流程,STA,后仿真)

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等综合工具。

另外FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST等。

4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。

此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。

FPGA验证后仿真

FPGA验证后仿真

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等综合工具。

FPGA硬件验证及逻辑综合

FPGA硬件验证及逻辑综合

逻辑综合基本术语—库
库:一组逻辑单元的集合。

库包括库申明、库属性、库应用环境和每 存放路径
个单元的功能描述、时间延时、面积、功
耗等。Astro布局布线库 ❖ 逻辑综合库LVS包文文件含本文两件,种da格tash式eet,:handbook
可测性矢量压缩文件
1.自由文件格式 .lib(任何标文准本C单a元编de版n辑c图e器布局都布可线以库 打开) 2. synopsys应用程序可使用的物格理式参.数db库(不可查看)
❖ 裕度(slack):是时序要求与实际时序之 间的差值,反映了时序是否满足要求。裕 度为正,满足要求;反之不满足。
裕度=要求的时间-实际的时间
可综合的Verilog(1)
HDL语言:
是“硬件描述语言” ,即Hardware Description Language, 而不是“硬件设计语言”,Hardware Design Language. 因此电路设计必须遵循RTL的模式来编写代码,而不能随心所欲地 只写出符合语法的代码。
行为设计 (Verilog/VHDL)
不满足 行为仿真
满足 综合、优化
网表 不满足
时序仿真 满足
版图自动 布局、布线
不满足 后仿真
满足
流片、封装、测试
模拟IC 流程
功能要求
系统建模
不满足 电路仿真
满足 手工设计
版图 不满足
后仿真 满足
Calibre 流片、封装、测试
Matlab
Spectre
Virtuoso, laker
assign mux_out=!mux_control&mux_in1 |mux_control&mux_in2|mux_in1&mux_in2; //assign mux_out=mux_control ?mux_in1:mux_in2;

fpga自学笔记—设计与验证

fpga自学笔记—设计与验证

文章标题:深入探索FPGA自学笔记—设计与验证1. 引言在当今数字电子技术发展日新月异的背景下,FPGA(Field Programmable Gate Array)作为一种可编程逻辑器件,已经成为了数字电子系统设计中不可或缺的组成部分。

作为一名FPGA自学者,要想真正掌握FPGA的设计与验证,需要深入探索其原理和应用。

本文将结合个人实践经验,从理论到实践,从简单到复杂,深入探讨FPGA自学笔记中设计与验证的要点。

2. FPGA基础知识概述我们需要了解FPGA的基本结构和工作原理。

FPGA由一系列可编程逻辑单元、可编程连通网络和输入/输出模块组成。

当我们在FPGA中设计一个数字电路时,实际上是在配置这些逻辑单元的连接关系,实现特定功能。

了解FPGA的基础知识对于理解设计与验证至关重要。

3. 设计与验证的流程在进行FPGA设计与验证时,我们需要遵循一定的流程。

我们需要对设计进行规划和分析,确定所需功能和性能指标。

在进行RTL (Register Transfer Level)级设计时,需要对数字电路进行建模和仿真,验证其功能和时序约束。

接下来,我们需要将设计综合成逻辑电路,并进行布局布线。

通过验证工具对设计进行仿真和验证,确保其符合预期的功能和性能要求。

4. FPGA设计的关键技术在进行FPGA设计时,有一些关键的技术是不可或缺的。

我们需要掌握Verilog或VHDL等硬件描述语言,以便进行RTL级设计和仿真。

对于复杂的FPGA设计,我们还需要了解时序约束、时钟域划分等关键技术,确保设计的稳定性和可靠性。

5. FPGA验证方法与工具在FPGA设计完成后,验证同样是至关重要的环节。

我们可以利用仿真工具对设计进行功能验证和时序约束验证。

基于FPGA原型验证评台也是一种有效的验证方法,通过将设计加载到实际FPGA硬件中,验证其在实际环境下的功能和性能。

6. 个人观点与理解通过自学FPGA设计与验证的过程,我深刻理解了数字电子系统设计的复杂性和挑战性。

关于fpga测试的总结

关于fpga测试的总结

关于fpga测试的总结FPGA测试是在FPGA设计完成后,为了验证其功能和性能而进行的一系列测试活动。

通过FPGA测试,可以确保FPGA的设计符合预期,并且能够在实际应用中正常工作。

本文将对FPGA测试的目的、方法和注意事项进行总结。

一、FPGA测试的目的FPGA测试的主要目的是验证FPGA设计的正确性和可靠性。

通过测试,可以检测和排除设计中的错误和缺陷,确保FPGA能够按照设计要求正常运行。

同时,测试还可以评估FPGA的性能指标,比如时钟频率、功耗等,以验证FPGA是否满足设计需求。

二、FPGA测试的方法1. 静态测试:静态测试主要通过检查FPGA设计的代码和电路图,对设计的正确性进行验证。

这包括语法检查、代码覆盖率分析、电路逻辑分析等。

静态测试可以帮助检测设计中的语法错误、逻辑错误等问题。

2. 动态测试:动态测试是在FPGA上加载设计并进行运行时测试。

常用的动态测试方法包括功能测试和性能测试。

- 功能测试:功能测试主要验证FPGA设计的功能是否按照预期工作。

通过输入合适的测试数据,观察输出结果是否正确。

功能测试可以基于设计的功能规格说明书来编写测试用例,包括正常输入、边界输入和异常输入等。

- 性能测试:性能测试主要评估FPGA的性能指标,如时钟频率、功耗等。

通过输入特定的测试数据,观察FPGA在不同工作负载下的性能表现。

性能测试可以帮助评估FPGA是否满足设计需求,并找出性能瓶颈。

三、FPGA测试的注意事项1. 测试用例的设计要全面:测试用例要覆盖设计的所有功能和边界条件,以确保测试的全面性和准确性。

2. 测试环境的搭建要正确:测试环境应该与实际应用环境相似,包括时钟频率、输入信号等。

同时,还需要正确设置测试的参数和配置。

3. 测试数据的选择要合理:测试数据应该具有代表性,既能够覆盖设计的各种情况,又能够有效地检测和排除错误。

4. 测试结果的分析要仔细:对测试结果进行详细的分析,找出错误的原因和位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这篇文章有EDA论坛deve所作:第一编 验证的重要性验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在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厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。

这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是Flow Engine。

5)时序验证,其目的是保证设计满足时序要求,即setup/hold time符合要求,以便数据能被正确的采样。

时序验证的主要方法包括STA(Static Timing Analysis)和后仿真。

在后仿真中将布局布线的时延反标到设计中去,使仿真既包含门延时,又包含线延时信息。

这种后仿真是最准确的仿真,能较好地反映芯片的实际工作情况。

仿真工具与综合前仿真工具相同。

6)生成并下载BIT或PROM文件,进行板级调试。

在以上几个主要开发步骤当中,属于验证的有功能仿真和时序验证两个步骤,由于前仿真和后仿真涉及验证环境的建立,需要耗费大量的时间,而在STA中对时序报告进行分析也是一个非常复杂的事情,因此验证在整个设计流程中占用了大量的时间,在复杂的FPGA/IC设计中,验证所占的时间估计在60%~70%之间。

相比较而言,FPGA设计流程的其他环节由于需要人为干预的东西比较少,例如综合、布局布线等流程,基本所有的工作都由工具完成,设置好工具的参数之后,结果很快就可以出来,因此所花的时间精力要比验证少的多。

一般而言,在验证的几个内容中功能验证最受重视,研究讨论得最多,特别是现在FPGA/IC设计都朝向SOC(System On Chip,片上系统)的方向发展,设计的复杂都大大提高,如何保证这些复杂系统的功能是正确的成了至关重要的问题。

功能验证对所有功能进行充分的验证,尽早地暴露问题,保证所有功能完全正确,满足设计的需要。

任何潜在的问题都会给后续工作作带来难以极大的困难,而且由于问题发现得越迟,付出的代价也越大,这个代价是几何级数增长的。

这里将以功能验证为主说明验证方法、工具、验证环境的建立。

做功能验证时,需要建立验证环境,以便对设计(DUT/DUV,Design Under Test/ Verification)施加特定的输入,然后对DUT的输出进行检查,确实其是否正确。

在实际验证工作中,一般采用由TESTBENCH 和DUT(design under test)组成的Verification体系,如图1所示。

这是验证系统普遍适用的模型,Testbench为DUT提供输入,然后监视输出,从而判断DUT工作是否正确。

注意到这是一个封闭的系统,没有输入也没有输出。

验证工作的难度在于确定应该输入何种激励,相应的正确的输出应该是怎样的。

下一篇我们看个具体的例子。

补充sta:STA的意思是静态时序分析(Static Timing Analysis),做FPGA设计时是必须的一个步骤,事实上大家一般都已经做了这一步,我们在FPGA加约束、综合、布局布线后,会生成时序分析报告(在ISE中可以运行Timing Analyzer生成详细的时序报告), 设计人员会检查时序报告、根据工具的提示找出不满足setup/hold time的路径,以及不符合约束的路径,这个过程就是STA。

细致全面的STA可以保证设计的时序符合要求,只要代码robust(综合结果符合设计原意),可以省略后仿真。

功能仿真加STA(静态时序分析)并不能涵盖后仿真的作用,因为后仿真事实上有检验综合结果是否正确的作用,而功能仿真正确并不能保证综合结果和RTL设计人员的原意一样,综合器能正确综合的前提是RTL 代码编写具有良好的代码风格,例如if-else语句完整、case语句完整、组合逻辑敏感列表完整,只有在这样的条件下,综合结果才有保障,否则即使功能仿真正确,综合出来的电路的功能不一定正确。

对于综合过程出现的偏差,后仿真可以发现,因为后仿真实质上门级仿真,可以同时检验功能和时序是否正确,后仿真验证能保证实现结果是正确的。

后仿真的不足之处在于仿真速度比较慢,因此如果不想做后仿真,对FPGA设计来说,可以做功能仿真、综合后仿真和STA,对IC设计可以做功能仿真、形式验证和STA。

另外需要注意的是,加时序约束要完整,因为STA根据时序约束做检查,如果约束不正确,STA结果就不准确.经常会出现功能验证正确而后仿真结果不正确的问题,一般是由setup time/hold time不满足等时序问题引起的,说明在综合与布局布线过程中没有进行约束或者约束条件不完全,导致STA分析结果不准确、不完全。

例如设计存在两个时钟域,一个快、一个慢,附加约束时一般要最设计整体附加较松的约束,再对局部附加较紧的约束,然后再对慢时钟和快时钟之间的路径进行约束,这一般也是较紧的约束,如果忘了最后一部分约束,那么STA会认为设计人员对这部分路径没有要求,因而不分析这部分路径,这样即使这部分路径的延迟非常大,STA也不会提示错误,但是后仿真就会出现问题。

总而言之,对FPGA设计来说,只有正确地完成综合后仿真(以保证综合结果正确)和STA,才能省略后仿真,否则后仿真仍然是必要的.读写task等内容,初始化部分主要完成复位信号、CLK信号等的初始化工作,读写task把读写、delay等操作模块化,方便使用。

这里主要介绍一下验证initial块,也可以说是验证的主程序,如下所示。

initial begindelay; //保证验证环境正确复位writeburst128; //写入512个数,Full信号应该在写入511个数后变高writeburst128;writeburst128;writeburst128;read_enable = 1; //读出一个数,Full信号应该变低writeburst128; //同时读写,检查FIFO操作是否正确read_enable = 0; //读操作结束endwriteburst; //写操作结束delay;readburst128; //连续读512次,Empty信号应在读出511个数后变高readburst128;readburst128;readburst128;endreadburst;end这段程序首先延迟5个时钟周期,等初始化完成之后再开始验证工作。

验证时,首先写入512个数,使用波形观察器可以检查写入的过程是否正确,以及Full信号在写入511个数后是否变高;然后read_enable = 1,读出一个数,Full信号应该变低,这样写操作和Full信号的验证就基本完成了;程序接着也启动了写操作,由于此时read_enable仍然为高,即读写同时进行,这是对实际情况的模拟,可以对FIFO的功能进行更严格的验证;最后,连续读FIFO 512次,用波形观察器检查读操作是否正确,Empty信号是否在读出511个数后变高,如果这些操作都是正确的,那么FIFO的功能就基本正确了。

需要注意的一点是,以上的程序是不可综合的,因为不是RTL级描述,而是行为级描述(Behavioral Description)。

行为级描述的特点是直接描述对象的功能,具有比较高的抽象层次,开发、运行速度都比RTL代码要会,因此testbench都是用行为级描述写的。

关于行为级描述的特点、写法以后将有专门的章节论述。

这个testbench的特点是,输入激励由testbench产生,输出响应的检查人工完成,这样的testbench编写相对容易,可以加快开发速度,作为开发人员自己验证是非常好的选择。

有些testbench能完成输入激励和输出检查,不用观察波形也能完成验证工作,这样的testbench具有更高的自动化程度,使用方便,可重复性好,当设计比较复杂而且团队中有专门的验证工程师时,一般会有验证工程师建立一套这样的testbench,用于验证开发工程师的RTL级代码,如果发现问题,开发工程师修改后在testbench再运行一次所花的时间非常少,开发复杂项目时这样做可以比用波形观察器节省很多时间。

3.总结验证一般要通过写testbench实现,从《FPGA验证》第一篇我们知道,testbench要完成向DUT施加激励和检查DUT相应是否正确的功能,这就要求我们非常清楚待验证模块(DUT)的功能,这样才知道需要验证什么、如何施加激励和如何检查响应是否正确。

写testbench时, 首先要列出需要验证的功能,让后再编写testbench,这样可以做到有的放矢,避免遗漏。

思考:1.Testbench中有“write_enable = #2 1”一行代码,为什么要2ns的延迟?第三篇 验证工具介绍我们做FPGA/IC开发会用到很多工具,包括代码输入、仿真、综合、布局布线、时序分析等各种各样工具,熟悉这些工具是成功完成设计的关键,因为我们的设计思想需要通过这些工具来实现,只有清楚的知道工具的用法、如何设置参数、如果检查工具的输出结果,才能使设计者的想法变为显示,对验证来说也是如此。

相关文档
最新文档