【黑金教程笔记之002】【建模篇】【Lab 01 永远的流水灯】—笔记&勘误
学习并行操作的思想。
勘误001:
Page 17,模块图下方,“扫描频配置定为100Hz”应为10Hz。
勘误002:
Page 17,最后一行
“10ms”应为100ms;“2.5ms”应为25ms;(ps:这里用1000ms,每个led亮250ms效果比较明显)
源码如下:
/*************************************************
module name:led0_module.v
function:drive led on for 25ms; by yf.x
2014-11-3
**************************************************/
module led0_module(
CLK,RST_n,LED0
); input CLK,RST_n;
output LED0; /****************************************/
//DE2-115 has 50MHz oc,so 50M*1s=50_000_000
parameter T1000ms='d50_000_000;
/****************************************/
//1000ms counter reg [:]count1; always @(posedge CLK or negedge RST_n)
if(!RST_n)
count1<='d0;
else if(count1==T1000ms)
count1<='d0;
else
count1<=count1+'b1; /***************************************/
// control led on for 100ms reg rLED; always @(posedge CLK or negedge RST_n)
if(!RST_n)
rLED<='b0;
else if(count1>='d0 && count1<26'd1_2500_000)
rLED<='b1;
else
rLED<='b0; /***************************************/ assign LED0=rLED; endmodule
/*************************************************
module name:led1_module.v
function:drive led on for 25ms; by yf.x
2014-11-3
**************************************************/
module led1_module(
CLK,RST_n,LED1
); input CLK,RST_n;
output LED1; /****************************************/
//DE2-115 has 50MHz oc,so 50M*1=50_000_000
parameter T1000ms='d50_000_000;
/****************************************/
//1000ms counter reg [:]count1; always @(posedge CLK or negedge RST_n)
if(!RST_n)
count1<='d0;
else if(count1==T1000ms)
count1<='d0;
else
count1<=count1+'b1; /***************************************/
// control led on for 100ms reg rLED; always @(posedge CLK or negedge RST_n)
if(!RST_n)
rLED<='b0;
else if(count1>='d1_2500_000 && count1<26'd2_5000_000)
rLED<='b1;
else
rLED<='b0; /***************************************/ assign LED1=rLED; endmodule
/*************************************************
module name:led2_module.v
function:drive led on for 25ms; by yf.x
2014-11-3
**************************************************/
module led2_module(
CLK,RST_n,LED2
); input CLK,RST_n;
output LED2; /****************************************/
//DE2-115 has 50MHz oc,so 50M*1=50_000_000
parameter T1000ms='d50_000_000;
/****************************************/
//1000ms counter reg [:]count1; always @(posedge CLK or negedge RST_n)
if(!RST_n)
count1<='d0;
else if(count1==T1000ms)
count1<='d0;
else
count1<=count1+'b1; /***************************************/
// control led on for 100ms reg rLED; always @(posedge CLK or negedge RST_n)
if(!RST_n)
rLED<='b0;
else if(count1>='d2_5000_000 && count1<26'd3_7500_000)
rLED<='b1;
else
rLED<='b0; /***************************************/ assign LED2=rLED; endmodule
/*************************************************
module name:led3_module.v
function:drive led on for 25ms; by yf.x
2014-11-3
**************************************************/
module led3_module(
CLK,RST_n,LED3
); input CLK,RST_n;
output LED3; /****************************************/
//DE2-115 has 50MHz oc,so 50M*1=50_000_000
parameter T1000ms='d50_000_000;
/****************************************/
//1000ms counter reg [:]count1; always @(posedge CLK or negedge RST_n)
if(!RST_n)
count1<='d0;
else if(count1==T1000ms)
count1<='d0;
else
count1<=count1+'b1; /***************************************/
// control led on for 100ms reg rLED; always @(posedge CLK or negedge RST_n)
if(!RST_n)
rLED<='b0;
else if(count1>='d3_7500_000 && count1<26'd50_000_000)
rLED<='b1;
else
rLED<='b0; /***************************************/ assign LED3=rLED; endmodule
/*********************************
module name:top.v
function:control 4 led on for 250ms
(for DE2-115)
pin assignments:
---------------------------------
CLK----------------------CLOCK_50
RST_n--------------------KEY[0]
LED(0-3)-----------------LEDG[0-3]
--------------------------------- yf.x
2014-11-03
**********************************/ module top(
CLK,RST_n,LED
); input CLK,RST_n;
output [:]LED; /*********************************/ wire [:]LED_out; led0_module u0(
.CLK(CLK),
.RST_n(RST_n),
.LED0(LED_out[])
); /*********************************/ led1_module u1(
.CLK(CLK),
.RST_n(RST_n),
.LED1(LED_out[])
); /*********************************/ led2_module u2(
.CLK(CLK),
.RST_n(RST_n),
.LED2(LED_out[])
); /*********************************/ led3_module u3(
.CLK(CLK),
.RST_n(RST_n),
.LED3(LED_out[])
); /*********************************/ assign LED=LED_out; endmodule
【黑金教程笔记之002】【建模篇】【Lab 01 永远的流水灯】—笔记&勘误的更多相关文章
- Verilog HDL那些事_建模篇笔记(实验一,实验二)
实验一:永远的流水灯 扫描频率配置为100Hz,即是说扫描周期为10ms.这里需要注意的是扫描周期的概念.流水灯嘛,顾名思义,扫描周期指的是流水灯扫一轮所需要的时间.听到说周期,就应该想到在建模的时候 ...
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块
实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验 ...
- 《Kafka权威指南》读书笔记-操作系统调优篇
<Kafka权威指南>读书笔记-操作系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大部分Linux发行版默认的内核调优参数配置已经能够满足大多数应用程序的运 ...
- 【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...
- Pycharm新手教程,只需要看这篇就够了
pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...
- 【转】寻找最好的笔记软件:海选篇 (v1.0)
原文网址:http://blog.sina.com.cn/s/blog_46dac66f01000b55.html 序言: 我见过的多数软件爱好者,无论是资深用户,还是初级用户,都有一个梦想:找到 ...
- Matlab 多个版本的安装包下载、安装和激活教程 + 多套数学建模视频教程
目录 1. 关键词 1.1. 说明 2. 下载地址 2.1. OneDrive高速云盘 2.1.1. 多版本的安装包 2.1.2. 多套数学建模的视频教程 2.2. 百度云 3. 安装教程 1. 关键 ...
- js便签笔记(12)——浏览TOM大叔博客的学习笔记 part2
1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭 ...
随机推荐
- Method, apparatus and system for acquiring a global promotion facility utilizing a data-less transaction
A data processing system includes a global promotion facility and a plurality of processors coupled ...
- Hadoop经典书籍资料收藏(35本)转
原文地址:http://www.hadoopor.com/thread-5128-1-2.html 1."Hadoop.Operations.pdf.zip" http://vdi ...
- WinCE5.0如何安装.NET3.5
首先去微软官网下载.NET Compact Framework 3.5 Redistributable 点击下载 下载页面 一共有两种安装方式,我们先介绍常规的安装方式 1.设备连接到电脑,然后双击下 ...
- struts2 自己定义表单
自己定义表单一定会涉及<s:iterator/>迭代,一个复杂的自己定义表单可能会嵌套n多层迭代. 比方一个自己定义一个问卷调查页面涉及3个模型:一个Survey代表一个调查.一个Page ...
- wikioi 2147 bitset+map解决
题目描写叙述 Description 小明是一名天文爱好者,他喜欢晚上看星星.这天,他从淘宝上买下来了一个高级望远镜.他十分开心.于是他晚上去操场上看星星. 不同的星星发出不同的光,他的望远镜能够计算 ...
- 【APUE】进程基础
进程标识符:非负整数 ID为0的进程通常是是调度进程,常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程 ID为1的进程是init进程,在自举过程结束时由内核调用 ...
- 转: eclipse 快捷键列表(功能清晰版本)
转自: http://www.uml.org.cn/mobiledev/201110092.asp Eclipse 在开发中使用到的快捷键很实用噢 Ctrl+1 快速修复(最经典的快捷键,就不用多说了 ...
- iptables防火墙以及网络协议基本原理
一. Linux 网络安全模型 1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件.也可能两者结合. 1) 通常使用的防火墙设备 ...
- [Bash] Find Files and Folders with `find` in Bash
find is a powerful tool that can not only find files but it can run a command on each matching file ...
- 在开发过程中,如何在手机上测试vue-cli构建的项目
由于有时候谷歌手机调试与真是的手机环境还是有一定的差距,所以需要在手机上测试项目. 手机上测试vue-cli构建项目方法: 打开项目config/index.js文件,找到module.exports ...