#FPGA学习笔记# 计数器的实现

一、项目原理

500ms,led翻转一次,系统时钟为50M~20ns;

计数25_000_000次

二、实验代码


//项目文件
module Count(clk,rst,led);
input clk;
input rst;
output reg led;

reg [24:0]count_i;
//产生一个每10ns翻转的时钟
always @(posedge clk or negedge rst)
	if(!rst)//低电平
		count_i <= 25'd0;
	else if(count_i == 25'd24_999_999)
		count_i <= 25'd0;
	else
		count_i <= count_i + 1'b1;
//灯翻转
always @(posedge clk or negedge rst)
	if(!rst)
		led <= 1'b1;
	else if(count_i == 25'd24_999_999)
		led <= ~led;
	else 
		led <= led;
endmodule

//测试文件
`timescale 1ns/1ns
`define clock_period 20
module TestCount;
reg i_clk;
reg i_rst;
wire o_led;
Count count0(
	.clk(i_clk),
	.rst(i_rst),
	.led(o_led)
	);
	initial
		i_clk = 1;
	always #(`clock_period/2)
		i_clk = ~i_clk;
	initial begin
		i_rst = 1'b0;
		#(`clock_period * 200)
		i_rst = 1'b1;
		#2000000000;
		$stop;
	end
	
endmodule	

三、电路截图

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值