原创 附于相同的验证测试向量

2010-12-21 13:56 1159 3 3 分类: 模拟
如图2所示,<综上所述。主桥和SDRA M控制器被映射进FPGA 1PCI桥被映射时FPGA 2由脚本产生的顶层Verilog文件包孕如图2所示的所有元件。至此就可以在验证环境中方便地使用这个顶层Verilog文件,并附于相同的验证测试向量。要注意的还需要为各个Verilog模块建立wrapper以匹配元件的引脚。对于SDRA M和PCI槽道来说,可以使用与RTL验证环境中使用的相同模型(即SDRA M模型和PCI主/从模型)参考图3将FPGA 1作为案例进行说明。由于只对环境作了少量修改,如在编译列表中增加很少的Verilog文件(wrapper模型)用新创建的文件替换顶层文件,因此可以对原理图列表实施验证。这些事情可以通过简单的perl或shell脚本实现自动处置惩罚,整个任务将减少到仅指定一些特殊选项,同时从命令行运行仿真。如果有任何错误的连接,或某些连接被遗忘,那么仿真结果就会有相应的提示。这种方法可以实现对与模拟元件的连接的部门测试,因为这部分元件有的从网表中删除了有的被等效行为模型所代替。然而,有些过错还是可以被检出的硅片生成板网表的仿真上述方法同样可以用来仿真设计用于测试最终硅片的电路板的网表。这种方法更适用于对这些板的验证,因为正常情况下制造出来的许多板其芯片的并行测试都是可以完成的此外,通过某种途径配置FPGA 引脚可以消除基于FPGA 板上的过错。下面继续以上文的例子说明如何将同一概念应用到硅片生成板上。如图1所示,硅片等效于DUT根据相同的流程建立一个Verilog网表,这个网表将DUT看作是板上的一个芯片和其它外围设备。这是验证环境中必须使用的顶层文件。现在已经有了DUT完整Verilog描述,因此只需要创建图4所示的Verilogwrapper让引脚输出与电路板上的芯片相匹配。综上所述,这个网表是可以利用以前使用的同一测试向量进行操作的但这些平台的价格非常高,次流片胜利取决于整个系统硬件和相关软件的验证有些公司提供的快速原型生成平台具有许多调试功能。因此最流行的做法是根据DUT和具体应用设计复合FPGA 板,验证这些板的原理图通常是很麻烦的本文提出一种利用FPGA 实现原型板原理图验证的新方法。图1DUT由x86处置惩罚器、主桥(HostBridg SDRA M控制器和PCI桥组成。由于价格竞争越来越激烈,<上述概念经过拓展就可以验证硅片生成板的原理图。首次流片胜利或只需少量的修改变得越来越重要。为了达到这一目标,对整个系统(即硬件和相关软件)验证成为重中之重。业界也涌现了许多战略来帮手设计师完成RTL上的软件运行。这些战略提供了最终硬件还在酝酿之时就开发软件的一种途径。这种措施也许还不够,原因还有两个:一是仿真系统可能与实际系统有较大的区别,二是系统运行速度非常慢。因此可以考虑先将完整的设计映射到FPGA 中,再运行目标应用法式。这样做可能达不到最终硅片的惯例指标,但可以测试整个硬件的功能,系统能够得到全面的验证,其中一些测试案例可能是仿真中根本无法完成的另外,可用于演示的完整系统原型在硅片胜利之前就可以很好地引起客户的兴趣。有些公司提供的快速原型生成平台具有许多调试功能。这些电路板平台具有可编程的互连,可以将FPGA 插接在上面,并将DUT被测设计映射进这些FPGA 中。但这些平台的价格非常高。因此最流行的做法还是根据DUT和具体应用设计复合FPGA 板。当然,这些板同样也能用于测试目标应用中的最终硅片。验证这些板的原理图通常是很麻烦的因为原理图中一些小过错会严重影响到设计进度。原理图验证工作是人工完成的因此过错也就在所难免。如果能够复用DUT验证环境验证电路板原理图,那么原理图验证就可以派上用场了本文将讨论如何通过编写少量脚本和修改DUT验证环境达到这一目的方法简介基本想法是设法对原理图进行仿真。这了做到这一点,先将原理图网表转换成Verilog网表。电路板上安装的不同元件(如FPGA 处置惩罚器、PCI卡、SDRA M等)要么用RTL代替,要么用RTL验证过程中使用的行为模型替代。值得注意的已假设整个设计的Verilog/VHDL代码是现成的至于电路板上需要用于测试DUT处置惩罚器、SDRA MPCI器件等其它元件,也假设已经存在相应的BFM总线功能模型)/模型。由于这一阶段是功能验证之后,而这些元件需要用来测试DUT并模拟整个系统,因此它等效行为模型应该在功能验证中已经得到使用,现在只是重复使用罢了即经过少许的努力就能使用相同的环境和测试案例。上述概念经过拓展就可以验证硅片生成板的原理图,基本的假设是设计团队拥有硅片的HDL描述。这才是要点所在对于FPGA 板,可以通过某种变通的方法配置FPGA 引脚来克服由于原理图中的过错连接导致的问题,即设计师可以管理并解决这些过错。但对于准备用来测试最终硅片的板子来说几乎是不可能的生成Verilog网表图2包孕x86处置惩罚器芯片、2个FPGA SDRA M和1个PCI槽道的原型板。可以用好几种原理图输入工具生成Verilog网表。基于以下几种限制原因,<任何验证环境的基本原理都是一样的即为DUT提供某种形式的测试向量。这种网表实际上是不能使用的 1.它将板上的每个元件都看作是一个模块,因此生成的Verilog文件中包孕所有元件的实例,如FPGA 电容、上拉电阻或晶振,而无论这些元件能否在Verilog中建模。其中有些元件(如串接电阻、去耦电容)可以简单地从网表中删除。 2.原理图中的总线通常被连接到符号上的一个个引脚,而在Verilog模块中总线可能只有一个端口。因此可能没有一对一的对应关系。例如在Verilog模块中一个四位输出地址总线将被声明为:output[3:0]Address;但原理图中所有这四个引脚是被独立声明的这样会导致原理图中使用的符号的引脚输出与Verilog模块中相应符号的可用功能不兼容。因此,设计师需要编写一个简单的脚本,要么修改这个Verilog网表,要么根据原理图输入工具支持的其它格式建立一个新的网表。目的删除电阻、电容、电感等模拟元件,或用等效的Verilog代码替换它为了更好地实现这一目的可以利用对模拟元件的命名惯例,或将它定义在一个文件中作为脚本的输入。例如,电阻可以被命名为R1R23等,不遵循这个命名惯例的元件可以被定义在约束文件中,这样脚本就可以将它关联到等效模型,或假定短路将它从网表中去除。一般来说,针对电路板上的不同元件可以采用以下一些惯例: 1. 元件的大多数电源引脚可以被忽略。 2. 通常电容都是用作去耦的可以被简单的忽略掉,因为这样做并不会影响即将被仿真的其它数字元件之间的互连关系。 3. 电感也可以忽略,仿真时用短路代替。 4. 电阻可以用Verilog上拉/下拉或简单的线按需要替换。 5. 晶振可以用Verilog库中提供的时钟模块替换。可以在约束文件中定义某些特殊情况,并作为脚本的输入。可以为Verilog模块编写Wrapper以克服总线声明问题。这种顶层Verilog网表可以代替DUT功能验证中早已使用的顶层Verilog文件,并用于验证环境中。 FPGA 原型板网表的仿真至此顶层Verilog文件中包含了原型板上除工具删除的元件外的所有元件。设计师可以复用DUT功能验证使用的已有仿真环境。这种方法的优点在于,可以复用相同的测试向量和验证环境验证原理图。任何验证环境的基本原理都是一样的即为DUT提供某种形式的测试向量,然后对测试结果与期望值进行比力。根据设计的复杂性有多种达成的方式。通过下面这个非常简单的例子就很好理解了例子是一个基于x86处置惩罚器的SOC为了简单起见,只考虑图1所示SOC中的少量重要元件。DUT由x86处置惩罚器、主桥(HostBridgSDRA M控制器和PCI桥组成。验证环境中,为了提高仿真速度,可以把x86处置惩罚器看作是一个BFM同时提供某种PCI从模型。简单地说,x86BFM具有某种形式的读/写命令,能发生总线周期,因此设计可以运行起来。图3Verilog模块建立wrapper 以匹配元件的引脚。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条