




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
21ic电子网:/ 21ic电子技术论坛:/ 湖北民族学院EDA技术及其嵌入式系统设计课程设计基于MAX+PLUSII平台的多功能数字钟设计报告指导教师: 专业: 姓 名: 学 号: 目录一、序言2二、实验要求及目的2三、实验原理3四、运行环境3五、运行过程3六、试验结果8七、各模块源程序8八、心得体会16参考文献16基于MAX+PLUSII数字钟的实现一 序言 电子设计自动化(EDA Electronic Design Automation)技术是一种以计算机作为工作平台,以EDA软件工具为开发环境,以硬件描述语言和原理图描述为设计入口,以可编程逻辑器为实验载体,以ASIC、SOC和SOPC嵌入式系统为设计目标,以数字系统系统设计为应用方向的电子产品自动化设计技术。它是融入了电子技术、计算机技术、信息处理技术、智能化技术等最新成果而开发的高新技术,是现代电子系统设计、制造不可缺少的技术。EDA技术涉及面广,包括描述语言、软件、硬件等方面知识。它的电子仿真软件的仿真功能强大,具有完备的文件库,具有选用元器件创建电路、仿真模拟运行电路的功能,并且在输入信号的加入、输出信号的显示上能完全模拟实际和调制过程中的各种波型和操作过程。因此,EDA可作为辅助实验教育和实验训练的手段之一,以弥补在经费和实验仪器、元器件缺乏情况下的不足,并可节约材料消耗和减少仪器故障,通过仿真可熟悉常用电子仪器的使用方法和测量方法,并锻炼学生电路设计和调试能力,提高学生的分析与解决问题、故障排除的能力,进一步挖掘学生的开发和创新能力。 Verilog HDL是一种优秀的硬件描述语言,尤其在ACIC设计领域更是占主导地位。Verilog HDL与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构,有C语言基础的人很快就能够学习并使用该语言。目前国外教学将Verilog HDL作为主要的硬件描述语言,在国内,该语言的使用人数也逐渐增多。 自上而下的电子系统设计是一种传统的设计思路。这种设计思想更符合人们的逻辑思维习惯,也容易是设计者对复杂的系统进行合理的划分以及不断的优化。现代EDA数字控制系统设计充分利用了自上而下的设计思想,并且许多软件都支持高层的设计和仿真。二、实验要求及目的:本设计的数字钟,要求显示格式为小时分钟秒钟,分别在8个七段LED数码管上以动态分时扫描的方式显示。系统有两个时钟基准,CLK1为4HZ,分频后用来作为计时基准时钟。CLK2为10KHZ,用来作为扫描基准时钟,分频后作为百分秒计时时钟。附加功能:有调时模式,增加秒表功能。数字钟的显示格式如图所示:实验目的:1 初步了解可编程逻辑器件的基本原理2 初步掌握Altera公司的可编程逻辑器件开发软件MAX+PLUS的使用方法3 掌握可编程逻辑器件的编程/配置方法4 学会使用EDA实验系统5. 熟悉使用Verilog HDL语言三、实验原理:本系统采用的是Altera公司的FPGA器件Flex10K EPF10K10LC84-4,FLEX(灵活逻辑单元矩阵)系列是Altera应用非常广泛的产品,这些器件具有比较高的集成度及丰富的寄存器资源,采用了快速,可预测延时的连续式布线结构,是一种将CPLD和FPGA的优点结合于一体的器件;硬件描述语言Verilog HDL。由设计的芯片输出稳定的高频脉冲信号作为时间基准,经芯片的CLK分频输出标准的秒脉冲,秒计数器满60向分计数器进位,分计数器满60向小时计数器进位,小时计数器按“24翻1”规律计数,计数器经译码送到数码管中,基于芯片动态分时扫描的方式显示数字时间,动态显示所显示的若干位数是逐位轮流显示的,周而复始不断循环,只要轮流的速度足够快(每秒轮流50次以上),由于人眼“视觉暂留”的特性,感觉不到显示器的闪动,所看到的是连续显示一组数字,采用静态显示一个LED数码管数字,例如数码管的abcdef笔段亮时,显示数字“0”,bc亮时显示“1”,abdeg亮时显示“2”等等。本设计芯片的输入端为:CLK1,CLK2,KEY1,MADD,MDEC,HADD输出端为:ZX60、ZW70。ZX60实现数码管的显示,ZW70实现八个数码管的显示。四、运行环境: MUX+PLUS集成开发环境。五、运行过程:1、程序思想: 利用自顶而下的设计思想,将整个数字钟进行模块划分为:数码管扫描显示模块、数码管译码模块、时钟走时模块、时间调整模块、秒表走时模块以及综合时的附加模块等。2、主要模块仿真效果:(1) 时钟走时模块 (2)数码管扫描显示模块 (3)时钟走时模块 (4)数码管译码模块 (5)跑表走时模块 (3)四输入或门模块 3、顶层电路图(旋转后):2、管脚分配:脚 名脚 号输入输出类型脚 名脚 号输入输出类型RST60InputZX 422OutputCLK41InputZX 523OutputCLK10K43InputZX 624OutputMADD65InputZW05OutputMDEC62InputZW 16OutputHADD64InputZW 27OutputKEY161InputZW38OutputZX017OutputZW49OutputZX 118OutputZW510OutputZX 219OutputZW611OutputZX 321OutputZW716OutputLED127OutputLED228Output3、输入输出功能说明: RST:数字系统复位键,高电平有效 CLK4、CLK10:分别输入4Hz、10KHz时钟信号 KEY1:多功能数字钟功能选择键 MADD:时钟调时模式下为分钟加键,跑表模式下时跑表启停键 MDEC:调时模式下的分钟减1键 HADD:调时模式下小时加1键 LED1:调时模式指示灯 LED2:跑表模式指示灯六、试验结果:本文就自己设计多功能数字式电子时钟的过程进行了介绍,在整个设计过程中采用了模块化设计思想,对各个模块逐一进行设计,最终完成整个设计任务。所设计的多功能数字式电子时钟,要求具备24小时循环计时功能,并要求采用动态显示技术来实现LED的显示。附加功能为有调时模式,秒表功能。本次设计在实验室中利用Altera公司的可编程逻辑器件开发软件MAX plus II进行实验电路的设计和仿真,并利用EDA实验系统,通过下载到FLEX10K芯片基本实现了多功能数字钟的各项功能。七、各模块源程序:1、调时模块/时间调整模块,led1指示进入调整模式module tune(clk4,da,ga,ea,ha,madd,mdec,hadd,mode,led1);input clk4;input madd,mdec,hadd;input1:0 mode;output3:0 da,ga;output2:0 ea;output1:0 ha;reg3:0 da,ga;reg2:0 ea;reg1:0 ha;output led1; /指示是否处于调时模式reg clk1,clk2,led1;always(posedge clk4) clk2=!clk2;always(posedge clk2) clk1=!clk1;always(posedge clk2)beginif(mode=1)begin led1=1; if(madd) begin da=da+1; if(da=9) begin ea=ea+1;da=0; end if(ea=5&da=9) ea=0; end else if(mdec) begin da=da-1; if(da=0) begin ea=ea-1;da=9; end if(ea=0&da=0) ea=5; end else if(hadd) begin ga=ga+1; if(ga=9) begin ha=ha+1;ga=0; end if(ha=2&ga=4) begin ha=0;ga=0;end endendendendmodule2、模式控制模块/控制模块,包括模式选择,调时功能module control(mode,key1,rst);input key1,rst;output1:0 mode;reg1:0 mode;always(posedge key1)begin if(rst) begin mode=2b00; end else begin mode=mode+2b01; if(mode=3) mode=0; endendendmodule2、走时模块/时钟走时模块,clk4分频后为1s时钟信号,module zoushi(rst,a,clk4,b,c,d,e,f,g,h,da,ga,ea,ha,mode);input clk4;input rst;input3:0 da,ga;input2:0 ea;input1:0 ha,mode;output3:0 a,d,g,c,f;output2:0 b,e;output1:0 h;reg3:0 a,d,g,c,f;reg2:0 b,e;reg1:0 h;reg clk1,clk2;always(posedge clk4) clk2=!clk2;always(posedge clk2) clk1=!clk1;always(posedge clk1)beginif(mode=0)beginif(rst) begin a=4d0; b=4d0; c=4d10; d=da; e=ea; f=4d10; g=ga; h=ha; end else begin c=4d10; f=4d10; if(a=9) begin a=0;b=b+1; end else a=a+1; if(b=5&a=9) begin d=d+1;b=0; end if(d=9&b=5&a=9) begin e=e+1;d=0; end if(e=5&d=9)&(b=5&a=9) begin g=g+1;e=0; end if(g=9&(e=5&d=9)&(b=5&a=9) begin h=h+1; g=0;end if(h=2&g=9)&(e=5&d=9)&(b=5&a=9) begin h=0;g=0; end endendendendmodule3、跑表模块module paobiao(clk10k,mode,start,rst,a,b,c,d,e,f,g,h,led2);input clk10k,start,rst;input1:0 mode;output3:0 a,b,d,g,c,f;output2:0 e,h;output led2;reg clk100,led2;reg3:0 a,d,g,c,f,b,e,h;reg7:0 m;always(posedge clk10k)begin if(m=99) begin m=0; clk100=!clk100; end else m=m+1;endalways(posedge clk100)begin if(mode=2) begin led2=1; if(rst) begin a=4d0; b=4d0; c=4d10; d=0; e=0; f=4d10; g=0; h=0; end else if(start) begin c=4d10; f=4d10; if(a=9) begin a=0;b=b+1; end else a=a+1; if(b=9&a=9) begin d=d+1;b=0; end if(d=9&b=9&a=9) begin e=e+1;d=0; end if(e=5&d=9)&(b=9&a=9) begin g=g+1;e=0; end if(g=9&(e=5&d=9)&(b=9&a=9) begin h=h+1; g=0;end if(h=5&g=9)&(e=5&d=9)&(b=9&a=9) begin h=0;g=0; end end endendendmodule4、跑表模块module paobiao(clk10k,mode,start,rst,a,b,c,d,e,f,g,h,led2);input clk10k,start,rst;input1:0 mode;output3:0 a,b,d,g,c,f;output2:0 e,h;output led2;reg clk100,led2;reg3:0 a,d,g,c,f,b,e,h;reg7:0 m;always(posedge clk10k)begin if(m=99) begin m=0; clk100=!clk100; end else m=m+1;endalways(posedge clk100)begin if(mode=2) begin led2=1; if(rst) begin a=4d0; b=4d0; c=4d10; d=0; e=0; f=4d10; g=0; h=0; end else if(start) begin c=4d10; f=4d10; if(a=9) begin a=0;b=b+1; end else a=a+1; if(b=9&a=9) begin d=d+1;b=0; end if(d=9&b=9&a=9) begin e=e+1;d=0; end if(e=5&d=9)&(b=9&a=9) begin g=g+1;e=0; end if(g=9&(e=5&d=9)&(b=9&a=9) begin h=h+1; g=0;end if(h=5&g=9)&(e=5&d=9)&(b=9&a=9) begin h=0;g=0; end end endendendmodule5、数码管动态扫描模块/数码管动态扫描module saomiao(a,b,c,d,e,f,g,h,clk10k,zx,zw);input clk10k;input3:0 a,d,g,c,f;input2:0 b,e;input1:0 h;output3:0 zx;output7:0 zw;reg3:0 zx;reg7:0 zw;reg2:0 slip;always(posedge clk10k )begin if(slip=100) slip=4b000; else slip=slip+4b001;endalways(slip)begin case(slip) 4d0:begin zw=8b00000001;zx=a; end 4d1:begin zw=8b00000010;zx=b; end 4d2:begin zw=8b00000100;zx=c; end 4d3:begin zw=8b00001000;zx=d; end 4d4:begin zw=8b00010000;zx=e; end 4d5:begin zw=8b00100000;zx=f; end 4d6:begin zw=8b01000000;zx=g; end 4d7:begin zw=8b10000000;zx=h; end default:zw=8bx; endcaseendendmodule6、8输入或门模块module or8(zw1,zw2,zw);input7:0 zw1,zw2;output7:0 zw;reg7:0 zw;alwaysbegin zw=zw1|zw2;endendmodule7、8输入或门模块module or8(zw1,zw2,zw);input7:0 zw1,zw2;output7:0 zw;reg7:0 zw;alwaysbegin zw=zw1|zw2;endendmodule8、4输入或门模块module or4(zx1,zx2,zx);input3:0 zx1,zx2;output3:0 zx;reg3:0 zx;alwaysbegin zx=zx1|zx2;endendmodule9、数码管译码模块/气短数码管解码显示,输入为BCD码module decoder(zx,seg);input3:0 zx;output6:0 seg;reg6:0 seg;always(zx)begin case(zx) 4b0000: seg=7b0111111; 4b0001: seg=7b0000110; 4b0010: seg=7b1011011; 4b0011: seg=7b1001111; 4b0100: seg=7b1100110; 4b0101: seg=7b1101101; 4b0110: seg=7b1111101; 4b0111: seg=7b0000111; 4b1000: seg=7b1111111; 4b1001: seg=7b1101111; 4b1010: seg=7b0000000; default:seg=7bx; endcaseendendmodule八、心得体会通过本次课程程序设计使我们了解了CPLD,FPGA相关器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年)急危重症护理学试题库+答案
- 2025年7月妇瘤科护士业务学习考试试卷
- 李清照高中诗词讲解课件
- (完整版)硅PU球场专项施工方案
- 2025年求生与救生测试题及答案
- 轻钢别墅工程方案(3篇)
- 前期工程咨询方案(3篇)
- 2025年光刻胶用光引发剂项目规划申请报告
- 有用的企业面试高频题答题技巧及答案详解【易错题】
- 生态环境监管能力监理合同5篇
- 甘肃武威2025年公开招聘农村党务(村务)工作者笔试题带答案分析
- 内科常见疾病护理常规
- 钣金车间生产培训
- 校园心理危机干预培训
- 护理血站考试试题及答案
- 人工智能的深度解析与浅显介绍
- 摩托车协议买卖合同模板
- 2024年全国体育单独统一招生考试语文试卷附答案
- 产后运动锻炼指导
- 核燃料生产成本分析-全面剖析
- 动火作业安全专项方案
评论
0/150
提交评论