FPGA分频器(20ns分为1ms)

本文介绍了一个使用Verilog实现的时钟分频器模块,该模块通过计数器控制,能够产生精确的时钟分频信号。模块接收输入时钟、复位信号,并输出分频后的时钟信号和一个用于同步操作的辅助信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

module clk1 #
(
parameter N=100000,
parameter M=N/2
)
(
input clk,
input rst,
output ad_o,
output ad_o1
);
  
reg  [17:0] cont;
always@(posedge clk)
begin
    if(~rst)
        cont<=0;
    else if(cont==N-1)
        cont <=0;
    else
        cont<=cont+1'b1;
end

reg vs;
always@(posedge clk)
begin
    if(~rst)
         vs<=0;
    else if(cont==M-1)
        vs<=1'b1;
     else if(cont==N-1)
        vs<=1'b0;
end
assign ad_o=cont;
assign ad_o1=vs;
endmodule
测试:

`timescale 1ns/1ps

module clk1text();
reg clk;
reg rst;

initial
begin
    rst=0;
    #100 rst=1;  
#100000 $stop; 
end

initial
begin
    clk=0;
end


parameter N=10000;
parameter M=N/2;

always #5 clk<=~clk;
clk1 
clk1_inst
(
    .clk(clk),
    .rst(rst),
    .ad_o(),
    .ad_o1()
    
);

endmodule


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yang_wei_bk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值