1、wire和reg有何不同?
- wire表示导线结构,reg表示存储结构。
- wire使用assign赋值,reg赋值定义在always、initial、task或function代码块中。reg类型数据默认初始值为不定值x。reg类型通常用于always模块中的指定信号,always块中每个被赋值的信号必须是reg类型,输入信号不做要求。
- 从电路综合角度来说,wire赋值综合成组合逻辑,reg可能综合成时序逻辑,也可能综合成组合逻辑。wire型变量综合出来是一根导线,reg型在always语句模块中又分为两种情况
(a) always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑;
(b) always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)
2、SystemVerilog的logic类型有何不同?
- 单驱动时logic可完全替代reg和wire,logic是reg类型的改进,它既可被过程赋值也能被连续赋值,编译器可自动推断logic是reg还是wire。
- 多驱动时,如inout类型端口,