搜索
bottom↓
回复: 13

请问分频是怎么弄的啊

[复制链接]

出0入0汤圆

发表于 2013-10-18 20:47:32 | 显示全部楼层 |阅读模式
我刚开始定义了一个reg [25:0]counter;执行always语句的时候:begin counter=counter+1;if(counter==26'bxxxxxxxx)......,这个26‘bxxxxxxx就是我的分频系数吧,最后得到的频率就死20M除以这个数吧?为什么不管我怎么改这个26’bxxxxx的值,小灯闪烁的时间就是不变呢(我做的流水灯式样),一直都是那个时间,一秒多一点

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-10-18 20:49:01 | 显示全部楼层
Verilog  代码贴上来

出0入0汤圆

发表于 2013-10-18 20:50:55 来自手机 | 显示全部楼层
阻塞赋值和非阻塞赋值楼主请区分

出0入0汤圆

发表于 2013-10-19 09:05:02 | 显示全部楼层
为什么不调用分频器模块呢?

出0入0汤圆

 楼主| 发表于 2013-10-19 14:48:32 | 显示全部楼层
proteldxp 发表于 2013-10-18 20:49
Verilog  代码贴上来

module led(clk,led);
output[4:0]led;
input clk;
reg[4:0] led_out;
reg[4:0] led_out1;
reg[24:0]buffer;
always@(posedge clk)
begin
        if(led_out==6'b11111)
                begin led_out=6'b00001;end
        buffer=buffer+1;
        if(buffer==25'd2000000)
        begin
        led_out=led_out<<1;
        if(led_out==6'b00000)
                led_out=6'b00001;
        led_out1=led_out;
  end
end
assign led=~led_out1[4:0];
endmodule

这是我的全部代码,当我把reg[24:0]buffer改成reg[22:0]buffer的时候,小灯闪烁的频率会加快,但若不该数组的长度,就只修改buffer的值的话,小灯闪烁的频率不变,这是怎么回事哦

出0入0汤圆

 楼主| 发表于 2013-10-19 14:49:23 | 显示全部楼层
yuntian86 发表于 2013-10-19 09:05
为什么不调用分频器模块呢?

大神,我还是个新手,没用过分频模块啊

出0入0汤圆

 楼主| 发表于 2013-10-19 14:51:05 | 显示全部楼层
xivisi 发表于 2013-10-18 20:50
阻塞赋值和非阻塞赋值楼主请区分

阻塞幅值?非阻塞幅值?我以前好像隐约看见过,不过不知道他们是什么意思,请大神指点

出0入0汤圆

发表于 2013-10-19 15:11:19 来自手机 | 显示全部楼层
cosxu 发表于 2013-10-19 14:51
阻塞幅值?非阻塞幅值?我以前好像隐约看见过,不过不知道他们是什么意思,请大神指点 ...

先看书吧,看不懂再问

出0入0汤圆

发表于 2013-10-20 20:03:24 | 显示全部楼层
25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎么程序判断是6位?

出0入0汤圆

发表于 2013-10-21 07:25:57 | 显示全部楼层
cosxu 发表于 2013-10-19 14:49
大神,我还是个新手,没用过分频模块啊

我也不是大神了,我是在Quartus 下菜单TOOLS下Megawized Plug-in Manager

出0入0汤圆

 楼主| 发表于 2013-10-21 17:57:31 | 显示全部楼层
smallwind1 发表于 2013-10-20 20:03
25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎 ...

嗯,这里是有点错误,但我后面改了还是不行啊,只改counter的大小而不该长度的话闪烁时间还是不变

出0入0汤圆

 楼主| 发表于 2013-10-21 17:59:47 | 显示全部楼层
yuntian86 发表于 2013-10-21 07:25
我也不是大神了,我是在Quartus 下菜单TOOLS下Megawized Plug-in Manager

没用过

出0入17汤圆

发表于 2013-10-21 18:30:34 | 显示全部楼层
你的buffer一直没有清零,闪烁频率当然不会变。

比如说现在buffer是100,计数到100的时候,灯跳一次,然后继续计数,计到最大的时候,buffer变为0,然后重新计数到100的时候,灯跳一次。

所以跳的周期一直都是buffer的最大值。

如果想根据buffer 值改变周期的话,那就计到100的时候,清零

出0入0汤圆

 楼主| 发表于 2013-10-23 14:05:18 | 显示全部楼层
流氓马 发表于 2013-10-21 18:30
你的buffer一直没有清零,闪烁频率当然不会变。

比如说现在buffer是100,计数到100的时候,灯跳一次,然后 ...

好吧,我试试看
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表