- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(读书报告、研究报告)
考 核 科 目:SOPC(片 上 可 编 程 系 统 )及 EDA
技 术
学生所在院(系) :
电气工程及其自动化学院
学
生
姓
名:
学
号:
考
核
结
果
阅 卷 人
第1 页 (共 页)
基于 VHDL语言的十进制计数显示设计
引言
我们熟知的各种数字系统终端设备都需要对于十进制的信息进行数码显示,
从万用表,电压源等等仪器仪表到生活中的各种电气设备,其中最常用的显示
器件就是 LED和 LCD。在大规模可编程逻辑器件 FPGA的硬件基础上,根据译码器原理运用 VHDL语言对十进制计数译码显示电路进行了设计, 同时通过 Quartus
的软件开发环境对设计电路进行了仿真,同时下载到课程所发的实验箱中验证了硬件功能。
十进制译码器显示的原理
计数器是一种中规模的集成电路, 其种类繁多, 不但可以实现计数分频, 而且可以实现测量、运算、定时、延时等等控制功能。目前各类计数器均有典型产品,二进制计数器74LS161、十进制计数器 74LS90、十六进制计数器 74LS191 等。
十进制计数器的工作原理,同二进制计数器相比较为复杂。一般分析步骤是:
1)从逻辑图上得出每个触发器的输入信号表达式;
2)将上述表达式带入 各触发器的状态方程, 得到表示该计数器工作状态的状态方程;
3)根据状态方程得到计数器的状态转换表;
4)判断计数器的功能;
图 1 为由 D触发器组成的四位数码计数电路图
在上图所示的同步十进制加法计数器中有:
将上述关系代入各 JK 触发器的特征方程,则计数器的状态方程为:
设计数器初始状态为 0000,第一个计数脉冲来到后有:
即计数器的状态为 0001。同理计数可得,第
2 个计数脉冲来到后,状态为
0010,类推
可得到表
1 所示的状态转换表。 由于是这里是十进制计数器,
所以在计数器状态为
1001 时,
即计数为
9 时需要跳过后面的 6
个状态,在下一个脉冲到来时,状态变为
0000,完成一次
十进制计数循环。
表 1
同步十进制加法计数器状态表
计数
QQQQ
十进制数
4
3
2
1
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
X
11
1011
X
12
1100
X
13
1101
X
14
1110
X
15
1111
X
其中利用开发箱上的开关
1 作为计数脉冲给出端, 开关 2 作为清零信号给出端,
显示由
7 段 LED给出,计数与数码显示所需七位二进制数对应关系表
2 所示:
表 2 7 段数码管显示对应二进制数
计数值
数码管对应七位二进制数
0000
1111110
0001
0110000
0010
1101101
0011
1111001
0100
0110011
0101
1011011
0110
0011111
0111
1110000
1000
1111111
1001
1111011
其他
0000000
3 程序框图及程序清单
根据上述原理,利用 VDHL语言在 Altera 公司研发的 Quartus II 的仿真环境中进行程
序设计。
程序流程图如下:
开始
是
清零端是否为 1
否
否
计数端是否有信号
是
计数器加一
是
计数器是否到 10 进位位加 1
否
显示计数器值 清零
图 2 十进制显示计数器程序流程图
按上述流程图在用 VHDL语言在仿真环境里的编程代码如下:
library IEEE;
use rr is port(
rst,clk:in std_logic;
y:out std_logic_vector(13 downto 0));
end rr;
architecture Behavioral of rr is
signal oc:std_logic;
signal data:std_logic_vector(3 downto 0);
Signal Data1:std_logic_vector(3 downto 0);
Signal Data2:std_logic_vector(3 downto 0);
signal count_1:STD_LOGIC_vector (3 DOWNTO 0);
signal count_2:STD_LOGIC_vector (3 DOWNTO 0);
signal outdata1:std_logic_vector(6 downto 0);
signal outdata2:std_logic_vector(6 downto 0);
begin
count1: process(rst,clk)
be
文档评论(0)