微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教一个FPGA的问题。

请教一个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也是低电平?

看不到图,
这里是个寄存器

是 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整个为高电平的时间正好是一个周期。是我自己搞错了。

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

网站地图

Top