verilog第二部分-2012.ppt

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

Yuchun Chang 第三讲 常用Verilog语法 3.1 模块的结构 3.2 数据类型和变量 3.3 基本的运算符号 3.4 小结 3.2.1 常量 3.2.2 变量 3.2.3 要点总结 二、参数 (Parameter)型 parameter来定义一个标识符代表一个常量,称为符号常量,提高程序的可读性和可维护性。 parameter是参数型数据的确认符,后跟着一个用逗号分隔开的赋值语句表。右边必须是一个常数表达式。 parameter e=25, f=29; //定义二个常数参数 parameter r=5.7; //声明r为一个实型参数 parameter byte_size=8; parameter byte_msb=byte_size-1; //常数表达式赋值 3.2.2 变量 Nets 网络数据类型表示设计实体之间的物理连接 wire 单个门驱动或连续赋值语句驱动 Tri 多驱动器驱动的网络型数据 supply0, supply1 wand, wor, triand, trior, tri0, tri1, trireg Registers 寄存器数据类型,记忆元件 wire型和tri型变量的真值表 网络类型的变量不能储存值,需要连接驱动器,否则该变量就是高阻的,即其值为z。 如果wire型或tri型变量没有定义逻辑强度,在多驱动源的情况下,逻辑值会发生冲突从而产生不确定值。 为wire型和tri型变量的真值表(注意:这里假设两个驱动源的强度是一致的) 1、Wire 输入输出信号类型缺省时自动定义为wire型 可以用作任何方程式的输入, “assign”语句或实例元件的输出。 格式 wire [n-1:0] w1, w2, …wi; //共有i条总线,每条总线内有n条线路 例 wire a; //定义了一个一位的wire型数据 wire [7:0] b; //定义了一个八位的wire型数据 wire [4:1] c, d; //定义了二个四位的wire型数据 2、Reg 寄存器是数据储存单元的抽象,缺省初始值为不定值x 通过赋值语句可以改变寄存器储存的值,其作用与改变触发器储存的值相当。 在“always”块内被赋值的每一个信号都必须定义成reg型。 常常是寄存器或者触发器输出。 通常,在设计中要由“always”块通过使用行为描述语句来表达逻辑关系。 reg型数据的使用 格式 reg [n-1:0] r1, r2, … ri; reg [n:1] r1, r2, … ri; 例 reg rega; //一个一位的reg型数据 reg [4:1] regc, regd; //两个四位reg型数据 对于reg型数据,其赋值语句的作用就象改变一组触发器的存储单元的值 3、Memory Verilog语言中没有多维数组存在。 memory型数据是通过扩展reg型数据的地址范围来生成的。 格式 reg [n-1:0] 存储器名[m-1: 0]; reg [n-1:0] 存储器名[m: 1]; 例 reg [7:0] mema[255: 0]; 定义一个名为mema的存储器,有256个8位的存储器。该存储器的地址范围是0到255。 memory 与 reg 的区别 n个1位寄存器构成的存储器组 ? n位的寄存器 reg [n-1:0] rega; //n位的寄存器 reg mema [n-1:0]; //n个1位寄存器构成的存储器 n位的寄存器可以在一条赋值语句里进行赋值 完整的存储器则不行 rega =0; //合法赋值语句 mema =0; //非法赋值语句 指定存储单元单元在存储器中的地址 mema[3]=0; //给memory中的第3个存储单元赋值为0。 第三讲 常用Verilog语法 3.1 模块的结构 3.2 数据类型和变量 3.3 基本的运算符号 3.4 小结 3.3.1 基本的算术运算符 3.3.2 位运算符 3.2.3 要点总结 3.3、运算符分类 功能分类 算术运算符(+,-,×,/,%) 赋值运算符(=,=) 关系运算符(,,=,=) 逻辑运算符(,||,!) 条件运算符(?:) 位运算符(~,|,^,,^~) 移位运算符(,) 拼接运算符({ }) 其它 操作数分类 单目运算符 clock = ~clock; 二目运算符 c = a | b; 三目运算符 r = s ? t : u; 3.3.1、基本的算术运算符 在Verilog HDL语言中,算术运算符又称为二进制运算符,共有下面几种: + (加法运算符,如 rega+regb,+3) - (减法运算符,如 rega-3, -3) × (乘法运算符,

文档评论(0)

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

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

1亿VIP精品文档

相关文档