《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc

上传人:文库蛋蛋多 文档编号:4146906 上传时间:2023-04-07 格式:DOC 页数:33 大小:817.50KB
返回 下载 相关 举报
《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc_第1页
第1页 / 共33页
《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc_第2页
第2页 / 共33页
《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc_第3页
第3页 / 共33页
《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc_第4页
第4页 / 共33页
《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc》由会员分享,可在线阅读,更多相关《《电子产品设计与制作综合实训》基于CPLD多功能数字钟的设计.doc(33页珍藏版)》请在三一办公上搜索。

1、电子产品设计与制作综合实训基于CPLD多功能数字钟的设计姓 名: 学 号: 组 号:班 级:指导教师: 提交日期: 年 月概 要本次实训通过自己的动手与老师的指导让我们让我们能够熟练掌握EDA软件(Max+plusII等)的使用,明白CPLD/FPGA的一般开发流程。能够完成电子产品设计、焊接、调试、故障排除到整机装配整个过程,能安装调试印制电路板;能够熟练使用常用测试仪器,如万用表、示波器和稳压电源;能够完成输入输出电路的设计,并能设计印制电路板,掌握基本的电路设计与制作方法和技巧,能够独立分析和解决一般性质的问题;以及部分元器件的封装,芯片EPM7128的引脚分布以及引脚功能、芯片的应用、

2、工作原理、典型电路。掌握常见故障的处理方案与维修的基本技巧;掌握焊接、调试、故障排除到整机装配整个过程;能按照IPC工艺安装调试印制电路板。通过本次实习又一次加强了我们理论联系实际的能力,提高了我们的动手操作能力;通过每次的实习也进一步培养了我们沟通交流、团结协作和刻苦耐劳的精神。前 言我们已经进入了数字化和信息化的时代,其特点是各种数字产品的广泛应用。现代数字产品在性能提高、复杂度增大的同时,其更新换代的步伐也越来越快,实现这种进步的因素在于生产制造技术和电子设计技术的进步。PLD器件和EDA技术的出现,改变了这种传统的设计思路,使人们可以立足于PLD芯片来实现各种不同的功能,新的设计方法能

3、够由设计者自己定义器件内部逻辑和管脚,将原来由电路板设计完成的工作大部分放在芯片的设计中进行。这样不仅可以通过芯片设计实现各种逻辑功能,而且由于管脚定义的灵活性,减轻了原理图和印制板设计的工作量和难度,增加了设计的自由度,提高了效率。同时这种设计减少了所需芯片的种类和数量,缩小了体积,降低了功耗,提高了系统的可靠性。我们通过几个星期的实训,对芯片EPM7128的引脚分布以及 引脚功能、芯片的应用、工作原理、典型电路有一定的了解;实习使我们掌握基本电路的设计与制作方法和技巧,能够独立的分析解决一般性质的问题,在设计与制作过程中能够从经济性和环保性以及成品质量等方面去考虑,在设计与制作中能大胆的实

4、践,开拓创新,能够将自己的想法体现到实际电路当中去;又培养了我与其他同学的团队合作、共同探讨、共同前进的精神。目 录 概述.2 前言.3一、项目设计.61.1 项目设计要. .61.2 方案论述.61.3. 设计方式.71.4 实验环境.81.5 设计原理框图.8二、芯片介绍.92.1EPM7128SLC84器件介绍.9三、Max + plusII软件的介绍.103.1 Max + plusII概述.10 3.2 Max+plus功能简介.113.3 Max+plus设计过程. .14四、项目的设计与制作.203.1 分频功能实现.203.2 清零功能实现.213.3 计时功能实现.213.4

5、 校时功能实现.223.5 译码功能的实现.253.6 闹铃模块.263.7 LED显示模块. .27五、系统电路图.284.1 系统功能. .284.2 多功能数字钟的原理图.284.3 PCB的绘制.29结论.30致谢.31参考文献.32附录附件1:元器件清单.33附件2:实物图.33一、项目设计1.1项目设计要求设计制作一个00-00-0099-99-99的多功能计时器,设计要求如下: 1.计时功能:完成00-00-0023-59-59的计时功能。 2.清零功能:在板上设置一个手动清零开关,通过它可以对电路实现实时的手动清零。 3.校时功能:可随时对电路进行校时功能,可以任意改变时间的大

6、小进行调时,达到时钟校时功能。 4.闹铃功能:在给定的时间闹钟响十秒钟,连续三次,同时设有闹钟清零开关,当不需要时可以关掉闹钟。目的:掌握各类计数器;掌握多个数码管显示的原理与方法;掌握使用VHDL语言的设计思想;对整个系统的设计有一个了解。1.2 方案论述本设计是基于CPLD的多功能数字钟设计。硬件界面为一个8位的LED数码管,时间显示方式为6位同时显示,即显示状态为:88:88:88。显示的时间制为24小时制。三个时间设定按键,分别为CLR模式选择键,SET设定键和KCLR数值修改键。按键功能介绍:CLR按键用来选择当前数字钟的工作模式,系统正常工作在模式0下,即模式0为正常时钟模式。当在

7、正常时钟模式下第一次按下CLR键时,系统进入模式1,即闹铃模式,在此模式下可以通过SET和KCLR按键的配合使用来设定所需要的闹铃时间。当再一次按下CLR按键后系统进入手动校时模式,在此模式下通过SET和KCLR按键的配合使用,可以改变当前时间。SET按键则用于在不同的模式下选择当前设定的位置,比如当前设定的位置是小时,则再一次按下SET按键后当前设定的位置变为分钟。KCLR按键用来将当前设定位置的时间值加1,此功能用于快速设定时间。电源采用+5V供电。整个设计的设计方式采用TOP-DOWN设计方法。多功能数字钟设计分为1个顶层模块和8个功能子模块。顶层模块名称为CLOCK.V。各功能子模块分

8、别为:系统分频功能模块clk_generate.v、模式选择功能模块CLR_select.v、快速时间设置功能模块fast_settime.v、秒、分、时计时与时间调整模块time_CLR0.v、闹铃时间设置模块alarm_set.v、闹铃与整点报时模块alarm.v、7段显示译码模块decoder_7seg.v以及LED显示功能模块display.v。1.3. 设计方式 TOPDOWN设计,即自顶向下的设计。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在功能级进入仿真和纠错,并用硬件描述语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体门电路网表,其对应

9、的物理实现可以是PLD器件或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。整个设计的设计方式采用TOP-DOWN设计方法。多功能数字钟设计分为1个顶层模块和8个功能子模块。顶层模块名称为CLOCK.V。各功能子模块分别为:系统分频功能模块clk_generate.v、模式选择功能模块CLR_select.v、快速时间设置功能模块fast_settime.v、秒、分、时计时与时间调整模块time_CLR0.v、闹铃时间设置模块alarm_set.v、闹铃与整点报时模块

10、alarm.v、7段显示译码模块decoder_7seg.v以及LED显示功能模块display.v。clk_generate.vCLR_select.vclock.vfast_settime.vtime_CLR0.valarm_set.valarm.vdecoder_7seg.vdisplay.v1.4 实验环境1.软件环境:Max+plusII2.硬件环境:ALTEA EPM7128SLC84-151.5 设计原理框图二、芯片介绍EPM7128SLC84器件介绍本次设计的核心器件采用ALTERA公司的CPLD可编程器件。ALTERA公司的MAX7000S系列CPLD有着较高的性价比。MAX

11、7000S系列是基于ALTERA第二代MAX架构的高密度、高性能的PLD器件。MAX7000器件包含32256个可联结成16个宏单元组的逻辑阵列块的宏单元。 EPM7128SLC的PLCC封装EPM7128SLC84是MAX7000S家族成员之一,它有如下的特点:可用逻辑门个数为2500门,128个宏单元,8个逻辑陈列块,最大用户可用I/O口100个,支持5V在系统编程和符合IEEE.STD.1179r的JTAG下载接口,内建边界扫描测试电路,支持片上调试EPM7128SLC84-15的封装图如上图所示所示.三、Max + plusII软件的介绍1概 述Max+plus是Altera公司提供的

12、FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。Max+plus开发系统的特点1、开放的界面Max+plus支持与Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。2、与结构无关Max+plus系统的核心Complier支持A

13、ltera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。3、完全集成化Max+plus的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。4、丰富的设计库Max+plus提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。5、模块化工具设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化

14、。6、硬件描述语言(HDL)Max+plus软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。7、Opencore特征Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2 Max+plus功能简介1 、原理图输入(Graphic Editor)MAX+PLUSII软件具有图形输入能力,用户可以方便的使用图形编辑器输入电路图,图中的元器件可以调用元件库中元器件,除调用库中的元件以外,还可以调用该软件中的符号功能形成的功能块.图形编辑器窗口见下图。2、硬件描述语言输入(Text Editor)MAX+PLUSI

15、I软件中有一个集成的文本编辑器,该编辑器支持VHDL,AHDL和Verilog硬件描述语言的输入,同时还有一个语言模板使输入程序语言更加方便,该软件可以对这些程序语言进行编译并形成可以下载配置数据,文本编辑器窗口见下图。 、波形编辑器(aveform Editor)在进行逻辑电路的行为仿真时,需要在所设计电路的输入端加入一定的波形,波形编辑器可以生成和编辑仿真用的波形(*.SCF文件),使用该编辑器的工具条可以容易方便的生成波形和编辑波形。波形编辑器窗口如下图所示。使用时只要将欲输入波形的时间段用鼠标涂黑,然后选择工具条中的按钮,例如,如果要某一时间段为高电平,只需选择按钮 ”1”。还可以使用

16、输入的波形(*.WDF文件)经过编译生成逻辑功能块,相当于已知一个芯片的输入输出波形,但不知是何种芯片,使用该软件功能可以解决这个问题,设计出一个输入和输出波形相同CPLD电路。、管脚(底层)编辑窗口(Floorplan Editor)该窗口用于将已设计好逻辑电路的输入输出节点赋予实际芯片的引脚,通过鼠标的拖拉,方便的定义管脚的功能。管脚(底层)编辑窗口见图。 、自动错误定位在编译源文件的过程中,若源文件有错误,Max+Plus2软件可以自动指出错误类型和错误所在的位置。、逻辑综合与适配该软件在编译过程中,通过逻辑综合 (Logic Synthesizer)和适配(Fitter) 模块,可以把

17、最简单的逻辑表达式自动的吻合在合适的器件中。、设计规则检查选取CompileProcessingDesign Doctor菜单,将调出规则检查医生,该医生可以按照三种规则中的一个规则检查各个设计文件,以保证设计的可靠性。一旦选择该菜单,在编译窗口将显示出医生,用鼠标点击医生,该医生可以告诉你程序文件的健康情况。 、多器件划分(Partitioner)如果设计不能完全装入一个器件,编译器中的多器件划分模块,可自动的将一个设计分成几个部分并分别装入几个器件中,并保证器件之间的连线最少。、编程文件的产生 编译器中的装配程序(Assembler)将编译好的程序创建一个或多个编程目标文件:EPROM配置

18、文件(*.POF)例如,MAX7000系列SRAM文件(*.SCF)例如,FLEX8000系列的配置芯片EPROMJEDEC文件(*.JED)十六进制文件(*.HEX)文本文件(*.TTF)串行BIT流文件(*.SBF)10、仿真当设计文件被编译好,并在波形编辑器中将输入波形编辑完毕后,就可以进行行为仿真了,通过仿真可以检验设计的逻辑关系是否准确.11、分析时间(Analyze Timing)该功能可以分析各个信号到输出端的时间延迟,可以给出延迟矩阵和最高工作频率。 12、器件编程当设计全部完成后,就可以将形成的目标文件下载到芯片中,实际验证设计的准确性. 3 Max+plus设计过程一、设计

19、流程使用Max+plus软件设计流程由以下几部分组成。1、设计输入:可以采用原理图输入、HDL语言描述、EDIF网表输入及波形输入等几种方式。2、编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。3、仿真:仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。4、编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。在设

20、计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。 图是Max+plus编译设计主控界面,它显示了Max+plus自动设计的各主要处理环节和设计流程,包括设计输入编辑、编译网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取、编程文件汇编(装配)以及编程下载9个步骤。 二、设计步骤1)输入项目文件名(File/Project/Name)2)输入源文件(图形、VHDL、AHDL、Verlog和波形输入方式)(Max+plus/graphic Editor;Max+plus/Text Editor;Max+plus/Waveform Editor)3)指定

21、CPLD型号(Assign/Device)4)设置管脚、下载方式和逻辑综合的方式(Assign/Global Project Device Option,Assign/Global Logic Synthesis)5)保存并检查源文件(File/project/Save & Check)6)指定管脚(Max+plus/Floorplan Editor)7)保存和编译源文件(File/project/Save & Compile)8)生成波形文件(Max+plus/Waveform Editor)9)仿真(Max+plus/Simulator)10)下载配置(Max+plus/Programme

22、r)三、常用菜单简介(1)MAX+PLUS菜单:MAX+plusII:Hierarchy Display_塔形显示;Graphic Editor_图形编辑器;Symbol Editor_符号编辑器;Text Editor_文本编辑器;Waveform Editor_波形编辑器;Floorplan Editor_管脚编辑器;Compiler_编译器;Simulator_仿真器;Timing Analyzer_时间分析;Programmer_程序下载;Message Processor_信息处理;(2)文件菜单,该文件菜单随所选功能的不同而不同。File:Project:Name_项目名称;Set

23、 Project to Current File_将当前文件设置为项目;Save&Check_保存并检查文件;Save&Compile_保存并编译文件;Save&Simulator_保存并仿真文件;Save,Compile,Simulator_保存,编译,仿真;New_新文件;Open_打开文件;Delete File_删除文件;Retrieve_提取文件;Close_关闭文件;Save_保存文件;Save As_换名存文件;Info_信息;Size_图纸尺寸;Create Default Symbol_创建当前模块图形符号;Edit Symbol_编辑当前模块图形符号;Create Defa

24、ult Include File_创建当前包括文件;Print_打印;Print Setup_打印设置;(3)模板菜单,该模板使编写VHDL和AHDL设计文件更容易和方便。Templates:AHDL Template_AHDL模板;VHDL Template_VHDL模板;Verilog Template_VERILOG模板;(4)指定菜单Assign:Device_指定器件;Pin/Location/Chip_管脚,放置,芯片;Timing Requirements_时间需要;Clique_指定一个功能组;Logic Options_逻辑选择;Probe_指定探头;Connected Pi

25、ns_连接管脚;Global Project Device Options_设定项目中器件的参数;Global Project Parameters_设置项目参数;Global Project Timing Requirements._设置时间参数;Global Project Logic Synthesis_设置逻辑综合;Ignore Project Assignments_忽略项目指定;Clear Project Assignments_清除项目指定;Back Annotate Project_返回项目指定;Convert Obsolete Assignment Format_转换指定格式

26、。(5)选择菜单Options:Font_字形;Text Size_文本尺寸;Line Style_线型;Rubberbanding_橡皮筋;Show Parameters_显示参数;Show Probe_显示探头;Show/Pins/Locations/Chips_显示管脚,位置,芯片;Show Cliques&Timing Requirements_显示功能组,时间需求;Show Logic Options_显示逻辑设置;Show All_显示全部;Show Guidelines_显示向导;User Libraries_用户库;Color Palette_调色板;Preferences_设

27、置。三、项目的设计与制作基于VHDL各功能实现原理整个数字钟的设计包括七个模块,分别为分频、清零、计时、校时、BCD编码、扫描、译码,各模块的设计解决方案具体如下。3.1 分频功能实现因为我们需要1HZ的频率来用来驱动秒计时器,而硬件提供的时钟频率是4HZ,所以我们要进行分频。分频的程序如下:entity fre10 isport ( clk:in std_logic; y: out std_logic);end;architecture a of fre10 is signal q:std_logic_vector(3 downto 0);signal rst:std_logic; begi

28、n process(clk,rst) begin if rst=1 then q=0000; elsif clk event and clk=1 then q=q+1; end if; end process; rst =1 when q=10 else 0; y=q(3); end ;3.2 清零功能实现在计数器的前面加用if语句在做了一个清零功能:process(t,kclr) beginif kclr=1 then sl_l = 0000; shh = 0000; ml=0000; mh = 0000; hl = 0000; hh=0000; end if; end process;3.

29、3 计时功能实现计时功能是通过if语句的嵌套来实现的,在嵌套的过程应该注意每个位上的数字的最大值,在计时程序中应该特别注意程序的书写 ,以下就是整个即使程序:process(t,kclr) beginif kclr=1 then sl_l = 0000; shh = 0000; ml=0000; mh = 0000; hl = 0000; hh=0000; elsif (tevent and t=1) then if sl_l=9 then sl_l=0000; if shh=5 then shh=0000; if ml=9 then ml=0000; if mh=5 then mh=0000

30、; if hl=9 or(hl=3 and hh=2) then hl=0000; if hh=2 then hh=0000; else hh=hh+1; end if; else hl=hl+1; end if; else mh=mh+1; end if; else ml=ml+1; end if; else shh=shh+1; end if; else sl_l=sl_l+1; end if; end if; end process;3.4 校时功能实现对电路进行校时功能,设置两个开关控制,校时程序如下:process(kdi,rt,ksets) begin if rt=1 or kse

31、ts=1 then qd=0000; elsif kdievent and kdi=1 then qd=qd+1; end if; end process;rt=1 when qd=10 else 0; process(ksets,clr,kctr) begin if clr=1 then acc0); elsif ksetsevent and ksets=1 then if kctr=0then acc=acc(19 downto 0) & qd; end if; end if;end process;process(t,kctr,acc,clr) begin if clr=1 then h

32、h=0000;hl=0000;mh=0000;ml=0000;shh=0000;sl_l=0000; elsif kctr=0 then hh=acc(23 downto 20); hl=acc(19 downto 16); mh=acc(15 downto 12); ml=acc(11 downto 8); shh=acc(7 downto 4); sl_l=acc(3 downto 0); elsif tevent and t=1 then if sl_l=9 then sl_l=0000; if shh=5 then shh=0000; if ml=9 then ml=0000; if

33、mh=5 then mh=0000; if hl=3 or (hh=2 and hl=3) then hl=0000; if hh=2 then hh=0000; else hh=hh+1; end if; else hl=hl+1; end if; else mh=mh+1; end if; else ml=ml+1; end if; else shh=shh+1; end if; else sl_l=sl_l+1; end if; end if; end process; 3.5 译码功能的实现process(s,r) begin if r=1 then qn=000; elsif sevent and s=1 then qn=qn+1; end if; end process; r scan = 111110; hms scan = 111101; hms scan = 111011; hms scan = 110111; hms scan = 101111; hms=shh;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号