基本单元电路的VHDL设计.docVIP

  • 20
  • 0
  • 约2.9万字
  • 约 24页
  • 2017-01-02 发布于贵州
  • 举报
基本单元电路的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 (CL

文档评论(0)

1亿VIP精品文档

相关文档