笔者最近由于实验室老师的任务安排重新又看了一下分频器的verilog实现,现总结如下,待以后查看之用(重点是查看计数器计到哪个值clk_out进行状态翻转)
1.偶数分频占空比为50%
其实质还是一个N计数器模块来实现,首先要有复位信号,这个复位信号的作用就是使计数器和分频输出clk_out刚开始有一个复位值,其次就是计数翻转了,注意这里是计到哪个值翻转,首先刚开始时reset复位时计数器赋初值为0,然后计数器计到N/2-1时进行clk-out状态翻转,即clk_out<=~clk_out,此时别忘了计数器接着加1操作(count<=count+1),紧接着在计数器计到N-1时clk_out再翻转状态,与此同时计数器进行清零操作。count<=0;
这部分的程序代码如下:
module tmm_c(clk,reset,m,clk_out);
input clk;
input reset;
input [7:0]m;
output clk_out;
reg [7:0]count;
reg clk_out;
always@(posedge clk)
begin
if(reset)
begin
count<=0;
clk_out<=0;
end
else
if(count==m-1)
begin
clk_out<=~clk_out;
count<=0;
end
else
if(cou