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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9936|回复: 11

[求助] 那位大哥救救我呀quartusII仿真遇到错误

[复制链接]
发表于 2010-6-9 20:27:18 | 显示全部楼层 |阅读模式

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

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

x
我在使用quartus ii做时序仿真时,在仿真输入和输出的PIN,可以仿真,可是在仿真一些模块的内部信号时,总是不能仿真出来,我即使添加了NODE,也被忽略了
出现了这样的警告
Warning: No clock transition on "count[0]" register due to stuck clock or clock enable
这样的警告是什么意思呀
发表于 2010-6-9 21:15:34 | 显示全部楼层
你是不是有 gated clock 没有 enable ?
发表于 2010-6-10 09:31:02 | 显示全部楼层
做仿真用modelsim啊,quartus慢死了,仿真不是它的强项
 楼主| 发表于 2010-6-10 09:31:13 | 显示全部楼层
楼上的大哥什么是gated clock还有什么是 enable 呀,小弟新手不明白呀
要不我把程序贴上吧,之前写得更复杂大程序都没问题,这个不知道咋回事
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_signed.all;
ENTITY tongbu  IS
        PORT(        
        CLK                        : IN   std_logic;        --晶振时钟
                clks                : IN   std_logic;        --秒脉冲输入
                reset                : IN   std_logic;       
                clk_tb                : OUT STD_LOGIC ;--同步信号输出
                right                : OUT STD_LOGIC ;
                fault                : OUT STD_LOGIC );

END tongbu ;
ARCHITECTURE a OF tongbu IS
SIGNAL s0        : STD_LOGIC ;
SIGNAL s1        : STD_LOGIC ;
SIGNAL s2        : STD_LOGIC ;
signal count :integer range 0 to 255;
signal pps_count :integer range 0 to 8;
signal low_count :integer range 0 to 8;

BEGIN
process(clks,s0)
begin
if(clks'event and clks='1')then
s1<='1';
end if;
if(s0='1')then
s1<='0';
end if;
end process;

process(CLK,clks,s1,count,reset)
begin
if(s1='1')then
if(CLK'event and CLK='1')then
  if(count=255 or (clks='1' and count>25)or reset='0')then
   count<=0;
  else count<=count+1;
end if;
end if;
end if;
end process;

process(clks,count)
begin
if(clks'event and clks='0')then
if(count<25 and s2='0')then
low_count<=low_count+1;
end if;
end if;
end process;

process(low_count)
begin
if(low_count>1)then
s0<='1';
else s2<='1';
end if;
end process;

process(clks,count,pps_count)
begin
if(count>248 and count<252 and pps_count<4)then
if(clks'event and clks='1')then
pps_count<=pps_count+1;
end if;
end if;
end process;

process(pps_count)
begin
if(pps_count>2)then
right<='1';
fault<='0';
elsif(pps_count<3)then
fault<='1';
right<='0';
end if;
end process;

END a;
发表于 2010-6-10 11:40:08 | 显示全部楼层
把count定义成std_logic试试。
 楼主| 发表于 2010-6-10 15:20:17 | 显示全部楼层
楼上的大哥你好,改成std_logic怎么可以呀,count是个计数器呀
发表于 2010-6-10 15:59:44 | 显示全部楼层
if(count=255 or (clks='1' and count>25)or reset='0')then
   count<=0;
  else count<=count+1;
end if;
感觉是这一段代码有问题的,你要不改成下面这样子再试试
if reset='0' then
   count<=0;
elsif(count=255 or (clks='1' and count>25))then
   count<=0;
else
   count<=count+1;
end if;


另外,std_logic类型是可以用于计数器的
发表于 2010-6-10 18:33:45 | 显示全部楼层
的确,quartus仿真不行
发表于 2010-6-10 18:34:47 | 显示全部楼层
的确,quartus仿真不行
 楼主| 发表于 2010-6-11 11:07:32 | 显示全部楼层
首先谢谢高手们的回答
不过还是不对劲呀,先不说仿真的事在编译时出现这样的警告应该怎么办呀
Warning: No clock transition on "count[0]" register due to stuck clock or clock enable
Warning: Reduced register "count[0]" with stuck clock_enable port to stuck value GND
Warning: No clock transition on "count[1]" register due to stuck clock or clock enable
Warning: Reduced register "count[1]" with stuck clock_enable port to stuck value GND
Warning: No clock transition on "count[2]" register due to stuck clock or clock enable
Warning: Reduced register "count[2]" with stuck clock_enable port to stuck value GND
还有很多类似的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 21:34 , Processed in 0.021080 second(s), 6 queries , Gzip On, Redis On.

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