Verilog 编写的8分频模块,32分频模块求高手详细解释一下,我是新手 急用。。谢谢
发布网友
发布时间:2022-05-05 06:49
我来回答
共2个回答
热心网友
时间:2023-10-13 19:23
第一个程序:clk1输出占空比为50%,当count=000~011(0到3)的时候,clk1=count[2]=0;当count=100~111(4~7)的时候,clk1=count[2]=1;count从0~7循环,即完成8分频
第二个程序:clk2输出占空比为50%,当count=00000~01111(0~15)的时候,clk1=count[2]=0;当count=10000~11111(16~31)的时候,clk1=count[2]=1;count从0~31循环即完成32分频追问谢谢啦。。我想问下你当初始CLK 为多少的时候才会用到8分频和32分频
追答这个要根据你的实际需求,比如说你的板子上只有50mhz的晶振,但是你需要的频率是50/8=6.25mhz的,那么你就需要这个8分频的电路去分频啦
热心网友
时间:2023-10-13 19:23
mole freq_divider #
(
parameter DIV_FACTOR = 32
)
(
input clk ,
input rst ,
output reg div_clk
);
reg [7 0] div_cnt ;
always @(posedge clk or posedge rst)
if (rst)
div_cnt <= 0;
else
div_cnt <= (div_cnt == DIV_FACTOR ) ? 0 :div_cnt + 1;
always@(posedge clk or posedge rst)
if (rst)
div_clk <= 1'b0;
else
div_clk <= (div_cnt < DIV_FACTOR/2);
endmole
例化时配置一下参数DIV_FACTOR就OK了!!
热心网友
时间:2023-10-13 19:23
第一个程序:clk1输出占空比为50%,当count=000~011(0到3)的时候,clk1=count[2]=0;当count=100~111(4~7)的时候,clk1=count[2]=1;count从0~7循环,即完成8分频
第二个程序:clk2输出占空比为50%,当count=00000~01111(0~15)的时候,clk1=count[2]=0;当count=10000~11111(16~31)的时候,clk1=count[2]=1;count从0~31循环即完成32分频追问谢谢啦。。我想问下你当初始CLK 为多少的时候才会用到8分频和32分频
追答这个要根据你的实际需求,比如说你的板子上只有50mhz的晶振,但是你需要的频率是50/8=6.25mhz的,那么你就需要这个8分频的电路去分频啦
热心网友
时间:2023-10-13 19:23
mole freq_divider #
(
parameter DIV_FACTOR = 32
)
(
input clk ,
input rst ,
output reg div_clk
);
reg [7 0] div_cnt ;
always @(posedge clk or posedge rst)
if (rst)
div_cnt <= 0;
else
div_cnt <= (div_cnt == DIV_FACTOR ) ? 0 :div_cnt + 1;
always@(posedge clk or posedge rst)
if (rst)
div_clk <= 1'b0;
else
div_clk <= (div_cnt < DIV_FACTOR/2);
endmole
例化时配置一下参数DIV_FACTOR就OK了!!