目录
wire型
reg型
Memory型
wire型
 
 wire 类型变量,也叫网络类型变量,用于结构实体之间的物理连接,如门与门之间,不能储存值,用连续赋值语句 assign 赋值,定义为  
 
wire [n-1:0] a ; 
 其中 n 代表位宽,如定义  
 
wire a ; assign a = b ; 
 是将 b 的结点连接到连线 a 上。如下图所示,两个实体之间的连线即是 wire 类型变量。 
 
 
 
reg型
  reg 类型变量,也称为寄存器变量,可用来储存值,必须在 always 语句里使用。其定义为 
 
reg [n-1:0] a ;表示 n 位位宽的寄存器,如
 reg [7:0] a; 表示定义 8 位位宽的寄存器 a。如下所示定义了寄存器 q,生成的电路为时序逻辑,图为其结构,为 D 触发器。
(CSDN代码块不支持Verilog,代码复制到notepad++编辑器中,语言选择Verilog,看得更清楚)
module top(d, clk, q) ;
input d ;
input clk ;
output reg q ;
always @(posedge clk)
begin
 q <= d ;
end 
endmodule
 
  也可以生成组合逻辑,如数据选择器,敏感信号没有时钟,定义了  
  reg Mux 
  ,最终生成电路为组合逻辑。  
 
 
 module top(a, b, c, d, sel, Mux) ;
input a ;
input b ;
input c ;
input d ;
input [1:0] sel ;
output reg Mux ;
always @(sel or a or b or c or d)
begin
 case(sel)
 2'b00 : Mux = a ;
 2'b01 : Mux = b ;
 2'b10 : Mux = c ;
 2'b11 : Mux = d ;
 endcase
end
 
endmodule
Memory型
 
   可以用  
   memory  
   类型来定义  
   RAM,ROM  
   等存储器,其结构为 
  
 
  reg [n-1:0] 存储器名[m-1:0];意义为 m 个 n 位宽度的寄存器。例如,
reg [7:0] ram [255:0];
表示定义了 256 个 8 位寄存器,256 也即是存储器的深度,8 为数据宽度。



















