eda课程设计报告。
—数字秒表的设计。
指导老师:
时间: 组员:
一、设计流程。
1.文本编辑:
用active-hdl的编译环境进行编写源**,编译通过后,保存为。hdl文件格式。
2.功能**:
将文件调入active-hdl**环境里进行功能**,检查逻辑功能是否正确。
3.逻辑综合与物理实现:
将源**调入ise软件中,逻辑综合,管脚分配,**到fpga板上调试物理实现。
二、设计规划。
本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。
三、各模块的原理及其程序。
本系统设计由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块实现秒表不同的功能 。
1、控制模块。
计时模块的作用是针对计时过程进行控制。计时控制模块可用俩个按钮来完成秒表的启动、停止和复位。
部分源程序:
library ieee;
use use
entity ctrl is
port( clr,clk,sp:in std_logic;
en :out std_logic);
com:process(sp,current_state)
beginend if;
end process;
end beh**e;
2、时基分频模块。
时基分频模块的作用把输入时钟信号变为分频输出信号。
部分源程序:
library ieee;
use use
entity cb10 is
port( clk: in std_logic;
co : out std_logic);
end cb10;
architecture art of cb10 is
signal count:std_logic_vector (3 downto 0);
beginprocess(clk)
beginif rising_edge(clk)then
if count="1001"then
count<="0000";
co<='1';
elsecount<=count+1;
co<='0';
end if;
end if;
end process;
end art;
3、计时模块。
计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。
部分源程序:
十进制计数器:
library ieee;
use use
entity cdu10 is
port( clk:in std_logic;
clr,en:in std_logic;
cn :out std_logic;
count10:out std_logic_vector(3 downto 0));
end cdu10;
end if;
end if;
end process;
end art;
六进制计数器:
library ieee;
use use
entity cdu6 is
end if;
end if;
end process;
end art;
计数器:library ieee;
use use
entity count is
end art;
4、显示模块。
计时显示电路的作用是将计时值在led数码管上显示出来。计时电路产生的值经过bcd七段译码后,驱动led数码管。计时显示电路的实现方案采用扫描显示。
部分源程序:
数据选择器:
library ieee;
use use
entity mulx is
port( clk,clr,en:in std_logic;
s_1ms:in std_logic_vector(3 downto 0);
s_10ms:in std_logic_vector(3 downto 0);
s_100ms:in std_logic_vector(3 downto 0);
s_1s:in std_logic_vector(3 downto 0);
s_10s:in std_logic_vector(3 downto 0);
m_1min:in std_logic_vector(3 downto 0);
m_10min:in std_logic_vector(3 downto 0);
hour:in std_logic_vector(3 downto 0);
outbcd:out std_logic_vector(3 downto 0);
seg:out std_logic_vector(7 downto 0));
end mulx;
architecture art of mulx is
signal count:std_logic_vector(3 downto 0);
end case;
end if;
end process;
end art;
bcd七段译码器:
library ieee;
use use
entity bcd7 is
port(
bcd:in std_logic_vector(3 downto 0);
led:out std_logic_vector(6 downto 0));
end bcd7;
architecture art of bcd7 is
beginled<="1111110"when bcd ="0000" else
0110000"when bcd ="0001" else
1101101"when bcd ="0010" else
1111001"when bcd ="0011" else
0110011"when bcd ="0100" else
1011011"when bcd ="0101" else
1011111"when bcd ="0110" else
1110000"when bcd ="0111" else
1111111"when bcd ="1000" else
1111011"when bcd ="1001" else
end art;
四、系统**。
1、时基分频模块的**。
分析:clk为时钟信号的输入 ,co为分频输出信号。
2、控制模块的**。
分析:clk、clr和sp为输入信号,en为输出信号。
3、计时电路模块的**(如图 4-3~图4-5所示)
十进制计数器的**。
六进制计数器的**。
计数器的**。
分析:clk为时钟脉冲脉冲,s_1ms是毫秒计数值,s_10ms是十毫秒计数器,s_100ms是百毫秒计数器,s_1s是秒计数器,s_10s是十秒计数器,m_1min是分计数器,s_10min是十分计数器,hour是小时计数器。它们均为输入信号。
每来两个时钟脉冲,s_1ms加1,当s_1ms满十时,s_10ms加1,依次类推,s_10ms满十的时候,s_100ms加1等等作为输出。
4、显示电路模块的**(如图 4-6~图4-7所示)
数据选择器的**。
bcd七段译码器驱动器的**。
分析:bcd为时钟脉冲输入信号,led是输出信号,如图所示:当输出为“1111110”时候,输入为“0000”;当输出为“0110000”时输入“0001”,当输入为“0010”时输出为“1101101”,当输入为“0011”时输出为“1111001”等等来实现七段译码功能。
5、数字秒表整个系统的**。
分析:秒表开始从零开始计数,每次增加10ms。工作正常。
五、ise软件物理实现。
打开ise软件,创建项目工程,将源程序带入综合,然后定义输入输出管脚约束,设计实现。**到fpga板子上,可以观察到设计的数字秒表可以按照设计要求正常工作。至此,整个课程设计完成。
六、结束语。
开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,应充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
EDA课程设计数字秒表
课程设计。题目数字秒表设计 院系信息工程学院 班级 姓名 指导教师。系统设计要求。课程设计。第1章 系统设计要求3 第2章 实验目的3 第3章 实验原理3 第4章 系统设计方案3 第5章 主要vhdl源程序4 1 十进制计数器的vhdl源程序4 2 六进制计数器的vhdl源程序5 3 蜂鸣器的vhd...
EDA课程设计数字秒表
可编程器件及应用课程设计报告 题目数字秒表 学院信电工程学院 专业电子信息科学与技术 班级。姓名。学号。指导教师。课程设计任务书 3 一 系统组成模块连图 4 二 模块器件及其程序 4 1 分频器4 2 十进制计数器 5 3 六进制计数器 6 4 动态扫描 7 5 译码显示管 8 三 系统 9 1 ...
EDA课程设计数字秒表
电子课程设计。数字秒表的设计。学院 电子信息工程学院 专业班级 通信111502 姓名 马淑慧 学号 201115030218 指导教师 王海东 2013年12月。目录。1.设计任务及要求1 二。总体框图1 三。选择器件1 四。功能模块2 4.1 分频模块2 4.2 0.01秒模块3 4.3 秒模块...