小梅哥课程学习——LED花式玩法(从计数器器到线性序列机)——实验六
//每隔10ms,让led灯的一个8状态循环执行一次(每个变化时间值小一点,方便测试比如设置为10us)
源代码
module counter_led_6(
clk,
reset_n,
Time,
ctrl,
led
);
input clk;
input reset_n;
input [31:0] Time;
input [7:0] ctrl;
output reg led;
reg [31:0] counter;
reg EN;
//10ms定时器
reg [18:0] counter0;
always@(posedge clk or negedge reset_n)
if(!reset_n)
counter0<=0;
else if(counter0==500000-1)
counter0<=0;
else
counter0<=counter0+1'b1;
//产生EN
always@(posedge clk or negedge reset_n)
if(!reset_n)
EN<=0;
else if(counter0==0)
EN<=1;
else if((counter2==7)&&(counter==Time-1))
EN<=0;
//输入时间间隔
always@(posedge clk or negedge reset_n)
if(!reset_n)
counter<=0;
else if(EN)begin
if(counter==Time-1)
counter<=0;
else
counter<=counter+1'b1;
end
else
counter<=0;
reg [2:0] counter2;
always@(posedge clk or negedge reset_n)
if(!reset_n)
counter2<=0;
else if(EN)begin
if(counter==Time-1)
counter2<=counter2+1'b1;
end
else
counter2<=0;
always@(posedge clk or negedge reset_n)
if(!reset_n)
led<=0;
else case(counter2)
0:led<=ctrl[0];
1:led<=ctrl[1];
2:led<=ctrl[2];
3:led<=ctrl[3];
4:led<=ctrl[4];
5:led<=ctrl[5];
6:led<=ctrl[6];
7:led<=ctrl[7];
default led<=led;
endcase
endmodule
仿真代码
`timescale 1ns/1ns
module counter_led_6_tb();
reg clk;
reg reset_n;
reg [31:0] Time;
reg [7:0] ctrl;
wire led;
counter_led_6 counter_led_6_inst0(
.clk(clk),
.reset_n(reset_n),
.ctrl(ctrl),
.Time(Time),
.led(led)
);
initial clk=1;
always #10 clk=!clk;
initial begin
reset_n=0;
ctrl=0;
Time=0;
#201;
reset_n=1;
#2000;
Time=2500;
ctrl=8'b1000_0110;
#2000000000;
$stop;
end
endmodule
小梅哥课程学习——LED花式玩法(从计数器器到线性序列机)——实验六的更多相关文章
- 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计
基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述: 2 TLC5620型DAC芯片引脚说明: 2 TLC5620型DAC芯片详细介绍: 3 TLC ...
- 【小梅哥SOPC学习笔记】sof与NIOS II的elf固件合并jic得到文件
sof与NIOS II的elf固件合并jic得到文件 注意,本方法已经有更加简便的方法,小梅哥提供相应的脚本文件,可以一键生成所需文件,脚本请前往芯航线FPGA技术支持群获取. 7.1 为什么需要将S ...
- 【小梅哥SOPC学习笔记】系统时钟的使用
给NIOS II CPU添加一颗澎湃的心——系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchd ...
- 【小梅哥SOPC学习笔记】给NIOS II CPU增加看门狗定时器并使用
给NIOS II CPU增加看门狗定时器并使用 配置看门狗定时器: 1. 设置计时溢出时间为1秒 2. 计数器位宽为32位 3. 勾选No Start/Stop control bits 4. 勾选F ...
- 【小梅哥SOPC学习笔记】SOPC开发常见问题及解决办法集锦
SOPC开发常见问题及解决办法集锦 一.Symbol 'NULL' could not be resolved 近期在评估使用NIOS II处理器进行项目的开发,我使用的软件是Quartus II 1 ...
- 【小梅哥SOPC学习笔记】NIOS II工程目录改变时project无法编译问题
解决NIOS II工程移动在磁盘上位置后project无法编译问题 说明:本文档于2017年3月4日由小梅哥更新部分内容,主要是增加了讲解以Quartus II13.0为代表的经典版本和以15.1为代 ...
- 【小梅哥SOPC学习笔记】切换NIOS II CPU的主内存后软件中需要注意的几点设置
切换NIOS II CPU的主内存后软件中需要注意的几点设置 有时候,我们可能面对这样一种情况: 1. 我们创建一个SOPC系统,并在QSYS中设置NIOS II的复位地址和异常地址都指向SRAM: ...
- 【小梅哥SOPC学习笔记】设置Eclipse在编译(build)前自动保存源代码文件
设置Eclipse在编译(build)前自动保存源代码文件 Eclipse 常用设置之让Eclipse在编译(build)前自动保存源代码文件 一.让Eclipse在编译(build)前自动保存源代码 ...
- 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II
SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...
- 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
Altera SOPC嵌入式系统设计教程 第1章 概述 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活.高效的SOC解决方案.它 ...
随机推荐
- REMOTE HOST IDENTIFICATION HAS CHANGED!服务器重置后远程连接不上
问题: 解决: 本地打开shell,重置key
- 远程连接linux桌面
https://zhuanlan.zhihu.com/p/127265014 https://zhuanlan.zhihu.com/p/93438433
- GitBook的使用备忘
GitBook环境搭建 npm install -g gitbook-cli # 新建目录,如helloworld cd helloworld # 执行此语句,需等待一段时间 gitbook init ...
- Oracle数据库字符集与国家字符集
一般情况下数据库字符集UTF-8:国家字符集:UTF-16. 服务器端:(oracle服务器端字符集)数据库字符集在创建数据库时指定,在创建后通常不能更改.在创建数据库时,可以指定字符集(CHAR ...
- rest-assured:JUnit5中接口测试参数化的支持之利用EnumSource检查用户消息是否包含特定字段(JSON path $ doesn't match.)
代码:package ghcdgj.restful.framework;import static org.junit.jupiter.api.Assertions.*;import static i ...
- C# 调用LDAP接口获取域用户信息
C# 调用LDAP接口获取域用户信息: 根据用户显示名称和邮箱的前半部分,拉去相应的用户列表,进行智能提示. web 的提示控件可以用select2. using System; using Syst ...
- 设置eclipse默认编码为UTF-8 Set default encoding to utf-8 in eclipse
设置eclipse默认编码为UTF-8 Set default encoding to utf-8 in eclipse 1,windows->Perferences->General-& ...
- css 多行隐藏
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box- ...
- CSS兄弟范围选择器
我们想要选择一部分兄弟元素,根据需要试着写了一个 td:nth-child(4)~td:not(:nth-child(7)~td) { display: none; } 从第5个元素 ...
- 【SQL Server】存储过程带参数输出——output
在SQL Server 中,如果要用一个存储过程返回字符串应该怎么做?用output参数. 错误方式 接下来,展示一下,常见的错误方法 CREATE PROCEDURE testString AS B ...