eda课程设计

发布 2022-09-30 19:42:28 阅读 8373

目录。第一章、课程设计思路 1

1.1 设计要求 1

1.2设计想法 1

1.2.1整体设计思路 1

1.2.2整体设计流程 1

第二章课程设计过程 2

2.1 模块分配 2

2.2 模块设计 2

2.2.1 呼叫扫描模块 2

2.2.2 数码管显示模块 2

2.2.3 判断模块 2

2.2.4 蜂鸣器及计时器模块 2

第三章病房呼叫系统整体程序 3

第四章结果和** 4

4.1 实验**结果 4

4.2 实验结果描述 4

第五章心得与体会 5

参考文献 6

附录 7通过对外界环境采样从而控制空调是加热还是制冷。

根据设计要求,我们将设计分为几个模块来设计,分别为:呼叫扫描模块、数码管显示模块、呼叫判断模块、蜂鸣器及计时器模块。

该系统是由4个模块组成的:呼叫扫描模块、数码管显示模块、呼叫判断模块、蜂鸣器及计时器模块。

由于有5个病房所以设计了5个输入信号且高电平时为信号输入。模块的一个输入信号与数码管相连,使得有呼叫信号时,显示病房号码。另外一个相同的输出信号被寄存起来,对信号进行选优。

由设计要求,将扫描模块输出的优先级最高的病房的呼叫信号显示到数码管上。

将按键区域输入的五个信号进行一个判断,是否有按键变化,若有按键变化,就给输出端口一个高电平。

若有按键有电平变化,则蜂鸣器得到一个高电平,同时计数器开始计时,计时器的模为五,以为计时器模块的工作频率为1hz,所以这个计时模块的周期为五秒,所以蜂鸣器的持续发音的时间为五秒。

我们对这个模块刚开始设计了和现在不同的方案,然后顶层设计时发现并不好实现,而且连接之后模块也比较复杂,所以我们重新思考之后就有了现在模块的初稿,但是在顶层设定好之后,跑实验箱是显示的结果并不如预期的,多次调试没出结果之后,我选择了排除错误,首先从自身下手,我把顶层的连接改成了用系统框图表示,选它的优点是比较直观,设想正确的话基本上不会出现什么错误,所以,当问题再次出现时我考虑到了每个模块的逻辑问题,经过一个一个找出现的问题,从时间模块的sp的高低电平的修改,在到蜂鸣器和时间表示对应的修改,在到对选优模块最后执行语句you归零的修改,解决了计时器一直计时、蜂鸣器不工作、病房显示号不归零等问题,终于圆满的完成了实验的要求。

一)、病房呼叫系统框图如下:

**结果如图1所示:

图1 实验**结果。

这个程序实现的功能是病房呼叫。一共5个按键,代表5个病房,另外一个按键代表**,按第一个键,数码管显示1,并且喇叭响,当**处理后响5秒,1到5五个按键有5个优先级,如果有2个按键同时按下,那么显示优先级高的房间号码。

通过两个星期的设计,我完整的编出了要求的程序,在整个过程中,老师给予了很多的建议,我通过相关模块的编译,以及顶层设计,最后完成了程序,现在我对end系统的设计有了更加清晰的了解。

在这次设计中,使我认识到了自己在学习知识中的不足。在以后的学习过程中,还得循序渐进,脚踏实地的去学习,平时多积累知识,才能在以后的工作和生活中得到充分的发挥。这次吸取了不认真的教训,以后要认真对待每一个细节,多向老师和同学请教。

我的设计中还有很多不足的地方,希望老师予以指正,提出修改的建议。

1] 谭会生,张昌凡。eda技术及应用[m].第二版。西安电子科技大学出版社,2004.

2]褚振勇.fpga设计与应用[m]西安地址科技大学出版社,2002.

3]侯伯亨,顾新。vhdl硬件描述语言与数字逻辑电路设计[m].西安电子科技大学出版社,2005.

按键扫描程序:

library ieee;

use use

entity scan0 is

port(clk: in std_logic;

count1,count2,count3,count4,count5,count6: in std_logic;

s: out std_logic_vector(2 downto 0);

dout:out std_logic_vector(3 downto 0));

end entity scan0;

architecture art of scan0 is

signal total1 : std_logic_vector(2 downto 0);

signal t1 : std_logic_vector(1 downto 0);

signal cout: std_logic_vector(3 downto 0);

signal total : std_logic_vector(4 downto 0);

signal t11: std_logic_vector(1 downto 0);

signal q:std_logic_vector(4 downto 0);

signal q1: std_logic_vector(1 downto 0);

signal q11: std_logic_vector(1 downto 0);

signal r:std_logic_vector(1 downto 1);

beginprocess (clk)

begins<="000";

if(clk'event and clk='1')then

total1<=count1 & count2 & count3;

total<=count1 & count2 & count3 & count4 & count5;

q11<=count2 & count3;

t11<=count4 & count5;

if(count1='1' and r="0") then cout<="0001";

elsif(total="10000" and r="1")then cout<="0000";

elsif(total1="010" and r="0")then cout<="0010";

elsif(total1="110" and r="1")then cout<="0010";

elsif(total="01000" and r="1")then cout<="0000";

elsif(total1="011" and q1="10" and r="0")then cout<="0010";

elsif(total1="11" and q1="10" and r="1")then cout<="0010";

elsif(total1="001" and r="0")then cout<="0011";

elsif(total1="101" and r="1")then cout<="0011";

elsif(total="01000" and r="1")then cout<="0000";

elsif(total1="011" and q1="01" and r="0")then cout<="0011";

elsif(total1="111" and q1="01" and r="1")then cout<="0011";

elsif(total="00010" and r="0")then cout<="0100";

elsif(total="10010"and r="1")then cout<="0100";

elsif(total="00010"and r="1")then cout<="0000

elsif(total="01010"and r="1")then cout<="0100";

elsif(total="00110"and r="1")then cout<="0100";

elsif(total="01011"and t1="10"and r="1")then cout<="0100";

elsif(total="00001" and r="0")then cout<="0101";

elsif(total="10001" and r="1")then cout<="0101";

EDA课程设计

题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...

eda课程设计

哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...

eda课程设计

目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...