可控16_8_4_2分频电路设计,控制信号sel分别取值11_10_01_00时,输出对应的16_8_4_2_1分频信号

本文详细介绍了如何使用Verilog设计一个可控的16/8/4/2分频电路,通过计数器和多路选择器,结合控制信号sel来切换不同分频状态。内容包括需求分析、电路构成、Verilog代码及仿真过程,最终在Modelsim中验证了sel取不同值时的分频效果。
摘要由CSDN通过智能技术生成

Verilog HDL可控16/8/4/2分频电路设计,控制信号sel分别取值11/10/01/00时,输出对应的16/8/4/2/1分频信号

需求分析

电路构成分析

首先,可控16/8/4/2分频电路设计可以使用多路选择器,16、8、4、2分别是2的4次方、3次方、2次方、1次方。可以使用计数器对输入时钟信号进行计数,定义一个4位的寄存器cnt16[3:0],用控制信号sel作为控制端控制选择栓择器的4个状态。每过一个时钟上升沿,计数器加1。当sel为00时,输出只要为cnt16[0]就是延迟了一个时钟周期,16/8/4分频以此类推。

verilog代码部分及仿真

verilog代码 sel_div模块

以下为

module sel_div(sel,clk,rstn,fout);
input[1:0] sel;input clk,rstn;output fout;
wire[1:0] sel;wire clk,rstn;reg fout;
reg[3:0]cnt16;
always@(posedge clk or negedge rstn)
	if (~rstn)cnt16<=0;
	else cnt16<=cnt16+1'b1;
always@(posedge clk or negedge rstn)
	if (~rstn)fout<=0;
	else case(sel)
		2'b00:fout<=cnt16[0];
		2'b01:fout<=cnt16[1];
		2'b10:fout<=cnt16[2];
		2'b11:fout<=cnt16[3];
		default:fout<=cnt16[3];
		endcase
endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值