【发布时间】:2017-08-07 19:00:37
【问题描述】:
我正在尝试将模块与 Xilinx CORE Generator 生成的异步 FIFO 连接。然而,我观察到在 AFIFO 的输入端口提供的数据(虽然是正确的)在 6-7 个时钟周期的延迟后开始出现在 dout 上。这是可以预料的吗?还是我做错了什么?我正在做的是断言 AFIFO 的 write_enable 引脚,提供输入数据,然后在下一个周期断言 read_enable 引脚。但仍然存在延迟问题。任何帮助表示赞赏。
编辑:我附上了我的代码的一部分。
always @ (posedge clk1, posedge rst)//faster clock domain
begin
if (rst)
wr_en<= 1'b 0;
else
begin
if (data_wrt)
begin
wr_en<= 1'b 1;
end
else
wr_en<= 1'b 0;
end
end
always @ (negedge clk2, posedge rst)//slower clock domain
begin
if (rst)
rd_en<= 1'b 0;
else
begin
if (wr_en)
begin
rd_en<= 1'b 1;
end
else
rd_en<= 1'b 0;
end
end
AFIFO AFIFO1(//AFIFO module instantiation
.din(data_in),
.rd_clk(clk2),
.rd_en(rd_en),
.rst(reset),
.wr_clk(clk1),
.wr_en(wr_en),
.dout(data_out),
.empty(empty),
.full(full)
);
【问题讨论】:
-
任何代码片段?
-
如果您的
clk2比clk1慢,您的rd_en触发器可能缺少一些启用信号(在if(wr_en)块中)。 -
那我该怎么办?
标签: verilog fpga fifo xilinx-ise