打印

verilog任意整数分频的代码

[复制链接]
1166|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiao6666|  楼主 | 2012-10-8 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
verilog任意整数分频的[url=]代码[/url]:

module clk3(clk,rst_n,clkout);

input clk;

input rst_n;

output clkout;





parameter N = 3;

reg clk_n,clk_p;



reg[3:0] cnt_n,cnt_p;



assign clkout =(N ==1)? clk : ( (N[0]==0)? clk_p:(clk_p |clk_n )) ;



always@(posedge clk)begin



if(!rst_n)






cnt_p <= 0;



else begin






if(cnt_p == N-1)









cnt_p <= 0;






else









cnt_p <= cnt_p +1;




end


end




always@(posedge clk)begin



if(!rst_n)






clk_p <= 0;



else begin







if(cnt_p <= (N>>1))









clk_p <= 0;







else









clk_p <= 1;





end


end




always@(negedge clk)begin



if(!rst_n)







cnt_n <= 0;



else begin





if(cnt_n == N-1)







cnt_n <= 0;





else







cnt_n <= cnt_n + 1;



end

end



always@(negedge clk)begin



if(!rst_n)







clk_n <= 0;



else begin





if(cnt_n <= (N>>1))







clk_n <= 0;





else







clk_n <= 1;



end

end

endmodule

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

453

帖子

1

粉丝