正在加载图片...
中M 第章 Verilog语言要素 17 timescale lns/ 100ps module AndFunc (2, A, B)i and#(5.22,6.17)A1(z,A,B); //规定了上升及下降时延值。 endmodule 编译器指令定义时延以ns为单位,并且时延精度为1/10ns(100ps)。因此,时延值52对应 52ns,时延6.17对应62ns。如果用如下的' timescale程序指令代替上例中的编译器指令 timescale 10ns/lns 那么522对应52ns,6.17对应62ns 在编译过程中,' timescale指令影响这一编译器指令后面所有模块中的时延值,直至遇到 另一个' timescale指令或' reseta指令。当一个设计中的多个模块带有自身的' timescale编译指 令时将发生什么?在这种情况下,模拟器总是定位在所有模块的最小时延精度上,并且所有 时延都相应地换算为最小时延精度。例如, timescale lns/ 100ps module AndFunc (Z, A, B)i output z input A, B and#(5.22,6.17)A1(2,A,B) endmodule timescale 10ns/ lns module T reg PutA, PutE wire Geto: begin PutB =0 #5.21 PutB #10.4PutA=1 #15 PutB=0 AndFunc AFI(Geto, PutA, PutB endmodule 这个例子中,每个模块都有自身的' timescale编译器指令。' timescale编译器指令第一次 应用于时延。因此,在第一个模块中,5.22对应5.2ns,6.17对应62ns;在第二个模块中521对 应52ns,10.4对应104ns,15对应150ns。如果仿真模块TB,设计中的所有模块最小时间精度为 I00ps。因此,所有延迟(特别是模块TB中的延迟)将换算成精度为100ps。延迟52ns现在 对应520*100ps,104对应1040*100ps,150对应1500*100ps。更重要的是,仿真使用100ps 为时间精度。如果仿真模块 AndFunc,由于模块TB不是模块 AddFunc的子模块,模块TB中的 timescale程序指令将不再有效。` t i m e s c a l e 1ns/ 100ps m o d u l e A n d F u n c (Z, A, B) ; o u t p u t Z; i n p u t A, B; a n d # (5.22, 6.17 ) A l (Z, A, B); / /规定了上升及下降时延值。 e n d m o d u l e 编译器指令定义时延以 n s为单位,并且时延精度为 1/10 ns(100 ps)。因此,时延值5 . 2 2对应 5.2 ns, 时延6 . 1 7对应6.2 ns。如果用如下的` t i m e s c a l e程序指令代替上例中的编译器指令 , ` t i m e s c a l e 1 0 n s / 1 n s 那么5 . 2 2对应52ns, 6.17对应6 2 n s。 在编译过程中,` t i m e s c a l e指令影响这一编译器指令后面所有模块中的时延值,直至遇到 另一个` t i m e s c a l e指令或` r e s e t a l l指令。当一个设计中的多个模块带有自身的 ` t i m e s c a l e编译指 令时将发生什么?在这种情况下,模拟器总是定位在所有模块的最小时延精度上,并且所有 时延都相应地换算为最小时延精度。例如, ` t i m e s c a l e 1ns/ 100ps m o d u l e A n d F u n c (Z, A, B) ; o u t p u t Z; i n p u t A, B; a n d # (5.22, 6.17 ) A l (Z, A, B) ; e n d m o d u l e ` t i m e s c a l e 10ns/ 1ns m o d u l e T B; r e g PutA, PutB; w i r e G e t O; i n i t i a l b e g i n P u tA = 0; P u t B = 0; #5.21 P u t B = 1; #10.4 P u t A = 1; #15 P u t B = 0; e n d A n d F u n c A F 1(GetO, PutA, PutB) ; e n d m o d u l e 在这个例子中,每个模块都有自身的 ` t i m e s c a l e编译器指令。` t i m e s c a l e编译器指令第一次 应用于时延。因此,在第一个模块中, 5 . 2 2对应5.2 ns, 6.17对应6.2 ns; 在第二个模块中5 . 2 1对 应52 ns, 10.4对应104 ns, 15对应150 ns。如果仿真模块T B,设计中的所有模块最小时间精度为 100 ps。因此,所有延迟(特别是模块 T B中的延迟)将换算成精度为 100 ps。延迟52 ns现在 对应5 2 0*100 ps,1 0 4对应1 0 4 0*100 ps,1 5 0对应1 5 0 0*100 ps。更重要的是,仿真使用 100 ps 为时间精度。如果仿真模块 A n d F u n c,由于模块T B不是模块A d d F u n c的子模块,模块 T B中的 ` t i m e s c a l e程序指令将不再有效。 第3章 Verilog 语言要素 17 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有