|
楼主 |
发表于 2011-6-19 21:42:36
|
显示全部楼层
回复【17楼】night_0309
-----------------------------------------------------------------------
四楼的代码有问题吧,正确的代码如下,你可以试试:
//实现功能:对clk进行5分频,同时占空比为1:4
module func(clki,rstn,clko,cntr_over,sftr);
input clki;
input rstn;
output reg clko;
output cntr_over;
output sftr;
reg [3:0] cntr;
reg [3:0] sftr;
wire cntr_over =(cntr==9);
always @ (posedge clki )
cntr<=(cntr_over)?0:(cntr+1);
always @ (posedge clki)
if (~rstn) sftr<=4'b0001 ; //一定要有rstn信号,否则5位都是0
else if (cntr_over)
sftr[3:0]<={sftr[2:0],sftr[3]}; //循环左移一位。//右移也可以 只要是循环就行
always @ (posedge clki)
clko<=sftr[0] ;// 取sftr的任何一位都可以
endmodule |
|