Verilog HDL程序设计语句和描述方式.ppt

Verilog HDL程序设计语句和描述方式.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

VerilogHDL程序设计语句和描述方式11/11/20241

3.1数据流建模3.1.1连续赋值语句连续赋值的目标类型主要是标量线网和向量线网两种。(1)标量线网,如:wirea,b;(2)向量线网,如:wire[3:0]a,b;显式连续赋值语句:net_declarationrangename;assign#delayname=Assignmentexpression;隐式连续赋值语句:net_declarationdrive_strengthrange#delayname=Assignmentexpression;11/11/20242

11/11/20243例3.1-1显式连续赋值语句的例子moduleexample1_assignment(a,b,m,n,c,y);input[3:0]a,b,m,n;output[3:0]c,y;wire[3:0]a,b,m,n,c,y;assigny=m|n;assign#(3,2,4)c=ab;endmodulenet_declaration(连线型变量类型)range(变量位宽),指明了变量数据类型的宽度,格式为[msb:lsb],缺省为1位。drive_strength(赋值驱动强度)是可选的,只能在“隐式连续赋值语句”格式中得到指定。它用来对连线型变量受到的驱动强度进行指定。wire(weak0,strong1)out=in1in2;delay(延时量)这一项是可选的。#(delay1,delay2,delay3)例3.1-2隐式连续赋值语句的例子moduleexample2_assignment(a,b,m,n,c,y,w);input[3:0]a,b,m,n;output[3:0]c,y,w;wire[3:0]a,b,m,n;wire[3:0]y=m|n;wire[3:0]#(3,2,4)c=ab;wire(strong0,weak1)[3:0]#(2,1,3)w=(a^b)(m^n);endmodule

连续赋值语句需要注意的以下几点:赋值目标只能是线网类型(wire);在连续赋值中,只要赋值语句右边表达式任何一个变量有变化,表达式立即被计算,计算的结果立即赋给左边信号(若没有定义延时量);连续赋值语句不能出现在过程块中。多个连续赋值语句之间是并行语句,因此与位置顺序无关。连续赋值语句中的延时具有硬件电路中惯性延时的特性,任何小于其延时的信号变化脉冲都将被滤除掉,不会体现在输出端口上。11/11/20244

3.2行为级建模11/11/20245过程赋值语句高级程序语句过程块连续赋值语句模块调用……过程语句(initial/always)语句块模块描述定义行端口类型说明数据类型说明描述体结束行

11/11/20246类别语句可综合性过程语句initialalways√语句块串行语句块begin-end√并行语句块fork-join赋值语句过程连续赋值assign过程赋值=、=√条件语句if-else√case,casez,casex√循环语句foreverrepeatwhilefor√编译向导语句`define√`include√`ifdef,`else,`endif√

3.2.1过程语句1.initial过程语句 initial过程语句的语法格式为: initial begin 语句1; 语句2; ... 语句n; end11/11/20247例3.2-1用initial过程语句对变量A,B,C进行赋值moduleinitial_tb1;regA,B,C;initialbegin A=0;B=1;C=0; #100 A=1;B=0; #100 A=0;C=1; #100 B=1; #100 B=0;C=0; endendmodule

2.always语句块从语法描述角度,相对于initial过程块,always语句块的触发状态是一直存在的,只要满足always后面的敏感事件列表,就执行过程块。其语法格式是:always@(敏感事件列表) 语句块; 例如:* @(a) //当信号a的值发生改变时 @(aorb) //当信号a或信号b的值发生改变时 @(posedgeclock) //当clock的上升沿到来时 @(negedgeclock) //当clock的下降沿到来时 @(posedgeclkornegedgereset) //当clk的上升没到来或reset信号的下降沿到来时11/11/20248

3.过程语句使用中需要注意的问题在信号定义形式方面,无论是对时序逻辑还是组合逻辑描述,Verilo

您可能关注的文档

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档