- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北大数字集成电路课件 6 verilog的数据类型整理ppt
数字集成电路设计入门 --从HDL到版图 于敦山 北大微电子学系 第六章 Verilog的数据类型及逻辑系统 学习Verilog逻辑值系统 学习Verilog中不同类的数据类型 理解每种数据类型的用途及用法 数据类型说明的语法 Verilog采用的四值逻辑系统 主要数据类型 net (线网) : 表示器件之间的物理连接 register (寄存器) :表示抽象存储元件 parameters(参数) : 运行时的常数(run-time constants) net(线网) net类的类型(线网) 有多种net类型用于设计(design-specific)建模和工艺(technology-specific)建模 没有声明的net的缺省类型为 1 位(标量)wire类型。但这个缺省类型可由下面的编译指导改变: `default_nettype nettype net类的类型(线网) wire类型是最常用的类型,只有连接功能。 wire和tri类型有相同的功能。用户可根据需要将线网定义为wire或tri以提高可读性。例如,可以用tri类型表示一个net有多个驱动源。或者将一个net声明为tri以指示这个net可以是高阻态Z(hign-impedance)。可推广至wand和triand、wor和trior wand、wor有线逻辑功能;与wire的区别见下页的表。 trireg类型很象wire类型,但trireg类型在没有驱动时保持以前的值。这个值的强度随时间减弱。 修改net缺省类型的编译指导: `default_nettype nettype nettype不能是supply1和supply0。 net类在发生逻辑冲突时的决断 Verilog有预定义的决断函数 支持与工艺无关的逻辑冲突决断 wire-and用于集电极开路电路 wire-or用于射极耦合电路 寄存器类 (register) 寄存器类型在赋新值以前保持原值 寄存器类型大量应用于行为模型描述及激励描述。在下面的例子中,reg_a、reg_b、reg_sel用于施加激励给2:1多路器。 用行为描述结构给寄存器类型赋值。给reg类型赋值是在过程块中。 寄存器类的类型 寄存器类有四种数据类型 Verilog中net和register声明语法 net声明 net_type [range] [delay] net_name[, net_name]; net_type: net类型 range: 矢量范围,以[MSB:LSB]格式 delay: 定义与net相关的延时 net_name: net名称,一次可定义多个net, 用逗号分开。 寄存器声明 reg_type [range] reg_name[, reg_name]; reg_type:寄存器类型 range: 矢量范围,以[MSB:LSB]格式。只对reg类型有效 reg_name :寄存器名称,一次可定义多个寄存器,用逗号分开 Verilog中net和register声明语法 举例: reg a; //一个标量寄存器 wand w; // 一个标量wand类型net reg [3: 0] v; // 从MSB到LSB的4位寄存器向量 reg [7: 0] m, n; // 两个8位寄存器 tri [15: 0] busa; // 16位三态总线 wire [0: 31] w1, w2; // 两个32位wire,MSB为bit0 选择正确的数据类型 module top; wire y; reg a, b; DUT u1 (y, a, b) ; initial begin a = 0; b = 0; #5 a = 1; end endmodule 选择数据类型时常犯的错误 用过程语句给一个net类型的或忘记声明类型的信号赋值。 信息:illegal …… assignment. 将实例的输出连接到声明为register类型的信号上。 信息:name has illegal output port specification. 将模块的输入信号声明为register类型。 信息:incompatible declaration, signal name …… 选择数据类型时常犯的错误举例 选择数据类型时常犯的错误举例 参数(parameters) 用参数声明一个可变常量,常用于定
文档评论(0)