【FPGA】【Verilog】【基础模块】分频器

1/2分频,借助always 的敏感表实现:

	module half_clk(reset, clk_in,clk_out);
	input clk_in, reset;
	output clk_out;
	reg clk_out;
	
	always @(posedge clk_in)
	begin
	if (!reset)
		clk_out = 0;
	else 
		clk_out = !clk_out;
	end 
endmodule 

       testbench:

`timescale 1ns/100ps
`define clk_cycle 50
module halfclktest;
reg clk_in,reset;
wire clk_out;
always #`clk_cycle clk_in = ~clk_in;
initial
 begin
 clk_in = 0;
 reset = 1;
 #100 reset = 0;
 #100 reset = 1;
 #10000 $stop;
 end
half_clk half_clk(.reset(reset),.clk_in(clk_in),.clk_out(clk_out)) ;
endmodule

1/4分频,借助计数器实现:

module fdivision(reset,f10m,f500k);
	input f10m,reset;
	output f500k;
	reg f500k;
	reg [7:0] j;
		always @(posedge f10m )
			if (!reset)
				begin 
					f500k <= 0 ;
					j <= 0;
				end
			else 
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值