循环移位法和数据拼接法基于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实现头插法和尾插法来构建单链表(不带头结点)
链表的构建事实上也就是不断插入节点的过程.而节点的插入能够分为头插法和尾插法. 头插法就是在头结点后插入该节点,始终把该节点作为第一个节点.尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点. ...
随机推荐
- Everything(速度快的文件搜索软件) 1.4.1.801b 汉化绿色版
软件名称: Everything(速度快的文件搜索软件) 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 2.0MB ...
- java中的反编译
使用JD-GUI工具 支持mac os 和 windows 地址为:http://jd.benow.ca
- Sipdroid实现SIP(一): 注册
目录 注册: 预注册获取长号和用户注册 预注册返回长号 周期性用户注册 Receiver类概述 SipdroidEngine类概述 Sipdroid类中的用户注册: 注册代理和注册事务 注册代理类Re ...
- Hadoop无法上传文件查找原因
部署了集群,上传测试文件到HDFS文件系统的时候出现问题.could only be replicated to 0 nodes, instead of 1,如下图所示: 度娘寻找解决方案: 博客链接 ...
- ubuntu搭建git服务器
1.准备两台ubuntu虚拟机,其中一个作为server,另一个作为client.检查是否安装ssh,如果没有安装:sudo apt-get install openssh-server, 然后在se ...
- 扯蛋css
使网页旋转代码: javascript:window.i=1;setInterval(function(){i++;document.body.style.cssText+="-webkit ...
- 避免VMware P2V 过程中遇到的磁盘问题及解决 版本5.5
正式步骤开始:填写红色框内相关要被转换成虚拟机的物理机器的账号信息 选择虚拟主机要转换到的目的主机,填写相关的账号信息 设置转换参数:这里要注意一下关于磁盘的设置,注意:如果源系统是LVM的磁盘卷不将 ...
- scala实现快速排序
scala> def qSort(a: List[Int]): List[Int] = { | ) a | else qSort( a.filter(a.head > _ )) ++ | ...
- nsstring遍历汉子
NSString *mytimestr=@"好人一生平安"; size_t length = [mytimestr length]; ; i < length; i++) { ...
- rpm 安装包制作
rpm 安装包制作 思路 参照系统自带 etcd 解压->替换掉执行文件->打包 1 预备安装工具 下载工具 yumloader #yum install -y yum-utils 解压工 ...