eda课程设计

发布 2022-09-30 19:19:28 阅读 3694

目录。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 种 从左到右...