微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 用quartus做lms算法。期间遇到的clk的问题。请高手帮忙!

用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等高速接口的时候才必须主意这一点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top