第5章 Verilog语法与要素 数字系统设计与Verilog HDL (第4版)教学课件.ppt

第5章 Verilog语法与要素 数字系统设计与Verilog HDL (第4版)教学课件.ppt

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

第5章 Verilog语法与要素 5.1 Verilog语言要素 Verilog 程序由符号流构成,符号包括 空白符(White space) 注释(Comments) 操作符(Operators) 数字(Numbers) 字符串(Strings) 标识符(Identifiers) 关键字(Keywords)等 ◆ 整数 ◆ 实数 ◆ 字符串 整数(integer) 整数按如下方式书写: +/-size basevalue 即 +/-位宽进制数字 size 为对应二进制数的宽度;base为进制;value是基于进制的数字序列。 进制有如下4种表示形式: ◆ 二进制(b或B) ◆ 十进制(d或D或缺省) ◆ 十六进制(h或H) ◆ 八进制(o或O) 整数(integer) 字符串(Strings) 字符串是双引号内的字符序列。 字符串不能分成多行书写。例如: INTERNAL ERROR 字符串的作用主要是用于仿真时,显示一些相关的信息,或者指定显示的格式。 5.3 数据类型 Verilog有下面四种基本的逻辑状态。 ◆ 0:低电平、逻辑0或逻辑非 ◆ 1:高电平、逻辑1或“真” ◆ x或X:不确定或未知的逻辑状态 ◆ z或Z:高阻态 Verilog中的所有数据类型都在上述4类逻辑状态中取值,其中x和z都不区分大小写,也就是说,值0x1z与值0X1Z是等同的。 【例5.2】 采用参数定义的数据比较器 module compare_w(a,b,larger,equal,less); parameter SIZE=6; //参数定义 input[SIZE-1:0] a,b; output larger,equal,less; wire larger,equal,less; assign larger=(ab); assign equal=(a==b); assign less=(ab); endmodule 【例5.3】 采用参数定义的加法器 module add_w(a,b,sum); parameter MSB=15; //参数定义 input[MSB:0] a,b; output[MSB+1:0] sum; assign sum=a+b; endmodule 【例5.4】 采用参数定义的二进制计数器 module count_w(en,clk,reset,out); input clk,reset,en; parameter WIDTH=8; //参数定义 output[WIDTH-1:0] out; reg[WIDTH-1:0] out; always @(posedge clk or negedge reset) if(!reset) out=0; else if(en) out=out+1; endmodule 【例5.5】 采用参数定义的约翰逊计数器 module johnson_w(clk,clr,qout); input clk,clr; parameter WIDTH=8; //参数定义 output reg[(WIDTH-1):0] qout; always @(posedge clk or posedge clr) begin if(clr) qout=0; else begin qout=qout1; qout[0]=~qout[width-1]; end end endmodule 5.5 向量 1.标量与向量 宽度为1位的变量称为标量,如果在变量声明中没有指定位宽,则默认为标量(1位)。举例如下: wire a; //a为标量 reg clk; //clk为标量reg型变量 线宽大于1位的变量(包括net型和variable型)称为向量(vector)。向量的宽度用下面的形式定义: [msb : lsb] 比如: wire[3:0] bus; //4位的总线 2.位选择和域选择 在表达式中可任意选中向量中的一位或相邻几位,分别称为位选择和域选择,例如: A=mybyte[6]; //位选择 B=mybyte[5:2]; //域选择 再比如: reg[7:0] a,b; reg[3:0] c; reg d; d=a[7]b[7]; //位选择 c=a[7:4]+b[3:0]; //域选择 5.6 运算符(Operators) 1.算术运算符(Arithmetic operators) 常用的算术运算符包括: + 加 - 减 * 乘 / 除 % 求模 2.逻辑运算符(L

文档评论(0)

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

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

1亿VIP精品文档

相关文档