选用System Verilog言语规划了一种具有层次化结构的可重用验证渠道,该渠道可以发生各种随机、定向、过错测验向量,并供给功用掩盖率核算。将验证渠道在Synopsys公司的VCS仿真东西上运转,并应用到包交流芯片的仿真验证中。仿真成果显现,新规划的验证渠道能经过修正随机信号约束条件和发生随机信号的权重值,使芯片的功用掩盖率到达100%。跟着集成电路制作工艺技能水平不断进步,芯片规划规划越来越大,验证所花费的时刻占有了整个产品规划周期的70%,并且跟着规划复杂度的进步呈指数性添加[1]。芯片一次流片的成功率从很大程度上取决于功用验证是否充沛[2]。因而,验证已经成为限制芯片开发的瓶颈问题。
传统的验证渠道首要依靠验证人员调查波形的办法进行验证,验证功率低,不能满意当今验证规划的需求。VMM验证办法学[3]的呈现极大程度上进步了验证的功率,从而呈现了一批学习VMM验证办法学的验证渠道[4-7],如参考文献[4]所规划的验证渠道就选用了VMM验证技能。可是其规划的验证渠道只发生了随机鼓励,验证时仅运用随机鼓励很难测验到电路的鸿沟状况,并且验证进程收敛性差。
为了快速定位规划中的问题及鸿沟状况,一起进步验证功率,本文拟选用System Verilog言语,依据VMM验证办法学中的分层规划思维,树立一个可重用的验证渠道,以求一起供给定向测验、受约束的随机测验和过错鼓励测验。
1 渠道结构
验证渠道可分为4层,即测验层、树立层、业务层和物理层,如图1所示。
(1)物理层:包括被测规划模块(DUT)调集和电路模型。
电路模型用来与被测代码进行比较,以完成自查验的验证。选用Verilog言语或许System Verilog言语仿照与规划代码等价的功用。
(2)业务层:包括鼓励发生器、监督器、和掩盖率计算器等。
鼓励发生器的首要功用是驱动DUT和电路模型的接口信号。本渠道的鼓励发生器可以发生定向测验向量、过错测验向量和受约束的随机向量。
监督器的首要功用是监督DUT和电路模型输出的信号,并对两者进行比较。当DUT的输出信号和电路模型的输出信号不一致时,仿真或许被逼迫完毕,一起打印出其时犯错的时刻和犯错的信号称号及内容。
掩盖率计算器的首要功用是依据鼓励发生器发生的测验向量、DUT输出信号以及掩盖点的要求计算出电路功用的掩盖概率。掩盖点是一种有用的验证机制[8],它的编写依据具体的测验目标而定,可以对单个信号进行功用掩盖率计算,也可以计算多个信号的穿插掩盖率。
以上介绍了业务的类型,依据不同的测验需求可以创立各种渠道所需的业务,如随机业务、各种回调函数业务等。
(3)树立层:包括验证结构的树立和电路初始装备。
验证结构树立的首要功用是运用业务层的各种业务构建出整个渠道的结构。包括渠道环境的装备及参数的设定;鼓励发生器和监督器的句柄界说和目标声明;与掩盖率相关的回调函数类的句柄界说和目标声明;鼓励发生器和监督器与回调函数的通讯树立。本渠道还研发了面向通讯交流设备的装备软件和专用的图形界面。
(4)测验层:包括装备文件和测验用例。
在渠道树立好之后,测验层的首要功用是供给定向测验的测验实例和与DUT相关的一些装备信息。例如对高性能路由器转发单元进行验证时,需求经过微机接口对转发单元进行装备,不同的装备参数DUT将会供给不同的功用。本文规划开发了面向定向测验的数据块/包的软件辅助东西。测验人员可以运用辅助东西来发生所需求的数据。
2 通讯交流设备验证渠道
2.1 交流功用介绍
本文假定所测验的交流设备具有N个输入/输出端口,这儿N通常是2的整数次幂,考虑到内部复用,这N个端口可以映射到k组总线,每m=N/k个端口分时复用一组总线,k 2.2 验证渠道
验证渠道需求依照数据包/块格局的要求供给各种不同类型、包长、优先级、源端口和意图端口,以及包括其他参数和装备的网络数据包,一起可以依据各个端口输出的数据包个数核算出该端口的速率,以此来发生链路的忙/闲状况,仿照装备规则的速率和其他要求。
依据层次化结构,并结合交流设备的功用,对验证渠道进行了具体的规划。
(1)物理层:DUT选用Verilog言语编写,电路模型选用System Verilog编写,编写进程不是规划的要点,所以这儿不再进行叙说。
(2)业务层:依据功用描绘可知,假如要从端口处进行验证,本验证渠道需求N个鼓励发生器,用于发生来自N个输入端口的数据包/块,还需求N个监督器来调查N个输出端口的数据包/块。假如要从总线处进行验证,则需求k个鼓励发生器和k个监督器用于监督来自电路模型和DUT的k组总线上的输出数据。这儿,每个鼓励发生器需求仿照m=N/k个端口及其速率,每个监督器需求记载m个端口的输出。一起还需求一个掩盖率计算器用于计算鼓励发生器发生的一切状况下的数据包。
①鼓励发生器:将鼓励发生器界说为一个类,该类的特点包括了虚接口的界说、待发送包的行列界说、鼓励发生器编号和回调函数行列界说等,此外还包括了运转办法、定向测验、随机测验、端口速率装备办法、定向包入队办法、定向包驱动办法、随机包发生办法、随机包入队办法、随即包驱动办法和丢掉概率核算办法等。
其间定向测验的测验流程如图2所示。