计数器问题

[复制链接]
1558|4
 楼主| txcy 发表于 2013-5-26 15:48 | 显示全部楼层 |阅读模式
程序源码:
Signal h_cnt :integer range 0 to 800;
Signal v_cnt :integer range 0 to 525;
CNT:Process(Clk)
Begin
If(Clk'event And Clk = '1') Then
-- horizontal-counter work
If h_cnt < 800 Then       
h_cnt <= h_cnt + 1;
Hs <= '0';
Else
h_cnt <= 0;
Hs <= '1';
End If;
-- vertical-counter work
If v_cnt < 525 Then
v_cnt <= v_cnt + 1;
Vs <= '0';
Else
v_cnt <= 0;
Vs <= '1';
End If;
End If;
End Process;
但时序仿真时,出现以下现象(见图)
------好像,图片显示不出-------
也就是,计数器h_cnt和v_cnt都只能计数到255和127,之后又从0开始重新计数,依旧是到255和127,如此循环。问题是:我设置的是计数额度是800和525,但没有计数到~

请问:各位前辈,高手,这问题出在哪,要怎么修改呢?
火箭球迷 发表于 2013-5-26 16:15 | 显示全部楼层
不要用Integer,用std_logic_vector
baidudz 发表于 2013-5-26 16:19 | 显示全部楼层
可能你vector位宽不对
baidudz 发表于 2013-5-28 23:14 | 显示全部楼层
这程序似乎没有贴全
firstblood 发表于 2013-6-20 22:28 | 显示全部楼层
这个程序貌似调试不通的啊,,,:L:L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部