cosxu 发表于 2013-10-18 20:47:32

请问分频是怎么弄的啊

我刚开始定义了一个reg counter;执行always语句的时候:begin counter=counter+1;if(counter==26'bxxxxxxxx)......,这个26‘bxxxxxxx就是我的分频系数吧,最后得到的频率就死20M除以这个数吧?为什么不管我怎么改这个26’bxxxxx的值,小灯闪烁的时间就是不变呢(我做的流水灯式样),一直都是那个时间,一秒多一点

proteldxp 发表于 2013-10-18 20:49:01

Verilog代码贴上来

xivisi 发表于 2013-10-18 20:50:55

阻塞赋值和非阻塞赋值楼主请区分

yuntian86 发表于 2013-10-19 09:05:02

为什么不调用分频器模块呢?

cosxu 发表于 2013-10-19 14:48:32

proteldxp 发表于 2013-10-18 20:49 static/image/common/back.gif
Verilog代码贴上来

module led(clk,led);
outputled;
input clk;
reg led_out;
reg led_out1;
regbuffer;
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;
endmodule

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

cosxu 发表于 2013-10-19 14:49:23

yuntian86 发表于 2013-10-19 09:05 static/image/common/back.gif
为什么不调用分频器模块呢?

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

cosxu 发表于 2013-10-19 14:51:05

xivisi 发表于 2013-10-18 20:50 static/image/common/back.gif
阻塞赋值和非阻塞赋值楼主请区分

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

xivisi 发表于 2013-10-19 15:11:19

cosxu 发表于 2013-10-19 14:51
阻塞幅值?非阻塞幅值?我以前好像隐约看见过,不过不知道他们是什么意思,请大神指点 ...

先看书吧,看不懂再问

smallwind1 发表于 2013-10-20 20:03:24

25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎么程序判断是6位?

yuntian86 发表于 2013-10-21 07:25:57

cosxu 发表于 2013-10-19 14:49 static/image/common/back.gif
大神,我还是个新手,没用过分频模块啊

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

cosxu 发表于 2013-10-21 17:57:31

smallwind1 发表于 2013-10-20 20:03 static/image/common/back.gif
25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎 ...

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

cosxu 发表于 2013-10-21 17:59:47

yuntian86 发表于 2013-10-21 07:25 static/image/common/back.gif
我也不是大神了,我是在Quartus 下菜单TOOLS下Megawized Plug-in Manager

没用过

流氓马 发表于 2013-10-21 18:30:34

你的buffer一直没有清零,闪烁频率当然不会变。

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

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

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

cosxu 发表于 2013-10-23 14:05:18

流氓马 发表于 2013-10-21 18:30 static/image/common/back.gif
你的buffer一直没有清零,闪烁频率当然不会变。

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

好吧,我试试看
页: [1]
查看完整版本: 请问分频是怎么弄的啊