Verilog课件3教程.pptVIP

  • 2
  • 0
  • 约1.52千字
  • 约 48页
  • 2017-04-25 发布于湖北
  • 举报
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)

1亿VIP精品文档

相关文档