项目:数码管动态显示时间

首先建立一个计时一秒的模块,作为数码管显示的需要

 module timer_s(
input wire clk,
input wire rst_n,
output wire [31:0] timer
); reg [25:0] cnt;
reg [31:0] timer_num;
parameter osc_frequency = 50_000_000; initial timer_num <= 0; always @(posedge clk or negedge rst_n)begin
if(! rst_n)begin
cnt <= 0;
timer_num <= 0;
end else begin
if(cnt == osc_frequency -1)begin
cnt <= 0;
timer_num <= timer_num + 1;
end
else
cnt <= cnt + 1;
end
end assign timer = timer_num; endmodule

接下来是数码管显示模块

module display_smg (
input wire clk ,
input wire rst_n ,
input wire [31:0] timer,
output wire [6:0] smg ,
output wire [3:0] dig
);
reg [6:0] smg_reg;
reg [3:0] dig_reg;
reg [3:0] num;
reg [3:0] wei;
reg [25:0] cnt; parameter delay = 50_000 * 3 -1; initial begin wei <= 0;
cnt <= 0; end always @(posedge clk or negedge rst_n)begin
if(! rst_n)begin
cnt <= 0;
dig_reg <= 4'b1111;
end else begin
if(cnt == delay)begin
cnt <= 0;
wei = wei + 1;
if(wei > 3) wei = 0;
dig_reg <= 4'b1111;
if(dig_reg[wei] == 1)
dig_reg[wei] <= 0; end else
cnt <= cnt + 1; end end always @(*)begin
case (wei)
0: num <= timer % 10;
1: num <= timer /10 % 10;
2: num <= timer /100 % 10;
3: num <= timer /1000 % 10;
default:num <= 0;
endcase
end always @(*)begin
case (num)
0:smg_reg <= 7'b0000001;
1:smg_reg <= 7'b1001111;
2:smg_reg <= 7'b0010010;
3:smg_reg <= 7'b0000110;
4:smg_reg <= 7'b1001100;
5:smg_reg <= 7'b0100100;
6:smg_reg <= 7'b0100000;
7:smg_reg <= 7'b0001111;
8:smg_reg <= 7'b0000000;
9:smg_reg <= 7'b0000100;
default:smg_reg <= 7'b0000001;
endcase
end assign smg = smg_reg;
assign dig = dig_reg; endmodule

然后在顶层文件中将俩个模块相连就行了,总体感觉在开发fpga很轻松

FPGA学习过程(二)的更多相关文章

  1. 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...

  2. FPGA学习过程(一)

    前言 终于有时间折腾这块fpga开发板了,不知不觉又熬夜了. 正文 实现一个呼吸灯的项目 打开quartus ii 建立工程 步骤就不讲了 新建一个pwm.v文件内容 module PWM ( inp ...

  3. 学习FPGA过程中的理论知识

    学习FPGA,先要有数电知识,最好有点C语言,,学好硬件描述语言,verilog或者vhdl.在有这些基础上,做一些小的模块不断积累.这里不再赘述. 下面介绍一下关于FPGA学习过程中的一些理论知识. ...

  4. FPGA开发流程1(详述每一环节的物理含义和实现目标)

    要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...

  5. FPGA开发流程

    需求说明:Verilog设计 内容       :FPGA开发基本流程及注意事项 来自       :时间的诗 原文来自:http://www.dzsc.com/data/2015-3-16/1080 ...

  6. 【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/1/5

    [iCore3 ARM代码下载地址][全部]DEMO1.0测试程序发布例程一:ARM驱动三色LED例程二:读取arm按键状态例程三:EXTI中断输入实验——读取ARM按键状态例程四:USART通信实验 ...

  7. 四轴飞行器1.5 各种PID对比分析及选择

    原创文章,欢迎转载,转载请注明出处 这篇文章主要介绍我对PID的理解,以及选择PID算法的过程. 一 PID的理解和学习过程 二 飞控的PID效果 先上个飞控PID的响应的视频:介绍在后面 地址:ht ...

  8. 【资料下载区】【iCore4相关代码、资料下载地址】更新日期2018/02/24

    [iCore4相关文档][更新中...] iCore4原理图(PDF)下载iCore4引脚注释(PDF)下载iCore4机械尺寸(PDF)下载 [iCore4相关例程代码][ARM] DEMO测试程序 ...

  9. 基于Verilog的偶数、奇数、半整数分频以及任意分频器设计

    在FPGA的学习过程中,最简单最基本的实验应该就是分频器了.由于FPGA的晶振频率都是固定值,只能产生固定频率的时序信号,但是实际工程中我们需要各种各样不同频率的信号,这时候就需要对晶振产生的频率进行 ...

随机推荐

  1. C语言代码段

    /* 功 能:将str字符串中的oldstr字符串替换为newstr字符串 * 参 数:str:操作目标 oldstr:被替换者 newstr:替换者 * 返回值:返回替换之后的字符串 */ char ...

  2. TCP和UDP知识总结

    1.TCP粘包:Tcp是面向连接.流式传送的,没有明确的边界定义.他有一个缓冲区,每过一段时间或者缓存满了就发送出去,造成一次发送的数据可能是多个包或者包的一部分,这就是发送端的粘包.接收端的粘包指应 ...

  3. Python获取list中指定元素的索引

    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一: 利用数组自身的特性 list.index(target), 其中a ...

  4. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  5. JM操作数据库

    [前言] 为什么要去直连数据库,去操作数据库? 因为在我们做自动化的时候,或者在大批量准备数据的时候,自动化的时候有时候会生成很多条页面上,接口上无法删除的数据,那么就很有很多的测试数据遗留在系统上, ...

  6. Album++:分布式事务专辑-基础概念

    (一)基础概念:↓ ↓ ↓ 1.1)什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,"一手交钱,一手交货"就是一个事务的例子,交钱和交货必 须全部成功, 事务才算成功, ...

  7. Spring,Spring-boot(一)

    前言 Spring作为java开源世界第一开源框架,已经成为事实上的Java EE开发标准. 最根本的使命就是简化Java开发. 不重复制造车轮 Don't reinvent the wheel .从 ...

  8. 前端基础js(四)

    一. js [1] html:用于显示页面 [2] css:用于描述页面的样式 [3] javaScript:用于描述页面的行为 二.js中三大部分内容 [1] 基本语法:函数.对象.事件类型(变量, ...

  9. selenium 配置ie11 浏览器

    1.IEDriverServer下载与配置 用淘宝的镜像地址:https://npm.taobao.org/mirrors/selenium/. 选3.0版本的  IEDriverServer_x64 ...

  10. div 模拟alert弹出框

    --------------信息展示弹出框---------------- <style> .over{background-color: rgba(0, 0, 0, 0.7);displ ...