Verilog HDL那些事_建模篇笔记(实验七:数码管电路驱动)
1.同步动态扫描
多个数码管的显示采用的是同步动态扫描方法,同步动态扫描指的是:行信号和列信号同步扫描,是一种并行操作。
2.数码管驱动电路实现思路

如果要求数码管显示我们想要的数字,首先需要写一个数据接收模块,这个模块接收数据之后需要做什么样的处理呢?这时候我们会想到两个数码管,其中一个显示十位数字,另一个显示各位数字,即把这个数据的十位传给其中一个数码管,各位数字传给另一个数码管来显示。这样我们就会明确了:数据接收模块需要将接收的数据进行拆分,分别输出其十位数据与个位上的数据

程序风格:
1.always块语句中,总是先写出复位信号到来时候的情况,即输出全部置零。
2.always块语句中的变量都是reg型,因此在写always块语句前需要事先定义好,定义好reg型变量的位宽与名字。
3.尽管always块语句里面是对输出量的处理,但reg型的变量名最好不用输出量的名字,应先用其它的变量名代替,最后通过assign语句传递给输出量。(以后的工作中需要弄清楚为什么是这种编码风格)。
注意:
1.给变量赋值时,应带上数据的位宽与进制,总之,在编码的过程中,时刻注意变量的位宽与进制。多敲代码,养成良好的编码习惯。
2.写条件语句时,注意里面的代码,通常是以begin开头,end结尾,很重要,即使逻辑正确,少了这些,都无法通过编译。
当我们获得输入数据的十位与个位信号后,我们并不能直接传输给数码管,让其显示。当然八段数码管的显示方式并不陌生,因此十位与个位信号需要经过一个翻译的过程,把这两个信号翻译成数码管能识别的代码,这是一个加码的过程。


以上为八段数码管的显示编码,在程序中以参数的形式给出,方便以后调用。其中,当复位信号到来时,给输出信号赋值为“8’b1111_1111”此时八段数码管处于熄灭状态。
注意:似乎有大量参数的程序,都会用到case/endcase程序段,类似一个查表的过程,当case(输入量),在以下的代码中找到相匹配的输入量后,执行对应的语句(对输出量进行操作,赋值等)。

在我们获得了数码管的显示代码后,为什么不直接传给数码管呢,直接显示应该没问题呀,但为什么需要加一个行扫描模块与列扫描模块,希望有看到这篇博客的人能告诉为原因。

先说说列扫描,扫描频率制定为50Hz,即周期为0.02s,即从左至右,把两个灯扫一遍需要20ms,分配给两个灯,一个灯亮10ms,即每隔10ms换一个数码管使能。列扫描的工作机制如下:无需额外的输入,内部需要计数器,产生10ms的时间,然后通过内部逻辑控制数码管的使能。输出的列扫描信号即为数码管的片选信号,在实际的引脚分配中要注意。
以下为计数器的典型写法。
写完计数器之后,就应该写对输出语句的操作了。结合两个always块语句来看,前一个always块语句里面的变量t用在了下一个always块语句里面的case里面。
这其中涉及到一个状态机的编码技巧(哈哈,前几天看视频才弄明白的)。
分析:
输出信号有两种状态0:rColumn_Scan <= 2’b10; 个位数码管使能
1: rColumn_Scan <= 2’b01;十位数码管使能
前一个always块语句专门用来控制状态变量t的跳变,即在什么条件下由一个状态跳变到另外一个状态中呢?绘制如下状态图:


状态机与相应的操作分开写,会让程序更加清晰。
最后是行扫描模块,数码管的十位与个位显示代码是传给行扫描模块的,最后模块输出一个行扫描信号。行扫描模块的工作机制如下:
因为行扫描与列扫描是同步进行的,因此也需要一个10ms的计数器,假设初始时间是0,过了10ms后,十位的数码管被使能,这时候,行扫描模块应该把十位上的数据传给十位数码管,再过10ms,个位的数码管被使能,这时候,行扫描模块应该把个位上的数据传给个位数码管。这其中也有一个状态的跳变过程,需要写状态机。

至此,数码管驱动电路各个模块已经完成,最后只需要通过一个顶层文件用wire将各个模块连接起来。
Verilog HDL那些事_建模篇笔记(实验七:数码管电路驱动)的更多相关文章
- Verilog HDL那些事_建模篇笔记(实验一,实验二)
实验一:永远的流水灯 扫描频率配置为100Hz,即是说扫描周期为10ms.这里需要注意的是扫描周期的概念.流水灯嘛,顾名思义,扫描周期指的是流水灯扫一轮所需要的时间.听到说周期,就应该想到在建模的时候 ...
- Verilog HDL那些事_建模篇笔记(实验九:VGA驱动)
1.了解VGA协议 VGA协议有5个输入信号,列同步信号(HSYNC Signal),行同步信号(VSYNC Signal),红-绿-蓝,颜色信号(RGB Signal). 一帧屏幕的显示是由行从上至 ...
- Verilog HDL那些事_建模篇笔记(实验八:键盘解码)
1.PS2接口与协议时序图 对于PS2的接口来说,需要额外关注的是PIN5与PIN1,一个是时钟,一个是数据.PS2协议对数据的移位是“CLOCK下降沿”有效,其CLOCK的频率通常在10KHz左右. ...
- Verilog HDL那些事_建模篇笔记(实验三:按键消抖)
实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...
- 【黑金教程笔记之008】【建模篇】【Lab 07 数码管电路驱动】—笔记
实验七的目的是设计实现最大为99数字在2个数码管上.采用同步动态扫描.即行信号和列信号同步扫描.这里数码管是共阳极的.选择端口也是共阳极的. 模块: /************************ ...
- 基于Verilog HDL 的数字时钟设计
基于Verilog HDL的数字时钟设计 一.实验内容: 利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...
- 【黑金教程笔记之003】【建模篇】akuei2的Verilog hdl心路
Verilog hdl不是“编程”是“建模” Verilog hdl语言是一种富有“形状”的语言. 如果着手以“建模”去理解Verilog hdl语言,以“形状”去完成Verilog hdl语言的设计 ...
- 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)
Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...
- Verilog HDL实用教程笔记
Verilog HDL实用教程笔记 DRC - Design Rule Check 几何规则检查ERC - Electrical Rule Check 电学规则检查自动参数提取LVS - Logic ...
随机推荐
- # mysql -u root -p -bash: mysql: command not found
[root@jboss ~]# mysql -u root -p-bash: mysql: command not found 需要安装mysql # yum install mysql之后就行 了
- C语言格式化输入不定长数组
先随便写写,有空再整理. 直接贴代码 #include <stdio.h> #include <stdlib.h> //从一行标准输入中格式化输入一个不定长数组 void in ...
- JQUERY 知识点的自我总结
一.名词释义 1 .js的入口函数:要等待文档树的加载完成,并且等待所有图片.文件都加载完成之后才开始执行. 2 .jquery入口函数会等待文档树的加载完成,并不会等待图片还有文件的加载 3 .j ...
- Linux装无线驱动
- 配置使用EF6.0常见的一些问题及解决方案
前言 最近做了个winform小项目,为方便快速开发,后台框架使用了ef6.0+sqlserver2008架构,遇到各种问题,真是伤脑筋.现将遇到问题和解决方案写下来,方便查阅 提示未注册,找不到驱动 ...
- Win10/UWP新特性—Drag&Drop 拖出元素到其他App
在以前的文章中,写过微软新特性Drag&Drop,当时可能由于处于Win10预览版,使用的VS也是预览版,只实现了从桌面拖拽文件到UWP App中,没能实现从UWP拖拽元素到Desktop A ...
- 转---B/S结构JavaEE WebApp的全自动安装包制作心得
JavaEE的Web应用程序如今已大行其道,但其安装.配置.部署却一直繁琐无比,客观上阻碍了Web应用程序更大规模的推广和应用.因此,开发方制作一个集JDK.Web中间件.开源数据库的全自动安装程序很 ...
- 十分钟了解分布式计算:Spark
Spark是一个通用的分布式内存计算框架,本文主要研讨Spark的核心数据结构RDD的设计思路,及其在内存上的容错.内容基于论文 Zaharia, Matei, et al. "Resili ...
- cocos多点触控实效注意事项
一定要设置AppController.mm的 [eaglView setMultipleTouchEnabled:YES];
- CSS---解决内容过多就会出文本溢出(显示在区域外面,不换行的情况)
当我们设置我的的div,或者其它文本框固定宽度之后,文本内容过多就会出文本溢出(显示在区域外面,不换行的情况). 这时我们可以使用Css中的几个属于来解.有以下的三个属于可以解决问题: 1,word- ...