请教一个FPGA的问题。
时间:10-02
整理:3721RD
点击:
always @( posedge clk1 )
begin
if (rd_ack == 1'b1)
rd_out<= 1'b1;
else
rd_out <= 1'b0;
end
在实际中,rd_ack 只在每个时钟的前1/8为高电平,想输出的结果是rd_out在整个时钟内都是高电平。在chipscope中仿真的结果却是这样的:请问一下原因是什么,[img]file:///C:/Users/wjk/AppData/Roaming/Tencent/Users/2845746283/QQ/WinTemp/RichOle/H__SKKMVY%60IJ%7DAY[%7BWD9Q@N.jpg[/img],难倒这个模块不是综合成触发器吗?怎么到rd_ack为低电平的时候,rd_out也是低电平?
begin
if (rd_ack == 1'b1)
rd_out<= 1'b1;
else
rd_out <= 1'b0;
end
在实际中,rd_ack 只在每个时钟的前1/8为高电平,想输出的结果是rd_out在整个时钟内都是高电平。在chipscope中仿真的结果却是这样的:请问一下原因是什么,[img]file:///C:/Users/wjk/AppData/Roaming/Tencent/Users/2845746283/QQ/WinTemp/RichOle/H__SKKMVY%60IJ%7DAY[%7BWD9Q@N.jpg[/img],难倒这个模块不是综合成触发器吗?怎么到rd_ack为低电平的时候,rd_out也是低电平?
看不到图,
这里是个寄存器
是 D-FF 沒錯, 每次 clock 上升緣時, 它都看到那 1/8 的 rd_ack=1, 所以自然 rd_out 總是 1
rd_ack是clk的1/8个周期,那么就是异步设计,这里代码写的是个同步的触发器,怎么解决rd_ack采样不到的问题。
可能是没有踩到吧,1/8时钟,建立保持时间是不是不合理。
我也觉得是不是建立时间和保持时间的问题? 另外,你的问题是不是就是,本来想做成以clk信号作为时钟的触发器,结果clk信号没起到采样效果?
问题解决了,clk的频率很高,rd_ack整个为高电平的时间正好是一个周期。是我自己搞错了。
