VerilogHDL负责数字电路设计(AI助学版)课件_第1页
VerilogHDL负责数字电路设计(AI助学版)课件_第2页
VerilogHDL负责数字电路设计(AI助学版)课件_第3页
VerilogHDL负责数字电路设计(AI助学版)课件_第4页
VerilogHDL负责数字电路设计(AI助学版)课件_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

10.1任务任务使用关键字:taskendtask任务中声明语句的语法与模块定义中的对应声明语句的语法一样用input,output或inout对任务的端口进行声明;通过input和inout端口把数据传递到任务中,在任务中进行处理,当任务执行完成后,通过output和inout端口传回模块的端口用来和外部信号相连接,而任务的I/O(输入/输出)变量则用来向任务中传入或从任务中传出变量模块可以调用任务,任务可以调用其他任务10.1.1任务应用激励信号千差万别,针对不同应用对应有各种各样的任务深入学习任务,灵活掌握任务的使用方法,对于编写激励信号有很大的帮助moduleoperation;...parameterdelay=10;reg[15:0]A,B;reg[15:0]AB_AND,AB_OR,AB_XOR;always@(AorB)beginbitwise_oper(AB_AND,AB_OR,AB_XOR,A,B);end...taskbitwise_oper;output[15:0]ab_and,ab_or,ab_xor;input[15:0]a,b;begin#delayab_and=a&b;ab_or=a|b;ab_xor=a^b;endendtask...endmodule任务bitwise_oper,完成对两个16位数进行按位与(&)、按位或(|)和按位异或(^)操作任务的定义和调用是在模块内进行模块的变量定义与任务中变量的定义不同AB_AND对应于任务输出ab_and,AB_OR对应于ab_or,AB_XOR对应于ab_xor;而delay的值在模块中定义,在任务中直接使用使用ANSIC风格的变量声明进行任务定义//definetaskbitwise_opertaskbitwise_oper(output[15:0]ab_and,ab_or,ab_xor,input[15:0]a,b);begin#delayab_and=a&b;ab_or=a|b;ab_xor=a^b;endendtaskmodulesequence;regclock;initialinit_sequence;//启动init_sequence任务alwaysbeginasymmetric_sequence;//启动asymmetric_sequence任务endtaskinit_sequence;beginclock=1'b1;endendtasktaskasymmetric_sequence;begin#15clock=1'b0;#5clock=1'b1;#5clock=1'b0;#10clock=1'b1;endendtaskendmodule

非对称序列发生器画出波形非对称序列发生器modulesequence;regclock;initialinit_sequence;//启动init_sequence任务alwaysbeginasymmetric_sequence;//启动asymmetric_sequence任务endtaskinit_sequence;beginclock=1'b1;endendtasktaskasymmetric_sequence;begin#15clock=1'b0;#5clock=1'b1;#5clock=1'b0;#10clock=1'b1;endendtaskendmodule

10.1.2自动(可重入)任务任务在本质上是静态的,任务中的所有声明项的地址空间是静态分配的,同时并发执行的多个任务共享这些存储区。如果这个任务在模块中的两个地方被同时调用,则这两个任务调用将对同一块地址空间进行操作。操作的结果很有可能是错误的。为了避免这个问题,verilogHDL通过在task关键字前面添加automatic关键字。使任务成为可重入的,这样声明的任务也称为自动任务,每次调用时,在动态任务中声明的所有模块项的存储空间都是动态分配的,每个调用都对各自独立的地址空间进行操作。这样,每个任务调用只对自己所拥有的独立变量副本进行操作,因此可以得到正确的执行结果。所以,如果某一任务有可能在程序代码的两处被同时调用,最好使用自动任务。moduletop;reg[15:0]cd_xor,ef_xor;reg[15:0]c,d,e,f;...taskautomaticbitwise_xor;output[15:0]ab_xor;input[15:0]a,b;begin#delay//ab_and=a&b;//ab_or=a|b;ab_xor=a^b;endendtask...alw

温馨提示

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

最新文档

评论

0/150

提交评论