差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
wire_reg [2018/08/21 08:59]
group001
wire_reg [2018/09/11 09:16] (当前版本)
group001
行 60: 行 60:
  
 wire只能被assign连续赋值,reg只能在initial和always中赋值。\\ ​ wire只能被assign连续赋值,reg只能在initial和always中赋值。\\ ​
 +<code verilog>
  
 比如: 比如:
行 76: 行 77:
   endmodule   endmodule
  
 +</​code>​
 其实他们是不同的抽象级别,wire 如同vhdl中的signal类型,是和实际的物理连接对应的,而reg属于算法描述层次用的类型,和实际电路没有直接的对应关系,也就是说它相当于c语言中的变量(int,float等),vhdl中的variable。reg不和实际的电路如寄存器对应,高层次的描述时用。而always其实算是算法级描述的语句,所以其中的变量必须声明为reg。\\ ​ 其实他们是不同的抽象级别,wire 如同vhdl中的signal类型,是和实际的物理连接对应的,而reg属于算法描述层次用的类型,和实际电路没有直接的对应关系,也就是说它相当于c语言中的变量(int,float等),vhdl中的variable。reg不和实际的电路如寄存器对应,高层次的描述时用。而always其实算是算法级描述的语句,所以其中的变量必须声明为reg。\\ ​
 +<code verilog>
 +
 比如:一个简单的组合逻辑的例子,用了reg类型 比如:一个简单的组合逻辑的例子,用了reg类型
   module mux(a,​b,​c,​sel);​   module mux(a,​b,​c,​sel);​
行 86: 行 90:
   endmodule;   endmodule;
  
 +</​code>​
 这个综合出来就是一个简单的二选一选择器,组合逻辑电路。\\ ​ 这个综合出来就是一个简单的二选一选择器,组合逻辑电路。\\ ​