精华内容
下载资源
问答
  • 非常好用的总结,Verilog中-reg和wire-用法和区别以及alwaysassign的区别
  • verilogwire和reg类型的区别

    千次阅读 2020-09-21 21:41:33
    wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,wire相当于物理连线,默认初始值是z。 reg型表示的寄存器类型,用于always模块内被赋值的信号,且必须定义为reg型,...

    一、基本概念

    wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,wire相当于物理连线,默认初始值是z

    reg型表示的寄存器类型,用于always模块内被赋值的信号,且必须定义为reg型,代表触发器,常用于时序逻辑电路,reg相当于存储单元,默认初始值是x

    二、深入理解

    1、从仿真角度来说,HDL语言面对的是编译器,相当于使用软件思路,此时:

    • wire对应于连续赋值,如assign;

    • reg对应于过程赋值,如always,initial;

    2、从综合角度来看,HDL语言面对的是综合器,相当于从电路角度来思考,此时:

    • wire型变量综合出来一般情况下是一根导线;

    • reg变量在always中有两种情况:
      1)always @(a or b or c)形式的,即不带时钟边沿的,综合出来还是组合逻辑;
      2)always @(posedge clk)形式的,即带有边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop

    3reg型数据保持最后一次的赋值,而wire型数据需要持续的驱动。

    • 在连续赋值语句assign中,表达式右侧的计算结果可以立即更新到表达式的左侧,可以理解为逻辑之后直接连接了一条线,这个逻辑对应于表达式的右侧,这条线对应于wire
    • 在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,这个变量可以声明成reg型。

    三、区别总结

    1使用场景区别:

    • wire一般是用在组合逻辑中,reg用在时序逻辑中。但是在always中,变量必须定义成reg型,即使always块也可以实现组合逻辑。那么这里刚好说明一下,其实always块不止能实现时序逻辑,还能实现组合逻辑:
      (1)如果这个条件是时钟上升沿或下降沿,那硬件模型就是一个触发器,只有是指定了always@(posedge or negedge)才是触发器。
      (2)如果这个条件是某一信号的高低电平,那这个硬件模型就是一个锁存器。
      (3) 如果这个条件是赋值语句右侧任意操作数的变化,那这个硬件模型就是一个组合逻辑。
    • wire用于连续赋值assign语句中;reg用于过程赋值always,initial语句中;

    2在端口信号和内部信号上的使用区别

    信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信号为内部信号。

    • 对于端口信号,一旦定义为input或者output端口,默认就定义成了wire类型,输入端口只能是net类型(wire/tri)。输出端口可以是net类型,也可以是reg类型。若输出端口在过程块中赋值则为reg类型;若在过程块外赋值(包括实例化语句),则为net类型。

    • 内部信号类型与输出端口相同,可以是net或reg类型。判断方法也与输出端口相同。若在过程块中赋值,则为reg类型;若在过程块外如assign赋值,则为net类型。

    • inout是一个双向端口, 不能声明为reg类型,只能是wire类型。

    展开全文
  • verilog HDL中wire和reg类型的区别

    万次阅读 多人点赞 2018-09-25 17:11:08
    本文参考 夜煞CSDN 的CSDN 博客 ,有改动 ...wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,wire相当于物理连线,默认初始值是z。 reg型表示...

    本文参考 夜煞CSDN 的CSDN 博客 ,有改动

    全文地址请点击:https://blog.csdn.net/u010549444/article/details/50993274?utm_source=copy

    基本概念的差别

    wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,wire相当于物理连线,默认初始值是z。

    reg型表示的寄存器类型,用于always模块内被赋值的信号,必须定义为reg型,代表触发器,常用于时序逻辑电路,reg相当于存储单元,默认初始值是x。

     

    在赋值语句中的差别

            在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。

            在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。

    总而言之,wire只能被assign连续赋值,reg只能在initial和always中赋值

     

    端口信号和内部信号的差别

    信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信号为内部信号。

    对于端口信号,一旦定义位input或者output端口,默认就定义成了wire类型,输入端口只能是net类型(wire/tri)。输出端口可以是net类型,也可以是reg类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值(包括实例化语句),则为net类型。

    内部信号类型与输出端口相同,可以是net或reg类型。判断方法也与输出端口相同。若在过程块中赋值,则为reg类型;若在过程块外如assign赋值,则为net类型。

    若信号既需要在过程块中赋值,又需要在过程块外赋值。这种情况是有可能出现的,如决断信号。这时需要一个中间信号转换。

    inout是一个双向端口, inout端口不能声明为reg类型,只能是wire类型。


    参考代码解析

    module net_reg(
    	 //input
    	A1,A2,A3,A4,A5,CLK,
    	//output
    	E1,E2,E3,E4,E5
    );
    
    	//端口信号
    	//1、输入端口定义,默认定义为wire类型,省略声明为wire A1,A2,A3;
    	input A1;  
    	input A2;
    	input A3;
    	input [1:0]A4;
    	input A5;
    	input CLK;
    	
    	
    	//2、输出端口定义,默认定义为wire类型,省略声明为wire E1,E2,E3;
    	output E1;
    	output E2;
    	output E3;
    	output [9:0]E4;
    	output reg E5;
    	reg E2;
    	reg E3;
    	reg [9:0]E4;
    	
    	//内部信号:过程块中赋值,则为reg类型;若在过程块外如assign赋值,则为net类型。
    	reg [9:0]in_var1;
    	reg [5:0]in_var2;
    	reg [3:0]cc;
    	
    	
    	initial begin  //E3 在initial块中赋值,需要定义为reg
    		E3 = A3;
    	end
    	
    	assign E1 = A1;   // 连续赋值语句中被赋值,定义为wire
    	
    	always @ (A1,A2,A3,A4)begin
    		E2 = A2;  //E2在always过程块中被赋值,定义为reg类型
    		if(A3 == 0)
    			E3 = A3;  //E3在always过程块中被赋值,定义为reg类型
    		if(A4 == 2'd0)begin
    			in_var1 = 10'd0;
    			in_var2 = 6'd36;
    			E4 = in_var1;
    			E4 = in_var2;
    		end
    	end
    	
    	always @ (posedge CLK)begin
    		if(A5 == 0)begin
    			E5 <= 0;
    			cc <= 4'd0;
    		end
    		else begin
    			E5 <= A5;
    			cc <= cc + 1'b1;
    		end
    	end
    
    endmodule
    

    【注意】

    虽然E2定义在了过程赋值语句中,但是这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。

    虽然E3定义在了过程赋值语句中,但是这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;

    展开全文
  • wire 和regVerilog程序里的常见的两种变量类型,他们都是构成verilog程序逻辑最基本的元素。正确掌握两者的使用方法是写好verilog程序的前提。但同时,因为他们在大多数编程语言中不存在,很多新接触verilog语言的...

    wire 和reg是Verilog程序里的常见的两种变量类型,他们都是构成verilog程序逻辑最基本的元素。正确掌握两者的使用方法是写好verilog程序的前提。但同时,因为他们在大多数编程语言中不存在,很多新接触verilog语言的人并不能很清楚的区别两种变量的不同之处。这里简单对他们做一个比较,方便在编程时区别使用。

     

    功能和状态

    Wire主要起信号间连接作用,用以构成信号的传递或者形成组合逻辑。因为没有时序限定,wire的赋值语句通常和其他block语句并行执行。

    Wire不保存状态,它的值可以随时改变,不受时钟信号限制。

    除了可以在module内声明,所有module的input 和output默认都是wire型的。

     

    Reg是寄存器的抽象表达,作用类似通常编程语言中的变量,可以储存数值,作为参与表达式的运算,通常负责时序逻辑,以串行方式执行。

    Reg可以保存输出状态。状态改变通常在下一个时钟信号边沿翻转时进行。

     

    赋值方式

     

    Wire有两种赋值方式

    1.     在定义变量时赋初值,方式是用=。如果之后没有再做赋值,初值会一直保留,(是否可以给逻辑?)

    wire wire_a = 1’b0;

    2.     用assign语句赋值,等式右边可以是wire,reg,一个常量或者是逻辑运算

    Wire wire_a;

    Wire wire_b;

    Wire wire_c;

    Reg reg_a;

    assign wire_b = wire_a;

    assign wire_c =reg_a;

    assign wire_d =wire_b & wire_c;

     

    如果不赋值,wire的默认状态是高阻态,即z。

     

    对reg的使用通常需要有触发条件,在always的block下进行。触发条件可以是时钟信号上升沿。赋值语句可以是=或者 <=。如果是从reg到reg,则形成组合逻辑,如果是从reg到reg,则构成一个寄存器,形成时序逻辑。

    Wire wire_a;

    Wire wire_b;

    Reg reg_a;

    Reg reg_b;

    Always @( posedge clk)

    Begin

                   Reg_b =reg_a;

                   Reg_c  = wire_a | wire_b;

    end

    Reg在声明时候不赋初值。未赋值的reg变量处于不定态,即x。

     

    使用方式

     

    在引用一个module时,输入端口可以是wire型,也可以reg型。这里可以把对input的赋值看作一个assign语句,使用的变量相当于等号右边的变量,所以两者都可以。

    而对于输出端口,必须使用reg型,而不能是wire型。同样用assign的角度考虑,module的输出在等号右边,而使用的变量成了等号左边,assign语句等号左边只能是wire型。

     

    位宽

    这是个使用注意事项。所有的wire和reg在声明时如果不做特殊声明,只有1位。这个对于熟悉其他编程语言的人是一个容易犯错的地方。

    执行

    wire wire_a = 4’he;

    语句最后得到的wire_a是0x1,而不是0xe。因为wire_a只取了0xe的最低位的值而省略掉了其他值。所以正确的语句应该是

    wire[3:0] wire_a = 4’he;

    这样wire_a输出的结果才是一个0xe。

     

    小结

    这篇文章从功能,变量状态,赋值方式,使用方式等角度讨论了wire和reg变量类型的区别。并且给出了一个在verilog中常见的使用错误及解决方法。
    ————————————————
    版权声明:本文为CSDN博主「MangoWen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/mangowen/article/details/52522588

    展开全文
  • Verilogreg和wire区别

    千次阅读 2020-06-21 10:14:45
    Verilogreg和wire区别 wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。 reg表示一定要有触发,输出才会反映输入的状态。 reg相当于存储单元,wire相当于物理连线。reg表示一定要有...

    Verilog中reg和wire的区别

    wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。
    reg表示一定要有触发,输出才会反映输入的状态。

    reg相当于存储单元,wire相当于物理连线。reg表示一定要有触发,没有输入的时候可以保持原来的值,但不直接实际的硬件电路对应。

      两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动。wire使用在连续赋值语句中,而reg使用在过程赋值语句(initial ,always)中。wire若无驱动器连接,其值为z,reg默认初始值为不定值 x 。
    
      在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。根据触发条件的不同,过程赋值语句可以建模不同的硬件结构:如果这个条件是时钟的上升沿或下降沿,那么这个硬件模型就是一个触发器;如果这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;如果这个条件是赋值语句右侧任意操作数的变化,那么这个硬件模型就是一个组合逻辑。
    
      对组合逻辑输出变量,可以直接用assign。即如果不指定为reg类型,那么就默认为1位wire类型,故无需指定1位wire类型的变量。当然专门指定出wire类型,可能是多位或为使程序易读。wire只能被assign连续赋值,reg只能在initial和always中赋值。
    
      输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以是wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型(wire/tri)。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型。
    
      默认信号是wire类型,reg类型要申明。这里所说的默认是指输出信号申明成output时为wire。如果是模块内部信号,必须申明成wire或者reg.
    
      对于always语句而言,赋值要申明成reg,连续赋值assign的时候要用wire。
    

    模块调用时 信号类型确定方法总结如下:

    •信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信号为内部信号。

    •对于端口信号,输入端口只能是net类型。输出端口可以是net类型,也可以是register类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值(包括实例化语句),则为net类型。

    •内部信号类型与输出端口相同,可以是net或register类型。判断方法也与输出端口相同。若在过程块中赋值,则为register类型;若在过程块外赋值,则为net类型。

    •若信号既需要在过程块中赋值,又需要在过程块外赋值。这种情况是有可能出现的,如决断信号。这时需要一个中间信号转换。

    下面所列是常出的错误及相应的错误信息(error message)

    •用过程语句给一个net类型的或忘记声明类型的信号赋值。

           信息:illegal …… assignment.
    

    •将实例的输出连接到声明为register类型的信号上。

           信息:<name> has illegal output port specification.
    

    •将模块的输入信号声明为register类型。

           信息:incompatible declaration, <signal name> ……
    

    本文转载自tureno2011,如有冒犯请通知我删除。

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G
    查找:Ctrl/Command + F
    替换:Ctrl/Command + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目Value
    电脑$1600
    手机$12
    导管$1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列第二列第三列
    第一列文本居中第二列文本居右第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPEASCIIHTML
    Single backticks'Isn't this fun?'‘Isn’t this fun?’
    Quotes"Isn't this fun?"“Isn’t this fun?”
    Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to- HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

    Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

    张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • verilogwire 和reg 的使用

    千次阅读 2017-05-24 11:27:31
    wire V.S. regwire(组合逻辑) wire用来连接模块实例化的输入输出端口; wire用作实际模块声明中输入输出; wire 元素必须由某些东西驱动,并且在没有被...wire 元素是在基于Verilog的设计中连接两片的无状态方式; w
  • verilog中的wire和reg型数据相连接
  • verilog HDL中wire和reg区别 wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。 reg表示一定要有触发,输出才会反映输入的状态。 reg相当于存储单元,wire相当于物理连线。reg表示...
  • 相信很多我一样刚开始接触verilog语言的小白都会有这样的困惑,wire型变量和reg型变量到底有什么区别?什么情况下使用wire定义变量、什么情况下使用reg定义变量?下面就详细分析两者在使用中的区别。 1.wire和reg...
  • verilogwire和reg的用法区别wire(组合逻辑)reg(组合时序逻辑)可以相互替代的情况 看到一个文档,很详细的讲了wire和reg区别,随便记录一下 wire(组合逻辑) wireverilog设计中表示简单的线,规则如下: 1.在...
  • Verilog基本语法之wire和reg

    千次阅读 2021-04-21 16:02:29
    Verilog基本语法之wire和reg Verilog语法之多,初期学习我们只需要掌握常用的语法就OK了,今天谈谈数据类型:wire和regwire:线型 ②reg:寄存器型 ...
  • 问题:verilog HDL中reg和wire类型的区别 回答: 1.基本概念的区别wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型,wire相当于物理连线,默认初始值是z。 ②...
  • wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。 reg表示一定要有触发,输出才会反映输入的状态。 reg相当于存储单元,wire相当...wire使用在连续赋值语句中,而reg使用在过程赋值语...
  • reg相当于存储单元,wire相当于物理连线。 两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动 wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会...
  • Verilog _ wire vs reg.pdf

    2021-01-12 20:15:53
    Verilog _ wire vs reg 区别
  • Verilogwire reg 数据类型区别

    万次阅读 多人点赞 2016-12-17 23:44:35
    Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是组合逻辑,只能在assign左侧赋值,不能在always @ 中赋值; 但reg可以综合成register,latch,甚至wire(当其只是中间...
  • 在初学verilog语言时,常常对各种模块中的语句块、变量声明的使用条件不清楚,其中最典型的就是对reg和wire型数据类型的区分,以及对always语句assign语句使用条件的理解,在这篇文章中我将分享我的一些学习总结...
  • Verilogwirereg的使用

    千次阅读 2017-09-22 14:55:14
    reg相当于存储单元,wire相当于物理连线。reg表示一定要有触发,没有输入的时候可以保持原来的值,但不直接实际的硬件电路对应。  两者的区别是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动。wire...
  • 萌新食用:Verilogwire和reg数据类型的区别 最近恰好在学习数电相关知识扯到Verilog中的wirereg类型数据的区别: 总的来说,其实就一句话:wire相当于物理连线,而reg相当于存储单元。 下面简单叙述一下具体差别...
  • Verilog wire和reg分析1

    2017-01-13 09:40:11
    Verilog wire和reg分析1
  • verilog语言中,reg型与wire型的区别

    千次阅读 多人点赞 2018-09-15 18:45:43
    对于初学者来说,首先一个大问题就是在读程序时候,变量类型reg型与wire型的区分。 最近做了点仿真工作,对两种类型的变量有一些自己的见解,写一写,交流学习。 自己的理解: wire型相当于是一根连线。 reg型...
  • verilogreg和wire类型的区别和用法

    万次阅读 多人点赞 2018-06-11 10:05:16
    reg相当于存储单元,wire相当于物理连线Verilog 中变量的物理数据分为线型寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是...
  • wire和reg区别 reg相当于存储单元,wire相当于物理连线。 reg保持最后一次的赋值,而wire需要持续的驱动。 wire使用在连续赋值语句assign中,reg使用在过程赋值语句中(always、测试文件中的initial)。(除此...
  • Verilog语言中wirereg区别以及inout使用
  • Verilogreg和wire 用法和区别以及alwaysassign的区别

    万次阅读 多人点赞 2016-11-30 17:17:49
     wire对应于连续赋值,如assign;  reg对应于过程赋值,如always,initial; 2、从综合角度,HDL语言面对的是综合器,相当于从电路角度来思考,此时:  wire型变量综合出来一般情况下是一根导线。  reg变量在...
  • 首先对veriog中wire型寄存器和reg型寄存器进行了简单介绍,然后介绍了两者的区别
  • Verilog wire和reg分析2

    2017-01-13 09:43:28
    Verilog wire和reg分析2
  • verilogwire和reg

    2020-06-11 11:28:12
    1.wire可以理解为物理连线,不可用于always块中,常用assign语句赋值。...3.阻塞赋值可以是wire赋值,也可以是reg的赋值。 4.非阻塞赋值只能是reg的赋值。在硬件电路上的理解为并行执行的赋值语句。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,122
精华内容 4,848
关键字:

verilogwire和reg的区别