altera数字钟.doc

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

一.数字钟的功能要求 1.基本功能 (1) 准确计时,以数字形式显示时,分,秒的时间。 (2) 小时的计时要求为“24翻1”,分和秒要求为60进位。 (3) 校正时间,能够对“分”和“小时”进行调整。 2.扩展功能 (1) 定时闹钟(时间可通过按钮任意修改) (2) 仿广播电台整点报时(四低一高) (3) 数字跑表(具体启动/暂停,清零) (4) 日历(已完成主体代码) 二.数字钟的管脚定义 ***** Project compilation was successful ** DEVICE SUMMARY ** Chip/???????????????????? Input Output Bidir Memory Memory ??? LCs POF?????? Device????????? Pins Pins?? Pins?? Bits % Utilized LCs % Utilized count???? EPF10K10LC84-4?? 6????? 25???? 0??? 0???????? 0 %??? 253??? 43 % User Pins:?????????????????? 6????? 25???? 0 三.主体电路设计与程序 本系统采用的是Altera公司的FPGA器件Flex10K EPF10K10LC84-4,FLEX(灵活逻辑单元矩阵)系列是Altera应用非常广泛的产品,这些器件具有比较高的集成度及丰富的寄存器资源,采用了快速,可预测延时的连续式布线结构,是一种将CPLD和FPGA的优点结合于一体的器件;硬件描述语言HDL采用的是Verilog HDL. 1.60进制计数模块(秒和分共用些模块) module count_60(clk_count_60,clear,load,load_data,out,update,count_60_carry); input clk_count_60,clear,load,update; //update为计数器加1 input[7:0] load_data; output[7:0] out; output count_60_carry; reg[7:0] out; wire count_60_carry; assign count_60_carry=((((out==8’h59)(clk_count_60==1))?1:0)(!update))?1:0; //定义进位信号,在校时模式下通过update键校分时控制不向小时进位,在计时模式下则能正常进位 always @(negedge clk_count_60 or negedge clear)?? //异步模式,下降沿触发 begin ??? if(!clear) out=0;?? //低电平清零 ??? else ???? begin ???????? if(!load) out=load_data;?? //低电平置数 ???????? else if((out[7:4]==4’h5)(out[3:0]==4’h9)) out=0; ???????? else if(out[3:0]==4’h9) ?????????? begin ??????????? out[3:0]=0; ??????????? out[7:4]=out[7:4]+1; ?????????? end ???????? else if(out[3:0]9) out[3:0]=out[3:0]+1; ???? end????????? end endmodule 2.24进制计数模块(小时计数) module count_24(clk_count_24,clear,load,load_data,out,count_24_carry); input clk_count_24,clear,load; input[7:0] load_data; output[7:0] out; output count_24_carry; reg[7:0] out; wire count_24_carry; assign count_24_carry=(((out==8’h23)(clk_count_24==1))?1:0); //进位信号 always @(negedge clk_count_24 or negedge clear)?? //异步模式,下降沿触发 begin ??? if(!clear) out=0;?? //低电平清零 ??? else ???? begin ???????? if(!load) out=load_data;?? //低电平置数 ???????? else if((out[7:4]==4’h2)(out

文档评论(0)

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

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

1亿VIP精品文档

相关文档