第6章仿真与验证_第1页
第6章仿真与验证_第2页
第6章仿真与验证_第3页
第6章仿真与验证_第4页
第6章仿真与验证_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6章章 Verilog仿真与验证仿真与验证6.1 系统任务与系统函数系统任务与系统函数6.2 系统预定义指令系统预定义指令6.3用户自定义元件(用户自定义元件(UDP)6.4测试平台测试平台 6.5 ModelSim仿真实例仿真实例 6.6数字电路的仿真数字电路的仿真第第6 6章章 VerilogVerilog仿真与验证仿真与验证6.1 系统任务与系统函数系统任务与系统函数 系统任务和系统函数一般以符号系统任务和系统函数一般以符号“$”开头。系统任务可开头。系统任务可以返回以返回0个或多个值,而系统函数除只能返回一个值外,与个或多个值,而系统函数除只能返回一个值外,与任务类似。例如:任务类

2、似。例如:$monitor,$readmemh等。等。 使用不同的使用不同的Verilog仿真工具(如:仿真工具(如:VCS、Verilog-XL、ModelSim等)进行仿真时,这些系统任务和系统函数在使等)进行仿真时,这些系统任务和系统函数在使用方法上可能存在差异,应根据使用手册来使用。用方法上可能存在差异,应根据使用手册来使用。 一般在一般在intial或或always过程块中,调用系统任务和系统过程块中,调用系统任务和系统函数。函数。 用户可以通过编程语言接口(用户可以通过编程语言接口(PLI)将自己定义的系统)将自己定义的系统任务和系统函数加到语言中,以进行仿真和调试。任务和系统函数

3、加到语言中,以进行仿真和调试。系统任务和系统函数只能用于仿真,在系统综合过程中被忽略。系统任务和系统函数只能用于仿真,在系统综合过程中被忽略。系统任务与函数分类系统任务与函数分类o 显示任务显示任务o 文件输入与输出任务文件输入与输出任务o 仿真控制任务仿真控制任务o 时间标度任务时间标度任务o PLA建模任务建模任务o 随机建模任务随机建模任务o 变换函数变换函数o 概率分布函数概率分布函数o 字符格式化字符格式化o 命令行参变量命令行参变量$display和和$write是两个是两个显示与写系统任务显示与写系统任务,两者的功能相同,都用于显示模拟结果,其区别两者的功能相同,都用于显示模拟结

4、果,其区别是是$display在输出结束后能自动换行,而在输出结束后能自动换行,而$write不能。不能。$display和和$write的使用格式为:的使用格式为:$display(“格式控制符格式控制符”,输出变量名列表);,输出变量名列表);$write(“格式控制符格式控制符”,输出变量名列表);,输出变量名列表);1系统任务系统任务、$display与与$write格式控制格式控制符符说明说明%h或或%H以以16进制形式显示进制形式显示%d或或%D以以10进制形式显示进制形式显示%o或或%O以以8进制形式显示进制形式显示%b或或%B以以2进制形式显示进制形式显示%c或或%C以以ASC

5、II字符形式显示字符形式显示%v或或%V显示显示net型数据的驱动强型数据的驱动强度度%m或或%M显示层次名显示层次名%s或或%S以字符串形式输出以字符串形式输出%t或或%T以当前的时间格式显示以当前的时间格式显示转义字符转义字符说明说明 n换行换行 tTAB键键符号符号“符号符号“ ddd 八进制数八进制数ddd对应的对应的ASCII字符字符%符号符号%格式控制符格式控制符转义字符转义字符$displayb $displayh $displayo $writeb $writeh $writeo未指定输出数据格式,可采用如下未指定输出数据格式,可采用如下默认任务显示形式默认任务显示形式:仿真调

6、试程序module dis_1();integer wait_timer;initial begin wait_timer=1; $display(after first assignment, wait_temer has value %d,wait_timer); wait_timer=2; $display(after first assignment, wait_temer has value %d,wait_timer); endendmodule Modelsim仿真下的输出:仿真下的输出:$monitor、$strobe与与$display、$write一样一样也是属于输出控制类

7、的也是属于输出控制类的显示系统任务显示系统任务,$monitor与与$strobe都提供都提供在指定时刻在指定时刻监控和监控和输出参数列表中字符或变量的值的功能输出参数列表中字符或变量的值的功能;而;而$display、$write任务在执行到该语句时执行。任务在执行到该语句时执行。其使用格式为:其使用格式为:$monitor(“格式控制符格式控制符”,输出变量名列表,输出变量名列表);$strobe(“格式控制符格式控制符”,输出变量名列表,输出变量名列表);这里的格式控制符、输出变量名列表与这里的格式控制符、输出变量名列表与$display和和$write中定义的完全相同。中定义的完全相同

8、。、$monitor与与$strobe系统任务系统任务$finish与与$stop用于对仿真过程进行控制,分用于对仿真过程进行控制,分别表示别表示结束仿真和中断仿真结束仿真和中断仿真。$finish与与$stop 的使用格式如下:的使用格式如下:$stop;$stop(n);$finish;$finish(n);n是是$finish和和$stop的参数,的参数,n 可以是可以是0、1、2等值,分等值,分别表示如下含义。别表示如下含义。0:不输出任何信息;:不输出任何信息;1:给出仿真时间和位置;:给出仿真时间和位置;2:给出仿真时间和位置,还有其他一些运行统计数据。:给出仿真时间和位置,还有其

9、他一些运行统计数据。$finish与与$stopmodule full_adder(cout,si,ai,bi,cin);output si,cout;input ai,bi,cin;assign cout,si=ai+bi+cin;endmodule timescale 1ns/1psmodule full_adder_tb; reg2:0in; wire sum, cout; integer i,j; full_adder FA(.cout(cout),.si(sum),.ai(in2),.bi(in1),.cin(in0); always #10 in=in+1; initial beg

10、in /这三条语句同时执行,但initial只执行一次, in=0; / 但由于其内的语句受时间控制,直到#160时刻才结束$display( time ai bi cin cout sum); $monitor($time,%b+%b+%b=%b,%b,in2,in1,in0,cout,sum); #160 $finish;endendmodule采用层次电路设计的全加器仿真显示测试程序采用层次电路设计的全加器仿真显示测试程序测试加法执行过程,测试加法执行过程,并检测执行情况。并检测执行情况。ModelSim仿真结果仿真结果 time ai bi cin cout sum# 0 0 + 0

11、+ 0=0, 0# 10 0 + 0 + 1=0, 1# 20 0 + 1+ 0=0, 1# 30 0 + 1+ 1=1, 0# 40 1 + 0+ 0=0, 1# 50 1 + 0+ 1=1, 0# 60 1 + 1+ 0=1, 0# 70 1 + 1+ 1=1, 1# 80 0 + 0+ 0=0, 0# 90 0 + 0+ 1=0, 1#100 0 + 1+ 0=0, 1#110 0 + 1+ 1=1, 0#120 1 + 0+ 0=0, 1#130 1 + 0+ 1=1, 0#140 1 + 1+ 0=1, 0#150 1 + 1+ 1=1, 1监控输出任务$monitor是只要满足输出

12、数值发生变化就有输出显示。表中当在150ns160ns期间没有数值变化,所以没有显示160ns的输出结果。$readmemh与与$readmemb是属于文件是属于文件读写控制的系统读写控制的系统任务任务,其作用都是从外部文件中读取数据并放入存储器中。,其作用都是从外部文件中读取数据并放入存储器中。两者的区别在于读取数据的格式不同,两者的区别在于读取数据的格式不同,$readmemh为为读读取十六进制数据取十六进制数据,而,而$readmemb为为读取二进制数据读取二进制数据。$readmemh与与$readmemb的使用格式为:的使用格式为:$readmemh(数据文件名数据文件名,存储器名,

13、起始地址,结,存储器名,起始地址,结束地址);束地址);$readmemb(数据文件名数据文件名,存储器名,起始地址,结,存储器名,起始地址,结束地址);束地址);其中,起始地址和结束地址均可以缺省,如果缺省起始地其中,起始地址和结束地址均可以缺省,如果缺省起始地址,表示从存储器的首地址开始存储;如果缺省结束地址,址,表示从存储器的首地址开始存储;如果缺省结束地址,表示一直存储到存储器的结束地址。表示一直存储到存储器的结束地址。$readmemh与与$readmemb还有其它系统任务和函数用于读取文件中数据:$fread : 从文件中读取二进制数据到存储器中。从文件中读取二进制数据到存储器中。

14、$fgetc :从文件中每次读取一个字符。从文件中每次读取一个字符。$fgets :从文件中每次读取一行。从文件中每次读取一行。$ungetc :把一个字符插入文件中。把一个字符插入文件中。$frewind :重新回到文件的开始处。重新回到文件的开始处。$fseek :移动到偏移量指定的位置。移动到偏移量指定的位置。$ftell :返回以文件开始处为基址的偏移量。返回以文件开始处为基址的偏移量。$fscanf :从文件中读取格式化数据。从文件中读取格式化数据。$ferror :在执行完一个读取任务后,帮助判断在执行完一个读取任务后,帮助判断出错误的原因。出错误的原因。$time、$realti

15、me是属于显示仿真时间标度的系是属于显示仿真时间标度的系统函数。这两个函数被调用时,都返回当前时刻统函数。这两个函数被调用时,都返回当前时刻距离仿真开始时刻的时间量值,所不同的是,距离仿真开始时刻的时间量值,所不同的是,$time 函数以函数以64位位整数值整数值的形式返回模拟时间,的形式返回模拟时间,$realtime 函数则以实数型数据返回模拟时间。函数则以实数型数据返回模拟时间。 2、系统函数、系统函数如上加法器仿真调试程序。如上加法器仿真调试程序。、$time与与$realtime$random是产生随机数的系统函数,每次调用该函数将是产生随机数的系统函数,每次调用该函数将返回一个返回

16、一个32位的随机数,该随机数是一个带符号的整数。位的随机数,该随机数是一个带符号的整数。、$random、$fopen和和$fclose$fopen 和和$fclose用于打开和关闭一个文件系统函数,用于打开和关闭一个文件系统函数,完成后返回一个与文件相关的整数指针。完成后返回一个与文件相关的整数指针。6.2编译指令的使用编译指令:1、宏定义语句、宏定义语句define和宏取消语句和宏取消语句undef如在状态机中定义状态:如在状态机中定义状态:define S0 2b00; /定义状态编码定义状态编码define S1 2b01;一旦该指令被编译器通过,则尤其规定的宏定义在整个编译过程期间都

17、保一旦该指令被编译器通过,则尤其规定的宏定义在整个编译过程期间都保持有效。并可在多个文件中有效,直到遇到取消宏定义指令。持有效。并可在多个文件中有效,直到遇到取消宏定义指令。undef 宏名宏名 取消之前定义的宏定义。取消之前定义的宏定义。2、编译时包含其它文件指令include “././文件名文件名”其作用是将指定的文件一同与当前文件进行编译,指定文件可以其作用是将指定的文件一同与当前文件进行编译,指定文件可以是相对路径和绝对路径。是相对路径和绝对路径。3、仿真延时仿真延时模型模型的表示的表示 延时包括延时包括门延时、门延时、assign赋值延时和连线延时赋值延时和连线延时等。等。主要用于

18、仿真模拟实际电路中存在的延时过程,均不能综主要用于仿真模拟实际电路中存在的延时过程,均不能综合为具体电路,只在调试时使用。合为具体电路,只在调试时使用。u 门延时门延时是从门输入端发生变化到输出端发生变化的延是从门输入端发生变化到输出端发生变化的延迟时间;迟时间;u assign赋值延时赋值延时指等号右端某个值发生变化到等号左指等号右端某个值发生变化到等号左端发生相应变化的延迟时间;端发生相应变化的延迟时间;u 连线延时则体现了信号在连线上的连线延时则体现了信号在连线上的传输延时传输延时。u 如果没有定义时延值,缺省时延为如果没有定义时延值,缺省时延为0。u延时语句用于仿真测试中,它不能综合生

19、成硬件,主要延时语句用于仿真测试中,它不能综合生成硬件,主要用于仿真真实数字电路运行时的电路延时情况和人为设计用于仿真真实数字电路运行时的电路延时情况和人为设计的波形输出。的波形输出。、时间标尺预定义语句、时间标尺预定义语句timescale timescale语句用于定义模块中指令运行的时间单位和时间语句用于定义模块中指令运行的时间单位和时间精度,其使用格式如下:精度,其使用格式如下:timescale /timescale /其中用来表示时间度量的符号有:其中用来表示时间度量的符号有:s、ms、us、ns、ps和和fs,时间单位必须取整数,指令运行时间以时间单位为基准,多时间单位必须取整数

20、,指令运行时间以时间单位为基准,多少以时间精度进行取舍。少以时间精度进行取舍。例如:例如:timescale 1ns/100ps上面的语句表示时延单位为上面的语句表示时延单位为1ns,时延精度为,时延精度为100ps(即精确(即精确到到0.1ns)。)。timescale编译器指令在模块说明外部出现,编译器指令在模块说明外部出现,并且影响后面所有的时延值,直到遇到另一个并且影响后面所有的时延值,直到遇到另一个timescale指指令或令或resetall指令指令 。当一个文件含有多个模块,且每个模块。当一个文件含有多个模块,且每个模块都有各自都有各自timescale指令时,以精度最小的为基准

21、时间精度。指令时,以精度最小的为基准时间精度。、延时的表示与延时说明块、延时的表示与延时说明块 延时的表示方法有下面几种:延时的表示方法有下面几种:# delaytime# (d1,d2)# (d1,d2,d3)# delaytime表示延迟时间为表示延迟时间为delaytime,d1表示上升延表示上升延迟,迟,d2表示下降延迟,表示下降延迟,d3则表示转换到高阻态则表示转换到高阻态z的延迟,的延迟,这些延迟的具体时间由时间定义语句这些延迟的具体时间由时间定义语句timescale确定。确定。如:语句间延时:如:语句间延时:sum=(ab)cin #4 t1=a&cin 如:语句内延时:如:语

22、句内延时:sum=#3(ab)cin如果没有定义时延值,缺省时延为如果没有定义时延值,缺省时延为0。【例6.2】 激励波形的描述timescale 1ns/1nsmodule test1;reg a,b,c;initialbegin a=0;b=1;c=0; #100 c=1; #100 a=1;b=0; #100 a=0; #100 c=0;#100 $stop;endinitial $monitor($time,a=%d b=%d c=%d,a,b,c); /显示endmodule激励波形仿真激励波形仿真测试程序ModelSim仿真结果仿真结果 Verilog可对模块中某一指定的路径进行延

23、迟定义,可对模块中某一指定的路径进行延迟定义,这一路径连接模块的输入端口(或这一路径连接模块的输入端口(或inout端口)与输出端端口)与输出端口(或口(或inout端口),利用延迟定义块在一个独立的块结端口),利用延迟定义块在一个独立的块结构中定义模块的延时。在延迟定义块中要描述模块中的构中定义模块的延时。在延迟定义块中要描述模块中的不同路径并给这些路径赋值。不同路径并给这些路径赋值。 延迟定义块的内容应放在关键字延迟定义块的内容应放在关键字specify与与endspecify之间,且之间,且必须放在一个模块中必须放在一个模块中,还可以使用,还可以使用specparam关键字定义参数。关键

24、字定义参数。 、延时说明块(、延时说明块(specify块)块)6.3 用户自定义元件用户自定义元件(UDP) 利用利用UDP(User Defined Primitives)用户可以自己用户可以自己定义基本逻辑元件的功能,用户可以象调用基本门元件一样定义基本逻辑元件的功能,用户可以象调用基本门元件一样来调用这些自己定义的元件。来调用这些自己定义的元件。 UDP关键词为关键词为primitive和和endprimitive。与一般的模。与一般的模块相比,块相比,UDP模块具有下面一些特点:模块具有下面一些特点: UDP的的输出端口只能有一个输出端口只能有一个,且必须位于端口列表的,且必须位于端

25、口列表的第一项。只有输出端口能被定义为第一项。只有输出端口能被定义为reg类型。类型。 UDP的输入端口可有多个,一般时序电路的输入端口可有多个,一般时序电路UDP的输入的输入端口可多至端口可多至9个,组合电路个,组合电路UDP的输入端口可多至的输入端口可多至10个。个。 所有的所有的端口变量必须是端口变量必须是1位标量位标量。 在在table表项中,只能出现表项中,只能出现0、1、x三种状态三种状态,不能出,不能出现现z状态。状态。primitive 元件名(输出端口,输入端口元件名(输出端口,输入端口1,输入端口,输入端口2,)output 输出端口名;输出端口名;input 输入端口输入

26、端口1,输入端口,输入端口2,;reg输出端口名;输出端口名;initial begin 输出端口或内部寄存器赋初值(输出端口或内部寄存器赋初值(0,1或或x);); endtable /输入输入1 输入输入2 :输出:输出 真值列表真值列表endtableendprimitive定义定义UDP的语法的语法1、组合电路、组合电路UDP元件元件 primitive carry_udp(cout,cin,a,b);input cin,a,b; output cout;table/cin a b : cout /真值表真值表 0 0 0 : 0; 0 1 0 : 0; 0 0 1 : 0; 0 1

27、1 : 1; 1 0 0 : 0; 1 0 1 : 1; 1 1 0 : 1; 1 1 1 : 1;endtableendprimitivep 【例例6.3】 1位全加器位全加器进位进位输出输出UDP元件元件1、组合电路、组合电路UDP元件元件 primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表 0 0 0 : 0; 0 1 0 : 0; 0 0 1 : 0; 0 1 1 : 1; 1 0 0 : 0; 1 0 1 : 1; 1 1 0 : 1; 1 1 1 : 1;

28、0 0 x : 0; 0 x 0 : 0;x 0 0 : 0;1 1 x : 1; 1 x 1 : 1;x 1 1 : 1;endtableendprimitivep 【例例6.4】包含包含x态输入的态输入的1位全加器位全加器进位进位输出输出UDP元件元件primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表/只要有两个输入为只要有两个输入为0,则进位输出肯定为,则进位输出肯定为0 ? 0 0 : 0; 0 ? 0 : 0; 0 0 ? : 0;/只要有两个输入为只要有两

29、个输入为1,则进位输出肯定为,则进位输出肯定为1 ? 1 1 : 1; 1 ? 1 : 1; 1 1 ? : 1;endtableendprimitive【例例6.5】用简缩符用简缩符“?”表述的表述的1位全加器进位输出位全加器进位输出UDP元件元件1、组合电路、组合电路UDP元件元件 2、时序逻辑、时序逻辑UDP元件元件 primitive latch(Q,clk,reset,D);input clk,reset,D;output Q;reg Q;initial Q=1b1; /初始化初始化table/clk reset D:state:Q ? 1 ? : ? : 0; /reset高电平有

30、效复位高电平有效复位 0 0 0 : ? : 0; /clk低电平有效锁存低电平有效锁存 0 0 1 : ? : 1; 1 0 ? : ? : -; /“-”表示维持原状态表示维持原状态endtableendprimitivep【例例6.6】 电平敏感的电平敏感的1位数据锁存器位数据锁存器UDP元件元件primitive DFF(Q,D,clk);input D,clk; output Q;reg Q;table/clk D : state : Q (01) 0 : ? : 0; /上升沿到来,输出上升沿到来,输出Q=D (01) 1 : ? : 1; (0 x) 1 : 1 : 1; (0

31、x) 0 : 0 : 0; (?0) ? : ? : -; /没有上升沿到来,输出没有上升沿到来,输出Q保持原值保持原值 ? (?) : ? : -; /时钟不变,输出也不变时钟不变,输出也不变endtableendprimitive【例例6.7】 上升沿触发的上升沿触发的D触发器触发器UDP元件元件2、时序逻辑、时序逻辑UDP元件元件 缩记符缩记符含义含义说明说明x不定态不定态?0、1或或x只能表示输入只能表示输入b0或或1只能表示输入只能表示输入-保持不变保持不变只用于时序元件的输出只用于时序元件的输出(vy)代表代表(01), (10), (0 x), (1x), (x1), (x0),

32、 (?1)等等从逻辑从逻辑v到逻辑到逻辑y的转变的转变*同同(?)表示输入端有任何变化表示输入端有任何变化R或或r同同(01)表示上升沿表示上升沿F或或f同同(10)表示下降沿表示下降沿P或或p(01), (0 x)或或(x1)包含包含x态的上升沿跳变态的上升沿跳变N或或n(10),(1x)或或(x0)包含包含x态的下降沿跳变态的下降沿跳变UDP中的缩记符中的缩记符6.4、测试平台测试平台( ModelSim) 1、测试平台程序编写方法测试平台程序编写方法(Test Banch) 测试模块只有模块名字,没有端口列表;测试模块只有模块名字,没有端口列表;输入信号(激励信号)必须定义为输入信号(激

33、励信号)必须定义为reg型,以保持信号值;型,以保持信号值;输出信号(显示信号)必须定义为输出信号(显示信号)必须定义为wire型;型;在测试模块中调用被测试模块,在调用时,应注意端口在测试模块中调用被测试模块,在调用时,应注意端口排列的顺序与模块定义时一致;排列的顺序与模块定义时一致;一般用一般用initial、always过程块来定义激励信号波形;使过程块来定义激励信号波形;使用系统任务和系统函数来定义输出显示格式;用系统任务和系统函数来定义输出显示格式;在激励信号的定义中,可使用如下一些控制语句:在激励信号的定义中,可使用如下一些控制语句:if-else,for,forever,case

34、,while,begin-end,fork-join等,这些控制语句一般只用在等,这些控制语句一般只用在always、initial、function、task等过程块中。等过程块中。 【例6.8】 激励波形的描述timescale 1ns/1nsmodule test1;reg a,b,c;initialbegin a=0;b=1;c=0; #100 c=1; #100 a=1;b=0; #100 a=0; #100 c=0;#100 $stop;endinitial $monitor($time,a=%d b=%d c=%d,a,b,c); /显示endmodule仿真激励波形测试程序仿真

35、激励波形测试程序ModelSim仿真结果仿真结果例6.9 BCD编码器程序module BCD_enc(in,out); input9:0in; output3:0out; assign out=func_enc(in); /? function 3:0 func_enc; /? input9:0 in; case(in) 10b00_0000_0001:func_enc=0; 10b00_0000_0010:func_enc=1; 10b00_0000_0100:func_enc=2; 10b00_0000_1000:func_enc=3; 10b00_0001_0000:func_enc=

36、4; 10b00_0010_0000:func_enc=5; 10b00_0100_0000:func_enc=6; 10b00_1000_0000:func_enc=7; 10b01_0000_0000:func_enc=8; 10b10_0000_0000:func_enc=9;endcase endfunction endmodule例6.10 BCD编码器仿真测试程序timescale 1ns/1nsmodule BCD_enc_th; reg9:0in; wire3:0out; integer i,j; BCD_enc enc(.in(in),.out(out); initial b

37、egin j=10b00_0000_0001;/赋初值 for(i=0;i=9;i=i+1) begin in=j9:0; #200; /每200ns赋初值一次 j=j1; end $finish; endendmoduleModelSim BCD编码器仿真结果【例6.11】 always语句用于时钟波形的描述timescale 1ns/1nsreg clk;parameter CYCLE=100;/一个时钟周期100nsalways #(CYCLE/2) clk=clk; /always语句产生时钟波形intial clk=1;例如例如 仿真激励周期测试程序仿真激励周期测试程序 2、 Mod

38、elSim仿真实例仿真实例 加法器仿真的示意图加法器仿真的示意图 【例例6.12 全加器仿真测试程序全加器仿真测试程序】ModelSim仿真仿真o ModelSim工作界面 ModelSim仿真仿真新建工程项目新建工程项目 填加仿真文件填加仿真文件 1、新建工程、新建工程ModelSim仿真仿真o 2、新建仿真文件 ModelSim仿真仿真o 3、输入仿真文件代码并编译 ModelSim仿真仿真o 生成编译文件自动加载到生成编译文件自动加载到work工作库工作库o 对对work工作库中的测试程序进行命令仿真工作库中的测试程序进行命令仿真(simlate coverage) ,并从,并从obje

39、ct中加载端口到波形中加载端口到波形Wave中。中。ModelSim仿真仿真4、点击仿真命令(run all),运行仿真程序,输出波形显示和命令行窗口结果显示 。timescale 10ns/1nsmodule mult8_tp; /测试模块的名字测试模块的名字reg7:0 a,b; /测试输入信号定义为测试输入信号定义为reg型型wire15:0 out; /测试输出信号定义为测试输出信号定义为wire型型integer i,j;mult8 m1(out,a,b);/调用测试对象调用测试对象initial /激励波形设定激励波形设定begin a=0;b=0;for(i=1;i255;i=i+1) #10 a=i; endinitial beginfor(j=1;j255;j=j+1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论