用quartus做lms算法。期间遇到的clk的问题。请高手帮忙!
时间:10-02
整理:3721RD
点击:
用的aitera公司DE2的板子。因为没有ADC。所以只能将我要的数据存入到片内rom中。现在是我写的verilog程序。
关键部分如下。
module lms(Clk,Enable,Error_out);
input
Clk,Enable;
output
signed [15:0] Error_out;(这个是经过自适应后的输出)
wire signed [15:0] Data_in,Desired_in;(前者是噪声的输入,后者是信号+噪声的输入)
reg [9:0] cnt = 10'd0;//0~1023
always @(posedge Clk)
begin
cnt <= cnt + 10'd1;
end
reg Reset = 1'b0;
always @(posedge Clk)
begin
if(cnt == 10'd1)
Reset <= 1'b0;
else if(cnt == 10'd2)
Reset <= 1'b1;
else if(cnt == 10'd3)
Reset <= 1'b0;
else
Reset <= Reset;
end (这一部分是做reset的功能)
reg [9:0] addra = 10'd0;
always @ (posedge Clk)
begin
if(Reset)
addra <= 10'd0;
else
addra <= addra + 10'd1;
end
noise rom2 (.clock(Clk),
.address(addra),
.q(Data_in)
); (这一部分是做噪声信号存入rom中,调用模块)
reg [9:0] addrb = 10'd0;
always @ (posedge Clk)
begin
if(Reset)
addrb <= 10'd0;
else
addrb <= addrb + 10'd1;
end
mix rom1 (.clock(Clk),
.address(addrb),
.q(Desired_in)
); (这一部分是做信号+噪声存入了rom中,调用模块提供输入波形)
……………………………………………………………………………………………………………………(剩下的是其余lms的算法,那些模块都没问题。)
经过上面我写的东西。quartus爆出警告。Warning (332060): Node: Clk was determined to be a clock but was found without an associated clock assignment. (我已经将clk接了晶振的引脚了,但为什么说Clk被确定为一个钟,但是时没有发现一个关联的时钟赋值。)
核心警告。Critical Warning (332168): The following clock transfers have no clock uncertainty assignment. For more accurate results, apply clock uncertainty assignments or use the derive_clock_uncertainty command.
Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Rise) (setup and hold)
Critical Warning (332169): From altera_reserved_tck (Rise) to altera_reserved_tck (Fall) (setup and hold)
Critical Warning (332169): From altera_reserved_tck (Fall) to altera_reserved_tck (Fall) (setup and hold)
而且这个问题就是在写了。rom模块调用后。出现的警告!这里的调用我写错了?
求各位高手。帮忙看看额~不知道是不是我的代码写错了啊?还是怎么了?
因为没有SDC时序约束文件。综合一次后,可进TimeQuest用向导一步步生成一个简单的SDC文件,保存成【工程名】.sdc放在工程目录下再综合一遍即可。
这个可能是因为你的晶振引脚没有接在fpga的时钟专用引脚上,是硬件电路的问题,不过一般没有什么问题,我估计你这个lms算法也就是运行在100MHz左右,对时钟没什么大的影响,不必关心。
fpga的引脚分为普通的用户IO,时钟专用io,电源和地,一般设计的时候为了保证时钟特性,大部分会将晶振的引脚接在fpga的时钟专用引脚上,但是很多初学者在画板子的时候没主意这个问题。当fpga的运行频率不是很高的时候,这个问题是个小问题,除非你用在比如pcie等高速接口的时候才必须主意这一点。
