一、  设计定义:

计数器设计与验证

LED,每500ms,状态翻转一次也就是亮灭。

第一步:

系统时钟频率为50M,对应为T= =20ns

计数周期或者时间是500ms,计数次数的计算:

计数值=(500ms= 500_000_000ns)/20=25_000_000

第二步:

对计数值位宽的计算:

打开电脑的计数器,输入计算值,可以得到计数值的十六进制为17D_7840.

由于最高位为1,用一个二进制位1表示即可,其他六位十六进制用四个二进制位表示。

位宽=1+6*4=25(位宽等于:最高位的二进制位数+剩余的位数*4)

二设计输入(代码)

这个设计分为两个部分:一是500ms的计数器。二是LED控制,每500MS翻转一次。

module counter_led

(

clk50M,

rst_n,

led

);

input clk50M;   //the frequence system clock

input rst_n;    //global reset,active low level

output led;     //the output IO/port

parameter T500Ms = 25'd24_999_999;

reg [24:0]cnt;  //the shortening of counter,define the counter register

//the counting process of 500Ms counter

always@(posedge clk50M or negedge rst_n)

if(!rst_n)

cnt<=25'd0;

else if(cnt==T500Ms)

cnt<=25'd0;

else

cnt<=cnt+1'b1;

//  the concrl of the output port of led

reg rled;

always@(posedge clk50M or negedge rst_n)

if(!rst_n)

rled<=1'b1;

else if(cnt==T500Ms)

rled<=~rled;

else

rled<=rled;

assign led = rled;

endmodule

三 仿真

//设计的Testbench文件:

`timescale 1ns/1ns

module counter_led_tb;

reg clk;

reg rst;

wire rled;

counter_led counter_led_m0

(

.clk50M(clk),

.rst_n(rst),

.led(rled)

);

initial clk=1;

always begin

#10 clk=~clk;

end

initial begin

rst=0;#2000;

rst=1;#200000;

rst=0;#500_000_000;

rst=1;#600_000_000;

$stop;

end

endmodule

仿真波形如下:

仿真波形正确,led在1000Ms时翻转一次,实现了功能。

今天是我做的一个小实验,LED每500MS翻转一次,很顺利就实现了功能。虽然实验简单,我也学到了知识。一是计数器的使用。计时就是计数。二是LED灯的控制,如翻转和亮灭。三是写文档可以用notepad++和word,排版轻松。我会继续加油!

02 LED翻转与计数器使用的更多相关文章

  1. 51单片机定时器实现LED闪烁

    要启用一个定时器,先要开启定时器,然后产生中断 系统中断: 初始化程序应完成如下工作: 对TMOD赋值,以确定T0和T1的工作方式. 计算初值,并将其写入TH0.TL0或TH1.TL1. 中断方式时, ...

  2. led闪烁(时序输入输出,自定义变量,时钟仿真,执行顺序)

    1.设计定义 设计一个以200ms亮,200ms暗交替闪烁的led灯,并且有一个复位按钮可以停止工作. 2.设计输入 2.1端口 以固定周期交替闪烁说明由时钟控制,需要一个时钟控制端口clk,要求复位 ...

  3. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  4. CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)

    目录 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 1.2 CC2530相关寄存器 1.3 CC2530中断走向图 1.4 使用C语言为51单片机编写中断程序 1.5 *函数指针 2. ...

  5. STC51六中中断配置点亮一个LED

    一.外部中断0.1(分别點亮一個LED) /****************************************************************************** ...

  6. hdu1801 01翻转 贪心

    题目描述: 对于给出的一个n*m的矩形,它由1和0构成,现在给你一个r*c的矩形空间可以选择,且可以选择无数次(被选中的范围内01翻转),要求问将这个01矩阵全部变成0的最少需要翻多少次,且如果无法实 ...

  7. Verilog语法基础讲解之参数化设计

    Verilog语法基础讲解之参数化设计   在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用 ...

  8. 基于FPGA的DW8051移植(二)

    基于上一篇博文继续,本来想换到oc8051,但是还是不甘心,弄了这么久还是没有弄出来,真是打击屎了. 上一篇说3f进入了operation code所以判断是代码错误,后来发现不可以这么判断. 因为地 ...

  9. 增量式PID的stm32实现(转)

    源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: ...

随机推荐

  1. 达拉草201771010105《面向对象程序设计(java)》第八周学习总结

    达拉草201771010105<面向对象程序设计(java)>第八周学习总结 实验六接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) ...

  2. CMSampleBufferRef解析

    CMTime:64位的value,32位的scale, media的时间格式 CMVideoFormatDesc:video的格式,包括宽高.颜色空间.编码格式.SPS.PPS CVPixelBuff ...

  3. 分布式系统一致性问题与Raft算法(下)

    上一篇讲述了什么是分布式一致性问题,以及它难在哪里,liveness和satefy问题,和FLP impossibility定理.有兴趣的童鞋可以看看分布式系统一致性问题与Raft算法(上). 这一节 ...

  4. git上传命令步骤

    1.登陆github后,进入Github首页,点击New repository新建一个项目 2. 填写相应信息后点击create repository即可 Repository name: 仓库名称( ...

  5. maven包引入问题ClassNotFoundException: org.elasticsearch.client.Cancellable

    业务需要,做搜索功能,在springboot聚合项目下,新建了es模块module 但是在引入elasticsearch依赖的时候,出现了问题 引入相应依赖后 <dependency> & ...

  6. 【DirectX 11学习笔记】世界矩阵的理解-运动合成

    最近在看龙书,写一下自己的学习理解,主要是物体运动的合成. 物体于局部坐标系内构建,每个物体拥有自己的局部坐标系以及相应的顶点矩阵A,并通过世界矩阵变换到唯一的世界坐标系. 物体在某时刻发生了位移和旋 ...

  7. 【Amaple教程】5. 插件

    Amaple 拥有非常强大插件功能,这也是它的突出功能之一,Amaple插件一般表现为功能块(函数)或功能块(包含一系列函数和属性的Object对象),它除了支持Amaple规范定义的插件外,还支持所 ...

  8. Vue请求第三方接口跨域最终解决办法!2020最终版!

    废话少说,再百度的近三个小时尝试了近10种方法无解后,终于皇天不负有心人! 这个vue axios 跨域问题被我解决了! 需求:请求客户端ip地址获取客户ip,再根据ip获取用户位置 工具:Vue,a ...

  9. Java避坑宝典《Java业务开发常见错误100例》上线了

    写这个专栏的缘起 之前我写过一篇博客:<朱晔的互联网架构实践心得S2E2:写业务代码最容易掉的10种坑>,引起的关注还是挺多的.后来和极客时间的编辑一拍即合决定以这个为题写一个专栏.其实所 ...

  10. 关于使用map存放数据乱序”问题“

    今天做项目中遇到了一个比较低级的错误,如果没注意将会变的更麻烦... 其实吧,也不难,要求就是将list中的值转为map后,再顺序输出map中的值,list的顺序怎样,加入到map的顺序也应怎样,不能 ...