先回答你的问题:用于产生“fuwei”信号的时钟 “clk”就是DCM的输入时钟。
为了说明问题,我建了一个工程。顶层模块如下:
module sample32mega(CLKIN_IN, rst, CLKFX_OUT, CLKIN_IBUFG_OUT, CLK0_OUT, LOCKED_OUT);
input CLKIN_IN;
output rst;
output CLKFX_OUT;
output CLKIN_IBUFG_OUT;
output CLK0_OUT;
output LOCKED_OUT;
reg rst = 1'b1;
reg cnt = 3'd0;
always@(posedge CLKIN_IN)
if(cnt != 3'd5) cnt <= cnt + 3'd1;
else begin cnt <= 3'd0;
rst <= 1'b0; end
my_dcm dcm1( .CLKIN_IN(CLKIN_IN),
.RST_IN(rst),
.CLKFX_OUT(CLKFX_OUT),
.CLKIN_IBUFG_OUT(),
.CLK0_OUT(),
.LOCKED_OUT(LOCKED_OUT) );
endmodule
综合时没有错误,但有3个警告。如下——
WARNING:Xst:1306 - Output <CLKIN_IBUFG_OUT> is never assigned. WARNING:Xst:1306 - Output <CLK0_OUT> is never assigned. WARNING:Xst:1305 - Output <rst> is never assigned. Tied to value 1. 主频50MHz。我是这样想的:
dcm的复位脚和reg型的变量rst相连。
rst初始化为1。5个时钟周期后赋0。
这样就实现了100ns复位。
可警告好像说我没有赋值,因此接到1。
是语言问题还是别的?
[ 本帖最后由 andyandy 于 2010-8-29 11:47 编辑 ] |