学习并行操作的思想。

勘误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 永远的流水灯】—笔记&勘误的更多相关文章

  1. Verilog HDL那些事_建模篇笔记(实验一,实验二)

    实验一:永远的流水灯 扫描频率配置为100Hz,即是说扫描周期为10ms.这里需要注意的是扫描周期的概念.流水灯嘛,顾名思义,扫描周期指的是流水灯扫一轮所需要的时间.听到说周期,就应该想到在建模的时候 ...

  2. Python小白的数学建模课-05.0-1规划

    0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...

  3. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块

    实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验 ...

  4. 《Kafka权威指南》读书笔记-操作系统调优篇

    <Kafka权威指南>读书笔记-操作系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大部分Linux发行版默认的内核调优参数配置已经能够满足大多数应用程序的运 ...

  5. 【LaTeX】E喵的LaTeX新手入门教程(1)准备篇

    昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...

  6. Pycharm新手教程,只需要看这篇就够了

    pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...

  7. 【转】寻找最好的笔记软件:海选篇 (v1.0)

    原文网址:http://blog.sina.com.cn/s/blog_46dac66f01000b55.html   序言: 我见过的多数软件爱好者,无论是资深用户,还是初级用户,都有一个梦想:找到 ...

  8. Matlab 多个版本的安装包下载、安装和激活教程 + 多套数学建模视频教程

    目录 1. 关键词 1.1. 说明 2. 下载地址 2.1. OneDrive高速云盘 2.1.1. 多版本的安装包 2.1.2. 多套数学建模的视频教程 2.2. 百度云 3. 安装教程 1. 关键 ...

  9. js便签笔记(12)——浏览TOM大叔博客的学习笔记 part2

    1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭 ...

随机推荐

  1. 前端的指导方针---css篇

    英语是渣渣,想学英语,又不想花钱报培训班.看不懂的文章,还是翻译一下留着自己看吧. 引自   :  https://github.com/bendc/frontend-guidelines HTML ...

  2. 指针与数组的对比(——选自:C++内存管理技术内幕)

    数组: 数组要么是在静态存储区上创建(如全局数组),要么是在栈上创建的.数组名代表着 段连续的内存,其地址和容量在生命周期内是不会改变的,而只能改变其数组内容. 指针: 指针是一种指针类型的变量,变量 ...

  3. TimePickerDialog

    package com.pingyijinren.helloworld.activity; import android.app.TimePickerDialog; import android.su ...

  4. SystemInformationRequestHandlers

    SystemInformationRequestHandlers - Solr Wiki Search: Solr Wiki Login SystemInformationRequestHandler ...

  5. codeforces 1041 d 二分

    题意转化:有一些区间,要求选一些连续的区间.两两区间间隔的和要求小于H.要求区间的长度和尽可能长. 二分区间长度的和,check一下就行 #include <bits/stdc++.h> ...

  6. python学习之-- subprocess模块

    subprocess 模块 功能:用来生成子进程,并可以通过管道连接它们的输入/输出/错误,以及获得它们的返回值.它用来代替多个旧模块和函数: os.system os.spawn* os.popen ...

  7. Codeforces Round Edu 36

    A.B.C 略 D(dfs+强连通分量) 题意: 给出一个n(n<=500)点m(m<=100000)边的有向图,问能否通过删去一条边使得该图无环. 分析: 最简单的想法就是枚举一条边删去 ...

  8. Ubuntu 16.04安装双显卡驱动方法收集

    说明:不一定有效,要不断尝试. http://www.linuxwang.com/html/2150.html http://blog.csdn.net/feishicheng/article/det ...

  9. TDBXJSONStream(BERLIN新增)的使用

    DELPHI 10.1 BERLIN新增TDBXJSONStream类,用于方便地将数据序列为JSON,和将JSON还原出来数据. DATASNAP远程方法也相应地增加了支持返回TDBXJSONStr ...

  10. Deepin-安装php

    点击即可:下载:PHP5.6 下载完后执行下面这条shell命令即可完成安装 文件保存为:php_install.sh ,运行时:sh php_install.sh .tar.bz2 cd php- ...