循环移位法和数据拼接法基于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实现头插法和尾插法来构建单链表(不带头结点)
链表的构建事实上也就是不断插入节点的过程.而节点的插入能够分为头插法和尾插法. 头插法就是在头结点后插入该节点,始终把该节点作为第一个节点.尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点. ...
随机推荐
- hdu 2188 选拔志愿者(sg博弈)
Problem Description 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理 ...
- nl2br()与nl2p()函数,php在字符串中的新行(\n)之前插入换行符
使用情景 很多场合我们只是简单用textarea获取用户的长篇输入,而没有用编辑器.用户输入的换行以“\n”的方式入库,输出的时候有时候会没有换行,一大片文字直接出来了.这个时候可以根据库里的“\n” ...
- 手动安装VS code 插件
现在安装包: 通过修改下面的地址参数:https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publish ...
- x264 亮度信号8x8帧内预测模式
1 该模式的8个预测方向与4x4帧内预测模式一样. 2 该模式只有High profile及更高的Profile的才有可能使用,Baseline.Main Profile.Preset为ultrafa ...
- Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏
今日遇到这样一个问题,用vs2010调试C#代码时,只要代码一运行到跟数据库关联的地方时,编译器就报错误,给的提示如:调试器已附加,要继续需要分离什么的,咋一看还以为是vs中调试器设置的问题,可后来仔 ...
- hibernate异常:org.hibernate.MappingException
这个是映射文件配置错误 异常:org.hibernate.MappingException 提示:Could not determine type for: java.lang,String, at ...
- swift 图像的压缩上传
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [Str ...
- jfinal获取服务器的IP和端口
String serverIp = getRequest().getServerName(); Integer serverPort = getRequest().getServerPort();
- MAC下安装automake autoconf工具
I noticed today that while Mac OS 10.6 (specifically, 10.6.2) comes with automake and autoconf, the ...
- vsphere安装虚拟机
新建虚拟机完成后,启动虚拟机,打开启动虚拟机控制台,选择CD/DVD驱动器 选择iso镜像,可以是本地或存储中心的iso,选择后点击虚拟机--客户机--发送Ctrl+Alt+Del,接下来就是正常的操 ...