基于fpga的多功能电子时钟设计报告书(编辑修改稿)内容摘要:

输入。 时基电路可以由石英晶体振荡电路构成,假设晶振频率 1MHz,经过 6次十分频就可以得到秒脉冲信号。 译码显示电路由八段译码器完成。 数字钟硬件电路设计 本系统拟采用 Altera 公司 Cyclone 系列的 EP2C3T144 芯片。 选用该款芯片的原因是: ① Altera 公司的 Quartus II 开发环境非常友好、直观,为整个系统的开发提供了极大的方便; ② 该 FPGA 片内逻辑资源、 IO 端口数和 RAM 容量都足够用,并且价格相对来说比较便宜,速度快,可以满足要求,且有很大的升级空间。 EP2C3T144 是 Altera 公司生产的 Cyclone I 代、基于 (内核), ( I/O), 和 SRAM 的 FPGA,容量为 2910 个 LE,拥有 13 个 M4KRAM( 4K位 +奇偶校验)块;除此之外,还集成了许多复杂的功能,提供了全功能的锁相环( PLL),用于板级的时钟网络管理和专用 I/O 口,这些接口用于连接业界标准的外部存储器器件,具有成本低和使用方便的特点,具有以下特性: ① 新的可编程架构通过设计实 现低成本; ② 嵌入式存储资源支持各种存储器应用和数字信号处理器( DSP); ③ 采用新的串行置器件如 EPCS1 的低成本配置方案; ④ 支持 LVTTL、 LVCMOS、 SSTL2 以及 SSTL3 I/O 标准; ⑤ 支持 66MHZ, 32 位 PCI 标准; ⑥ 支持低速( 311Mbps) LVDS I/O; ⑦ 支持串行总线和网络接口及各种通信协议; ⑧ 使用 PLL 管理片内和片外系统时序; ⑨ 支持外部存储器,包括 DDR SDRAM( 133MHZ), FCRAM 以及 SDR SDRAM; ⑩ 支持多种 IP,包括 Altera 公司的 MegaCore 以及其合伙组织的 IP,支持最新推出的 Nios II 嵌入式处理器,具有超凡的性能、低成本和最完整的一套软件开发工具。 [7] EP2C3T144C8 引脚图如图 所示。 图 EP2C3T144C8 引脚图 显示电路所选用 4 个数码管以动态显示扫描方式完成时、分显示。 显示电路原理图如图 所示。 图 LED 数码管显示原理图 第四章 单元电路设计 设计要求 本次设计的多功能数字钟具有如下功能: 1.秒/分/时的依次显示并正确计数; 2.定时闹钟:实现整点报时,扬声器发出报时声音; 3.时间设置,即手动调时功能:当认为时钟不准确时,可以分别对分/时进行调整; 总体设计 外部输入输出要求 外部输入要求:输入信号有 1kHz/ 1Hz 时钟信号、低电平有效的调时切换 SET、低电平有效的时分秒选择信号 SEL、低电平有效的加 ADD 和减MINUS; 外部输出要求:整点报时信号( 59 分 51/ 3/ 5/ 7 秒时未 1Hz 低频声,59 分 59 秒时为 1kHz 高频声)、时十位显示信号、时个位显示信号、分十位显示信号及分个位、秒十位及秒个位;数码管显示位选信号 CHOOSE[7..0]等八个信号。 内部各功能模块: 1)分频模块: 整点报时用的 1kH 与 1Hz 的脉冲信号,这里的输入信号是 50MHz 信号,所以需要一个 50 分频和一个 1000 分频;时间基准采用 1Hz 输入信号,则再用 1000 分频将 1KHz 分频成 1Hz。 2)秒计数模块 SECOND: 60 进制,带有加减调节功能的,输入为 1Hz脉冲和低电平有效的使能信号及加减信号,输出秒个位、十位及进位信号 SLINKM。 3)分计数模块 MINUTE 60 进制,带有进位 SLINKM 和加减调节功能的,输入为 1Hz 脉冲和低电平有效的使能信号及加减信号,输出分个位、十位及进位信号 MLINKH。 4)时计数模块 HOUR: 24 进制,带有进位 MLINKH 和加减调节功能的,输入为 1Hz 脉冲和低电平有效的使能信号及加减信号,输出时个位、十位。 5)整点报时功能模块 ALERT: 输入为分/秒信号,输出为高频声控 1KHz 和 1Hz。 6)译码显示功能模块 DISPLAY: 输入为 DIN,输出为 DOUT。 第五章 VHDL 程序设计 分频模块程序 LIBRARY IEEE。 USE。 USE。 ENTITY DIVCLK_50 IS PORT(CLK:IN std_logic。 CLK_50:OUT std_logic)。 END DIVCLK_50。 ARCHITECTURE BEHAVIOR OF DIVCLK_50 IS SIGNAL CNT:STD_LOGIC_VECTOR(4 DOWNTO 0):=00000。 SIGNAL DCLK:STD_LOGIC:=39。 039。 BEGIN PROCESS(CLK) BEGIN IF CLK 39。 event AND CLK =39。 139。 THEN IF CNT=11000 THEN CNT=00000。 DCLK=NOT DCLK。 ELSE CNT=CNT+39。 139。 END IF。 END IF。 END PROCESS。 CLK_50=DCLK。 END BEHAVIOR。 秒模块程序 LIBRARY IEEE。 USE。 USE。 ENTITY CNT60_S IS PORT(CLK_1HZ :IN STD_LOGIC。 CLOCK_S_EN :IN STD_LOGIC。 ADD,MINUS :IN STD_LOGIC。 S_LINK_M :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 S_OUT_H,S_OUT_L :OUT STD_LOGIC_VECTOR(3 DOWNTO 0) )。 END ENTITY CNT60_S。 ARCHITECTURE BEHAVIOR OF CNT60_S IS SIGNAL S_H,S_L:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN PROCESS(CLK_1HZ,CLOCK_S_EN,ADD,MINUS) BEGIN IF RISING_EDGE(CLK_1HZ) THEN IF CLOCK_S_EN=39。 139。 THEN IF ADD=39。 039。 THEN IF (S_H=0101 AND S_L=1001) THEN S_H=0000。 S_L=0000。 ELSIF (S_H/=0101 AND S_L=1001) THEN S_H=S_H+39。 139。 S_L=0000。 ELSE S_H=S_H。 S_L=S_L+39。 139。 END IF。 ELSIF MINUS=39。 039。 THEN IF (S_H=0000 AND S_L=0000) THEN S_H=0101。 S_L=1001。 ELSIF (S_H/=0000 AND S_L=0000) THEN S_H=S_H39。 139。 S_L=1001。 ELSE S_H=S_H。 S_L=S_L39。 139。 END IF。 END IF。 ELSIF (S_H=0101 AND S_L=1000) THEN S_LINK_M=0001。 S_H=0101。 S_L=1001。 ELSIF (S_H=0101 AND S_L=1001) THEN S_H=0000。 S_L=0000。 S_LINK_M=0000。 ELSIF (S_H/=0101 AND S_L=1001) THEN S_H=S_H+39。 139。 S_L=0000。 S_LINK_M=0000。 ELSE S_H=S_H。 S_L=S_L+39。 139。 S_LINK_M=0000。 END IF。 END IF。 END PROCESS。 S_OUT_H=S_H。 S_OUT_L=S_L。 END BEHAVIOR。 图 秒模块仿真波形 分模块程序 LIBRARY IEEE。 USE。 USE。 ENTITY CNT60_M IS PORT(CLK_1HZ :IN STD_LOGIC。 CLOCK_M_EN :IN STD_LOGIC。 ADD,MINUS :IN STD_LOGIC。 S_LINK_M。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。