打印

quartus VHDL语言仿真问题

[复制链接]
1762|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wdoos|  楼主 | 2012-11-3 17:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity vhdlfinal is
  port(clk,en:in std_logic;
       con:buffer std_logic);
end vhdlfinal;
architecture one of vhdlfinal is
signal q:std_logic_vector(5 downto 0);
begin
process(clk,en)
begin
if en='1' then
  if clk'event and clk='1' then q<=q+1;
  end if;
elsif en='0' then
  if (q<5 or q>7) then q<=(others=>'0');
  elsif q=6 then con<=not con;
                      q<=(others=>'0');
  elsif q=7 then con<=not con;
                      q<=(others=>'0');
  else q<=(others=>'0');
  end if;

end if;
end process;
end one;

仿真结果如图所示,我想实现的功能是,在en为1时对时钟进行计数,当en为0时结束并判断计数值决定con是否反转,图中第一段脉冲为6,第二段为7,第三段为9,con在第一段结束时发生反转,功能正常,但是在第二段为7时,con却反转多次,请问这是为什么?还有,我还尝试过(q<8 and q>5)这样的条件,结果相同

相关帖子

沙发
wdoos|  楼主 | 2012-11-4 20:02 | 只看该作者
木有人会么

使用特权

评论回复
板凳
lxAPP| | 2012-11-4 20:10 | 只看该作者
猴哥来帮忙啊

使用特权

评论回复
地板
GoldSunMonkey| | 2012-11-4 20:41 | 只看该作者
语句没有仔细看,但是搭眼看了一下代码,觉得风格太差,可能会造成该结果。

使用特权

评论回复
5
wdoos|  楼主 | 2012-11-5 22:34 | 只看该作者
5# GoldSunMonkey 说的好蛋疼。。。。。

使用特权

评论回复
6
wdoos|  楼主 | 2012-11-5 22:36 | 只看该作者
5# GoldSunMonkey 怎样风格不差,我看着挺工整啊,就这么几行

使用特权

评论回复
7
GoldSunMonkey| | 2012-11-5 22:37 | 只看该作者
5# GoldSunMonkey  说的好蛋疼。。。。。
wdoos 发表于 2012-11-5 22:34

我不知道该怎么回答你。
你认为好,就好呗。我只是建议而已。

使用特权

评论回复
8
星星之火红| | 2012-11-18 16:48 | 只看该作者
我不知道该怎么回答你。
你认为好,就好呗。我只是建议而已。
GoldSunMonkey 发表于 2012-11-5 22:37
是建议而已哦。

使用特权

评论回复
9
xiao6666| | 2012-11-18 17:06 | 只看该作者
;P

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

46

帖子

1

粉丝