module half_clk(reset,clk_in,clk_out); input clk_in,reset; output clk_out; reg clk_out; always @(posedge clk_in) begin if(! reset) clk_out=0; else clk_out = ~clk_out; end endmodule
1:在always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定的,对于reg型数据,如果未对它进行赋值仿真工具会认为它是不定态
2:为了能正确地观察到仿真结果,并确定时序电路的起始相位,在可综合风格的模块中,通常定义一个复位信号reset,当reset为低电平时,对电路中的寄存器进行复位