




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA课程设计报告题 目 数字时钟设计 系 别 专 业 姓 名 学 号 指导教师 9一、 设计任务题目2:数字时钟基本功能要求:1能够计到分和秒。2有一个开始计时、一个暂停计时、一个复位按键。发挥要求:有预置和校时功能其他要求:1系统时钟采用12 MHz有源晶振2主芯片采用CPLD 器件,型号为ALTERA 的EPM7064SL-443采用数码管显二、 设计方案本实验用到的实验仪器是3.3V稳压供电电源、PC机、JTAG下载线,焊电路板时还需要电烙铁、焊锡、镊子等。用到的元件有电阻,四位数码管,晶体管,晶振,按键,芯片底座,晶振插座,插针,制作的好的PCB电路板一块,导线若干。基本设计思路:数字电子钟原理如下图所示。一个具有计时、显示等基本功能 的数字钟,主要由振荡器、分频器、计数器、译码器、显示器和校时器等组成。振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“分”、“秒”译码器译码。振荡器和分频器产生稳定的校时信号和“秒”计时信号。对“秒” 计时信号进行60进制计数,形成“分”计时信号和秒计数值;再对“分” 计时信号进行60进制计数,秒计数值和分计数值译码显示时间。(1)有源晶振:主要产生时钟频率为12MHZ的输入信号脉冲(2)开关控制:主要实现数字钟的暂停、复位。(3)EPM7064芯片部分:是整个数字钟的核心部分。主要是程序写入以及对输入脉冲的接收与转换输出工作。(4)下载电路部分:使用JTAG下载电路(5)数码管显示部分:4位数码管显示分(2位)、秒(2位)1 、核心芯片EPM7064简介CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统.本文采用ALTERA公司的MAX7000s,它是基于第二代MAX结构的高精度、高性能 、在系统中可编程的CPLD芯片,采用CMOS技术加工而成,内含电可擦除只读存储器,可提供6005000个可用选通引脚、ISP、速度仅有5ns的延迟以及频率可达175.4MHZ的高速计数器。2 、时钟电路晶体振荡器电路给数字钟提供一个品种稳定准确的方波信号,可保证数字钟的走私准确及稳定。与晶振并联的电阻的作用 与晶振并联的电阻R17是反馈电阻,是为了保证反相器输入端的工作点电压在VDD/2,这样在振荡信号反馈在输入端时,能保证反相器工作在适当的工作区。虽然去掉该电阻时,振荡电路仍工作了。但是如果从示波器看振荡波形就会不一致了,而且可能会造成振荡电路因工作点不合适而停振。所以千万不要省略此电阻。这个电阻是为了使本来为逻辑反相器的器件工作在线性区,以获得增益,在饱和区是没有增益的, 没有增益是无法振荡的。如果用芯片中的反相器来作振荡,必须外接这个电阻,对于CMOS而言可以是1M以上,对于TTL则比较复杂,视不同类型(S,LS)而定。如果是芯片指定的晶振引脚,如在某些微处理器中,常常可以不加,因为芯片内部已经制作了,这两个电容(C7,C8)叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮法。它会影响到晶振的谐振频率和输出幅度,一般订购晶振时候供货方会问你负载电容是多少。晶振的负载电容=(Cd*Cg)/(Cd+Cg)+Cic+C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+C(PCB上电容)经验值为3至5pf。这两个电容串联的值是并联在谐振回路上的,会影响振荡频率。当两个电容量相等时,反馈系数是 0.5,一般是可以满足振荡条件的,但如果不易起振或振荡不稳定可以减小输入端对地电容量,而增加输出端的值以提高反馈量。 时钟电路3 、按键电路按键电路为了实现该设计的基本功能,通过按键电路实现计数时钟的的开启和暂停功能按键电路4 、数码显示电路在应用数码管显示时,首先需要考虑的问题就是驱动电流,与发光二极管相同,数码管的发光段也需要串联限流电阻,共阳极数码管为例,串联的限流阻值越大,电流越小,亮度越低;电阻值越小,电流越大,亮度越高。在使用限流电阻时需要在每一段线上都串联限流电阻,而不要在公共端上串联电阻,如果只是在公共端上串联一个限流电阻,则显示不同数字是,将会造成数码管亮度的不同。在动态显示时,每个数码管的断连线是对应连接在一起的,同时由于数码管不存在同时点亮状态,所以只需在段连线的引出端上串联限流电阻即。见电路图原理。 电路图原理5 、JTAG接口电路JTAG接口是一个业界标准,主要用于芯片测试和配置等功能,使用IEEE Std 11491联合边界扫描接口引脚。JTAG最初用于芯片功能的测试,其工作原理是在器件内部定义一个测试访问端口(Test Access Port,TAP),通过专用的JTAG测试工具对内部节点进行测试和调试。TAP是一个通用的端口,外部控制器通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。现在JTAG接口还常用于芯片的在线配置,对PLD、Flash等器件进行配置。为了完成系统的调试,任何原型系统都支持JTAG配置方式,因而JTAG配置也就成为最广泛支持的配置方式。不同厂商和不同型号的绝大部分FPGA芯片都支持JTAG配置方式。在Altera公司的FPGA芯片中,JTAG配置方式比其他任何一种配置方式的优先级都高。JTAG允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,实现对各个器件分别测试和配置。JTAG接口由4个必需的信号TDI、TD0、TMS和TCK,以及1个可选信号TRST构成。JTAG接口电路三、设计程序 1.流程图开始创建顶层模块定义输入输出配置寄存器变量按键消抖子模块秒信号产生子模块数码管动态扫描子模块计时处理子模块时间调整子模块结束软件设计流程图2.试验程序module clock(clk,key,dig,seg);input clk;input 2:0key;output3:0dig;output7:0seg;reg3:0dig_r;reg7:0seg_r;reg24:0count;reg15:0hour;reg3:0disp_dat;reg sec, keyen;reg2:0dout1,dout2,dout3;wire2:0 key_don;assign dig=dig_r;assign seg=seg_r;/*/always (posedge clk)/秒信号 begin count=count+1b1; if(count=25d6000000) begin count=25d0; sec=sec; end endassign key_don=(dout1|dout2|dout3);/消抖 always(posedge count17:15) begin dout1=key; dout2=dout1; dout3=dout2; end always(negedge key_don0)/乒乓开关 begin keyen=keyen; end/*/always(posedge clk) begin case(count17:15) 3d0:disp_dat=hour3:0;/显示秒 3d1:disp_dat=hour7:4; 3d2:disp_dat=hour11:8; 3d3:disp_dat=hour15:12; endcase case(count17:15) 3d0:dig_r=8b1110;/选择第一个管 3d1:dig_r=8b1101; 3d2:dig_r=8b1011; 3d3:dig_r=8b0111; endcase end always (posedge clk) begin case(disp_dat) 4h0:seg_r=8hc0;/显示0 4h1:seg_r=8hf9; 4h2:seg_r=8ha4; 4h3:seg_r=8hb0; 4h4:seg_r=8h99; 4h5:seg_r=8h92; 4h6:seg_r=8h82; 4h7:seg_r=8hf8; 4h8:seg_r=8h80; 4h9:seg_r=8h90; 4ha:seg_r=8hbf; default:seg_r=8hff; endcase if(count17:15=3d2)&sec) seg_r=8hff; end/*/ always(negedge sec,negedge key_don1,negedge key_don2, keyen) begin if(!key_don1)/清零 begin hour=15h0; end else if(!key_don2) /置数5 begin hour3:0=4h5; hour7:4=4h5; hour11:8=4h5; hour15:12=4h5; end else if(!key_don1&keyen)/调整秒位* begin hour7:0=hour7:0+1; end else if(!key_don2&keyen)/调整分位* begin hour15:8=hour15:8+1; end else if(!keyen)/开始暂停 begin hour3:0=hour3:0+1b1;/秒个位1 if( hour3:0=4ha) begin hour3:0=4h0; hour7:4=hour7:4+1;/秒十位+1 if( hour7:4=4h6) begin hour7:4=4h0; hour11:8=hour11:8+1;/分个位1 if(hour11:8=4ha) begin hour11:8=4h0; hour15:12=hour15:11+1b1;/分十位1 end if(hour15:11=4h6) hour15:11=4h0; end end end endendmodule/*/四、总结及心得开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。在编程时,我参考老师提供的程序运用结构化的思想,在同学的帮助下经过反复调试终于成功了。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心。感谢老师提供给我们这样一个锻炼自己的机会,让我们感受到学来的知识不只是用来完成试卷的。在完成课程设计的过程中体会到团队合作的乐趣。一向惯于“独立思考”的我们学会了积极的同团队成员交流,取长补短,共同进步。最重要的一点,我们学会了一种快速有效的学习方法。以往的学习都是老师讲学生记,不懂得地方就靠解答大量习题帮助记忆,学习的主要目的是通过最后的考试。课程设计使我们发现考试真的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论