欢迎来到天天文库
浏览记录
ID:18380685
大小:295.50 KB
页数:24页
时间:2018-09-17
《基本单元电路的vhdl设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章基本单元电路的VHDL设计本章提要:本章介绍了数字系统设计中经常用到的计数器,分频器,选择器,译码器,编码器,寄存器,存储器,输入电路,显示电路等基本单元电路的VHDL程序设计。学习要求:在教师讲授这些基本单元电路的设计思想的基础上,通过上机调试熟练掌握这些基本单元电路的设计。关键词:计数器(Counter),分频器(Divder),选择器(Multiplexer),译码器(Decoder),编码器(Encoder),寄存器(Register),存储器(Memory),输入电路(InputCircuit),显示电路(DisplayCircuit)6.1计数器的设计6.1.1同
2、步计数器的设计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计数器的设计计数器是在数字系统中
3、使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。计数器分同步计数器和异步计数器两种。6.1.1同步计数器的设计所谓同步计数器,就是在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化的那一类计数器。1)六十进制计数器众所周知,用一个4位二进制计数器可构成1位十进制计数器,而2位十进制计数器连接起来可以构成一个六十进制的计数器。六十进制计数器常用于时钟计数。一个六十进制计数器的外部端口示意图如图6.1所示。在该六十进制计数器的电路中,BC
4、DLWR和BCD10WR与DATAIN配合,以实现对六十进制计数器的个位和十位值的预置操作。应注意,在对个位和十位进行预置操作时,DATAIN输入端是公用的,因而个位和十位的预置操作必定要串行进行。利用VHDL语言描述六十进制计数器的程序如例6.1所示。图6.1六十进制计数器外部端口示意图【例6.1】用VHDL设计一个六十进制计数器(方法1)。--BCD60COUNT.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBCD60COUNTISPORT(CLK,BCD1WR,B
5、CD10WR,CIN:STD_LOGIC;CO:OUTSTD_LOGIC;DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);BCD1:OUTSTD_LOGIC_VECTOR(3DOWNTO0);BCDI0:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDBCD60COUNT;ARCHITECTURERTLOFBCD60COUNTISSIGNALBCD1N:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALBCD10N:STD_LOGIC_VECTOR(2DOWNTO0);BEGINBCD1<=BCD1N;BCDI0<=BCD
6、10N;PROCESS(CLK,BCD1WR)–-个位数处理进程BEGINIF(BCD1WR='1')THENBCD1N<=DATAIN;ELSIF(CLK'EVENTANDCLK='1')THENIF(CIN='1')THENIF(BCD1N=9)THENBCD1N<="0000";ELSEBCD1N<=BCD1N+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(CLK,BCD10WR)–-十位数处理进程BEGINIF(BCD10WR='1')THENBCD10N<=DATAIN(2DOWNTO0);ELSIF(CLK'EVENTANDCLK='1'
7、)THENIF(CIN='1'ANDBCD1N=9)THENIF(BCD10N=5)THENBCD10N<="000";ELSEBCD10N<=BCD10N+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(BCD10N,BCD1N,CIN)–-进位位处理进程BEGINIF(CIN='1'ANDBCD1N=9ANDBCD10N=5)THENCO<='1';ELSECO<='0';ENDIF;ENDPROCESS;ENDRTL;【例6.2】用
此文档下载收益归作者所有