1、vhdl设计数字秒表2数字秒表摘要:本文设计一块数字秒表,能够精确反映计时时间,并完成复位,计时功能,由于采用EDA技术进行设计,该方案具有工作速度快,硬件体积小,可靠性高等优点。关键词:数字秒表,VHDL,EDA,CPLD1 引言秒表是人们日常生活的测量仪器,它能够简单的完成计时,清零等功能,从一年一度的校际运动会到NBA,世界杯,奥运会,都能看到秒表的身影。,秒表计时的最大范围为1小时,精确为0.01,秒表可得到计时时间的分,秒,0.1秒等度量,且各度量单位间可正确进位,当复位清零有效时,秒表清零,并做好计时准备,在任何情况下,只要按下复位开关,秒表都要无条件的进行复位操作,即使在计时情况
2、下都要无条件的清零。2 系统设计2.1 设计要求设计一块数字秒表能够精确反映计时时间,能完成复位,计时功能。2.2 设计思路 根据设计要求,可以预先设计若干个不同进制的计数器,单元模块,然后将其进行利化组合起来得到数字秒表系统,数字秒表的实现主要依赖于两个计数器模块的设计:十进制计数器和六进制计数器。2.3 设计模块2.3.1 主控制器设计 2.3.2 十进制计数器模块设计 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port( clk: in std_logi
3、c; clr: in std_logic; ena: in std_logic; q :out std_logic_vector(3 downto 0); co :out std_logic );end cnt10;architecture rtl of cnt10 issignal tmp : std_logic_vector(3 downto 0);begin process(clk,clr,ena) begin if clr=1 then tmp=0000; elsif clkevent and clk=1 then if ena=1 then if tmp=1001 then tmp=
4、0000; else tmp=tmp+1; end if; end if; end if; end process; process(tmp) begin if tmp=0000 then co=1; else co=0; end if; end process; q=tmp;end rtl;2.3.2六进制计数器模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 is port( clk: in std_logic; clr: in std_logic; ena: in
5、 std_logic; q :out std_logic_vector(3 downto 0); co :out std_logic );end cnt6;architecture rtl of cnt6 issignal tmp : std_logic_vector(3 downto 0);begin process(clk,clr,ena) begin if clr=1 then tmp=0000; elsif clkevent and clk=1 then if ena=1 then if tmp=0101 then tmp=0000; else tmp=tmp+1; end if; e
6、nd if; end if; end process; process(tmp) begin if tmp=0000 then co=1; else co=0; end if; end process; q dout dout dout dout dout dout dout dout dout dout dout=1111111;end case;end process;end Behavioral;2.3.4 六万分频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6000
7、0 is port( clk: in std_logic; co :out std_logic );end cnt60000;architecture rtl of cnt60000 issignal tmp : std_logic_vector(15 downto 0);begin process(clk,clr,ena) begin if clr=1 then tmp=0000000000000000; elsif clkevent and clk=1 then if ena=1 then if tmp=1110011111100000 then tmp=0000000000000000;
8、 else tmp=tmp+1; end if; end if; end if; end process; process(tmp) begin if tmp=0000000000000000 then co=1; else co=0; end if; end process;end rtl;2.3.5 显示模块 显示模块由6个共阳极数码管组成2.4设计验证 六进制计数器仿真图 十进制计数器仿真图系统总仿真图管脚定义(1)管脚定义(2) 全部管脚定义2.5印制电路板设计3 结束语 本文采用级联的方法,实现了一个具有计时,复位功能的数字秒表,在系统设计中定义了两个计数器电骡模块,来实现数字秒表。
9、控器部分采用MAX+PLUS II进行仿真,仿真结果验证了设计的正确性。致 谢在作者设计的过程中,指导老师陈卫兵给予了大力支持,陈老师认真负责的工作态度,严谨的治学精神和深厚的理论水平使作者受益匪浅。在此表示感谢!参考文献1 李国洪,沈明山.可编程器件EDA技术与实践M. 北京:机械工业出版社,20042 王金明.Verilog HDL程序设计教程M. 北京:人民邮电出版社,20043 潘松、黄继业.EDA技术实用教程M. 北京:科学出版社,20024 徐惠民,安德宁. 数字逻辑设计与VHDL描述M. 北京: 机械工业出版社, 20025 杜建国. Verilog HDL 硬件描述语言M. 北
10、京:国防工业出版社, 2004.16 廖裕平,陆瑞强. 数字电路设计使用MAX+plus IIM. 北京:清华大学出版社,2001Stopwatch Design Based on CPLDAdvisor: Chen Weibing Abstract: this paper designs a digital stopwatch, accurately reflect the timing time, and complete reset, timer function, because use EDA technology design, the scheme has a fast, hardware, small size, high reliability etc.Keywords: digital stopwatch, VHDL, EDA, CPLD
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1