基于FPGA病房呼叫系统设计.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA病房呼叫系统设计

基于FPGA的病房呼叫系统的设计 中文摘要: 病房呼叫系统,顾名思义,是病人在医生与护士不在的情况下病人找寻医生寻求帮助的系统。该病房呼叫系统是基于FPGA的,通过FPGA设计的不同设计方法的比对,最后采用的模块化设计,VHDL语言与原理图相结合的方法进行设计。充分利用了FPGA的可编程能力与VHDL语言的课移植性和原理图编辑的直观性等优点。来实现病房呼叫系统的功能实现。 关键字:病房呼叫,系统,FPGA,模块,VHDL 原理 假设有8个病房,即有八个信号输入,同时要有时间显示与声音提示。这在病房呼叫系统中是必不可少的。 八个模拟病房呼叫输入端,假设一号优先级最高,依次递减。当有一个信号输入时,其所对应的LED灯亮,并有提示音与时间和病房号显示,开始5秒伴随提示音,5秒后自动关闭提示音,在3分钟内如无应答,则在3分钟后发出警报,持续时间为5秒。当有多个信号同时输入时,病房呼叫系统选择优先级最高的进行显示时间,病房号与声音提示,其他的均只显示其对应的LED,并无时间显示。5秒声音提示以后3分钟内如无应答,再次发出警报。如在3分钟内有应答,则显示下一个病房的病房号与时间,同样当计时器的时间超过3分钟时报警,如在3分钟内有应答则显示下一个,以此类推。 原理图: 方案论证 我对这个设计开始和现在所用的设计不同的方案,但在顶层设计时发现并不好实现,中间的信号太多太庞杂,连接起来比较复杂,但在后续编辑中没有预期的效果,在多次调试仿真中无法得到想要的结果,所以我选择了排除错误,首先从自身下手,对每个模块进行单独设计,利用VHDL语言的可移植性,应用原件例化语句将模块连接起来,通过例化后的电路图与原理图进行比较,看是否有连错等问题。 模块的划分及各模块的功能实现 3.1 模块的划分 对病房呼叫的信号进行存储并处理信号,这就需要一个对信号进行存储的锁存器; 对发出的信号进行优先选择,就需要一个数据选择器; 对时间控制信号的优先选择,使数码管可以显示优先级最高的信号时间,又需要一个数据选择器; 显示时间,并对其进行计时,需要一个计时器; 用七段数码管显示时间,需要一个可以驱动七段数码管的显示器; 蜂鸣,就需要一个蜂鸣器; 在设计变成的过程中,计时器与蜂鸣器的位宽不同,有需要一个转换连接的连接器。 即分为锁存器、数据选择器、时间选择器、计时器、显示器、蜂鸣器与连接器几个模块组成。 3.2 模块的功能实现: 3.2.1 锁存器: 由于有8个病房,所以设计8个输入信号且高电平时为信号输入,另外考虑到时间模块显示的是当前等待时间,所以决定时间显示当前等待时间为最好,所以在所存模块,把复位加到锁存模块,高电平的时候表示复位不工作,低电平的时候表示复位。锁存器的一个输入信号与LED灯相连,使得有呼叫信号时,与病房相对应的灯亮。另外一个相同的输出信号连接数据选择器对信号进行选择,还有一个相同输出信号控制计时模块中的SP信号。 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SUOCUNQI IS PORT( REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); —— 输入信号 SIN:IN STD_LOGIC_VECTOR (7 DOWNTO 0); SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SOUT2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); 三个相同的输出 SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END SUOCUNQI; ARCHITECTURE bhv OF SUOCUNQI IS SIGNAL SOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(REST,SIN) BEGIN IF REST(0)=1 AND SIN(0)=1 THEN SOUT(0)=1; ELSE SOUT(0)=0; END IF; IF REST(1)=1 AND SIN(1)=1 THEN SOUT(1)=1; ELSE SOUT(1)=0; END IF; IF REST(2)=1 AND SIN(2)=1 THEN SOUT(2)=1; ELSE SOUT(2)=0; END IF; IF REST(3)=1 AND SIN(3)=1 THEN SOUT

文档评论(0)

bokegood + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档