已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西华大学课程设计说明书 1、EDA技术发展及介绍1.1EDA技术的介绍EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。 1.2 EDA技术的发展可将EDA技术分为三个阶段。(1)七十年代为CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。(3)九十年代为ESDA阶段,尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。基于以上不足,人们开始追求:贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。1.3 EDA技术的发展趋势目前的EDA产业正处在一场大变革的前夕,对更低成本、更低功耗的无止境追求和越来越短的产品上市压力正迫使IC供应商提供采用0.13m或以下的千万门级的系统芯片,而这些系统芯片的高复杂性设计更加依赖于EDA供应商提供全新的设计工具和方法以实现模拟前后端、混合信号和数字电路的完全整合。然而,这些新的需求为当代EDA工具和设计方法带来了不少新的挑战与机会。例如,如何在工艺上防止模拟电路与数字电路之间的干扰;现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。如何融合各EDA供应商的工具,以便向IC设计界提供更高效能和更方便的RTL-to-GDSII或Conc-ept-to-GDSII整合设计环境;为保证深亚微米(0.13m或以下)和更低内核工作电压(1.8V或以下)时代的信号完整性和设计时序收敛,必须采用新的设计方法。半导体工艺的每一次跃升都促使EDA工具改变自己,以适应工艺的发展;反过来EDA工具的进步又推动设计技术的发展。可以说EDA工具是IC设计产业的背后推手。系统芯片(SOC)正在迅速地进入主流产品的行列。由此引发的“芯片就等于整机”的现象,将对整个电子产业形成重大的冲击。种种迹象表明,整个电子产业正在酝酿着一场深刻的产业重组,这将为许多新兴的企业提供进入这一行业的最佳。 2、总体方案设计2.1设计内容 通过本次设计完成一个多功能的数字钟,该数字钟具有三种工作模式:用来选择当前数字钟的工作模式,系统正常工作在模式0下,即按时、分、秒正常计时的模式。当在正常时钟模式下第一次按下MODE键时,系统进入模式1,即闹铃模式,在此模式下可以通过SET和CHANGE按键的配合使用来设定所需要的闹铃时间,并且当到达设定的时间的能够发出闹铃音。当再一次按下MODE按键后系统进入手动校时模式,在此模式下通过SET和CHANGE按键的配合使用,可以改变当前时间。SET按键则用于在不同的模式下选择当前设定的位置,比如当前设定的位置是小时,则再一次按下SET按键后当前设定的位置变为分钟。CHANGE按键用来将当前设定位置的时间值加1,当长时间按下CHANGE按键时,当前设定值为连续快速加1,此功能用于快速设定时间。同时,该多功能数字钟还要具有整点报时的功能。2.2设计方案比较 方案一:由单片机AT89S52来实现多功能数字钟电路的设计,外围电源采用+5V电源供电,时钟由12MHZ的晶振产生,通过按键的状态来检测汽车的行使状态,中央处理器由AT89S52单片机来完成,电子钟的工作模式在按键控制电路的选择下经过单片机处理显示在LED数码管上。当到达设定的闹钟时刻时蜂鸣器产生闹铃。在每小时到达整点时蜂鸣器前四秒钟每隔一秒发出一短鸣在整点时发出一长鸣。其原理框图如图: 电源供电电路时钟产生电路按键控制电路LED数码管显示时间蜂鸣器产生闹铃声AT89S52单片机 图2-1单片原理实现框图方案二:基于现场可编程逻辑门阵列FPGA,通过EDA技术,采用VerilogHDL硬件描述语言实现多功能数字钟电路设计。整个设计的设计方式采用TOP-DOWN设计方法。多功能数字钟设计分为1个顶层模块和8个功能子模块。顶层模块名称为CLOCK.V。各功能子模块分别为:系统分频功能模块clk_generate.v、模式选择功能模块mode_select.v、快速时间设置功能模块fast_settime.v、秒、分、时计时与时间调整模块time_mode0.v、闹铃时间设置模块alarm_set.v、闹铃与整点报时模块alarm.v、7段显示译码模块decoder_7seg.v以及LED显示功能模块display.v。采用模块化实现的方法使整个设计显得清晰明了,更加容易理解。clk_generate.vmode_select.vCLOCK.Vfast_settime.vtime_mode0.valarm_set.valarm.vdecoder_7seg.vdisplay.v 图2-2 FPGA实现多功能数字钟模块图2.3方案论证通过方案一二的比较,可以看出方案一的设计使用分立元件电路较为多,因此会增加电路调试难度,且电路的不稳定性也会增加,而采用FPGA芯片实现的电路,由于在整体性上较好,在信号的处理和整个系统的控制中,FPGA的方案能大大缩减电路的体积,提高电路的稳定性。此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于FPGA要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出相应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从FPGA的一个管脚传播另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是很快的。2.4方案选择结合多功能数字钟的整体性能的提升,也对其各个部件的性能提出了更高的要求,尤其在现代SOC技术的引领下,人们对低故障、高实时、高可靠、高稳定的性能更加青睐,结合本设计的要求及综合以上比较的情况,我选择了基于FPGA的多功能数字钟电路方案。3、单元模块设计本设计由现场可编程门矩阵(FPGA)作为控制芯片,通过VreilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。总体设计方案要求该多功能数字钟的时、分、秒能够准确地计时;能够为该数字钟设置闹铃,并且在设定的时刻产生闹铃声;在数字钟显示时间出错时能够对该数字钟校时;同时每小时正点时能够整点报时。下面介绍主要模块的功能及作用。3.1有源晶振电路图3-1有源晶振电路该多功能数字钟系统的时钟采用2.048MHZ的有源晶体振荡器。通过对该频率的基准信号进行分频得到四个不同频率的时钟信号以满足整个系统的需要。3.2供电电路图3-2供电电路本设计中使用到了二个电源,第一是将交流电源转化为+5V的电源,用于为上拉电阻提供电压;第二电源是将所产生的+5v的电源转化成+3.3V电源,用于为FPGA芯片提供工作电压。3.3 PS配置电路图3-3 配置电路配置电路采用被动串行(PS)模式,为了利用ByteBlasterMV下载电缆配置EPM7128SLC84器件,3.3V的电源应该接上拉电阻,电缆的VCC脚连到3.3V电源,而器件的VCCINT的引脚连接到相应的2.5V,对于PS配置电路,器件的VCCIO引脚必须连接到2.5V。上拉电阻接到配置器件的电源端,这里接到了+5V电源端。nCS接到nCONFIG端,OE接到nSTATUS端,DCLK与DCLK相连接,DATA与DATA0相连接。nCEO引脚端悬空。3.4 按键输入电路 图 3-4 按键输入电路在设计中利用三个独立键盘来调整多功能数字钟的工作模式以及对数字钟的时、分、秒进行调时。Mode键用于选择多功能数字钟的工作模式;set和change键用于结合对时间进行调整。3.5 LED数码管显示电路 图3-5 LED数码管显示电路 该部分采用一个6位LED数码管来显示时间 4、 特殊器件的介绍4.1 CPLD器件介绍CPLD是Complex Programmable Logic Device的缩写,它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。 CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品。如 Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。 Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX结构,采用CMOS EPROM工艺制造的。该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和IO控制部分。由于大多数CPLD是基于乘积项的“与或”结构,故适合设计组合逻辑电路。4.2 FPGA器件介绍FPGA(FieldProgrammable Gate Array)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(Fast Track)、IO单元(IOE)组成。Altera Cyclone II 采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,Cyclone II 器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。Cyclone II 器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。4.3 EPM7128SLC84器件介绍本次设计的核心器件采用ALTERA公司的CPLD可编程器件。ALTERA公司的MAX7000S系列CPLD有着较高的性价比。MAX7000S系列是基于ALTERA第二代MAX架构的高密度、高性能的PLD器件。MAX7000器件包含32256个可联结成16个宏单元组的逻辑阵列块的宏单元。EPM7128SLC84是MAX7000S家族成员之一,它有如下的特点:可用逻辑门个数为2500门,128个宏单元,8个逻辑陈列块,最大用户可用I/O口100个,支持5V在系统编程和符合IEEE.STD.1179r的JTAG下载接口,内建边界扫描测试电路,支持片上调试EM7128LC84-15的封装图如图4.3所示 图4-3 EPM7128SLC的PLCC封装5、软件实现通过至顶向下(TOP-DOWN)的设计方法,经过对电路的设计要求的分析,从电路要实现的功能着手,逐层分析电路设计的步骤,再具体到各个模块的设计实现以及各模块实现方案的选择。从本设计的电路要求,我们分析了需要实现一个输入状态的编码,以及对循环点亮灯的方式的选择,综合这两种状态控制输出信号的状态变化。其电路功能表如图5-1。MODE工作状态SETCHANGE0正常计时-1闹铃选择调整位加12调时选择调整位加1 图5-1多功能数字钟电路功能表5.1系统信号的定义及顶层模块整个系统输入、输出信号的定义:sysclk:系统的时钟信号,由外部有源晶振产生,频率为2.048Mhz;mode:外接按键,模式选择信号,mode=0时为时钟模式,mode=1时为设定闹钟模式,mode=2时为手动设定时间模式;set:外接按键,用于在手动设置时间时选择是调整小时还是分钟;若长时间按住该键,还可以使秒信号清零,用于精确调整时间;change:外接按键,手动调整时间,每按一次计数器加1;若长时间按住则连续快速加1,用于快速调时和定时;alarm:接蜂鸣器,输出到蜂鸣器的信号,用于产生闹铃音和报时音;闹铃音为持续20S的急促的“嘀嘀嘀”音,整点报时音为“嘀嘀嘀-嘟”四短一长音;Dataout:输出信号,输出显示时间的数码管显示的段码。include clk_generate.v include time_mode0.vinclude mode_select.vinclude fast_settime.vinclude alarm_set.vinclude alarm.vinclude decoder_7seg.vinclude display.vmodule clock;clk_generate clk_generate(); /调用时钟节拍产生模块time_mode0 time_mode0(); / 秒、分、时计时与时间调整模块mode_select mode_select(); /调用模式选择功能模块fast_settime fast_settime(); /调用快速时间设置功能模块alarm_set alarm_set(); /调用闹铃时间设置模块alarm alarm(); /调用闹铃与整点报时模块decoder_7seg decoder_7seg(); /调用7段译码模块display display(); /调用显示模块endmodule5.2 时钟节拍产生模块 由于整个系统只有一个晶体振荡器,但是设计需要不同的时钟信号,因此需要设计一个分频过程,对有源晶振产生的2.048MHZ时钟进行分频,产生4个不同频率的信号:1HZ的用于产生秒计时信号CLK,4HZ的用于快速调整时间时钟CLK_4hz,1kHZ的用于闹铃音的产生的时钟信号CLK_1K,和50HZ的用于扫描led数码管显示的时钟信号displayclk:module clk_generate(reset,sysclk,clk,clk_4hz,clk_1k,displayclk);input sysclk,reset;output clk,clk_4hz,clk_1k,displayclk;reg clk,clk_4hz,clk_1k,displayclk;reg 20:0div_count1; /分频时钟计数器,用于产生周期为1S的时钟信号reg 19:0div_count2; /分频时钟计数器,用于产生频率为4hz的时钟信号reg 11:0div_count3; /分频时钟计数器,用于产生频率为1Khz的时钟信号reg 14:0divclk_cnt; /分频时钟计数器,用于产生50HZ的数码管扫描信号displayclkalways (posedge sysclk)begin if (reset) div_count1=21d0000000; if (div_count1=21d1024000) /1024000/2048000=0.5S begin clk=clk; /clk为周期为1S的时钟信号 div_count1=21d0000000; end else begin div_count1=div_count1+1b1; endendalways (posedge sysclk)begin if (reset) div_count2=20d000000; if (div_count2=20d256000) /512000/2048000=0.25S begin clk_4hz=clk_4hz; /clk_4hz为4hz的时钟信号 div_count2=20d000000; end else begin div_count2=div_count2+1b1; endendalways (posedge sysclk)begin /产生周期为50HZ和1KHZ的时钟节拍endEndmodule6.1.3模式选择功能模块Module mode_select( clk,mode,set,change,count1,counta,count2,countb,led_min,led_hour,m);input mode,set,change,clk;output count1,counta,count2,countb,led_min,led_hour,m;regbool,count1,counta,count2,countb;reg 1:0m;reg led_min,led_hour;always (posedge mode) begin if (m=2) m=0; else m=m+1; endalways (posedge set)bool=bool;always (posedge clk)begin case(m) 2: begin if (bool) begin /手动设定分钟 count1=change; led_min,led_hour=2b10; end else begin /手动设定小时 counta=change; led_min,led_hour=2b01; end count2,countb=2b00; end 1:begin if (bool) begin /设定闹铃分钟 count2=change; led_min,led_hour=2b10; end else begin /设定闹铃小时 countb=change; led_min,led_hour=2b01; end count2,countb=2b00; end default: ount1,count2,counta,countb,led_min,led_hour=0; /正常时钟状态 endcaseendendmodule5.3秒、分、时计时与时间调整模块module time_mode0(clk,set,m,count1,ct1,counta,m_clk,h_clk,cta,sec1,min1,hour1);input clk,set,m,count1,counta,ct1,cta,m_clk,h_clk;inout 7:0sec1,min1,hour1;reg minclk,hclk;reg 7:0sec1,min1,hour1;wire m_clk,h_clk;always (posedge clk)begin if (!(sec1 8d59) | set & (!m) /按住SET键一段时间,秒信号自动清零 sec1 7:0 = 8h00; if (!(set & (!m) minclk =1b1; else begin if (sec13:0=4b1001) begin sec13:0=4b0000; sec17:4=sec17:4 + 1b1; end else begin sec13:0 = sec13:0 + 1b1; minclk=1b0; end endendalways (posedge ct1) /分钟计时进程begin if (min1 = 8d59) begin min1 = 0; hclk = 1; end else begin if (min13:0 =9) begin min13:0 =0; min17:4=min17:4 + 1; end else begin min13:0 =min13:0 +1; hclk =0; end endendalways (posedge cta) /小时计时与调整进程beginif (hour1=8h23) hour1=0;else begin /此段源码见附件 endendendmodule5.4闹铃时间设置模块module alarm_set(ct2,ctb,amin,ahour);input ct2,ctb;output 7:0amin,ahour;reg 7:0amin,ahour;always (posedge ct2)beginif (amin=8d59) amin=0;else if (amin3:0=9) begin amin3:0=0; amin7:4=amin7:4 + 1; end else amin3:0=amin3:0 + 1;endalways (posedge ctb)beginif (ahour=8d23) ahour=0;else if (ahour3:0=9) begin ahour3:0=0; ahour7:4=ahour7:4 + 1; end else ahour3:0=ahour3:0 + 1; endendmodule5.5闹铃与整点报时模块module alarm(sysclk,clk_1k,min1,hour1,amin,ahour,alarm1,alarm2);input sysclk,clk_1k;input 7:0min1,hour1,amin,ahour;output alarm1,alarm2;reg alarm1,alarm2;reg 7:0sec1;always (posedge sysclk)beginif (min1=amin)&(hour1=ahour) if (sec18d20) alarm1=1; else alarm1=0;else alarm18d54)|(!(min1|sec1) if (sec18d54) alarm2=clk_1k; / 产生长音 else alarm2=clk_1k; /产生短音else alarm2=0;endendmodule5.6 7段显示译码模块module decoder_7seg(sysclk,clk,clk_4hz,clk_1k,m,alarm1,alarm2,ahour,amin,min1,hour1,sec1,hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb);input sysclk,clk,clk_4hz,clk_1k, alarm1,alarm2;input 7:0ahour,amin,min1,hour1,sec1;input 1:0m;output 7:0hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb;reg 7:0hour,min,sec,hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb;wire led_alarm;always (posedge sysclk)begin case(m) 3b00: /在模式0下,将正常计数值赋值给寄存器,等待译码 begin hour=hour1; min=min1; sec=sec1; end 3b01: /在模式1下,将闹铃时间设置值赋值给寄存器,等待译码 begin hour=ahour; min=amin; sec=8hzz; end 3b10: /在模式2下,将手动计数值赋值给寄存器,等待译码 begin hour=hour1; min=min1; sec=8hzz; end endcaseassign led_alarm=(ahour|amin)?1:0; /指示是否进行了闹铃定时assign alarm=(alarm1)?clk_1k&clk_4hz:0)|alarm2;/产生闹铃音或整点报时音endalways ( sysclk )begincase (hour7:4)4b0000 : hour_msb=8hc0; /数字0的共阳编码赋值给小时的十位4b0001 : hour_msb=8hf9; /数字1的共阳编码赋值给小时的十位4b0010 : hour_msb=8ha4; /数字2的共阳编码赋值给小时的十位4b0011 : hour_msb=8hb0; /数字3的共阳编码赋值给小时的十位4b0100 : hour_msb=8h99; /数字4的共阳编码赋值给小时的十位4b0101 : hour_msb=8h92; /数字5的共阳编码赋值给小时的十位4b0110 : hour_msb=8h82; /数字6的共阳编码赋值给小时的十位4b0111 : hour_msb=8hf8; /数字7的共阳编码赋值给小时的十位4b1000 : hour_msb=8h80; /数字8的共阳编码赋值给小时的十位4b1001 : hour_msb=8h90; /数字9的共阳编码赋值给小时的十位endcasecase (hour3:0)4b0000 : hour_lsb=8hc0; /数字0的共阳编码赋值给小时的个位4b0001 : hour_lsb=8hf9; /数字1的共阳编码赋值给小时的个位4b0010 : hour_lsb=8ha4; /数字2的共阳编码赋值给小时的个位4b0011 : hour_lsb=8hb0; /数字3的共阳编码赋值给小时的个位4b0100 : hour_lsb=8h99; /数字4的共阳编码赋值给小时的个位4b0101 : hour_lsb=8h92; /数字5的共阳编码赋值给小时的个位4b0110 : hour_lsb=8h82; /数字6的共阳编码赋值给小时的个位4b0111 : hour_lsb=8hf8; /数字7的共阳编码赋值给小时的个位4b1000 : hour_lsb=8h80; /数字8的共阳编码赋值给小时的个位4b1001 : hour_lsb=8h90; /数字9的共阳编码赋值给小时的个位endcase /此段分别将min7:0和sec7:0进行译码,编码方式与上述方式一样endmodule5.7 LED显示模块module display(displayclk,reset,ledselect,dataout,hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb);input displayclk,reset;input 7:0hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb;output 5:0ledselect;output 7:0dataout;reg 7:0dataout;reg 5:0ledselect;reg 2:0state;always (posedge displayclk)beginif (reset=0) /复位信号用于波形仿真时对分频计数器初始化 begin state2:0=3b000; ledselect= 6b000000; endelse begin case(state) 3b000: begin ledselect=6b011111; /数码管的第一位(小时的十位)被点亮 dataout=hour_msb; /显示当前时间的小时十位 state = 3b001; end 3b001: begin ledselect=6b101111;/数码管的第二位(小时的个位)被点亮 dataout=hour_lsb; /显示当前时间的小时个位 state = 3b010; end 3b010: begin ledselect=6b110111;/数码管的第三位(分的十位)被点亮 dataout=min_msb;/显示当前时间的分的十位 state = 3b011; end 3b011: begin ledselect=6b111011;/数码管的第四位(分的个位)被点亮 dataout=min_lsb; /显示当前时间的分的个位 state = 3b100; end 3b100: begin ledselect=6b111101;/数码管的第五位(秒的十位)被点亮 dataout=sec_msb;/显示当前时间的秒的十位 state = 3b101; end 3b101: begin ledselect=6b111110;/数码管的第六位(秒的个位)被点亮 dataout=sec_lsb;/显示当前时间的秒的个位 state = 3b000; end endcase endendendmodule6、系统功能及功能仿真6.1系统功能本设计是基于FPGA的多功能数字钟设计。硬件界面为一个6位LED数码管,时间显示方式为6位同时显示,即显示状态为:88:88:88。显示的时间制为24小时制。三个时间设定按键,分别为MODE模式选择键,SET设定键和CHANGE数值修改键。三个按键的功能介绍:MODE按键用来选择当前数字钟的工作模式,系统正常工作在模式0下,即模式0为正常时钟模式。当在正常时钟模式下第一次按下MODE键时,系统进入模式1,即闹铃模式,在此模式下可以通过SET和CHANGE按键的配合使用来设定所需要的闹铃时间。当再一次按下MODE按键后系统进入手动校时模式,在此模式下通过SET和CHANGE按键的配合使用,可以改变当前时间。SET按键则用于在不同的模式下选择当前设定的位置,比如当前设定的位置是小时,则再一次按下SET按键后当前设定的位置变为分钟。CHANGE按键用来将当前设定位置的时间值加1,当长时间按下CHANGE按键时,当前设定值为连续快速加1,此功能用于快速设定时间。 闹铃的功能是实现当到达预设的时间点时产生为时20S的“嘀嘀嘀嘀”急促短音。整点报时的功能是实现在每个整点的5秒钟前产生整点报时音,报时音为“嘀嘀嘀-嘟”4短一长音。6.2系统仿真6.2.1 系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江苏省南京市燕子矶中学高二上化学期中质量检测模拟试题含解析
- 海东市重点中学2026届化学高三第一学期期末考试模拟试题含解析
- “生活中的二维码”(教学设计)-2023-2024学年六年级上册综合实践活动辽师大版
- 第3课《盛唐气象》教学设计 2023-2024学年部编版七年级历史下学期
- 第6单元 欢乐颂-《第九交响曲第四乐章(合唱)》(教学设计)-2024-2025学年苏少版七年级音乐上册(五线谱)
- 任务二 笔袋自己理教学设计-2025-2026学年小学劳动浙教版一年级上册-浙教版
- 五年级下册道德与法治-11.屹立在世界的东方教学设计
- Unit 2 Different families Part B Let's talk Ask and answer(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- Lesson 8 What's your job教学设计-2025-2026学年初中英语第一册 上半册新概念英语
- 第五课 做守法的公民 教学设计-2025-2026学年统编版道德与法治八年级上册
- 现场液位计培训
- 2024年护士节护理知识竞赛试题及答案
- 2025年河北保定市12345政务服务便民热线话务服务人员10名考试模拟试题及答案解析
- 化工分析化学测试题答案及解析
- 2024人教版七年级数学上学期期中数学试卷(七年级上册人教第1-4章)试卷+解析
- 离子反应方程式配平课件
- 抖音团长培训课件
- 广东省深圳市多校2024-2025学年高一上学期11月期中考试生物试卷( 有答案)
- Unit 4 My family 话题写作(课件)英语冀教版2024七年级上册
- 沪科版2024九年级物理全一册新教材解读课件
- 券商柜台岗业务知识培训课件
评论
0/150
提交评论