打印

VHDL代码的理解

[复制链接]
1642|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fjfzlili|  楼主 | 2009-3-9 11:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我想问一下关于VHDL方面的问题,程序如下所示:
process(clk)
  begin
    if(clk'event and clk='1') then
       if(tout=777777) then  --计数1000000次,输出翻转一次
          tout=0;
          clk10hz<=not clk10hz;
       else
          tout>=tout+1;
       end if;      
    end if;
end process;
在上面的注释程序当中,如果tout=777777的话,为什么说是计数1000000次啊,不是777778次吗?对于这个问题,我一直不解,望高手帮忙解答一下,谢谢.

相关帖子

沙发
zpleo| | 2009-3-9 15:47 | 只看该作者

应该是课本错误



RT

使用特权

评论回复
板凳
fjfzlili|  楼主 | 2009-3-9 16:29 | 只看该作者

还有没有其它的答案?

还有没有其它的答案?

使用特权

评论回复
地板
liuweixing| | 2009-3-10 13:14 | 只看该作者

分析

这里的tout应该是八进制数,1000000是八进制数,不是一百万.但是这段程序绝对是有问题的

使用特权

评论回复
5
zpleo| | 2009-3-11 19:07 | 只看该作者

应该tour=999999

tour=999999 

应该这样才算是计数1000000次。

使用特权

评论回复
6
byfgstj| | 2009-3-24 10:17 | 只看该作者

zpleo说的不全对!

应该有个除2的问题,因为他是计数后来翻转的

使用特权

评论回复
7
wujing198| | 2009-3-25 14:11 | 只看该作者

恩,楼上说的不错

如果是8进制,那么转换后262143,和1000000还是不搭界。

所以严重怀疑书是错的。这二年东拼西凑搞出来的伪书不少。LZ要学习还是买点经典好书来学。

使用特权

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

本版积分规则

8

主题

40

帖子

0

粉丝