经过一个大神指点,受益良多,自己还处于菜鸟中的菜鸟阶段,记录一下今天下午的收获吧,在别人看来可能很小白,哈哈。
module ADDER(
input [3:0] a,
input [3:0] b,
output [3:0] s,
output c,
input clk,
input rst
);
reg [3:0] s;
reg c;
wire clk_out,clk_out1;
wire lock;
reg [31:0] cnt;
always@(posedge clk)
if(!rst)
begin
c <= 1'b0;
s <= 4'b0000;
end
else
begin
s <= a + b;
c <= 1'b1;
end
endmodule
这是自己写的一个小程序,在ise中加了管脚约束,时序约束后,综合,编译,都没有问题,但观察时序报告发现没有时序分析路径,查看RTL图发现,所设计电路中只有一级触发器,而我的时序约束文件只有period约束,period约束至约束同步时序路径,所以工程中没有约束路径需要分析。加入加上offset约束,情况就不一样了,offset约束了pad到触发器的路径。
此外大神指出了实际项目中常用的一个处理方法,假如在工程的约束文件中有offset约束,那意味着将FPGA的输入信号视为同步信号,为了减小逻辑延迟,输入信号进入FPGA后首先要打一拍,再做其他处理,其原理就是应用了书本上常说的流水线法,在逻辑运算中插入寄存器,提高系统最高运行速度。如果系统中没有offset约束,意味着FPGA系统将FPGA的输入信号视为异步信号,这时候信号进入FPGA后,首先应该打两拍,目的嘛,哈哈和我们在FPGA内的异步信号处理方式是一样的。为了消除毛刺。
当外部输入信号是总线时怎么办,一般异步总线的同步处理方式是FIFO,外部输入异步总线时,需要将总线的时钟信号同时输入。
zhyzhsgg_379291773 2015-11-11 12:12
用户1410292 2015-9-14 10:25
用户1046233 2015-2-2 10:52