课程设计。
课程设计名称: eda课程设计
专业班级 : xxxxxxxxxxx
学生姓名 : xxxxx
学号 : xxxxxxxxxxxxxxx
指导教师 : 焦素敏。
课程设计时间: 2011-12-19~2011-12-30
电子信息工程与技术专业课程设计任务书。
1 设计任务及要求。
设计任务:模拟十字路**通信号灯的工作过程,利用实验板上的两组红、黄、绿led作为交通信号灯,设计一个交通信号灯控制器。要求:
1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间;
2) 交通灯红变绿是直接进行的,没有间隔时间;
3) 主干道上的绿灯时间为45秒,支干道的绿灯时间为25秒;
4) 在任意时间,显示每个状态到该状态结束所需的时间。
支干道。主干道。
图1 路**通管理示意图。
表1 交通信号灯的4种状态。
设计要求:1) 采用vhdl语言编写程序,并在quartusii工具平台中进行**,**到eda实验箱进行验证。
2) 编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。
2设计原理及总体框图。
设计目的:学习dea开发软件和quartus的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
设计原理。(1)第一模块:clk时钟秒脉冲发生电路。
在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:系统输入信号:
clk: 由外接信号发生器提供256的时钟信号;
系统输出信号: full:产生每秒一个脉冲的信号;
2)第二模块:计数秒数选择电路。
计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号;
系统输出信号: tm: 产生显示电路状态转换信号。
tl:倒计数值秒数个位变化控制信号。
th:倒计数值秒数十位变化控制信号。
3)第三模块:红绿灯状态转换电路。
本电路负责红绿灯的转换。
模块说明:系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;
tm: 接收计数秒数选择电路状态转换信号;
系统输出信号: comb_out: 负责红绿灯的状态显示。
(4)第四模块:时间显示电路。
本电路负责红绿灯的计数时间的显示。
模块说明:系统输入信号:tl:倒计数值秒数个位变化控制信号;
th:倒计数值秒数十位变化控制信号;
系统输出信号: led7s1: 负责红绿灯的显示秒数个位。
led7s2: 负责红绿灯的显示秒数十位。
总体框图。时间显示数据输出。
红黄绿灯信号输出。
图2 交通信号灯控制器的原理框图。
采用vhdl语言输入的方式实现交通信号灯控制器。
clk时间显示数据输出。
信号灯输出。
图3 交通信号灯控制器程序原理框图。
该程序由7个进程组成,进程p1和p2将clk信号分频后产生1秒信号,进程p3、p4、p5构成两个带有预置数功能的十进制计数器,其中p4产生允许十位计数器计数的控制信号。进程p6实现状态转换和产生状态转换的控制信号,进程p7产生次态信号和信号灯输出信号,以及每一个状态的时间值。
3 程序设计。
library ieee;
use use
entity traffic is
port (clk:in std_logic;
led7s1:out std_logic_vector(6 downto 0);
led7s2:out std_logic_vector(6 downto 0);
comb_out:out std_logic_vector(5 downto 0));
end;architecture one of traffic is
type dm is (s0,s1,s2,s3);
signal current_state,next_state:dm;
signal full : std_logic;
signal tl :std_logic_vector(6 downto 0);
signal th:std_logic_vector(1 downto 0);
signal tm :std_logic_vector(6 downto 0);
signal time :std_logic_vector(6 downto 0);
beginp_reg: process(clk)
variable cnt8:std_logic_vector(7 downto 0);
beginif clk'event and clk='1' then
if cnt8 = 11111111" then
cnt8:="01111111";
full<='1';
else cnt8 :=cnt8+1;
full <=0';
end if; end if;
end process p_reg;
process(full)
beginif full'event and full='1' then
if time<"1000011" then
time<=time+1;
else time <=0000000";
end if;
end if;
end process;
reg:process( full,current_state)
beginif full='1' and full'event then
current_state<=next_state;
end if;
end process;
com:process(current_state, time)
begincase current_state is
when s0=>comb_out<="001100";tm<=39-time;
if time=39 then next_state<=s1;
else next_state<=s0;
end if;
when s1=>comb_out<="010100";tm<=43-time;
if time=43 then next_state<=s2;
else next_state<=s1;
end if;
when s2=>comb_out<="100010";tm<=63-time;
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计时...