正在加载图片...
第1取验证127 载 parameter BITS =1l, WORDS= 2; reg [1: BITS] Vmem [1: WORDS]; reg [0: 2]A, B, Sum Ex; reg cin, Cout Ex integer J wire [0: 2] Sum wire cout: /被测试验证的模块实例 Adder3Bit FI(A, B, Cin, Sum, Cout in⊥tia1 begin Sreadmemb ("test. vec",Vmem =1: J<= WORDS; J=J+ 1) begin (A, B, Cin, Sum Ex, Cout Ex Vmem [J]i 5;//延迟5个时间单位等待电路稳定 if((Sum ! = Sum Ex)I 1( Cout = Cout Ex)) Display ("****Mismatch on v Display ("No mismatch on vector b"Wmem [J]) end 测试模块中首先定义存储器Vmem,字长对应于每个向量的位数,存储器字数对应于文件 中的向量数。系统任务$ readmemb从文件“ test vec”中将向量读入存储器Imem中。for循环 通过存储器中的每个字,即每个向量,将这些向量应用于待测试的模块,等待模块稳定并探 测模块输出。条件语句用于比较期望输出值和监测到的输出值。如果发生不匹配的情况,则 输出不匹配消息。下面是以上测试验证模块模拟执行时产生的输出。因为模型中不存在错误 因此没有报告不匹配情形 No mismatch on vector 01001001000 No mismatch on vector 01001111100 115向文本文件中写入向量 在上节的模拟验证模块实例中,我们看到值如何被打印输出。设计中的信号值也能通过 如$ display、 Sfmonitor和 Sfstrobe等具有写文件功能的系统任务输出到文件中。下面是与前 节中相同的测试验证模块实例,本例中的验证模块将所有输λ向量和观察到的输岀结果输岀 module F Test Bench parameter BITS =11, WORDS= 2 reg [1: BITS] Vmem [1: wORDS]i reg [0: 2]A, B, Sum Ex reg Cin, Cout Exp a r a m e t e r B I T S = 11, WORDS= 2 ; reg [1:BITS] V m e m [ 1 :W O R D S] ; r e g[ 0 : 2 ]A , B , S u m _ E x; r e g Cin, Cout_Ex; i n t e g e r J; w i r e [0:2] S u m; w i r e C o u t; / /被测试验证的模块实例。 A d d e r 3 B i t F1 (A, B, Cin, Sum, Cout) ; i n i t i a l b e g i n $readmemb ("test.vec", Vmem) ; f o r (J = 1; J <= W O R D S; J = J + 1) b e g i n {A, B, Cin, Sum_Ex, Cout_Ex} = V m e m [J] ; #5; //延迟5个时间单位等待电路稳定。 i f ( (S u m ! = = S u m _ E x) | | (Cout ! = = C o u t _ E x) ) $d i s p l a y ("****Mismatch on vector %b *****", Vmem [J] ) ; e l s e $d i s p l a y ("No mismatch on vector %b", Vmem [J] ) ; e n d e n d e n d m o d u l e 测试模块中首先定义存储器 V m e m,字长对应于每个向量的位数,存储器字数对应于文件 中的向量数。系统任务 $re a d m e m b从文件“t e s t . v e c”中将向量读入存储器 V m e m中。f o r循环 通过存储器中的每个字,即每个向量,将这些向量应用于待测试的模块,等待模块稳定并探 测模块输出。条件语句用于比较期望输出值和监测到的输出值。如果发生不匹配的情况,则 输出不匹配消息。下面是以上测试验证模块模拟执行时产生的输出。因为模型中不存在错误, 因此没有报告不匹配情形。 No mismatch on vector 01001001000 No mismatch on vector 01001111100 11.5 向文本文件中写入向量 在上节的模拟验证模块实例中,我们看到值如何被打印输出。设计中的信号值也能通过 如$f d i s p l a y、$ f m o n i t o r和$ f s t r o b e等具有写文件功能的系统任务输出到文件中。下面是与前一 节中相同的测试验证模块实例,本例中的验证模块将所有输入向量和观察到的输出结果输出 到文件“m o n . O u t”中。 m o d u l e F _ T e s t _ B e n c h; p a r a m e t e r BITS = 11, WORDS= 2 ; r e g [ 1 :B I T S] Vmem [ 1 :W O R D S] ; r e g [0:2] A, B, Sum_Ex; r e g C i n , C o u t _ E x 第11章 验 证 127 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有