调用quartusII下的异步fifo后单独进行时序仿真不正确的原因 10

我调用了quartusII下的异步fifo,然后编写了简单的fifo控制器,进行功能仿真正确但进行时序仿真的时候在输出的数据之间总会有那么0.几纳秒会输出奇怪的数,貌似是... 我调用了quartusII下的异步fifo, 然后编写了简单的fifo控制器 ,进行功能仿真正确但进行时序仿真的时候在输出的数据之间总会有那么0.几纳秒会输出奇怪的数,貌似是因为datatout中的某一位提前变化了。 问如何去解决这个问题呢?我的clk给的是30ns,wrclk是20ns,rdclk是10ns,datain为30ns。控制程序只用到了wrusedw和rdusedw来判断。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity fifoctrl is
port(
clk: in std_logic;
rst: in std_logic;
wren:buffer std_logic;
rden: buffer std_logic;
wrusedw: in std_logic_vector(7 downto 0);
rdusedw: in std_logic_vector(7 downto 0)
-- wrfull:in std_logic;
-- rdempty:in std_logic
);

end entity;

architecture behav of fifoctrl is

begin
process(rst,clk)
begin
if rst='1' then
wren<='0';
rden<='0';
elsif clk'event and clk='1' then
wren<='1';
if(wrusedw> 200) then
wren<='0';
rden<='1';
elsif(rdusedw>200)then
wren<='1';
rden<='0';
end if;
end if;
end process;

end behav;

希望高手给予指点
展开
 我来答
nereus78e904
2013-11-09 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1914万
展开全部
好像这个问题与有些书上介绍的“FPGA存在延迟不可预测的缺陷”这一说法有关。
我在遇到这类问题的时候,采用不修改描述,而是将所选的器件换成CPLD(比如MAX系列)后,仿真就不会出现上述问题了。
但如何在仍然选用FPGA的情况下,通过修改描述来避免这类问题的出现,我并无经验。抱歉!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式