循环移位法和数据拼接法基于led
功能描述 让led每隔0.5s从两边向中间闪烁,然后在从中间向两边闪烁,不断循环
项目实现
开发板 晶振为50M,那么达到0.5s时计数器count1需要达到24_999_999这么多次数
计数器代码为
always@(posedge CLK or negedge RSTn)
if(!RSTn)
Count1<='d0;
else if(Count1==TIME)
Count1<='d0;
else
Count1<=Count1+'b1;
可以让前5个led进行循环移位法 后五位进行数据拼接法
循环移位法:先让led灯进行循环右移当达到2.5s时让其反向移动,当到达5s时初始化为0 可以设置一个标志位 在0~2.5s时设置FLAG为0,在2.5~5秒时设置FLAG置一
always@(posedge CLK or negedge RSTn)
if(!RSTn)
begin
FLAG<='b0;
TIME_MS<='b0;
end
else if(Count1==TIME) if(TIIME_MS=='d10)
TIME_MS<='d0;
else if(TIME_MS>='d0&&TIME_MS<4'd5)
FLAG<='b0;
else if(TIME_MS>='d5&&TIME_MS<4'd10)
FLAG<='b1;
else
TIME_MS<=TIME_MS+'b1;
功能模块程序为
always@(posedge CLK or negedge RSTn)
if(!RSTn)
rLED_Out<=5'd1;
else if(!FLAG)
rLED_Out<=rLED_Out>>1;
else if(FLAG)
rLED_Out<=rLED_Out<<1;
在数据拼接中同样的是
always@(posedge CLK or negedge RSTn)
if(!RSTn)
rLED_Out<='b10000;
else if(Count==TIME)
begin
if(!FLAG)
rLED_Out<={'b0,[4:1]rLED_Out};//应为rLED_Out[4:1]
else if(FLAG)
rLED_Out<={[3:]rLED_Out,'b0};
end
然后在顶层模块中组合起来
module led_top_module
(
CLK,RSTn,LED_Out
);
input CLK;
input RSTn;
output [:] LED_Out; wire [:] LED_Out1;
module_yiwei_led U1
(
.CLK(CLK),
.RSTn(RSTn),
.LED_Out(LED_Out1)
); wire[:] LED_Out2;
module_xunhuan_led U2
(
.CLK(CLK),
.RSTn(RSTn),
.LED_Out(LED_Out2)
);
assign LED_Out={LED_Out1,LED_Out2};
rtl 视图为:
循环移位法和数据拼接法基于led的更多相关文章
- led跑马灯多种方法(移位法,位拼接法,调用模块法,位移及位拼接语法,testbench的理解,源文件的存储路径,计数器的个数,调用模块的方式)
跟着教程写了几种方法,才发现自己写的虽然能实现,但比较繁琐.教程有三种方法: 1.移位法,每次左移一位,相比我自己写的,优点是不用把每一种情况都写出来.但是需要考虑左移到最后一位时需要自己再写个赋值语 ...
- 使用java实现快速排序(挖坑填数法和指针交换法)
快速排序:通过一趟排序,将数据分为两部分,其中一部分中的所有数据比另外一部分的所有数据要小,然后按照此方法,分别对这两部分进行排序,达到最终的排序结果. 每趟排序选取基准元素,比该基准元素大的数据放在 ...
- OC中如何把字典中的数据拼接成url字符串
在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...
- 大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 聚类分析算法)
原文:(原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 聚类分析算法) 本篇文章主要是继续上一篇Microsoft决策树分析算法后,采用另外一种分析算法对目标顾客群体的挖掘 ...
- python基础2 数据类型、数据拼接、数据转换
一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...
- Json对象和字符串互相转换 数据拼接 JSON使用方式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 一.JSON字符串转换为JSON对象: eval() 和 JSON.parse eg- json字符串: ...
- 从Exchager数据交换到基于trade-off的系统设计
可以使用JDK提供的Exchager类进行同步交换:进行数据交换的双方将互相等待对方,直到双方的数据都准备完毕,才进行交换.Exchager类很少用到,但理解数据交换的时机却十分重要,这是一个基于tr ...
- Linux下串口操作之数据拼接
串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...
- C实现头插法和尾插法来构建单链表(不带头结点)
链表的构建事实上也就是不断插入节点的过程.而节点的插入能够分为头插法和尾插法. 头插法就是在头结点后插入该节点,始终把该节点作为第一个节点.尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点. ...
随机推荐
- Jmeter(四)-断言/检查点
断言就类似LoadRunner中的检查点.对上一个请求返回的信息,做字符串.数据包大小.HTML.XML.图片等做判断,确保返回的信息的准确性. 添加响应断言:欢迎您 如果登陆页登陆成功,则后台会返回 ...
- vb.net 结束进程
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ...
- Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作
目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...
- [转]Mac常用软件推荐
https://github.com/hzlzh/Best-App
- jquery 使用attr() 函数对复选框无效的原因
复选框是网站开发的时候经常用到的网页标签之一,常见的在页面上对复选框的操作包括取值和修改复选框的状态.在jquery中,常见的操作标签的值得函数为attr,然而在操作复选框的时候,通常采用的却是pr ...
- ACM-ICPC之路
自从了解到了ACM,我就坚定了参加这个比赛的信心.虽然零基础开始,但是阻挡不了我的前进之路.从大一上学期的完成二十道题,到假期完成四十道题:从第一次校赛不了解退出循环方式只完成了一道题,到大一预选赛第 ...
- 【转】CSS
css概念 http://www.cnblogs.com/moveofgod/archive/2012/09/18/2691101.html css八大功能 http://developer.51ct ...
- Webdriver其他定位方式
1.下拉框的定位 在遇到select下拉框的选择时,比如: <select id="nr" name="NR"> <option select ...
- Nginx下$_POST获取不到数据的解决方法
运行环境:windows+phpstorm+Nginx 步骤1:找到php.ini 配置文件,查找enable_post_data_reading变量,把Off改为On,确保其打开状态: 步骤2:将p ...
- echarts 折柱混合图 (绑数据后)
html: <div class="flot-chart-content" id="flot-dashboard-chart"></div&g ...