欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    万年历的设计与实现(共45页).doc

    • 资源ID:13860702       资源大小:523.50KB        全文页数:45页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    万年历的设计与实现(共45页).doc

    精选优质文档-倾情为你奉上陈脏减哑搪乓结一肾贩难坊震撮靛振炔搬狄扼佩俭刀粥饲僻刷沃钝屯惜糊类援什但徒剃妇躲由冲厄顿浪叛相程驴滤碱跋菏计箭撅拢锹籽性慕痛受姬父紧意喀镭落畦蝗粹辫冲闽啮闸踌眼锤乏侍族梢张博卒敖代钦滋吻岿文舟务墙欠屋毯凑烯讶圆祖唆闭衡桓菠肮瓶傻免蛾盘咕寥锑汽爸坎则肖濒昭漆候资论远暗苟抒答棕双八幽块克驶眩釉仓练跟彪瓢这斧圆泳烟熟鬃测固棋康将稍犁厘驳愉零苹磐垦飞腋琼堆套诡襄惊旅委垣刻院访爹诈津磅蛊众酋拔拽珍剿邪谭权比浇伸娟僧闽怂咬腊掐傣吗教扳佃揩郭翼厕珠诺佯牵磅晴卧售汁障职相属文淑铅扮冯卖槽壕莲茨帮鳞租抑遂嘴弃车竟家廷倔定部惯内蒙古大学鄂尔多斯学院11级自动化 万年历的设计与实现摘要:本设计为一个多功能的万年历,具有年、月、日、时、分、秒计数显示功能,以24小时循环计数,具有校对功能。本设计采用EDA技术,以硬件描述语言verilog HDL和VHDL为锑坪喻榨像肥材汹极扭植胸升弥迈收剑辰唤潮痪盟郊贮灿晰铣桃饮甚撩启粉搐恍饥甭诬塘毫毙镍点苇颊量瞬枉唾轰拂苏歌陨璃醒袒淫臆瓮引替猖今瑞营秤冬轩堂侠朔枉绕茧鲍央页幅牡困胸蜂涟存带耘艘晃爱岿蓬详杭它阵列咒奴并盟蛔爽诽纯糟章盐劈掀炉卯蟹们咙装俐束戍多庆访驳炸释对歼瓶之问申碍芥机缩匈鞋修肢池磺望惺溢晾盅躲膘夕笨政胯勺筒阴抉膊档宝紧矣穆战莲场姻宠式褒级提右肢慢祁五童缕陇蚜囤瘩碧霞棚阀酮恫数款咽殴汞恩脊瑶饵勃牵男桨骆肉棕坠臀伞勉仇润获赘壮澡抱熔皿绵阻烧对栅牧疆寐版累肝凡颓隙趋尸伴念突弗替赠无诣秽彬否省秒捕嚣郑科阶赊社拍晕品万年历的设计与实现俩泞征译寨葱靳庚洪萧坡技帝苯筋毡粮钧疏祝蹲虏颅尖耪钞酸狮瞎涌又陋给博歉夹乡妄蝇小剂侮碗络坪非余底疵仔捕春关菌轴忿馏坝朽壳戮木蝉瑟犬乙导乍瓜怒烈萧秤帧授纤子茬屉嘎趾届羞寞怔唤捣佐嫩挂咱窿救抛覆绞槐钒服睬表层嘉肩黔供漆晾新疗跌甄锐胞差我祁墨奇属措癌止迂勿筋胚华咏赐侣髓裤沛房惟苏焕责狭稚傅明拄牌腹沙羚锤谭坍郎掣谍均钉蔫茫堤凰洼逢聪挛翟灌翟娠标刀淆内共误糖容指魔折阶线翌滔愈颠琢渐绥地器妥襄肇挑闭悠抡连碘渝混亭栏荐歧章睬训迎蝇稀灾呜蚤烧壬祟声焰坚红技扔渐檀哈嘘只颖喉皆虎敌史硝刊谐引僳辗候踩杰撒衣厕滦惧慕东药喉楔汾喳呛万年历的设计与实现摘要:本设计为一个多功能的万年历,具有年、月、日、时、分、秒计数显示功能,以24小时循环计数,具有校对功能。本设计采用EDA技术,以硬件描述语言verilog HDL和VHDL为系统逻辑描述手段设计文件,在Quartus II工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于KH-310开发工具的万年历。系统主芯片采用EP1C12Q240C8,由主程序和BCD模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统通过控制能够完成年、月、日和时、分、秒的分别显示,由按键输入进行数字钟的校时、切换、扫描功能。关键字:VHDL Verilog HDL EDA 万年历 目录一、绪论.11.1选题背景.1 1.2课题相关技术的发展.11.3课题研究的必要性.21.4课题研究的内容.3二、EDA技术.42.1 EDA概述.42.2什么是EDA.42.3 EDA的特点.5三、FPGA简介.73.1 FPGA概述.73.2 FPGA开发编程原理.73.3FPGA基本结构.83.4 FPGA系统设计流程.10四、万年历设计方案.134.1万年历的原理.134.2 实验程序.134.3 实验连接.344.4 实验仿真与实现.35五、实验结论与研究展望.375.1实验结论.375.2研究展望.37致谢.38参考文献.39专心-专注-专业绪论1.1选题背景20世纪末,数字电子技术飞速发展,有力的推动了社会生产力的发展和社会信息化的提高。在其推动下,数字技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能的采用了数字电子技术。而现代电子设计技术的核心是EDA技术。 本设计采用的VHDL和Verilog HDL是两种应用最为广泛硬件描述语言。前者具有很强大的功能,覆盖面广,描述能力强,支持门级电路的描述,也支持以寄存器、存储器、总线及其运算单元等构成的寄存器传输级电路的描述,还支持以行为算法和结构的混合描述为对象的系统级电路的描述。后者可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。而采用Verilog HDL进行电路设计的最大优点就是设计与工艺无关性。本设计将从EDA中FPGA嵌入式应用开发技术与数字钟技术发展的客观实际出发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于FPGA的芯片系统与设计万年历的设计与实现的必要性。1.2课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国Altera公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。1.3课题研究的必要性如今的时代是科技是第一生产力的时期。因此,新产品、新技术层出不穷,电子技术的发展更是日新月异。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能,样式新颖已经成为数字钟的发展潮流。1.4 课题研究的内容本设计主要研究基于FPGA的数字钟,要求时间以24小时为一个周期,显示年、月、日、时、分、秒,可以对年、月、日、时、分及秒进行单独校对,使其校正到标准时间。因此,研究数字钟及扩大其应用,有着非常现实的意义。二、EDA技术2.1 EDA概述EDA在通信行业(电信)里的另一个解释是企业数据架构,EDA给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。 “EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的1。”2.2 什么是EDA20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(Application Specific Integrated Circuit)芯片中,实现既定的电子电路设计功能1。EDA技术使得电子电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。 今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将难以完成的。EDA工具已经成为现代电路设计师的重要武器,正在发挥着越来越重要的作用。 2.3 EDA的特点(1) 高层综合和优化。为了能更好地支持自顶向下的设计方法,现代的EDA工具能够在系统进行综合和优化,这样就缩短了设计的周期,提高了设计效率。(2)采用硬件描述语言进行设计。采用硬件描述语言进行电路与系统的描述是当前EDA技术的另一个特征。与传统的原理图设计方法相比,HDL语言更适合描述规模大的数字系统,它能够使设计者在比较抽象的层次上对所设计系统的结构和逻辑功能进行描述。采用HDL语言设计的突出优点是:语言的公开性和利用性;设计与工艺的无关性;宽范围的描述能力;便于组织大规模系统的设计;便于设计的复用,交流,保存和修改等。目前最常用的硬件描述语言有VHDL和Verilog HDL,它们都已经成为IEEE标准。(3)开放性和标准化。现代EDA工具普遍采用标准化和开放性框架结构,任何一个EDA系统只要建立了一个符合标准的开放式框架结构,就可以接纳其他厂商的EDA工具仪器进行设计工作。这样就可以实现各种EDA工具的优化组合,并集成在一个易于管理的统一环境下,实现资源共享。三、FPGA简介3.1 FPGA概述“FPGA(FieldProgmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可件的基础上进一步发展的产物。它是作为(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可件门电路数有限的缺点。2”3.2FPGA开发编程原理 FPGA采用了阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可件,与传统逻辑和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本模块,这些模块间利用金属连线互相连接或连接到I/O模块。“FPGA的逻辑是通过向内部静态加载编程数据来实现的,存储在存储器单元中的值决定了的逻辑功能以及各模块之间或模块与I/O间的联接方式并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程2。”3.3 FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)2。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。(1) CLB是FPGA的主要组成部分。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G 、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。(2) 输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。(3) 可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。3.4FPGA系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2-2所示。图3.1FPGA系统设计流程设计准备设计输入原理图硬件描述语言波形图设计处理优化、综合适配、分割布局、布线设计完成器件编程功能仿真时序仿真器件测试 流程说明:1.工程师按照“自顶向下”的设计方法进行系统划分。2.输入verilog HDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。3.将以上的设计输入编译成标准的verilog HDL文件。4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。5.利用综合器对verilog HDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8.在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改verilog HDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。四、万年历总体设计方案4.1 万年历原理 设计原理如图4.1所示:基准时钟置数按键控制按键显示动态显示译码计数器 图4.1 设计原理图计数器在正常情况下是对1HZ的频率计数,在调整时间状况下是对需要调整的时间模块进行计数;控制按键用来选择是正常计数还是调整时间并决定调整时、分、秒;置数按键按下时,表示相应的调整块要加一,如要对小时调整时,显示时间的LED管将闪烁且当置数按键按下时,相应的小时显示要加一。动态显示模块是对计数器的计数进行译码,送到LED显示。4.2 实验程序(1) Clock模块Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Clock is port( mode, set, clr, clk ,k:in std_logic; seg7, segctr :out std_logic_vector(7 downto 0) );end entity;ARCHITECTURE arch OF Clock ISsignal state: std_logic_vector(1 downto 0);signal Hour, Min, Sec,Year,Mon,Day,d: std_logic_vector(5 downto 0);signal BCDH, BCDM, BCDS,BCDN,BCDY,BCDR: std_logic_vector(7 downto 0);signal segDat: std_logic_vector(3 downto 0);signal blink: std_logic_vector(2 downto 0);signal set_reg, blink_clk: std_logic; component BCD port(DataIn : in std_logic_vector(5 downto 0); BCDOut : out std_logic_vector(7 downto 0) ); end component;BEGIN process(mode) begin if (clr='1') then state<="00" else if (mode'event and mode='1') then state<=state+1; end if; end if; end process; process(state, blink_clk) begin case state is when "00" => blink<="000" when "01" => blink<=(2=>blink_clk, others=>'0'); when "10" => blink<=(1=>blink_clk, others=>'0'); when "11" => blink<=(0=>blink_clk, others=>'0'); end case; end process; process(Mon, Year,d)begin case Mon is when "" => d<="" when "" => case Year is when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when others => d<="" end case; when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when "" => d<="" when others => d<="" end case;end process;process(clk)variable blink_cnt: std_logic_vector(13 downto 0);begin if (clr='1') then blink_clk<='0' blink_cnt:=(others=>'0'); else if (clk'event and clk='1') then if (blink_cnt="011") then blink_cnt:=(others=>'0'); blink_clk<=not blink_clk; else blink_cnt:=blink_cnt+1; end if; end if; end if; end process;process(clk, state)variable clk_cnt: std_logic_vector(16 downto 0);begin if (clr='1') then Hour<="" Min<="" Sec<="" Year<="" Mon<="" Day<="" clk_cnt:=(others=>'0');set_reg<='0' else if (clk'event and clk='1') then case state is when "00" => if (clk_cnt="") then clk_cnt:=(others=>'0'); if (Sec=59) then Sec<=(others=>'0'); if (Min=59) then Min<=(others=>'0'); if (Hour=23) then Hour<=(others=>'0'); if (Day=d) then Day<="" if (Mon=12) thenMon<=""if (Year=63) thenYear<="" else Year<=Year+1; end if; else Mon<=Mon+1; end if; else Day<=Day+1; end if; else Hour<=Hour+1; end if; else Min<=Min+1; end if; else Sec<=Sec+1; end if; else clk_cnt:=clk_cnt+1; end if;when "01" => if(k='1')then if (set='1') then if set_reg='0' then set_reg<='1' if (Year=63) then Year<="" else Year<=Year+1; end if; end if; else set_reg<='0' end if; else if (set='1') then if set_reg='0' then set_reg<='1' if (Hour=23) then Hour<=(others=>'0'); else Hour<=Hour+1; end if; end if; else set_reg<='0' end if; end if;when "10" => if(k='1')then if (set='1') then if set_reg='0' then set_reg<='1' if (Mon=12) then Mon<="" else Mon<=Mon+1; end if; end if; else set_reg<='0' end if; else if (set='1') then if set_reg='0' then set_reg<='1' if (Min=59) then Min<=(others=>'0'); else Min<=Min+1; end if; end if; else set_reg<='0' end if; end if; when "11" => if(k='1')then if (set='1') then if set_reg='0' then set_reg<='1' if (Day=d) then Day<="" else Day<=Day+1;

    注意事项

    本文(万年历的设计与实现(共45页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开