在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7376|回复: 21

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

[复制链接]
发表于 2004-8-24 09:26:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity test2 is
port(x,clk:in std_logic;
     sign,absval: out std_logic
  );
end test2;
architecture behave of test2 is
signal b:std_logic:='1';
signal a:std_logic:='1';
begin   
    process(clk)
  begin
    if clk'event and clk='1' then
    b<=x;   
  end if;
end process;
  process(clk)
begin
   if clk'event and clk='0'  then
  absval<=(a xor x);
sign<=(b xor x);   
     a<=x;
end if;
end process;
上面是我写的一个超前滞后异或门鉴相器,为什么功能仿真时sign,absval的波形是对的,而到了时序仿真时波形就出错了呢?请大家帮帮忙,给解答一下
发表于 2004-8-24 10:19:34 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

时序仿真时都是有时延的
发表于 2004-8-24 11:03:30 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

很有可能是没有初始值所以产生不定态的问题。
signal b:std_logic:='1';
signal a:std_logic:='1';
两句在后仿真时赋初值是被忽略的。
 楼主| 发表于 2004-8-24 11:35:34 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

我对照了一下波形,前两个sign和absval的波形是对的,可是以后的波形就是有对有错的,是不是和初值就没关系了呢?怎么能解决这个时延问题呢?
发表于 2004-8-24 11:44:03 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

你引入的时钟是多少M的?
用的什么器件?
 楼主| 发表于 2004-8-24 12:28:40 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

  器件APEX20K,时钟是16兆的
发表于 2004-8-24 12:59:55 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

应该加复位初试化电路
 楼主| 发表于 2004-8-24 13:09:51 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

加一个reset给a,b赋初值?
 楼主| 发表于 2004-8-24 14:50:55 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

一般时序仿真时波形有延迟时如何处理呢?
发表于 2004-8-24 16:15:25 | 显示全部楼层

为什么功能仿真能实现的到了时序仿真波形就出错了呢?

你这个电路时钟上下沿都用了,加约束的时候要体现出来,要不就干脆当成32M来约束。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-21 18:25 , Processed in 0.036653 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表