目录。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计时模块 5
2.2.4显示模块 7
3系统顶层文件 9
4系统各个模块和顶层文件的编译、综合、** 11
5硬件验证 15
6总结 16
参考文献 16
1引言。1.1课程设计的目的与任务。
1)熟练掌握eda工具软件quartusii的使用;
2)熟练用vhdl硬件描述语言描述数字电路;
3)学会使用vhdl进行大规模集成电路设计;
4)学会用cpld\fpga使用系统硬件验证电路设计的正确性;
5)初步掌握eda技术并具备一定的可编程逻辑芯片的开发能力;
1.2课程设计的内容。
1)系统功能的分析;
2)实现系统功能的实际方案;
3)编写各功能模块的vhdl语言程序;
4)对各功能模块进行编译、综合、**、分析;
5)顶层文件设计。
6)对整个系统进行编译、综合、**、分析;
7)在cpld\fpga实验开发系统试验箱上进行硬件验证;
8)写实验报告;
1.3实验仪器设备。
1)pc机;
2)quartusii软件;
3)khf-3型cpld\fpga实验开发系统;
1.4课程设计题目。
数字秒表:设计一块数字秒表,能够精确反映计时时间,并完成复位、计时功能。秒表计时的最大范围为1小时,精度为0.
01秒,并可显示计时时间的分、秒、0.01秒等度量。用6位数码管显示时间。
1.5方案的选择。
使用khf-3型cpld\fpga实验开发板,该系统的芯片引脚已经与外部资源固定连接好,**时不必自己接线。
方案一:在显示模块,采用动态扫描显示方式,此方案显示模块只需要两个源程序,较为简洁;
方案二:在显示模块,采用静态扫描显示方式,此方案显示模块需要六个源程序,源程序较多,不过源程序也比较简单;
因为khf-3型试验箱开发系统有十个显示数码管,采用共阴极8段led显示,但是只提供了四个显示数码管(seg7-seg10)采用动态显示方式,而有六个显示数码管(seg1-seg6)采用静态显示方式,但是题目要求需要六个数码管作为输出,输出显示时间,为了确保能够正常实现设计工程的正常显示,在本设计中应该采用静态显示方式,故采用方案二。
2设计方案。
2.1设计原理。
本系统设计采用层次化结构,自顶向下的设计方案,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能,系统的整体组装设计原理图如图2.1,所示。
图2.1系统设计原理图。
说明:clk时钟脉冲输入,clr清零信号输入,start_stop启停信号输入。
2.2各功能模块的原理及其源程序。
2.2.1控制模块。
计时模块的作用是针对计时过程进行控制。计时控制模块由两个按钮start_stop和clr来完成秒表的启动、停止和清零。其中,start_stop按一下计数,再按一下暂停。
clr按一下清零。
其源程序如下:
library ieee;
use use
entity control is
port( clr,clk,start_stop:in std_logic;
en :out std_logic);
end ;architecture one of control is
constant s0: std_logic_vector (1 downto 0):=00";
constant s1: std_logic_vector (1 downto 0):=01";
constant s2: std_logic_vector (1 downto 0):=11";
constant s3: std_logic_vector (1 downto 0):=10";
signal current_state,next_state:std_logic_vector(1 downto 0);
begincom:process(start_stop,current_state)
begincase current_state is
when s0=>en<='0';
if start_stop='1' then
next_state<=s1;
elsenext_state<=s0;
end if;
when s1=>en<='1';
if start_stop='1' then
next_state<=s1;
elsenext_state<=s2;
end if;
when s2=>en<='1';
if start_stop='1' then
next_state<=s3;
elsenext_state<=s2;
end if;
when s3=>en<='0';
if start_stop='1' then
next_state<=s3;
elsenext_state<=s0;
end if;
end case;
end process;
synch:process(clk)
beginif clr='1'then
current_state <=s0;
elsif clk'event and clk='1'then
current_state<=next_state;
end if;
end process;
end one;
2.2.2时基分频电路模块。
时基分频模块的作用把输入时钟信号变为分频输出信号,产生秒表内部定时计数的时钟信号,其输入信号为1khz,将其十分频后变为为100hz,即为0.01s,是10ms,100ms,1s,1min和10min的计时依据。
library ieee;
use use
entity clk_div is
port( clk: in std_logic;
co : out std_logic);
end clk_div;
architecture one of clk_div is
signal count:std_logic_vector (3 downto 0);
beginprocess(clk)
beginif clk'event and clk='1' then
if count="1001"then
count<="0000";
co<='1';
elsecount<=count+1;
co<='0';
end if;
end if;
end process;
end one;
2.2.3计数模块。
用来产生十进制数和六进制数,其中十进制数用来对10ms,100ms,10s,10min进行进位,而六进制数用来对1s和1min进行进位。
1)十进制模块。
library ieee;
use use
entity cnt10 is
port( clk:in std_logic;
clr,en:in std_logic;
co :out std_logic;
counter10:out std_logic_vector(3 downto 0));
end cnt10;
architecture one of cnt10 is
signal comp: std_logic_vector(3 downto 0);
begin
process (clk,clr,en)
begin
if(clr='1')then
comp<="0000";co<='0';
elsif clk'event and clk='1' then
if(en='1')then
if comp="1001"then
co<='1';
comp<="0000";
elseco<='0';
comp<=comp+1;
end if;
end if;
end if;
end process;
counter10<=comp;
end one;
2)六进制模块。
library ieee;
use use
entity cnt6 is
port( clk,clr,en:in std_logic;
co :out std_logic;
counter6:out std_logic_vector(3 downto 0));
end cnt6;
architecture one of cnt6 is
signal temp: std_logic_vector(3 downto 0);
begin
process (clk,clr,en)
begin
if(clr='1')then
temp<="0000";co<='0';
elsif clk'event and clk='1' then
if(en='1')then
if temp="0101" then
temp<="0000";
co<='1';
elsetemp<=temp+1;
co<='0';
end if;
end if;
end if;
end process;
counter6<=temp;
end one;
3)计数顶层文件。
library ieee;
use use
entity counter is
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课程设计
班级 j电子信息1001 姓名 22222 学号 3101155022 教师 2222 日期 2013 1 11 自选课题一 8路移位寄存型彩灯控制器。一 设计要求。设计一个 8 路彩灯控制电路,要求 1 彩灯明暗变换节拍为 0.25s 和 0.5s,两种节拍交替运行 2 演示花型 3 种 从左到右...