请问分频是怎么弄的啊
我刚开始定义了一个reg counter;执行always语句的时候:begin counter=counter+1;if(counter==26'bxxxxxxxx)......,这个26‘bxxxxxxx就是我的分频系数吧,最后得到的频率就死20M除以这个数吧?为什么不管我怎么改这个26’bxxxxx的值,小灯闪烁的时间就是不变呢(我做的流水灯式样),一直都是那个时间,一秒多一点 Verilog代码贴上来 阻塞赋值和非阻塞赋值楼主请区分 为什么不调用分频器模块呢? proteldxp 发表于 2013-10-18 20:49 static/image/common/back.gifVerilog代码贴上来
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的值的话,小灯闪烁的频率不变,这是怎么回事哦 yuntian86 发表于 2013-10-19 09:05 static/image/common/back.gif
为什么不调用分频器模块呢?
大神,我还是个新手,没用过分频模块啊 xivisi 发表于 2013-10-18 20:50 static/image/common/back.gif
阻塞赋值和非阻塞赋值楼主请区分
阻塞幅值?非阻塞幅值?我以前好像隐约看见过,不过不知道他们是什么意思,请大神指点 cosxu 发表于 2013-10-19 14:51
阻塞幅值?非阻塞幅值?我以前好像隐约看见过,不过不知道他们是什么意思,请大神指点 ...
先看书吧,看不懂再问 25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎么程序判断是6位? cosxu 发表于 2013-10-19 14:49 static/image/common/back.gif
大神,我还是个新手,没用过分频模块啊
我也不是大神了,我是在Quartus 下菜单TOOLS下Megawized Plug-in Manager smallwind1 发表于 2013-10-20 20:03 static/image/common/back.gif
25'd2000000????d记得好像是10进制吧··2000000,应该是26位吧··还有你那个ledout定义为5位宽的,怎 ...
嗯,这里是有点错误,但我后面改了还是不行啊,只改counter的大小而不该长度的话闪烁时间还是不变 yuntian86 发表于 2013-10-21 07:25 static/image/common/back.gif
我也不是大神了,我是在Quartus 下菜单TOOLS下Megawized Plug-in Manager
没用过
你的buffer一直没有清零,闪烁频率当然不会变。
比如说现在buffer是100,计数到100的时候,灯跳一次,然后继续计数,计到最大的时候,buffer变为0,然后重新计数到100的时候,灯跳一次。
所以跳的周期一直都是buffer的最大值。
如果想根据buffer 值改变周期的话,那就计到100的时候,清零 流氓马 发表于 2013-10-21 18:30 static/image/common/back.gif
你的buffer一直没有清零,闪烁频率当然不会变。
比如说现在buffer是100,计数到100的时候,灯跳一次,然后 ...
好吧,我试试看
页:
[1]