版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要病床呼叫系统是现在国内医院中需求很高的一种应用电子设备,具有相当大的社会意义和重要的实用价值。所使用的病床呼叫系统既要考虑到医院的整体环境,又要有很好的实用性以及装饰性。它为病人和医护人员之间搭建起一个信息沟通的快速通道,使病房病人在紧要时可得到及时的治疗。 本文论述了一种病床呼叫系统的设计方案和实现方法。系统使用VHDL语言,采用目前比较流行的FPGA来完成病房患者呼叫器与护士所在护士站主控之间的通信。文中给出了该系统的软件设计与仿真结果。本系统底层模块采用文本设计输入方法,编译,仿真,生成相应的模块元器件;顶层模块采用原理图设计输入方法,将底层模块元器件结合简单门电路连线而成;最后对
2、系统进行了整体仿真测试。结果表明,系统各功能模块工作状态良好,整个系统设计达到了预期的目的。 本系统具有结构简单,程序调试容易,可靠性高,功耗低,安装方便等特点,具有很强的实用价值。 关键词:病床呼叫;VHDL;FPGA;底层模块 AbstractElectronic device that widely used in many hospitals for the system of hospital bed calling,become more and more popular and valuable.The system should consider both valuable a
3、nd decorative as well as the whole design of the hospital requirements. It is building an information channel that could connect with both patients and health care workers, so it may be very beneficial for patients to have the effective treatments in a short time. This paper discussed the concrete d
4、esign and the method of realization on the system of hospital bed calling.In the system designed,FPGA that is very popular nowadays using VHDL was adopted to help the patients in hospital bed communicate with nurses in the nurses station.The software design and the simulation results of the system a
5、re presented in this thesis. The button modules of the system was designed by the method of text design input, compiled,simulated and then generated the corresponding component of the module;The method of schematic diagram design input was adopted to design the top module,in which the components of
6、the button modules combined and linked with some simple gates;Finally,the system was tested as a while. On a summary of all the work,all of the modules worked well and the whole system attained the desired goals.The system is charactered by simple structure, easy program debugging,high reliability,
7、low power consumption and easy installation, which make it possess practical value. Keywords:hospital bed calling; FPGA; VHDL;button modules目 录VII1 绪 论11.1 课题背景和意义11.2 国内外研究现状11.3 课题主要内容21.4 论文的章节安排22 开发工具介绍42.1 开发语言VHDL42.1.1 简介42.1.2 特点42.1.3 优势52.2 可编程逻辑器件FPGA62.2.1 背景62.2.2 技术特点62.2.3 设计流程72.2.4
8、 产品比较92.2.5 工作原理92.3 开发平台Quartus II102.3.1 Quartus II软件简介102.3.2 Quartus II设计输入102.3.3 Quartus II设计编译112.3.4 Quartus II设计仿真122.3.5 Quartus II器件编程133 系统总体方案设计153.1 功能需求分析153.2 总体设计方案153.3 系统设计步骤164 底层模块的详细设计174.1 按键矩阵扩展模块174.1.1 设计要求174.1.2 设计原理174.1.3 设计方法174.1.4 仿真结果234.1.5 电路符号244.2 定时模块244.2.1 设计
9、要求244.2.2 设计原理244.2.3 设计方法254.2.4 仿真结果274.2.5 电路符号274.3 二进制编码转BCD码模块284.3.1 设计要求284.3.2 设计原理284.3.3 设计方法284.3.4 仿真结果304.3.5 电路符号304.4 数码管动态扫描模块314.4.1 设计要求314.4.2 设计原理314.4.3 设计方法314.4.4 仿真结果324.4.5 电路符号344.5 显示段码转换模块344.5.1 设计要求344.5.2 设计原理344.5.3 设计方法344.5.4 仿真结果364.5.5 电路符号364.6 二分频模块364.6.1 设计要求
10、364.6.2 设计原理364.6.3 设计方法374.6.4 仿真结果384.6.5 电路符号385 顶层电路的综合设计395.1 设计思路395.2 设计方法395.3 仿真结果41结 论44致 谢46参考文献47附录A 英文原文48附录B 汉语翻译551 绪 论1.1 课题背景和意义现代社会的重要标志之一就是电子信息产品的广泛使用,而且是产品的性能越来越好,复杂程度越来越高,更新的步伐越来越快。支撑电子信息产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者的代表是微细加工技术,而后者以电子设计自动化(electronic design a
11、utomatic, EDA)技术为代表。许多EDA开发工具都支持的硬件描述语言已成为满足这些满足需求的关键技术。硬件描述语言发展至今已有几十年历史,并成功地应用于硬件系统的设计、仿真、综合和验证等各个方面,特别是VHDL语言适用于可编程逻辑器件的设计,已成为设计人员首选的开发工具。正常情况下,病房和护士站之间有一定距离,病人数量庞大,医务人员数量有限,无法达到一对一的监护要求,使得监护工作很难完成,且病人出现问题时,医务人员在第一时间内无法获得救助信息,这给治疗带来一定困难。面对患者越来越多的更加具有个性化的要求,为了减少医疗事故所带来的压力,以及为了更好适应现代化的步伐,达到服务的
12、智能化,医院需要引入病床呼叫系统,升级现有设备。病床呼叫系统是传送病床信息的重要手段,病床呼叫系统可将病人的请求快递传送给值班医生和护士。呼叫系统的优劣直接关系到病人安危,历来受到各大医院的普遍重视。它要求及时、可靠、准确、简便可行、利于推广。基于FPGA的具有呼叫、语音提示、显示等功能的病床呼叫系统,基本满足了医院的病房护理要求1。本课题基于VHDL的医院病床呼叫系统设计,系统维护简单,工作应用简单。因此,本课题是非常有意义的。1.2 国内外研究现状随着全球老龄化进程的不断加快,全球生存环境的严重恶化,以及人类对健康关注的增加,医疗行业正快速膨胀。由于医疗行业的客户是患者,医疗行业比其他任意
13、一个行业都需要提高客户满意度。患者希望得到最高质量的护理和服务,因为他们的生命就掌握在服务提供者的手中,所以他们所提出要求的苛刻程度超过其他任何客户。怎么样更好的满足患者的要求,提升患者的满意度,是从事医疗行业的所有管理人员应该积极思考的问题。病床呼叫系统已经成为医院提高自身医护服务质量,提高员工的工作效率,减少医疗事故发生的一种非常重要的基础设施。从早期的人工呼叫发展到今天的电子按铃呼叫系统,病床呼叫系统的发展大概经历了3个阶段,即传统意义上的口头呼叫、摇铃呼叫和电子按铃呼叫3个阶段。病床呼叫系统在国外发展比较迅速,目前已经出现了向着护理系统的智能化和可视化发展,但我们国家的病床呼叫系统起步
14、则比较晚,在上世纪八十年代还处于人工呼叫或者摇铃呼叫阶段。到上世纪八十年代以后,电子按铃呼叫才开始在我国各大医院得以应用,但是技术含量比较低。目前国内的大部分医院均处在非常低端的管理模式上,在资源利用上采用人工呼叫,不能做到智能一体化的管理模式,另外由于医院采用有线管理,线路盘绕复杂,极易引起火灾,存在着很大安全隐患。当病人身体出现不适或者其他方面需要帮助时,通常都是呼叫医生,继而等待治疗。在这过程中,不但浪费了病人的宝贵时间,更给医院医生带来一定的麻烦。1.3 课题主要内容本课题的主要内容为设计一个病床呼叫系统,实现40位的病床呼叫,同时用数码管显示出病床的编号并伴有指示灯和语音提示。主要运
15、用VHDL语言进行编程和仿真实现,使用系统仿真软件Quartus II完成所有实验项目的调试,并得出完整的仿真结果,然后将调试完成的程序文件适配到可编程器件FPGA中进行实验,最终达到本次毕业设计的结果。1.4 论文的章节安排本论文在分析了病床呼叫系统和 EDA技术的国内外发展情况下,给出了基于 FPGA病床呼叫系统的设计,对系统底层设计和顶层设计做了较为详细的介绍,最后根据仿真结果做出了总结。 全文共分六章,具体安排如下: 第一章,绪论,从宏观上介绍了课题的背景和选题意义、病床呼叫系统以及 EDA技术的国内外发展现状,提出了本文的主要内容及章节安排。 第二章,开发工具介绍,主要介绍开发语言V
16、HDL、可编程逻辑器件FPGA、开发平台Quartus II软件。 第三章,系统总体方案设计,首先明确系统设计步骤,再次进行系统的功能需求分析,最后给出系统设计步骤。 第四章,底层模块的详细设计,根据功能需求分析的结果大体明确整个系统需要按键矩阵扩展模块,定时模块,二进制编码转BCD码模块,数码管动态扫描模块,显示段码转换模块,二分频模块,使用VHDL编写程序,实现相应的功能,生成元器件符号图并进行仿真,以检验模块设计结果。 第五章,顶层电路的综合设计,将设计好的底层模块结合简单的门电路按照设计要求连线,编译仿真,若结果符合要求则将调试完成的程序文件适配到可编程器件FPGA中进行实验,完成本次
17、设计。第六章,结论,本章从系统设计、调试结果等方面对课题的研究进行了总结,并对课题中出现的问题作出了分析,并给出相应的解决措施,展望课题相关技术今后的发展方向。2 开发工具介绍2.1 开发语言VHDL2.1.1 简介VHDL是英文名VHSIC(Very-High-Speed Integrated Circuit)Hardware Description Language的缩写。VHDL语言是一种用于电路设计的高级语言。它出现于80年代的后期。最初是由美国国防部开发出来给美军用来提高设计的可靠性和缩短开发周期的一种使用范围较小的设计语言。将VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是
18、应用于数字电路的设计中。它在中国的应用多数是使用在FPGA/CPLD/EPLD的设计中。当然,在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用来描述数字系统的结构,行为,功能和接口。除了拥有很多具有硬件特征的语句之外,VHDL的语言形式、描述的风格和语法是非常类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称作设计实体(可以是一个元件,一个电路模块或者一个系统)分成外部(或称可视部分以及端口)和内部(或称不可视部分),涉及实体的内部功能和算法完成部分。在对一个设计实体进行定义外部界面之后,一旦其内部开发完成后,其他的设计应用就可以直接调用这一实体。这种将设
19、计实体分成内外两部分的概念就是VHDL系统设计基本点2。2.1.2 特点与其他硬件描述语言相比,VHDL具有如下特点。1. 功能强大且设计灵活VHDL拥有功能强大的语言结构,可以使用明确而简洁的源代码来描述较为复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。2. 支持广泛且易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,大多数EDA工几乎都支持VHDL,这为VH
20、DL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。3. 强大的系统硬件描述能力VHDL具有多层次设计的描述功能,不但可以描述系统级电路,而且可以描述门级电路。而描述既可以采用结构描述、寄存器传输描述或行为描述,又可以采用三者相混合的混合级描述。另外,VHDL支持惯性延迟以及传输延迟,还可以准确地建立起硬件电路模型。VHDL支持预定义的,自定义的数据类型,给硬件描述带来很大的自由度,使设计开发人员能够方便创建较高层次的系统模型。4. 独立于器件的设计且与工艺无关设计开发人员用VHDL进行设计开发时,不必
21、首先考虑选择需要完成设计的器件,就可以集中精力以进行设计的优化。当设计描述的工作完成后,可以使用多种不同的器件结构实现其功能。5. 很强的移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。6. 易于共享和复用VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。2.1.3 优势与其他的硬件描述语言相比,VHDL具有更为强大的行为描述能力,从而决定了他成
22、为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管
23、理最终设计实现的目标器件是什么,而进行独立的设计。2.2 可编程逻辑器件FPGAFPGA(Field Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础之上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,不但解决了定制电路的不足,而且克服了原有可编程器件门电路数有限的缺点。2.2.1 背景以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如
24、AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是
25、编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。2.2.2 技术特点现场可编程门阵列(FPGA)作为新一代的ASIC器件,它是在可编程阵列逻辑和通用阵列逻辑等器件基础之上发展起来的。同PAL、GAL相比来说,FPGA技术的集成度更高、功能更加强大,一片FPGA基本上就可代替上千块通用IC芯片。FPGA除了具有ASIC所拥有的特点之外,还具有以下这些优点。随着微电子技术的快速发展,加上
26、芯片制造技术的日益提高,FPGA芯片的片内资源也在不断扩大,就现在的FPGA芯片来说,它们内部的逻辑门数量己达到数百万门乃至上千万。所以,FPGA的功能己经变的非常强大,而且应用也越来越广泛。用户可以充分的利用FPGA芯片的可编程特性,在 发项目的过程当中反复地编程、擦除,用户只需要对软件部分进行相应的修改就可以实现功能上的不同了。这样的优势,在电路只做少量修改时表现的尤为明显。FPGA的厂商会出厂以前对FPGA芯片进行测试,设计人员只需通过相应的软件、硬件环境便可完成芯片相关功能的设计。从这个方面来看,在系统开发中使用FPGA芯片可以减少项目资金的投入,节约系统的成本,同时缩短了系统的开发周
27、期。FPGA技术之所以拥有现在这样大的吸引力,个人认为这里的根本原因在于FPGA不仅仅实现了系统小型化、低功耗、高可靠性等构想,而且它的开发周期相对来说比较短、而且芯片价格也在不断下降。所以,可以预见的是FPGA正在越来越多地取代传统意义上的ASIC,特别是在个性化、小批量的产品市场方面。2.2.3 设计流程FPGA是可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分内容。硬件包括FPGA芯片、存储器、输入输出接口和其他设备,软件即相应的VHDL程序和Verilog HDL程序。FPGA设计采用的是自顶而下方法,最初从系统级设计,然后逐步划分到二级单元,二级单元设计,直到可以直接操
28、作基本逻辑单元或IP核为止,一般来说FPGA的设计流程可以分为如下步骤。1. 功能定义在设计FPGA项目之前,就要对系统功能的定义和模块进行划分,另外一点就是要根据项目的要求,如是否需要使用到锁相环,是否需要IP核,对器件工作的速度以及它本身的资源、成本等方面进行权衡后,选择合适的设计方案和性价比较高的器件类型。2. 设计输入设计输入有原理图输入和硬件描述语言两种方式,原理图输入比较直观但效率低,不容易维护,不利于模块构造和重用、可移植性差,当芯片结构升级后,所有的原理图都需要改动。硬件描述语言包括VHDL和VerilogHDL以及SystemC等,硬件描述语言输入的特点是:设计与芯片工艺无关
29、,可以方便的进行自顶向下设计,输入效率很高,有利于模块的划分与移植,可移植性好,同时具有很强的逻辑描述和仿真功能。3. 功能仿真功能仿真也可以称之为前仿真。是指在编译之前对用户所设计的硬件电路进行逻辑功能验证,由于没有延时信息,所以仅仅是对功能的初步检测。4. 综合优化综合就是将较高层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA进行布局布线。目前的层次来说,综合优化(Synthesis)是指将设计输入编译成由与或非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而非真正的门级电路。5. 综合后仿真综合后仿真是用来检查综合结果是否和原
30、设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可用来估计门延时对整个系统的影响。但是这一步骤却不能估计线延时,因此综合后仿真与布线后实际情况还有一定的差距,并不准确。6. 实现与布局布线实现是将综合生成的逻辑网表配置到具体的FPGA芯片上。布局布线可以认为是利用工具把逻辑映射到目标器件结构的资源中去,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。7. 时序仿真时序仿真也称后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有时序规则,如建立时间,保持时间等)现象。时
31、序仿真包含的延迟信息最精确,能较好地反映芯片的实际工作情况。8. 板级仿真与验证板级仿真主要用于高速电路系统的设计当中,对高速电路系统的信号完整性、电磁干扰等性能进行分析,一般都需要借助于第三方工具进行仿真和验证。9. 芯片编程与调试芯片编程与调试是设计的最后一步。芯片编程是抬产生使用的数据文件(位数据流文件,BitstreamGeneration),然后将编程数据配置到FPGA芯片当中去。目前,为了方便用户进行芯片调试,FPGA芯片生产商都提供了内嵌的在线逻辑分析仪。随着FPGA厂商降低芯片的成本,FPGA被广泛应用于,通信,数字信号处理,工业控制,航空航天等领域,并取得非常高的可靠性3。2
32、.2.4 产品比较早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器组成。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的
33、内置模块(比如加法器和乘法器)和内置的记忆体。因此一个有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。CPLD和FPGA还有一个区别:CPLD下电之后,原有烧入的逻辑结构不会消失;而FPGA下电之后,再次上电时,需要重新加载FLASH里面的逻辑代码,需要一定的加载时间。2.2.5 工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块I
34、OB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模
35、块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。2.3 开发平台Quartus II2.3.1 Quartus II软件简介Quartus II是Altera公司在Max+plus II基础上推出的新一代功能强大的Windows环境下FPGA/CPLD的开发软件。该开发软件是一个完全集成化、易学易用的可编程逻辑设计环境,可以在多种平台上运用。它所提供的灵活性和高效性是无可比拟的,其丰富的图形界面,辅之以完整的、可及时访问的在线文档,使初学者能够轻松掌握和使用Quartus II软件。Quartus II软件支持各种HDL设计输入选项,如VHDL、
36、VerilogHDL和AHDL等,它允许设计人员添加自己认为有价值的宏单元。Quartus II系统的核心编译器Compiler支持Altera公司的FLEX10K、FLEX6000、MAX9000、Cyclone、Cyclone II、Cyclone III、Stratix等可编程逻辑器件系列,提供了真正与结构无关的可编程逻辑设计环境。Quartus II的编译器还提供了强大的逻辑综合与优化功能,使用户比较容易地将设计集成到器件中。2.3.2 Quartus II设计输入Quartus II的设计过程主要由设计输入、设计编译、设计仿真和器件编程4部分组成。Quartus II软件的设计输入方
37、式有多种,主要包括文本设计输入方式、原理图设计输入方式、波形设计输入方式、EDIF输入文件方式、图形设计文件方式和宏功能模块输入方式等。设计人员可以根据自己的实际情况灵活选择使用。1. 文本设计输入方式Quartus II软件支持VHDL、VerilogHDL和AHDL等硬件描述语言。下面介绍Quartus II开发软件的文本设计输入的使用方法。(1)新建设计项目(2)输入文本文件(3)生成逻辑图形符号2. 原理图设计输入方式(1)建立设计项目(2)建立原理图文件(3)输入原理图符号(4)连线(5)为引脚和总线命名(6)生成逻辑图形符号3. 混合输入方式在一个设计项目中,文本和原理图混合输入方
38、式对层次化设计是非常有用的。上层文件不但可以通过创建默认符号的方法降为下层文件,而且还可单向调用下层文件,但是不允许同一层之间的直接或间接调用。使用混合输入方式时应注意以下几点:(1)首先建立文本文件*.vhd或者原理图文件*.bdf。(2)将它们都生成相应的逻辑图形符号,作为被调用的原件。(3)在图形编辑器中调入已经生成的逻辑图形符号。(4)按设计逻辑功能要求把各逻辑图形符号连接起来。2.3.3 Quartus II设计编译1. 编译前的设置 在器件编译前需要对编译的芯片进行选择,并需要为其选择配置器件,同时还需要选择对器件的编程方式。其详细操作过程如下:(1)选择目标芯片依次选择菜单命令“
39、AssignmentsSetting”,在Category项下选择Device,默认值为建立新项目工程时选定的目标芯片,用户如果需要更改可重新选择目标芯片。此处不做任何修改,即目标芯片为EP2C5T144C8。(2)选择配置器件和编程方式单击“Device and Pin Options”按钮,弹出选择配置器件和编程方式对话框,单击General标签项,默认配置为选中“Auto-testart configuration after error”;单击Configuration标签项,选择配置器件为EPCS1/EPCS4,其配置模式可选择Active Serial。器件配置和编程方式选择合适后
40、,单击“确定”按钮即可。2. 全程编译Quartus II编译一个设计项目时,Compiler在设计文件中读取信息并产生编译文件和仿真文件。Quartus II的全编译过程包括分析综合、布局布线、分配编译和时序仿真4个环节。在Quartus II7.2中可以依次选择菜单命令“ProcessingCompiler Tool”。分析综合:在编译过程中首先检查文本输入文件中有无语法错误、原理图的信号线有无漏接和信号有无多重来源等。如果设计文件存在错误,则报告出错信息并标出错误的位置,供设计者修改。如果设计文件不存在错误,则继续进行综合。通过综合完成设计逻辑到器件资源的技术映射。布局布线:布局布线在分
41、析综合成功完成后才能进行。在布局布线环节中,主要完成设计逻辑在器件中的布局和布线、选择适当的内部互连路径、引脚分配、逻辑元件分配等操作。分配编译:成功完成第2个环节后,才能进入分配编译环节。在编译工程中,产生了多种形式的器件编程映像文件。时序分析:成功完成布局布线后,设计编译还需要进行时序分析。在此环节中,计算给定设计与器件上的延时,完成设计分析的时序分析和所有逻辑的性能分析。当完成全编译后,单击“Report”按钮,会弹出编译结果概要报告窗口,报告工程文件全编译的相关信息,如下载目标芯片的型号名称、占用目标芯片中逻辑单元的数目和占用芯片的引脚数目等。注意,在使用Quartus II编译分层设
42、计项目时,首先要对每一个底层文件进行编译,然后再对上层文件进行编译。2.3.4 Quartus II设计仿真设计仿真过程包括功能仿真和时序仿真。功能仿真可以验证项目的逻辑功能是否正确;时序仿真不仅可以验证项目的逻辑功能是否正确,还可以测试器件最差情况下的时间关系。在仿真过程中,设计者给仿真器提供输入向量,以便仿真后产生对应于这些输入信号的输出信号。在一定条件下,时序仿真中的仿真结果与实际的可编程器件的时序关系完全相同。1. 创建波形文件选择菜单命令“FileNewOther Files”。在弹出的对话框中选择Vector Waveform File,单击“OK”按钮,出现一个无标题的波形编辑窗
43、口。2. 创建输入输出向量创建输入输出向量的操作步骤如下:依次选择菜单命令“EditInsertInsert Node or Bus”,或者在向量编程窗口空白位置处(黑粗矩形框内空白位置)单击鼠标右键,在右键下拉菜单中选择“InsertInsert Node or Bus”。Insert Node or Bus对话框中提供了被添加Node或Bus的名称、类型、数值类型、数制类型和总线宽度等属性。单击“Node Finder”按钮,弹出Node Finder对话框,在“Filter”栏中选择“Pins:all”,单击“List”按钮,可以发现在“Node Found”中列出文件中所有的输入输出向
44、量。可以通过“>>”和“<<”等按钮将Node添加到“Selected Nodes”栏中或者从“Selected Nodes”栏中删除。3. 设置仿真时间根据设计者的要求来确定仿真时间,系统默认的仿真时间为1微秒。选择菜单命令“EditEnd Time”,弹出End Time对话框,可在Time中键入最终的仿真时间,例如1微秒,单击“OK”按钮即可。在End Time对话框中还显示了信号向量的输入输出类型、数制类型等扩展属性。4. 设置输入信号编辑仿真输入信号为波形时,仿真信号频率要尽可能与实际信号的工作频率相同。仿真信号功能按钮主要分为工具按钮和数据按钮。如“选择工具
45、”用于选择某段波形区域,“文本工具”用于增加波形的注释,“缩放工具”用于对波形编辑窗口中的波形进行缩放,“数据按钮”用于为波形设置不同的数据,便于观察仿真结果。5. 波形仿真选择菜单命令“ProcessingStart Simulation”,或者单击“Start Simulation”命令按钮,打开仿真窗口。如果在仿真过程中检查有错误,其错误和警告信息将会显示出来,需要返回修改,重新编译。2.3.5 Quartus II器件编程1. 引脚设置和下载为了能对器件进行硬件测试,应将其输入输出信号锁定在目标芯片的确定的引脚上,再编译下载。依次选择菜单命令“AssignmentAssignment
46、Editor”,弹出配置编辑窗口,在Category栏中选择Pin。双击To栏中的new,在下拉列表中选择本工程需要锁定的端口信号名;同样的方法,双击Location栏中的new ,在下拉列表中选择对应端口信号名的器件引脚号。保存引脚锁定的信息后,必须再重新编译一次,才能将引脚锁定的信息编译进编程下载文件中。2. 器件编程下载当时序仿真完成后,最后一步就是把编译生成的.sof文件下载到具体的CPLD/FPGA器件中。首先将下载电缆的一端与电脑的并行口相连,另一端与可编程器件的电路板相连,实现在系统编程。打开编程窗口和配置文件。选择菜单命令“ToolsProgrammer”,弹出编程器窗口。在m
47、ode栏中有JTAG、Passive Serial、Active Serial和In-Socket Programming4种编程模式,为了直接对CPLD/FPGA进行配置,选择JTAG编程模式,并在Program/Configure栏下的小方框中打钩。同时仔细核对下载文件名和文件路径,如果准确无误,则单击左侧的“Add File”按钮。如果是第一次使用该功能,“Hardware Setup”按钮后显示“No Hardware”,需要用户安装下砸电缆。单击“Hardware Setup”按钮,弹出Hardware Setup对话框,准备安装下载电缆。在Hardware type下拉列表中选择B
48、yteBlasterMV or ByteBlaster II,单击“OK”按钮。单击“Start”按钮进行编程,当进度为100%时,表示编程成功。至此,完成了在Quartus II开发软件中设计输入、设计编译、设计仿真和设计编程的整个操作过程4。3 系统总体方案设计3.1 功能需求分析本次设计采用可编程逻辑器件FPGA来设计该病床呼叫系统,基于以下功能分析,完成整个系统的设计。1. 病区分析:病区一般拥有比较多的病床,这里设计成实现40位病床的呼叫;2. 站点分析:可以得到从病区传来的呼叫信息,包括报警信息,显示信息;3. 显示功能:显示呼叫的病床号以及报警持续时间;4. 报警功能:指示灯闪烁
49、,同时伴有语音提示;5. 呼叫功能:每个病床都有一个呼叫按钮,当病人需要帮助时,按下床头的呼叫按钮,站点可以接收到这一呼叫信息。6. 控制功能:整个系统设有一个使能端,作为整个系统的总开关。3.2 总体设计方案整个系统要实现40位病床的呼叫,使用的按键数目比较多。在键盘按键数量较多时,为了减少I/O口的占用,通常将按键排成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接接通,而是通过一个按键加以连接,这样可以增加键盘数量,适合用在按键比较多的场合,所以系统有一个按键矩阵扩展模块。每一个病床的报警持续时间不宜过短,也不宜太长,这里设为10秒,有按键按下时,在这10秒内其他按键按下无效,
50、10秒过后,报警停止,其他按键按下有效,因此系统应该有一个定时模块来实现这一效果。因为要实现显示病床号这一功能,而病床号最大是40,需要两个数码管分别显示十位和个位,按键矩阵扩展模块输出的病床信息是一串二进制码,无法直接控制数码管,应该首先将这串二进制码拆分成两个BCD码,再将这两个BCD码和定时时间转化成控制数码管的段位码,因而系统应有二进制编码转BCD码模块和显示段码转换模块。显示功能要求显示两位数床位号和一位数定时时间,需要为数码管显示提供位选信号和与位选信号对应的段位BCD码,还要具备一个数码管动态扫描模块。系统需要给定时模块提供基信号,可以使用二分频模块来完成。整个系统由以上6个主要
51、模块和一些简单的门电路组成。其中按键矩阵扩展电路进行动态扫描操作,当有按键按下时定时模块开始定时,在定时10秒内控制矩阵扩展模块让其他按钮按下无效,同时引脚speaker发出信号产生语音提示,引脚lamp发出信号通过指示灯闪烁提示;而二进制编码转换BCD码模块、显示段码转换模块等将按下的那个按键的二进制编码依次转换成BCD码和LED七段码,并通过数码管动态扫描模块将转化后的需要显示的数据的七段码和微信号匹配后送LED数码管显示。3.3 系统设计步骤根据总体设计方案进行系统的设计,具体设计步骤如下:1. 建立相应的底层模块文件,编译2. 测试并仿真所建立的底层模块3. 测试仿真成功后生成底层模块
52、对应的模块电路符号4. 建立顶层文件,将所有的底层模块电路符号添加进来,并添加所需基本门电路5. 根据要求连接各个模块和门电路,完成顶层文件的初步设计6. 编译并仿真,观察仿真结果,作出相应的修改直至符合设计要求4 底层模块的详细设计4.1 按键矩阵扩展模块4.1.1 设计要求按键矩阵扩展模块的主要作用是将按键扩展为40个按键,在时钟控制下循环扫描键盘,根据行扫描信号和对应键盘响应信号确定键盘按键位置,并将扫描的行信息和是否按下的信息输出。4.1.2 设计原理采用5×8矩阵键盘作为系统的输入模块。对于键盘上的每一个键的识别一般采取扫描的方法实现,用行信号进行扫描时的基本原理和流程如下
53、:当进行行扫描时,扫描信号由行引脚进入键盘,以11110、11101、11011、10111、01111的顺序每次扫描不同的一行,分别为第一、二、三、四、五行,然后读取行引脚的电平信号,就可以判断是哪个按键被按下5。4.1.3 设计方法采用文本编辑法利用VHDL语言描述5×8矩阵键盘列扫描电路,涉及到的VHDL语法有:IF-ELSE语句、CASE-WHEN语句、进程(PROCESS)语句和信号赋值语句。IF-ELSE语句是最常用的顺序语句,其用法和语句格式与普通的计算机高级语言类似,在VHDL语言中,它只在进程中使用,根据一个或一组条件来选择某一特定的执行通道。 IF 语句中至少应包
54、含一个条件表达式,先判断条件表达式的结果是否为真,若为真,则执行THEN后面的语句方块的语句,执行完以后就跳转到END IF之后的语句。若条件条件表达式的结果为假,则执行ELSE之后的语句方块。每一个 IF语句都必须有一个对应的 END IF语句, IF语句可以嵌套使用,即在一个IF语句中可以调用另一个 IF语句。ELSEIF允许在IF语句中出现多。CASE-WHEN语句属于顺序语句,只能在进程中使用,常用来选择有明确描述的信号。CASE-WHEN语句的功能与WITH-SELECT语句的功能相似,都是通过选择信号X的值的变化来选择相应的操作。但两者之间不同的是: 1. CASE-WHEN语句必
55、须放在进程中,而WITH-SELECT语句是并行语句必须放在进程外。 2. CASE-WHEN语句根据选择信号的值,执行不同的语句方块,完成不同的功能。而WITH-SELECT语句根据选择信号的值只能执行一个操作。 3. 使用CASE-WHEN语句时,WHEN语句中的信号值必须在选择信号的取值范围内, 如果WHEN语句中列举的信号值不能覆盖选择信号S的所有取值,就用关键字 OTHERS表示未能列出的其他可能的取值。使用CASE语句的时候要注意: 1. 至少要有一条分支条件。 2. 分支条件之间不能重叠 。3. 分支条件要覆盖完全,如果不能完全列出,则要使用OTHERS关键字。 进程语句是在结构
56、体中用来描述特定电路功能的程序模块。进程语句的内部主要是由一组顺序语句组成的。进程中的语句具有顺序处理和并行执行的特点。在一个结构体中可以包含多个进程语句,多个进程语句之间的是并行同时执行的,所以并行语句本身属于并行语句。进程语句即可以用来描述组合逻辑电路,也可以描述时序逻辑电路。每个进程语句结构都可以取一个进程名称,但进程语句的名称是可以选用的。进程语句从PROCESS开始至END PROCESS结束。进程中的敏感信号表(sensitivity list)只能是进程中使用的一些信号,而不能是进程中的变量。当敏感信号表中的某个信号的值发生变化时,立即启动进程语句,将进程中的顺序语句按顺序循环执
57、行,直到敏感信号表中的信号值稳定不变为止。也可以用WAIT语句来启动进程。在进程说明部分能定义常数、变量和子程序等,但不能在进程内部定义信号,信号只能在结构体说明部分定义。 在进程中的语句是顺序语句,包括信号赋值语句、变量赋值语句、IF语句、CASE语句和LOOP语句等。 一个结构体可以包含多个进程,他们之间是并行执行的,但是进程结构中的语句是顺序执行的。进程间通过信号来实现通信,进程信号的赋值语句是顺序执行的,但是赋值是最后并行执行的。在对信号进行赋值时,表达式的数据对象可以是常数、变量和信号,但是要求表达式的数据类型必须与信号定义语句中的数据类型一致。在结构体中信号的赋值可以在进程中也可以在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度技术开发合作合同标的为人工智能应用研发
- 2024年度农产品购销合同及其质量标准
- 空调压缩机市场需求与消费特点分析
- 真空电子管无线电市场发展预测和趋势分析
- 2024年度技术转让合同:新能源专利技术转让协议
- 2024年度保险合同标的保险范围与保险金额确定
- 运载工具用座椅市场发展现状调查及供需格局分析预测报告
- 羽毛球球拍线市场需求与消费特点分析
- 2024年度大蒜进出口贸易合同
- 2024年度技术开发合同研发项目与期限
- 2024水样采集与保存方法
- 2025届高考语文一轮复习:二元思辨类作文思辨关系高阶思维
- 糖尿病患者体重管理专家共识(2024年版)解读
- 《中国慢性阻塞性肺疾病基层诊疗与管理指南(2024年)》解读
- HSK标准教程5下-课件-L7
- 设备故障报修维修记录单
- 卫生院基本公共卫生服务项目工作进度表
- 技术咨询方案
- 集会游行示威申请登记表
- 中国矿业大学矿山测量学课程设计
- 2021年学校内部审计工作总结范文
评论
0/150
提交评论