数字电路设计自动化作业—2

数字电路设计自动化作业—2

6、半整数分频器

设计思想:
(1)设计一个N分频器,N=m+1;
(2)设计一个扣除脉冲的电路,并把它加到计数器的输出之后,如下图。

在这里插入图片描述
Verilog代码如下:

module div_half(
	input resetn,
	input clk_in,
	output clk_out);
	
	reg [3:0] count; //计数器
	reg div_1, div_2;//脉冲控制端 2、脉冲控制端 3
	wire clk_half; 
	
	parameter N = 12;
	
	assign clk_half = clk_in ^ div_2; //脉冲控制端 1
	
	always @(posedge clk_half or negedge resetn) //模为 n 的加法计数器
		begin
			if(!resetn)
				begin
					count <= 0;
					div_1 <= 0;
				end
			else if (count == N-1)
				begin
					count <= 0;
					div_1 <= 1;
				end
			else
				begin
					count <= count + 1;
					div_1 <= 0;
				end
		end
		
	always @(posedge div_1 or negedge resetn) //2 分频电路
		begin
			if(!resetn)
				begin
					div_2 <= 0;
				end
			else
				begin
					div_2 <= ~div_2;
				end
		end
		
	assign clk_out = div_1;
		
endmodule

测试代码如下:

//div_half_tb
    
`timescale 1 ns/1 ns

module div_half_tb();
    
    reg clk_in, resetn;
    wire clk_out;
    
    div_half my_div_half(
        .clk_in(clk_in),
        .resetn(resetn),
		.clk_out(clk_out)
    );
    
    initial
        clk_in = 0;
    always
        #1 clk_in = ~clk_in;
		  
	 initial
	 begin
        resetn = 0;
		  #5 resetn = 1;
	 end
    
endmodule

仿真波形如下(清晰显示请点开放大):

在这里插入图片描述
设定N为12,m为11,则实现11.5分频。

7、占空比可调分频器

在这里插入图片描述
在这里插入图片描述
Verilog代码如下:

module div_n_m(
	input clk,
	input clr,
	input load,
	input [7:0] M,
	input [7:0] N,
	output reg div_out);
	
	reg [7:0] count;
	
	always @(posedge clk)
		begin
			if (clr)
				count <= 8'd0;
			else if (load)
				count <= M + N;
			else if (count == M + N)
				count <= 8'd0;
			else
				count <= count + 8'd1;
		end
		
	always @(posedge clk)
		begin
			if (count <= M)
				div_out <= 1;
			else
				div_out <= 0;
		end
		
endmodule
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值