Verilog中reg型与wire型区别

从以下方面区别

    • 赋值语句
        • 连续赋值语句
        • 过程赋值语句
    • 输入输出
    • 综合
        • wire型变量
        • reg型变量
    • 仿真文件

赋值语句

连续赋值语句

wire型数据只能被assign赋值,用以指定的组合逻辑信号。
如: assign b = a;
表达式右侧的计算结果可以立即更新到左侧,所以wire型数据需要持续的驱动,给wire型信号a逻辑值相当于通过导线。例:在组合逻辑电路中定义内部信号为wire型。

过程赋值语句

reg型一般在always initial过程语句中
即使always*(a or b or c)敏感列表是此种类型,变量仍是reg型,综合出来为组合逻辑

输入输出

由于模块间的例化,对于输入信号,连接的上一级输出是组合逻辑输出还是寄存器输出(可由wire型/reg型驱动),所以对于当前模块来说是wire型;而输出端口只能驱动wire型,自己决定是组合逻辑输出还是寄存器输出。

综合

wire型变量

综合出来是一根导线,用来连接电路,这时易理解它没有驱动能力,不能存储值

reg型变量

reg型可综合成register(边沿触发)对应触发器,latch(电平触发)对应锁存器,wire(作为中间变量)

仿真文件

待仿真文件输入类型信号需在仿真文件中设置为reg型;
待仿真文件输出类型信号需在仿真文件中设置为wire型;
可以这样理解:待仿真文件相当于一个黑盒,对黑盒进行测试,所以输入信号在仿真文件为reg型【数据源不断产生数据流】,输出信号在仿真文件中为wire型。
同时也说明待仿真文件的输入信号为wire型【双向端口】,输出信号为reg型

你可能感兴趣的:(#,FPGA基础知识,fpga开发,单片机,嵌入式硬件)