网站大量收购独家精品文档,联系QQ:2885784924

Verilog课件3教程.ppt

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

数据类型用来表示数字电路硬件中的数据存储和传送的元素。 Verilog HDL共有19种数据类型,分2大类数据: 线网类型 表示器件之间的物理连接。 其数值由驱动元件决定,如果没有驱动元件连接到线网上,则其默认值为高阻Z。 寄存器类型 表示数据的储存单元。 其默认值为不定X。 两者最大的区别: 寄存器类型保持最后一次的赋值,而线网类型则需要持续的驱动。;wire(网络连线): 由模块或门驱动的连线。 驱动端信号的改变会立刻 传递到输出的连线上。 例如:右图上,selb的改 变,会自动地立刻影响或 门的输出。;线网类型;线网类型变量的种类:;线网类型;wire a b;;寄存器类型;寄存器类型(reg);reg型变量能保持其值,直到它被赋于新值。 reg型变量常用于行为建模,产生测试的激励信号。 常用行为语句结构来给reg类型的变量赋值。;wire clk, d; reg  q; always @ ( posedge clk ) q = d;;;寄存器类型(reg);reg和wire类型变量的区别;位选择和部分选择 ;位选择和部分选择;存储器;存储器; 输入口(input)可以由寄存器或网络连接驱动,(即外部连接它可以是reg或wire型),但它本身只能是wire型。 输出口(output)可以是wire或reg型,但它本身只能驱动线网型,即外部连接它只能是wire型 。 输入/输出口(inout)只能定义为wire型,并且与它连接也只能是wire型。 如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型变量 ;如何选择数据类型; 选择数据类型时常犯的错误 把模块的输入信号定义为寄存器类型了。 把例化后的输出连接出去时,把它定义为寄存器类型了。 在过程块中对变量赋值时,忘了把它定义为寄存器类型(reg)或已把它定义为连接类型了(wire)。 这是经常犯的三个错误!!!;参数(parameters);参数值的改写: 在模块或实例引用时可通过参数传递来改变被引用模块或实例中已定义的参数。;参数(parameters);赋值运算符;连续赋值语句应用;Verilog中的大小(size)与符号;逻辑反与位反的对比;;等式运算符;相等操作符;wire [7:0] in, out; wire [2:0] sft; assign out = in sft; ;条件运算符;条件操作符;赋值语句;阻塞赋值;阻塞赋值;阻塞赋值;阻塞赋值;阻塞赋值;非阻塞赋值;非阻塞赋值;非阻塞赋值;非阻塞赋值;非阻塞赋值;module lfsrb1 (q3, clk, pre_n); output q3; input clk, pre_n; reg q3, q2, q1; wire n1; assign n1 = q1 ^ q3; always @(posedge clk or negedge pre_n) if (!pre_n) begin q3 = 1b1; q2 = 1b1; q1 = 1b1; end else begin q3 = q2; q2 = n1; q1 = q3; end endmodule;用非阻塞语句描述的LFSR;event事件;event事件

文档评论(0)

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

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

1亿VIP精品文档

相关文档