[信息与通信]实训十七 基本单元电路的VHDL设计.doc

[信息与通信]实训十七 基本单元电路的VHDL设计.doc

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]实训十七 基本单元电路的VHDL设计

实训十七 基本单元电路的VHDL设计 本章提要:本章介绍了数字系统设计中经常用到的计数器,分频器,选择器,译码器,编码器,寄存器,存储器,输入电路,显示电路等基本单元电路的VHDL程序设计。 学习要求:在教师讲授这些基本单元电路的设计思想的基础上,通过上机调试熟练掌握这些基本单元电路的设计。 关键词:计数器(Counter),分频器(Divder),选择器(Multiplexer),译码器(Decoder),编码器(Encoder),寄存器(Register),存储器(Memory),输入电路(Input Circuit),显示电路(Display Circuit) 6.1 计数器的设计 6.1.1 同步计数器的设计 6.1.2 异步计数器的设计 6.2 分频器的设计 6.3 选择器的设计 6.4 译码器的设计 6.5 编码器的设计 6.5.1 一般编码器的设计 6.5.2 优先级编码器的设计 6.6 寄存器的设计 6.6.1 数码寄存器的设计 6.6.2 移位寄存器的设计 6.6.3 并行加载移位寄存器的设计 6.7 存储器的设计 6.7.1 只读存储器ROM的设计 6.7.2 读写存储器SRAM的设计 6.8 输入电路的设计 6.8.1 键盘扫描电路的设计 6.8.2 键盘接口电路的设计 6.9 显示电路的设计 6.9.1 数码管静态显示电路的设计 6.9.2 数码管动态显示电路的设计 6.9.2 液晶显示控制电路的设计 6.1 计数器的设计 计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。计数器分同步计数器和异步计数器两种。 6.1.1 同步计数器的设计 所谓同步计数器,就是在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化的那一类计数器。 1) 六十进制计数器 众所周知,用一个4位二进制计数器可构成1位十进制计数器,而2位十进制计数器连接起来可以构成一个六十进制的计数器。六十进制计数器常用于时钟计数。一个六十进制计数器的外部端口示意图如图6.1所示。在该六十进制计数器的电路中,BCDLWR和BCD10WR与DATAIN配合,以实现对六十进制计数器的个位和十位值的预置操作。应注意,在对个位和十位进行预置操作时,DATAIN输入端是公用的,因而个位和十位的预置操作必定要串行进行。利用VHDL语言描述六十进制计数器的程序如例6.1所示。 图6.1 六十进制计数器外部端口示意图 【例6.1】 用VHDL设计一个六十进制计数器(方法1)。 --BCD60COUNT.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BCD60COUNT IS PORT(CLK,BCD1WR,BCD10WR,CIN:STD_LOGIC; CO:OUT STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR (3 DOWNTO 0); BCD1:OUT STD_LOGIC_VECTOR (3 DOWNTO 0); BCDI0:OUT STD_LOGIC_VECTOR (2 DOWNTO 0)); END BCD60COUNT; ARCHITECTURE RTL OF BCD60COUNT IS SIGNAL BCD1N:STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL BCD10N:STD_LOGIC_VECTOR (2 DOWNTO 0); BEGIN BCD1=BCD1N; BCDI0=BCD10N; PROCESS (CLK,BCD1WR) –-个位数处理进程 BEGIN IF (BCD1WR=1) THEN BCD1N=DATAIN; ELSIF (CLKEVENT AND CLK=1) THEN IF (CIN=1) THEN IF (BCD1N=9) THEN BCD1N=0000; ELSE BCD1N=BCD1N+1; END IF; END IF; END IF; END PROCESS; PROCESS (CLK,BCD10WR) –-十位数处理进程 BEGIN IF (BCD10WR=1) THEN BCD10N=DATAIN (2 DOWNTO 0); ELSIF (CLKEVENT AND CLK=1) THEN IF (CIN=1 AND BCD1N=9) THEN IF (BCD10N=5) THEN BCD10N=000; ELSE BCD10N=BCD10N+1; E

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档