<Verilog实现数字分频器>小数分频器

一,内容介绍

分频器是数字电路的常见IP,将高频时钟分为低频时钟信号以供外设使用。
下面我们用verilog实现一个偶数分频器
进一步结合奇数分频部分组合为整数分频器
再一步使用整数分频器组合升级为小数分频器

二,小数数字分频器原理

小数数字分频器本质上也是奇偶结合的数字分频器。比如1.5倍数字分频,不是说输出的时钟每一个cycle都是原时钟周期的1.5倍,而是一个一倍分频,在一个两倍分频。两个分频的时钟组合在一起是原时钟的三倍,因此从总的周期来看,是完成了1.5倍分频功能。

三,Verilog实现小数分频器

在这里我直接使用上一篇文章的整数分频器作为我们的子模块。
可以节约一些代码行。

module DEC_DIV (
	input 		clk_i,
	input 		rst_i,
	input [7:0] div_num_i,
	input       division_mode_i,  //1,decimal mode, 0 integer mode
	output wire clk_out_o
);

wire [5:0] div_num_int;
wire [1:0] div_num_dec;
wire [7:0] div_num_0,div_num_1;
wire 	   clk_int,clk_dec,clk_decimal,clk_begin;
reg  [7:0] div_num,m,n,cnt_0;
reg  [1:0] cnt_dec;
reg 	   clk_sel,clkbg;

//--------------state machine signal-----------------//
parameter IDLE = 2'b00;
parameter S1   = 2'b01;
parameter S2   = 2'b10;
parameter S3   = 2'b11;
reg [1:0] div_state,nxt_state;

//----catch div num -----//
assign div_num_int = div_num_i[7:2];
assign div_num_dec = div_num_i[1:0]<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值