版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块的定义与调用一、模块的结构与定义1、模块的结构Verilog的根本设计单元就是“模块”。它主要由两局部构成,一局部描述接口,另一局部描述逻辑功能。eg:moudleblock〔a,b,c,d〕;inputa,b;outputc,d;assignc=a|b;assgind=a&b;endmoudleaabcd模块是verilog设计中的根本功能块,这里详细介绍模块内部构成module模块名(端口列表);端口声明,参数声明wire,reg和其它类型的变量声明数据流语句〔assign)低层模块实例always和initial块,所有行为语句都在块内任务和函数
endmodule必须出现可选module能够表示:物理块,如IC或ASIC单元逻辑块,如一个CPU设计的ALU局部整个系统每一个模块的描述从关键词module开始,有一个名称〔如SN74LS74,DFF,ALU等等〕,由关键词endmodule结束。module内部的5个局部:变量声明数据流语句低层模块实例行为描述块任务和函数每一局部在module内部出现的顺序是任意的。一个verilog源文件中可以有多个模块,且对排列顺序不做要求。端口(Terminal)模块端口等价于芯片的管脚〔pin)模块通过端口与外部通信
端口是模块与外界环境交互的接口.例如IC芯片的输入、输出引脚就是它的端口。对于外部环境来讲,模块内部是不可见的,对模块的调用(实例引用)只能通过其端口进行。这种特点为设计者提供了很大的灵活性:只要接口保持不变,模块内部的修改并不会影响到外部环境.我们也常常将端口称为终端(Terminal)。端口列表和端口声明input输入端口output输出端口inout双向端口端口在模块名字后的括号中列出端口可以说明为input,output及inout端口等价于硬件的引脚(pin)端口声明也可以采用类似ANSI
C格式来声明端口//D触发器moduleD_FF(inputd,clk,clr,outputregq,qb);……………………endmodulemodule
adder(cout,sum,a,b,cin);
input[2:0]a,b;
input
cin;
output
cout;
output[2:0]sum;
assign
{cout,sum}=a+b+cin;endmodule例设计三位全加器这个例子描述了一个三位的加法器。从例子中可以看出整个VerilogHDL程序是嵌套在module和endmodule声明语句里的,只出现了一个assign语句。addersum[2:0]a[2:0]b[2:0]cincout模块名端口列表端口声明数据流语句半加器与全加器
=1&AB
C=ABABSC
CO
CO
CO
AB
ABCi
S
CO
CIAB
S
例SR触发器模块//SR触发器module
SR_FF(Q,Q_n,S,R);outputQ,Q_n;//端口声明inputS,R;nandn1(Q,S,Q_n);nandn2(Q_n,R,Q);endmodule模块中的5个局部并没全部出现,只出现在低层次模块实例化nand为verilog中的与非门门级原语部件D触发器模块//D触发器moduleD_FF(d,clk,clr,q,qb);outputq,qb;inputd,clk,clr;regq,qb;//输出端口q,qb值保存always@(posedgeclk)beginif(clr)q=1’b0;elseq=d;endnot(qb,q);endmodule
该模块内包括always行为块语句always块行为描述语句4位存放器设计moduleD_FF(d,clk,clr,q,qb);....endmodulemoduleREG4(d,clk,clr,q,qb);output[3:0]q,qb;input[3:0]d;inputclk,clr;D_FFd0(d[0],clk,clr,q[0],qb[0]);D_FFd1(d[1],clk,clr,q[1],qb[1]);D_FFd2(d[2],clk,clr,q[2],qb[2]);D_FFd3(d[3],clk,clr,q[3],qb[3]);endmodule模块中只出现在低层次模块实例化可以将模块的实例通过端口连接起来构成一个大的系统或元件。在上面的例子中,REG4有模块DFF的四个实例。注意,每个实例都有自己的名字(d0,d1,d2,d3)。实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。实例中端口的次序与模块定义的次序相同。模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。模块实例化(moduleinstances).端口与外部信号的连接在调用模块时,可以用顺序连接和按名连接把模块定义的端口与外部信号连接起来顺序连接:需要连接的信号需要与模块声明的端口列表一致;按名连接:端口和外部信号按名字连接在一起.D_FFd0(d[0],clk,clr,q[0],qb[0]);D_FFd1(d[1],clk,clr,q[1],qb[1]);D_FFd2(d[2],clk,clr,q[2],qb[2]);D_FFd3(d[3],clk,clr,q[3],qb[3]);当设计大规模系统时,端口太多,记住端口顺序不大可能,可以采用按名连接方法。不需要连接的端口直接忽略掉即可D_FFd0(.d(d[0]),.clk(clk),.clr(clr),.q(q[0]),.qb(qb[0]));
D_FFd0(.d(d[0]),.clk(clk),.clr(clr),.q(q[0]));
2、模块的定义〔1〕端口定义在模块被引用的时候,有些信号要输入到被引用的模块中,有的信号需要从被引用的模块中取出来。在引用模块的时候其端口可以直接用两种方法连接:〔a〕在引用的时候,严格按照模块定义的端口顺序来连接,不用标明原模块定义时规定的端口名,比方说:模块名〔连接端口1信号名,连接端口2信号名,连接端口3信号名,……〕;〔b〕在引用的时候,可以用“.”符号来标明原模块是定义时的端口名,比方:模块名〔.端口1名〔连接信号1名〕,端口2名〔连接端口2名〕,……〕;moudletristl(sout,sin,ena);outputsout;inputsin,ena;mytritri_inst(.out(sout),.in(sin),.enable(ena));endmoudlemoudlemytri(out,in,enable);outputout;input
in,enable;
assignout=enable?in:’bz;endmoudletri_insttrist1sinenainenableoutsoutmytri3、顺序执行在用verilog模块实现一定的功能时,应该了解一下哪些是同时发生,哪些是顺序发生的,“assgin”语句、实例元件和“always”,这三个在同一个verilog模块里面,它们的顺序不会影响功能的实现。它们三项式同时执行的,也就是并发的。但是,在“always”模块内,逻辑是按照指定的顺序执行的,不过多个“always”之间却是并行执行的。tips:〔1〕在verilog模块中所有过程块〔如:initial块,always块〕、连续赋值语句、实例引用都是并行的;〔2〕模块之间的连接是通过变量名互相连接起来的;〔3〕在同一模块中,“always”块,实例元件,“assign”块,这三个常用的语句申明出现的先后顺序没有关系;〔4〕不过只有连续赋值语句assign和实例引用语句独立于过程快而存在于模块的功能定义局部。顺序块和并行块1、顺序块顺序块,也叫过程块,关键字begin_end用于将多条语句组成顺序块。特点:〔1〕当中的语句是一条接一条,按照顺序执行的,只有前边的语句执行完成以后才能执行后面的语句〔除了带有内嵌套的非阻塞赋值语句〕;〔2〕如果语句包括延迟或时间控制,那么延迟总是相对于前面那条语句执行完成的仿真时间的。eg(1):regx,y;reg[1:0]z,w;initialbeginx=1’b0;y=1’b1;z={x,y};w={y,x};end
eg(2)regx,y;reg[1:0]z,w;initialbeginx=1’b0;#5y=1b’1;#10z={x,y};#20w={y,x};end2、并行块并行块由关键字fork_join申明,它具有以下特点:〔1〕块内的语句是并发执行的;〔2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年大学仪器仪表专业大学物理下册期末考试试题A卷-附解析
- 医院耳鼻喉科紧急情况处理制度
- 2022年大学机械专业大学物理二月考试题B卷-附答案
- 城市绿色空间管理制度
- 美容院卫生标准国家卫生城市复审迎检方案
- 活动式脚手架在风电场建设中的应用方案
- 工业阀门维护与检修方案
- 智能停车系统实施方案
- 农村地区尖子生培养方案
- 电动汽车行业招商专项方案
- 书法知识基础理论单选题100道及答案解析
- (新版)社会工作者考试题库及答案
- 四川省工程建设统一用表(新版监理单位用表)
- 压力管道竣工资料
- 2022社会保险工作总结五篇
- 定向越野图例标志说明
- 浅谈社区产后访视的常见问题和护理干预
- 日事日毕-日清日高PPT
- 光学作图专题复习教案
- 完整版中建八局施工分包与劳务用工管理办法
- 浅谈健美操教学中的美育教育
评论
0/150
提交评论