文档库 最新最全的文档下载
当前位置:文档库 › EDA课程设计报告

EDA课程设计报告

EDA课程设计报告
EDA课程设计报告

课程设计报告

题目交通灯控制器的设计

课程名称EDA课程设计

院部名称信息技术学院

专业电子信息工程

班级07电子信息工程(1)班

学生姓名谷荣

学号0705110613

课程设计地点A210

课程设计学时40课时

指导教师严慧

金陵科技学院教务处制成绩

摘要

交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯信号控制器电路简单、可靠性好。本设计可控制2个路口的红、黄、绿三盏灯.让其按特定的规律进行变化。利用QuartusⅡ对设计结果进行仿真,发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。

关键词:交通灯自动控制手动控制

目录

摘要 (1)

1.概述 (3)

1.1课程设计目的 (3)

1.2 课程设计题目及要求 (3)

1.3 实验环境 (3)

2. 系统总体设计 (4)

2.2系统组成 (4)

3. 系统层次化设计与软件仿真 (5)

3.1 系统时序发生电路 (5)

3.1.2系统时序发生电路clk_gen的仿真输出波形和元件符号 (6)

3.2 红绿灯计数时间选择模块 (7)

3.2.1 VHDL源代码: (7)

3.2.2计数时间选择模块traffic_mux的仿真输出波形和元件符号 (8)

3.3定时控制电路 (8)

3.3.1 VHDL源代码: (9)

3.3.2 定时控制电路count_down的仿真输出波形和元件符号 (10)

3.4 红绿灯信号译码电路 (10)

3.4.1 VHDL源代码 (11)

3.4.2 信号译码电路 (14)

3.5 红绿灯交通控制器顶层电路 (15)

3.5.1 VHDL源代码: (15)

3.5.2 交通控制器顶层电路Traffic_TOP的仿真输出波形和元件符号 (17)

4. 系统硬件仿真 (19)

5.结论与体会 (21)

参考文献 (22)

1.概述

1.1课程设计目的

此次课程设计是根据《VHDL程序设计》这门课程开设的综合设计课程,要求学生利用VHDL编程语言,基于EDA开发平台Quartus 错误!未找到引用源。,设计相应的数字系统,通过对系统进行编程、仿真、调试与实现,体验设计的全过程,进一步加深对所学基础知识的理解,培养学生将理论知识应用于实践的能力、学生自学与创新能力和分析解决实际问题的能力。培养学生设计、绘图、计算机应用、文献查阅、实验研究、报告撰写等基本技能;提高学生独立分析和解决工程实际问题的能力;增强学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。

1.2 课程设计题目及要求

交通灯控制器的设计:

随着各种交通工具的发展和交通指挥的需要,交通灯的诞生大大改善了城市交通状况。要求设计一个交通灯控制器,假设某个交通十字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄灯3种信号灯,红灯亮禁止通行,绿灯亮允许通行。黄灯亮允许车辆有时间停靠到禁止线以外。

在自动控制模式时,主干道(东西)每次放行时间为30s,次干道(南北)每次放行时间为20s,主干道红灯、次干道黄灯、主干道黄灯、次干道红灯持续时间为5s。

绿灯转为红灯时,要求黄灯先亮5s,才能变换运行车道。

要求交通灯控制器有复位功能,并要求所有交通灯的状态变化在时钟脉冲上升沿处。1.3 实验环境

软件仿真采用QuartusII 6.0;

硬件仿真采用KFH-1型CPLD/FPGA实验开发系统;

2. 系统总体设计

根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下述所示的交通信号灯控制器的系统流程图与系统框图。我们选择按照自顶向下的层次化设计方法,整个系统可分为4个模块,系统时序发生电路、红绿灯计数时间选择模块、定时控制电路、红绿灯信号译码电路。

2.2系统组成

其中系统时序发生电路最主要的功能就是产生一些额外的输出信号,它们是为红绿灯信号译码电路提供的频率39kHz的扫描信号,为定时控制电路提供的使能(enable)控制信号,为红绿灯信号译码电路提供的占空比为50%的秒闪烁信号;红绿灯计数时间选择模块是负责输出显示器需要的值(即倒数的秒数值),作为定时控制电路的倒计时秒数,在该模块中可设置东西路口河南北路口的信号灯维持秒数;定时控制电路功能就是负责接收红绿灯计数时间选择模块输出的值(即倒数的秒数值),然后将其转换成BCD码,利用七段显示器显示出来,让新人能清楚的知道再过多久就会变成红灯;红绿灯信号译码电路除了负责控制路口红绿灯的显示外,最主要的功能就是能够利用开关来切换手动与自动的模式,让交警能够通过外部输入的方式指挥交通的,但为了配合高峰时段,防止交通拥挤,有时还必须使用手动红字,即让交警执行指挥交通。

为了系统正常运作,整个控制器采用同步工作方式,由外接信号发生器(该电路的设计可参见本章)提供1Hz的时钟信号CLK。

3. 系统层次化设计与软件仿真

EDA技术的基本设计方法有电路设计方法和系统设计方法。电路级设计方法已经不能适应新的形势,本系统采用的是系统级层次设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片FPGA芯片实现,首先用VHDL语言编写各个功能模块程序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各功能模块连接起来。下面给出各模块的VHDL设计过程和仿真结果。

3.1 系统时序发生电路

在红绿灯交通信号控制系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须有一个稳定的时钟(clock)才能让系统正常工作。但为了配合高峰时段,防止交通拥挤,有时也必须使用手动可能工资,即让交警能够顺利的指挥交通。CLK_gen电路最主要的功能就是产生一些额外的输出信号,并将其用作后续几个电路的使用(enable)控制与同步信号处理。

该电路的核心部分就是分频电路,通过对外接信号发生器提供1Hz的时钟信号进行1000分频,得到一个周期1s的输出使能信号ena_1Hz(占空比1:1000)和flash_Hz(占空比1:1);1024分频后得到红绿灯信号译码电路所需要的频率为39kHz的显示使能信号ena_scan。

3.1.1 VHDL源代码:

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

USE IEEE.std_logic_arith.all;

USE IEEE.std_logic_unsigned.all;

ENTITY clk_gen IS

Port(reset:in std_logic;

clk:in std_logic;

ena_scan:out std_logic;

ena_1Hz:out std_logic;

flash_1Hz:out std_logic);

end;

ARCHITECTURE BEHA VIOR of clk_gen IS

CONSTANT scan_bit:positive:=10;

CONSTANT scan_val:positive:=1024;

CONSTANT two_Hz_bit:positive:=15;

CONSTANT two_Hz_val:positive:=19532;

signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);

signal clk_2Hz_ff:std_logic_vector(two_Hz_bit-1 downto 0);

signal ena_s,ena_one,ena_two:std_logic;

begin

scan:process(clk,reset)

begin

if reset='1'then

clk_scan_ff<="000000000";

ena_s<='0';

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

if clk_scan_ff>=scan_val-1 then

clk_scan_ff<="000000000";

ena_s<='1';

else

clk_scan_ff<=clk_scan_ff+1;

ena_s<='0';

end if;

end if;

end process;

ena_scan<=ena_s;

two_Hz:process(reset,clk,ena_s)

begin

if reset='1' then

ena_one<='0';

ena_two<='0';

clk_2Hz_ff<="0000000000000";

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

if ena_s='1' then

if clk_2Hz_ff>=two_Hz_val-1 then

clk_2Hz_ff<="0000000000000";

ena_two<='1';

ena_one<=not ena_one;

else

clk_2Hz_ff<= clk_2Hz_ff+1;

ena_two<='0';

end if;

end if;

end if;

end process;

ena_1Hz<=ena_one and ena_two and ena_s;

flash_1Hz<=ena_one;

end BEHA VIOR;

3.1.2系统时序发生电路clk_gen的仿真输出波形和元件符号系统时序发生电路clk_gen的仿真输出波形

图3-1 系统时序发生电路CLK_GEN

3.2 红绿灯计数时间选择模块

当过马路的时候,绿灯的一方又是会附加一个显示器告诉行人,目前还剩下几秒信号灯将变成红灯。因此,traffic_mux 电路最主要的功能就是负责输出显示器需要的值(即倒数的秒值数),作为定时控制电路的技术秒数。

该电路的核心部分就是数据选择电路,利用选择语句case_when (单输入,多输出)实现4选1,其选择输入信号sign_state 是红绿灯信号译码电路产生的4种状态信号,状态转换输出表如表3-2 所示。

表3-2 红绿灯计数时间状态转换表

3.2.1 VHDL 源代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY traffic_mux IS

PORT(reset,clk,ena_scan,recount:in std_logic;

sign_state:in std_logic_vector(1 downto 0); load:out std_logic_vector(7 downto 0));

状态sign_state 东西路口

南北路口

时间(s )

00(状态0) 东西路口为通行状态,此时东西路口绿灯亮

南北路口红灯亮 30 01(状态1) 东西路口为过渡状态,此时东西路口黄灯亮 南北路口红灯亮

5 10(状态2) 东西路口红灯亮 南北路口为通行状态,此时南北路口绿灯亮

20 11(状态3)

东西路口红灯亮

南北路口为过渡状态,此时南北路口黄灯亮

5

end;

ARCHITECTURE BEHA VIOR of traffic_mux IS

CONSTANT yellow0_time:integer:=5;

CONSTANT green0_time:integer:=30;

CONSTANT yellow1_time:integer:=5;

CONSTANT green1_time:integer:=20;

begin

load_time:process(reset,clk)

begin

if reset='1' then

load<="00000000";

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

if(ena_scan='1' and recount='1') then

CASE sign_state IS

WHEN"00"=>load<=CONV_STD_LOGIC_VECTOR(green0_time,8);

WHEN"01"=>load<=CONV_STD_LOGIC_VECTOR(yellow0_time,8);

WHEN"10"=>load<=CONV_STD_LOGIC_VECTOR(green1_time,8);

WHEN OTHERS=>load<=CONV_STD_LOGIC_VECTOR(yellow1_time,8);

END CASE;

END IF;

END IF;

END PROCESS;

END BEHA VIOR;

3.2.2计数时间选择模块traffic_mux的仿真输出波形和元件符号

计数时间选择模块traffic_mux的仿真输出波形

3.3定时控制电路

该电路的核心部分是可置数的减法计数器电路和七段译码输出显示电路。可置数的减法计数器电路是利用if_then_else语句完成,两位七段译码输出显示电路则利用case_when语句通过查表的方式构成。

3.3.1 VHDL源代码:

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

USE IEEE.std_logic_arith.all;

USE IEEE.std_logic_unsigned.all;

ENTITY count_down IS

Port(reset,clk,ena_1Hz,recount:in std_logic;

load:in std_logic_vector(7 downto 0);

seg7:out std_logic_vector(15 downto 0);

next_state:out std_logic);

end;

ARCHITECTURE BEHA VIOR of count_down IS

signal cnt_ff:std_logic_vector(7 downto 0);

begin

count:process(clk,reset)

begin

if(reset='1')then

cnt_ff<="00000000";seg7<="0000000000000000";

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

if ena_1Hz='1'then

if(recount='1')then

cnt_ff<=load-1;

else

cnt_ff<=cnt_ff-1;

end if;

end if;

case conv_integer(cnt_ff) is

when 0=>seg7(15 downto 0)<="0011111100111111";

when 1=>seg7(15 downto 0)<="0011111100000110";

when 2=>seg7(15 downto 0)<="0011111101011011";

when 3=>seg7(15 downto 0)<="0011111101001111";

when 4=>seg7(15 downto 0)<="0011111101100110";

when 5=>seg7(15 downto 0)<="0011111101101101";

when 6=>seg7(15 downto 0)<="0011111101111101";

when 7=>seg7(15 downto 0)<="0011111100000111";

when 8=>seg7(15 downto 0)<="0011111101111111";

when 9=>seg7(15 downto 0)<="0011111101101111";

when 10=>seg7(15 downto 0)<="0000011000111111";

when 11=>seg7(15 downto 0)<="0000011000000110";

when 12=>seg7(15 downto 0)<="0000011001011011";

when 13=>seg7(15 downto 0)<="0000011001001111";

when 14=>seg7(15 downto 0)<="0000011001100110";

when 15=>seg7(15 downto 0)<="0000011001101101";

when 16=>seg7(15 downto 0)<="0000011001111101";

when 17=>seg7(15 downto 0)<="0000011000000111";

when 18=>seg7(15 downto 0)<="0000011001111111";

when 19=>seg7(15 downto 0)<="0000011001101111";

when 20=>seg7(15 downto 0)<="0101101100111111";

when 21=>seg7(15 downto 0)<="0101101100000110";

when 22=>seg7(15 downto 0)<="0101101101011011";

when 23=>seg7(15 downto 0)<="0101101101001111";

when 24=>seg7(15 downto 0)<="0101101101100110";

when 25=>seg7(15 downto 0)<="0101101101101101";

when 26=>seg7(15 downto 0)<="0101101101111101";

when 27=>seg7(15 downto 0)<="0101101100000111";

when 28=>seg7(15 downto 0)<="0101101101111111";

when 29=>seg7(15 downto 0)<="0101101101101111";

when 30=>seg7(15 downto 0)<="0100111100111111";

when 31=>seg7(15 downto 0)<="0100111100000110";

when 32=>seg7(15 downto 0)<="0100111101011011";

when 33=>seg7(15 downto 0)<="0100111101001111";

when 34=>seg7(15 downto 0)<="0100111101100110";

when 35=>seg7(15 downto 0)<="0100111101101101";

when 36=>seg7(15 downto 0)<="0100111101111101";

when 37=>seg7(15 downto 0)<="0100111100000111";

when 38=>seg7(15 downto 0)<="0100111101111111";

when 39=>seg7(15 downto 0)<="0100111101101111";

when others=>seg7(15 downto 0)<="0011111100111111";

end case;

end if;

end process;

next_state<='1' when cnt_ff=1 else'0';

end BEHA VIOR;

3.3.2 定时控制电路count_d own的仿真输出波形和元件符号定时控制电路count_down的仿真输出波形

3.4 红绿灯信号译码电路

在红绿灯交通灯信号系统中,大多数的情况是通过自动控制的方式指挥交通的。但为了配合高峰时段,防止交通拥挤,有时还必须使用手动控制,即让交警自行指挥交通。因此,traffic_fsm电路除了负责监控路口红绿灯之外,最主要的功能就是能够利用开关来切手动与自动的模式,让交警能够通过外部输入的方式来控制红绿灯信号系统的运作。

输出信号:recount(产生重新计数的输出使能控制信号)、sign_state(产生的输出状态信号共2位,4种状态)、red(负责红灯的显示,共2位,4种状态)、green(负责绿灯的显示,共2位,4种状态)、yelllow(负责黄灯的显示,共2位,4种状态)。

设南北路口红黄绿3色灯为r0、y0、g0,东西路口的红黄绿3色灯为r1、y1、g1,自动操作模式和手动操作模式信号灯显示的真值表如表3-2、表3-3所示。

信号灯显示的真值表

CLK reset ena_1hz next_stage state状态sign_stage recount light state1 1 X X r0g1 00 1 010010 state2 0 1 1 r0g1->roy1 01 1 011000

0 1 0 r0g1 00 0 010010 state3 0 1 1 r0y1->g0r1 10 1 100001

0 1 0 r0y1 01 0 011000 state4 0 1 1 g0r1->y0r1 11 1 100100

0 1 0 g0r1 10 0 100001 state5 0 1 1 y0r1->r0g1 00 1 010010

0 1 0 y0r1 11 0 100100 state6 0 1 1 others 00 0 110000 表中定义了一些进程(process)间整体共享的电路内部传递信号,以整合所有功能,它们是:state信号(设定红绿灯电路的状态,在该程序里定义8种状态)、st_transfer(在手动模式下判断是否转态的控制信号)、light[5:0](在自动模式下该信号为是否转态的控制信号,其位数从高到低分别表示red1、red0、yellow1、yellow0、green1、green0)。

3.4.1 VHDL源代码:

LIBRARY IEEE;

USE IEEE.std_logic_1164.all;

USE IEEE.std_logic_arith.all;

USE IEEE.std_logic_unsigned.all;

ENTITY traffic_CON IS

Port(reset,clk,ena_scan,ena_1Hz,flash_1Hz,a_m,st_butt,next_state:in std_logic;

recount:out std_logic;

sign_state:out std_logic_vector(1 downto 0);

red:out std_logic_vector(1 downto 0);

green:out std_logic_vector(1 downto 0);

yellow:out std_logic_vector(1 downto 0));

end;

ARCHITECTURE BEHA VIOR of traffic_CON IS

type Sreg0_type is(r0g1,r0y1,g0r1,y0r1,y0y1,y0g1,g0y1,r0r1); signal state:Sreg0_type;

signal st_transfer:std_logic;

signal light:std_logic_vector(5 downto 0);

begin

rebounce:process(reset,clk,ena_scan,st_butt)

variable rebn_ff:std_logic_vector(5 downto 0);

begin

if(st_butt='1' or reset='1') then

rebn_ff:="111111";st_transfer<='0';

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

if(ena_scan='1') then

if(rebn_ff>=3)then

rebn_ff:=rebn_ff-1;st_transfer<='0';

elsif(rebn_ff=2)then

rebn_ff:=rebn_ff-1;st_transfer<='1';

else

rebn_ff:=rebn_ff;st_transfer<='0';

end if;

end if;

end if;

end process;

CON:process(clk,ena_1Hz,reset)

begin

If(reset='1')then

state<=r0g1;sign_state<="00";recount<='1';

else

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

case STATE is

when r0g1=>

if(a_m='1' and ena_1Hz='1')then

if(next_state='1')then

recount<='1';state<=r0y1;sign_state<="01";

else

recount<='0';state<=r0g1;

end if;

elsif(a_m='0' and ena_scan='1')then

if(st_transfer='0')then

recount<='1';state<=r0g1;

else

recount<='1';state<=r0y1;sign_state<="01";

end if;

end if;

when r0y1=>

if(a_m='1' and ena_1Hz='1')then

if(next_state='1')then

recount<='1';state<=g0r1;sign_state<="10"; else

recount<='0';state<=r0y1;

end if;

elsif(a_m='0' and ena_scan='1')then

if(st_transfer='0')then

recount<='1';state<=r0y1;

else

recount<='1';state<=g0r1;sign_state<="10"; end if;

end if;

when g0r1=>

if(a_m='1' and ena_1Hz='1')then

if(next_state='1')then

recount<='1';state<=y0r1;sign_state<="11"; else

recount<='0';state<=g0r1;

end if;

elsif(a_m='0' and ena_scan='1')then

if(st_transfer='0')then

recount<='1';state<=g0r1;

else

recount<='1';state<=y0r1;sign_state<="11"; end if;

end if;

when y0r1=>

if(a_m='1' and ena_1Hz='1')then

if(next_state='1')then

recount<='1';state<=r0g1;sign_state<="00"; else

recount<='0';state<=y0r1;

end if;

elsif(a_m='0' and ena_scan='1')then

if(st_transfer='0')then

recount<='1';state<=y0r1;

else

recount<='1';state<=r0g1;sign_state<="00";

end if;

end if;

when others=>

state<=r0g1;recount<='0';sign_state<="00";

end case;

end if;

end if;

end process;

light<="010010" when(state=r0g1) else

"011000" when(state=r0y1) else

"100001" when(state=g0r1) else

"100100" when(state=y0r1) else

"010010" when(state=r0g1) else

"110000" ;

red<=light(5 downto 4);

yellow<=light(3 downto 2);

green<=light(1 downto 0);

end BEHA VIOR;

3.4.2 信号译码电路

信号译码电路traffic_CON的仿真输出波形

在源程序中,利用类别的定义格式Type type_name is type_mark,将所有红绿灯交通信号系统发生的状况利用类别(type)的定义格式一一列举出来(程序中共定义了8种情况),信号线state的设置的目的是将sreg0_type定义的8种状况转换成位的方式表示。

程序包含两个进程debounce、con。进程debounce是抖动清除电路,其重点在于st_transfer 何时为1.当外部按下st_butt键时(即st_buff=0),内部的计数器rebn_ff开始计数(3f-02),在rebn_ff尚未数到02秒时,st_butt键被松开,那么状态将不会改变。假如是由于电路效应

引起开关误动作,开关抖动的速度是非常快的(约小于1ms),故电路不会有误动作的产生,也就达到了这个抖动消除的目的。进程con是红绿灯状态控制器和红绿灯闪烁控制器。3.5 红绿灯交通控制器顶层电路

红绿灯交通灯控制器顶层电路分为4个模块,它们是系统时序发生电路clk_gen,红绿灯计数时间选择模块traffic_mux,定时控制电路count_down,红绿灯信号译码电路traffic_CON,图3-51所示的是顶层电路原理图。本节所要做的工作就是将所有的子电路全部连接起来,进行时序分析正确无误后,再下载FPGA,以便进行硬件电路的测试工作。

图3-51 红绿灯交通控制器顶层电路原理图

利用元件例化的方法,将Traffic_TOP设置为顶层文件。按图3-51将4个子电路连接起来。

3.5.1 VHDL源代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY traffic_TOP IS

PORT(RE:in std_logic;

clk:in std_logic;

K1:in std_logic;

K2:in std_logic;

recount:out std_logic;

NEXT_S:out std_logic;

R:out std_logic_vector(1 downto 0);

G:out std_logic_vector(1 downto 0);

Y:out std_logic_vector(1 downto 0);

S:out std_logic_vector(15 downto 0));

END traffic_TOP;

architecture behave of traffic_TOP is

component clk_gen

PORT(reset:in std_logic;

clk:in std_logic;

ena_scan:out std_logic;

ena_1Hz:out std_logic;

flash_1Hz:out std_logic);

end component;

component traffic_mux

PORT(reset:in std_logic;

clk:in std_logic;

ena_scan:in std_logic;

recount:in std_logic;

sign_state:in std_logic_vector(1 downto 0);

load:out std_logic_vector(7 downto 0)); end component;

component count_down

Port(reset:in std_logic;

clk:in std_logic;

ena_1Hz:in std_logic;

recount:in std_logic;

load:in std_logic_vector(7 downto 0);

seg7:out std_logic_vector(15 downto 0);

next_state:out std_logic);

end component;

component traffic_CON

Port(reset:in std_logic;

clk:in std_logic;

ena_scan:in std_logic;

ena_1Hz:in std_logic;

flash_1Hz:in std_logic;

a_m:in std_logic;

st_butt:in std_logic;

next_state:in std_logic;

recount:out std_logic;

sign_state:out std_logic_vector(1 downto 0);

red:out std_logic_vector(1 downto 0);

green:out std_logic_vector(1 downto 0);

yellow:out std_logic_vector(1 downto 0)); end component;

signal ena_scan_1:std_logic;

signal ena_1Hz_1:std_logic;

signal flash_1Hz_1:std_logic;

signal recount_1:std_logic;

signal next_state_1:std_logic;

signal sign_state_1:std_logic_vector(1 downto 0);

signal load:std_logic_vector(7 downto 0);

begin

u1:clk_gen

port map(RE,clk,ena_scan_1,ena_1Hz_1,flash_1Hz_1);

u2:traffic_mux

port map(RE,clk,ena_scan_1,recount_1,sign_state_1,load);

u3:count_down

port map(RE,clk,ena_1Hz_1, recount_1,load,S,next_state_1);

u4:traffic_CON

port

map(RE,clk,ena_scan_1,ena_1Hz_1,flash_1Hz_1,K1,K2,next_state_1,recount_1,sign_sta te_1,R,G,Y);

NEXT_S<=next_state_1;

End behave;

3.5.2 交通控制器顶层电路Traffic_TOP的仿真输出波形和元件符号

交通控制器顶层电路的仿真输出波形

图3-54中,控制器输入信号有以下几种。

○1CLK:由外界信号发生器提供1Hz的时钟脉冲信号。

○2RE:系统内部自复位信号。

○3K1:手动、自动切换钮(1:自动,0:手动)。

○4K2:红绿灯状态切换键(每按一次就切换一个状态)(使用在手动模式下)。

输出信号有以下几种:

○1NEXT_S:当计数器计时完毕时,产生一个脉冲信号,作为转态触发信号。○2R[1..0]:负责显示红灯的亮灭(共2位,4种状态)。

○3G[1..0]:负责显示绿灯的亮灭(共2位,4种状态)。

○4Y[1..0]:负责显示黄灯的亮灭(共2位,4种状态)。

○5S[15..0]:负责将十位的计数数值转换成BCD码,并利用七段显示器显示。○6S[7..0]:负责将个位的计数数值转换成BCD码,并利用七段显示器显示。

4. 系统硬件仿真

仿真通过后,针对EP1K30QC208-3 FPGA 芯片进行管脚配置,将模块化代码下载到FPGA 中,在KFF-1型 CPLD/FPGA 实验开发系统验证程序的正确性。首先我们需将在软件仿真中的时钟频率进行相应修改,以完成硬件的仿真模拟,代码在上文已给出。

本实验系统由实验板和下载板两部分组成。下载板可以和主板配合完成数字电路及CPLD/FPGA 的各种开发和实验,也可以单独做实际应用的应用版。

装好硬件驱动后,点击Quartus 错误!未找到引用源。界面中的(PIN PLANNER )进

行管脚分配,根据代码及说明书,得到如下分配表,如图4-1。

数码管右边两位显示倒计时,仿真结果如图4-3。

图4-3(a )东西绿30s,南北红30s 图4-3(b )东西黄5s ,南北红5s

eda课程设计报告多功能数字钟设计大学论文

湖北大学物电学院EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级: 14微电子科学与工程 姓名:黄山 时间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20日

多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2.设计内容 1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开; 2,能用按键调时调分; 3,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中) (空一行) 1 引言 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2总体设计框图 (2) 3设计原理分析 (3) 3.1分频器 (4) 3.2计时器和时间调节 (4) 3.3秒表模块 (5) 3.4状态机模块 (6) 3.5数码管显示模块 (7) 3.6顶层模块 (8) 3.7管脚绑定和顶层原理图 (9) 4 总结与体会 (11)

多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然 2 总体设计方案 2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用 3 设计原理分析 3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100;

EDA课程设计报告资料

课程设计 设计题目: 学生姓名: 学号: 专业班级: 指导教师: 2015年月日

设计 题目成绩 课 程 设 计 主 要 内 容 指 导 教 师 评 语 签名:20 年月日

设计题目:测量放大器电路原理图和PCB板设计 一、实验目的 1.了解学习Protel 99SE的目的与意义; 2.掌握Protel 99SE绘制电路原理图方法与技巧; 3.掌握PCB设计方法与技巧。 二、实验要求 1.利用Protel 99SE绘制一张电路图; 2.对绘制好的电路图进行ERC检查; 3.生成网络表; 4.生成元件列表; 5.利用Protel 99SE完成对应的双面印刷电路板设计。 三、功率放大器设计 实验原理图如下图所示: 图1

四、protel制图 4.1设计电路原理图 1.电路原理图 电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图的设计一般有如下步骤: (1)设置原理图设计环境; (2)放置元件; (3)原理图布线; (4)编辑和调整; (5)检查原理图; (6)生成网络表。 2.设计印刷电路板 印刷电路板设计是从电路原理图变成一个具体产品的必经之路,因此,印刷电路板设计是电路设计中最重要、最关键的一步。通常,印刷电路板设计的具体步骤如下: (1)规划电路板; (2)设置参数; (3)装入网络表; (4)元器件布局; (5)自动布线; (6)手工调整。 4.2 绘制测量放大器电路原理图 原理图设计最基本的要求是正确性,其次是布局合理,最后是在正确性和布局合理的前提下力求美观。根据以上所述的电路原理图设计步骤,两级放大器电路原理图设计过程如下: 1.启动原理图设计服务器 进入Protel 99 SE,创建一个数据库,执行菜单File/New命令,从框中选择原理图服务器(Schematic Document)图标,双击该图标,建立原理图设计文档。双击文档图标,进入原理图设计服务器界面。如图2

EDA课程设计流水灯设计

EDA课程设计 流水灯设计 姓名: 金兼强 专业: 电子信息工程 班级: 093252 学号: 09325211 同组人:黄奕林简讯 黄树金兼强黄玉涛 指导老师:黄河 2012-11-9

目录 一、摘要〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 二、流水灯设计目的〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 三、流水灯设计流程〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 四、流水灯设计程序〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 五、流水灯设计管脚分配〃〃〃〃〃〃〃〃〃〃7 六、功能仿真图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃8 七、原理图波形图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃9 八、设计注意事项〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃10 九、课程设计总结〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃11 十、参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12 十一、评分表〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 13

一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。 利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务和设计方法。

EDA课程设计报告

湖北职业技术学院《EDA技术》课程设计报告 题目动态输出4位十进制频率计的设计所在学院电子信息工程学院 专业班级电信08304 学生姓名马强 学号08024839 指导教师王芳 完成日期2010年11月18 日

目录 一、概述 (3) 二、设计正文 (4) (一)设计目的 (4) (二)设计实现 (4) 1、端口说明 (4) 2、Cnt10模块说明 (5) 3、Tctl模块说明 (6) 4、锁存器reg16模块说明 (8) 5、Scan_led模块说明 (9) 6、顶层文件仿真 (10) 7、硬件下载 (11) 三、总结 (13) 四、感言 (14) 五、参考文献 (15)

概述 此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有1Hz的抖动。通过这次的设计能够更清楚的理解VHDL程序的描述语言,进行简单程序的编写和仿真。

动态输出4位十进制频率计的设计 一、目的 1.学习掌握频率计的设计方法。 2.掌握动态扫描输出电路的实现方法。 3.学习较复杂的数字系统设计方法 二、设计实现 4位十进制频率计外部接口如图1所示,顶层文件如图2所示,包含4中模块;Tctl、reg16、scan_led和4个cnt10。 (1)端口说明 F1Hz:给Tctl模块提供1Hz的频率输入。 Fin:被测频率输入。 scan_led:给scan_led模块提供扫描输入频率输入。 bt[1..0]:片选信号输出。 sg[6..0]:译码信号输出。 cout:进位输出。

EDA课程设计报告8线-3线优先编码器

Xxxxx学院 《EDA技术》课程报告 设计题目:8线-3线优先编码器班级:应用电子1101班姓名: 学号: 指导老师: 日期:

目录 一、8-3优先编码器设计原理分析 (3) 二、8-3优先编码器模块的源程序 (3) 三、8-3优先编码器仿真结果 (4) 四、设计总结和心得体会 (5) 五、参考资料 (5)

一、8-3优先编码器设计原理分析 8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。因为din0到din7共8中状态,可以用3位二进制编码来表示。8-3优先编码器真值表如下表所示。 表1 8-3优先编码器真值表 二、8-3优先编码器模块的源程序 8-3优先编码器由VHDL程序来实现,VHDL语言描述如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic ); END coder; ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (din) BEGIN IF (EANABLE='0') THEN IF (din(0)='1') THEN output <= "000" ; ELSIF (din(1)='1') THEN output <= "100" ;

EDA课程设计实验报告

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级1181 学号 2 姓名肖浪

指导教师乔汇东吴德建 2013年7月2日 湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1181 学生姓名肖浪 学号 2 指导老师乔汇东吴德建

任务书下达日期2013 年6月23日 任务完成日期2013 年7月2日 《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第十八周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

EDA课程设计

课程设计说明书 课程:EDA技术基础 题目:数字钟的设计 闹钟与整点报时模块 学生姓名:XXX 学号201265110204 班级 :1203班 专业:电子信息与科学 指导教师:XXX 2014年12月20日 长沙理工大学课程设计任务书 物理与电子科学学院电子信息与科学专业1203班姓名王玲课程名称EDA技术基础 题目数字钟的设计

长沙理工大学课程设计成绩评定表

目录 1数字钟设计闹钟模块基本任务要求4 2设计思想4 3简述闹钟模块的输入与输出5 4分进程描述6 5仿真结果与分析7 6简述数字钟的设计总成果10 7总结11 参考文献13 代码附件13

基本任务要求:运用QuartusⅡ13.1软件平台,用VHDL语言描述并设计的闹钟模块满足可调闹钟时间,当时钟时间到达闹钟时间后会响闹铃,(由于实验室权限问题会以FPGA开发板上12个LED灯交替发光来表现);整点报时过程表现为整点的前十秒内响铃,(以FPGA开发板上一个LED灯交替发光来实现)。 设计思想:闹钟模块要以分频模块、计数器模块和译码显示模块为基础,将闹钟模块分为三个进程,一个进程用来实现调闹钟,一个进程来实现闹响闹钟(即实现LED灯交替发光),另一个进程来是实现整点报时。 (上面截图为数字钟整体编译后的RTL电路的闹钟模块) 简述闹钟模块图的输入与输出:上图中的输入粗黑实线为计数器模块输出的小时、分钟的高低位和秒钟的高位(都用四位的二进制表示);输出的粗黑实线为定的闹钟时间(包括小时和分钟),将送到译码显示模块显示闹钟时间,闹钟时间与时钟都在FPGA上的数码管显示,用二选一实现交替显示。clk和clk1都是经过分频器分出的不同频率的信号分别用于整点报时的闪灯脉冲与闹钟调时、闹响的闪灯脉冲。

EDA课程设计报告-北京科技大学分析

EDA课程设计报告 题目彩灯循环闪烁电路的仿真学院自动化 专业班级自 姓名 学号 成绩 2014年12月

1、设计目的 (3) 2、设计原理 (3) (3) 3、单元电路的设计与仿真 (3) 3.1时钟脉冲产生电路 (3) 3.2计数器电路的设计与仿真 (5) 3.3译码和显示电路的设计 (6) 4、总体电路仿真 (7) 5、总结与收获 (9)

1、设计目的 1)彩灯能够自动循环闪烁 2)彩灯循环显示且频率快慢可调。 3)该控制电路具有8路输出。 2、设计原理 彩灯循环闪烁电路的工作原理采用555定时器连接成多谐振荡器产生频率产生连续可调的时钟脉冲信号,然后将时钟信号输出通过计数器接受。然后,经过八进制加法计数器的计数实现循环功能。最后,通过译码器译码实现循环灯亮。 该电路主要分为三个模块,多谢振荡器模块、八进制加法计数器电路模块、译码器与彩灯电路模块。其结构框图如图1所示。 图1 彩灯循环闪烁电路的设计框图 3、单元电路的设计与仿真 3.1时钟脉冲产生电路 时钟脉冲产生电路由555定时器和外接元件R1、R2、R3、C1和C2构成多谐振荡器。管脚THR与管脚TRI直接相连。图2为,产生电路模块。电路没有稳态,仅存在两个暂稳态,电路亦不需要外加触发信号。利用电源通过R1、R2向C1充电,以及C1通过R2、R3向放电端DIS放电,使电路产生震荡。输出矩形波,为计数器提供脉冲源。其管脚2的电容充放电波形(黄色线条)和管脚3时钟脉冲输出波形(红色线条)如图3所示。

图2 时钟脉冲产生电路的仿真图 图3 管脚2、3的输出波形

3.2计数器电路的设计与仿真 本文的彩灯电路选用74LS160N-集成10进制同步加法计数器。74LS160N具有异步清零和同步置数的功能。为了实现8盏灯循环闪烁,电路采用异步反馈清零法获得8进制计数器。如图4所示,当Q D Q C Q B Q A输出1000时,U4A输出一个低电平到CLR,将计数器清零,回到0000状态。 图4 8进制计数器仿真图 确认电路连接无误后,单击RUN,开始仿真。结果如图4,通过7段数码管看到有0-7共8个有效状态。图5即计数过程。

EDA技术课程设计题目与任务

五课程设计题目与内容 1. 电子秒表设计 内容及要求: 完成具有多计数功能的秒表,并可将结果逐一显示在7 段数码管上,具体要求如下: (1)输入时钟10khz ,采用Altera EP1C6Q240C8 FPGA ; (2)异步、同步复位,计时精度1ms,最大计时240秒; (3)至少对 6 个目标计时,并可显示于7 段数码管,格式为xxx.yyy ,秒为单位; ( 4)计时值可逐一顺序回显; ( 5)按下一次终止键完成一个对象的计时,计时间隔小于最大计时值; ( 6)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。 进度安排: 本设计持续10天,其中最后一天(依例周五)为答辩时间。 第1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备; 第3-4 天:完成设计与验证方案,经指导老师验收后进入模块电路设计; 第5-7 天:完成模块电路设计,进行代码输入,并完成代码的初步仿真; 第8-9 天:代码功能仿真正确,约束设计,综合、下载,实现设计目标,并指导老师验收设计;整理设计资料,撰写报告、准备答辩; 第10 天:验收合格后进行答辩。 选题:限2人:共同进行电路和验证方案设计,1人仿真,另1人FPGA实现

2. aval on 总线从接口设计 内容及要求: 实现Altera 的NiosII CPU 外部总线接口电路,完成存储器的读写操作。 (1) CPU采用Altera Nios n; ( 2)接口电路采用同步操作,注意时钟的选择; ( 3)寻址空间0x8000~0x8ffff ,数据总线宽度8 比特; ( 4)存储器的种类为寄存器即可,具有读写功能; ( 5) avalon 总线接口为slave ; (6)下载验证时要和CPU一同实现相应的功能,软件进行读写操作。 进度安排: 本课程设计持续10 天,其中最后一天( (依例周5)为答辩时间。 第1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备; 第3-4 天:完成设计与验证方案,经指导老师验收后进入模块电路设计; 第5-7 天:完成模块电路设计,进行代码输入,并完成代码的仿真; 第8-9天:约束设计,与CPU集成综合、下载,用c语言实现操作,并指导老师验收设计;整理设计资料,撰写报告、准备答辩; 第10 天:验收合格后进行答辩。 选题:限 2 人:共同进行电路和验证方案设计, 1 人逻辑电路设计与仿真,另1人系统集成及软件代码设计

广东工业大学eda课程设计报告

课程设计报告 课程名称 EDA课程设计 学院信息工程学院年级班别 学号 学生姓名 指导老师罗思杰 2017年12月09日

目录 一、设计目的和要求: (3) 二、EDA设计: (3) 三、硬件测试: (15) 四、设计和调试过程中遇到的问题及解决方法.. 15 五、完成课程设计后的收获或体会: (15) 六、设计参考文献: (15)

一、设计目的和要求: 1、设计目的: 通过对FPGA(现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD (可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据要求及工艺需要进行电子芯片设计并制定有关技术文件。培养学生综合运用已学知识解决实际工程技术问题的能力、查阅图书资料和各种工具书的能力、撰写技术报告和编制技术资料的能力,接受一次电子设计自动化方面的基本训练。 培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,使学生积累实际EDA编程经验。通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。 2、设计要求: (1)以EDA技术的基本理论为指导,将设计实验分为基本功能电路和较复杂的电子系统两个层次,要求利用数字电路或者EDA方法去设计并完成特定功能的电子电路的仿真、软硬件调试; (2)熟悉掌握常用仿真开发软件,比如: Quartus II或Xilinx ISE的使用方法。 (3)能熟练运用上述开发软件设计并仿真电路并下载到FPGA中进行调试; (4)学会用EDA技术实现数字电子器件组成复杂系统的方法;学习电子系统电路的安装调试技术。 二、EDA设计: (1)方案比较: 1、数字电子钟设计 设计一个时钟电路,包括时钟、分钟、秒钟的显示。要求可对时钟、分钟进行预置和修改操作;可设置3组闹铃时间,时间到时给出10秒的报警声或音乐并给出灯光提示。 具体输入/输出要求如下: ① 4位LED数码显示器,分别显示“小时:分钟”或“分钟:秒”时钟;根据需要选择几个LED发光二极管。 ②3个按键,具体功能描述如下:

EDA课程设计参考题目

EDA课程设计参考题目一、设计彩灯控制器一 要求: 1.有八只LED,L0……L7 2.显示顺序如下表 3

要求: 1.8 个灯全亮; 2.8 个灯全灭; 3.从左边第一个开始每隔一个亮; 4.从右边第一个开始每隔一个灭; 5.左4个灭,右4个亮; 6.左4个亮,右4个灭; 7.显示间隔0.5S,1S可调。 三、设计彩灯控制器三 要求: 1. 有十只LED,L0……L9 2. 显示方式 ①先奇数灯依次灭 ②再偶数灯依次灭 ③再由L0到L9依次灭 3.显示间隔0.5S,1S可调。 四、自设计动奏乐器一 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 1 5 5 6 6 5 – 4 4 3 3 2 2 1 – 5 5 4 4 3 3 2 – 5 5 4 4 3 3 2 – 3.附加:显示乐谱。 五、设计自动奏乐器二 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 3 1 3 5 6 5 – 6 6 ? 1 6 5 ––– 6 6 ? 1 6 5 5 3 1 2 2 3 2 1 ––– 3.乐曲自选。 4.附加:显示乐谱。 六、设计汽车尾灯控制器 要求: 1.用6个发光二极管模拟6个汽车尾灯(左、右各3个)。 2.汽车往前行驶时,6个灯全灭。当汽车转弯时,若右转弯,右边3个尾灯从左至右顺序 亮灭,左边3个灯全灭;若左转弯,左边3个尾灯从右至左顺序亮灭,右边3个灯全灭; 汽车刹车时,6个尾灯同时明、暗闪烁;汽车在夜间行驶时,左右两侧的灯同时亮,供照明使用。

要求: 1.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为:其中一个方向是绿灯、黄灯、 红灯,另一个方向是红灯、绿灯、黄灯。 2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、 红灯的持续时间分别是20s、5s、25s。 八、设计数字频率计 要求: 1.输入为矩形脉冲,频率范围0~99MHz; 2.用五位数码管显示;只显示最后的结果,不要将计数过程显示出来; 3.单位为Hz和KHz两档,自动切换。 九、设计智力竞赛抢答器 要求: 1.四人参赛每人一个按钮,主持人一个按钮,按下就开始; 2.当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。 3.有人抢答时,喇叭响两秒钟; 4.答题时限为100秒钟(显示0~99),时间显示采用倒计时方式。当达到限定时间时,发出声响以示警告。 十、设计数字秒表 要求: 1.要求设置启/停开关。当按下启/停开关,将启动秒表开始计时,当再按一下启/停开关时, 将终止计时操作。 2.数字秒表的计时范围是0秒~59分59.99…… 3.要求计时精度为0.01s。 4.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就 清零,并做好下次计时的准备。 十一、设计数字钟 要求: 1.具有时、分、秒计数显示功能,且以24小时循环计时。 2.具胡清零的功能,且能够对计时系统的小时、分钟进行调整。 3.具有整点报时功能。 十二、设计三层电梯控制器 要求: 1.每层电梯入口处设有上下请求开关,电梯内有乘客到达层数的的停站请求开关。 2.设有电梯所处位置指示装置及电梯运行模式(上升和下降)指示装置。 3.电梯每秒钟升(降)一层。 4.电梯到达有请求的楼层,电梯经过lS电梯门开,打开4S后,电梯门关闭(开门指示灯灭)。电梯继续运行,直至完成最后的一个请求信号后停留在当前层。 5.能记忆电梯内外所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号留至执行完后消除。 6.电梯运行规则:当电梯处于上升模式时,只响应比电梯所在的位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼清求执行完毕;如果高层有下楼请求,则直接升到有下

EDA技术课程设计报告

贵州大学 EDA技术课程设计报告 题目:BCD码加法器 院系计算机科学与技术学院 专业计科121 学号1208060061、1208060058、1208060065 学生姓名张飞宇、王红强、匡金军 指导教师夏玉勤

设计BCD码加法器 一、设计任务及要求 (1)课程设计意义: 对BCD码加法有了进一步了解; 学习了quartus II设计软件,初步了解了FPGA; (2)设计要求: 利用Verilog HDL语言,编写一个4位BCD码加法器程序,输入用八个开关分别表示两个BCD码,输出结果用数码管显示。 主要芯片:2个全加器(4008BD)、开关、数码管(2个),其他元件、门电路任选 (3)主要功能: 输入两个4位BCD码,相加结果显示在数码管上。 我组在要求的功能上添加了一些代码,使输入结果也能在数码管上显示。 (4)设计思路: 图1 简易结构图 如图1所示:A,B分别是2个输入数字,S0-S1为输出,经过BCD 加法器的运算,能实现BCD码加法功能。 (1)T=A+B,若T>10,则Z赋值为10,同时进位(2)C=1,和值低位(3)S0=T-Z,和值高位(4)S1=C。 二、基于Verilog语言的电路设计、仿真、综合 硬件及软件电路设计及描述

图2 顶层模块图 图3 RTL (1)数据的产生与输入 通过J1~J8八个单刀双掷开关在+5V和GND之间的切换来产生两个4位8421BCD码作为输入的数据,当开关打到+5V时输入数据1,打到GND时输入数据0。其中J1~J4分别为数据A3~A0,J5~J8分别为数据B3~B0,且A3~A0、B3~B0 的位权依次降低(8421)。 (2)加法电路 把上面得到的两个四位8421BCD码分别输入4008BD全加器的输入端A3~A0、B3~B0,同时CIN输入端接低电平。则S3~S0输出计算结果,COUT为

eda拔河游戏机课程设计报告

报告书写要求 1、报告的撰写要求条理清晰、语言准确、表述简明。报告中段首空两个字符,中文字体为 宋体五号,数字、字符、字母为Times New Roman五号,且单倍行距。 2、报告中插图应与文字紧密配合,文图相符,技术内容正确。每个图都应配有图题(由图 号和图名组成)。图题(宋体小五号)置于图下居中,其中图号按顺序编排,图名在图号之后空一格排写。图中若有分图时,分图号用(a)、(b)等置于分图之下。注:框图、流程图(矢量图)用专业画图软件。 3、报告中插表应与文字紧密配合,文表相符,技术内容正确。表格不加左、右边线,上、 下线需加粗(1.5磅),每个表应配有表题(由表号和表名组成)。表题(宋体小五号)置于表上居中,其中表号按顺序编排,表名在表号之后空一格排写。 4、报告中公式原则上居中书写。注:公式编辑器编写。 5、设计报告应按如下内容和顺序A4纸打印、左侧装订成册。

一、设计目的 1.掌握数字系统的设计方法; 2.掌握硬件描述语言——Verilog HDL; 3.掌握模块化设计方法; 4.掌握开发软件的使用方法。 二、设计要求 (1)设计拔河游戏电路,用按键与LED表示输入与输出。 (2)初始时,16个LED中间的两个点亮,然后游戏双方不停按动按键,点亮的两个LED 向按动按键慢的一方移动; (3)每按动一下按键,LED向对方移动一格; (4)只要LED移动到头,游戏结束; (5)由裁判下达比赛开始命令后,甲乙双方才能输入信号,否则,输入信号无效。 用数码管显示获胜者的盘数,每次比赛结束自动给获胜方加分。 (6)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。 (7)三、设计环境 计算机、QuatusII开发软件 四、设计内容(设计原理和方案、程序设计、仿真分析和适配) 4.1设计原理和方案 电子拔河游戏机是一种能容纳甲乙双方参赛或甲乙双方加裁判的三人游戏电路。由一排16个LED发光二极管表示拔河的“电子绳”。由甲乙双方通过按钮开关使发光的LED管向自己一方的终点延伸,当延伸到某方的最后一LED管时,则该方失败,对方获胜,并对获胜次数进行计数,连续比赛多局以定胜负。比赛开始,由裁判下达比赛命令后,甲乙双方才能输入信号,否则,输入信号无效。裁判信号由键盘空格键来控制。“电子绳”由16个LED管构成,裁判下达“开始比赛”的命令后,摁一下空格键,位于“电子绳”中点的LED发亮。甲乙双方通过按键输入信号,使发亮的LED管向自己一方移动,并阻止其向对方延伸,谁摁得快就向这一方移动。当从中点至自己一方的最后一个LED管发亮时,表示比赛结束,这时,电路自锁,保持当前状态不变,除非由裁判使电路复位,并对获胜的一方计数器自动加一。记分电路用两位七段数码管分别对双方得分进行累计,在每次比赛结束时电路自动加分。当比赛结束时,计分器清零,为下一次比赛做好准备。

EDA课程设计报告

北华航天工业学院 《EDA技术综合设计》 课程设计报告 报告题目:16X16点阵显示综合实验作者所在系部:电子工程系 作者所在专业:自动化专业 作者所在班级: 作者姓名: 指导教师: 完成时间:2012年12月26日

容摘要 在本次课设中,设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮。显示花样共有三种:①6*16点阵的16列同时从上往下依次点亮,全亮后16列又同时从下往上依次熄灭;②显示单字“飞”;③依次循环显示“航”,“天”,“学”,“院”四个字。 为使点阵显示器能够动态显示,列选信号为16-4编码器编码输出。 控制器各引脚功能为:DIN[3..0]为显示花样模式选择,高电平有效;CLK 为时钟输入端;DOTOUT[15..0]为行驱动信号输出;SELOUT[3..0]为列选信号输出,为16-4编码信号。 列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。 关键词: VHDL,16*16点阵,QuartusII,时序仿真图。

目录 一、实验目的 (1) 二、硬件要求 (1) 三、方案论证 (1) 四、模块说明 (1) 1.整体程序 (1) 2.花样一(动画) (6) 3.花样二(“飞”字) (6) 4.花样三(四字循环显示) (7) 五、整体连接图 (7) 六、实验步骤 (7) 七、实验结果 (7) 八、实验总结 (7) 九、参考文献 (8)

课程设计任务书

一、实验目的 (1)了解16*16LED的工作原理。 (2)了解点阵字符的产生和显示原理。 二、硬件要求 (1)主芯片EPF10K10LC84-4。 (2)16*16点阵。 (3)可变时钟源。 (4)四个拨码开关(显示花样的选择)。 三、方案论证 引脚整体可分为四个部分:clk(时钟信号)、din[3…0](花样选择控制)、dotout[15…0](行驱动信号输出)、selout[3…0](列选信号输出)。 其中有一个分频器的设计,可用一个16位的计数器实现:信号q从00000到11111循环变换,将q的低四位赋给列选信号selout,当q=11111时又可驱动另一计数器工作,实现分频。 第一个花样的设计:用q驱动一个5位计数器zhen从00000到11111循环变换,当Zhen=”00000”时,dotout=”00000” Zhen=”00001”时,dotout=”00001” …… …… Zhen=”10000”时,dotout=”1” …… …… Zhen=”11110”时,dotout=”00011” Zhen=”11111”时,dotout=”00001”。 第二个花样的设计:可参考第三个花样的设计。 第三个花样的设计:当zhen1(功能同zhen)=”00”时,显示第一个字“航”,当selout=”0000”时,dotout为“航”字的最后一列代码;当selout=”0001”时,dotout为“航”字的倒数第二列代码,依次类推。其他三个字的设计同“航”字。 四、模块说明 16*16点阵综合显示实验是用一个整体的程序编写的,所以不可分成模块,但可以分成三个部分:16*16点阵的16列同时从上往下依次点亮,全亮后16列又同时从下往上依次熄灭;显示“飞”字;依次循环显示“航”、“天”、“学”、“院”。下面的程序分析中将讨论三个部分的设计。 1.整体程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dots_test is port(clk:in std_logic; - -硬件接口

EDA课程设计报告

EDA课程设计报告学校:大学 课程题目:密码锁的设计 学院:信息科学技术学院 专业及班级:通信工程(3)班 :江虹 学号:20101613310068 其他组员:羊精月、林芳梅 指导老师:文进

目录 一、设计思 路…………………………………………………………………… 2 二、硬件电路的实 现 (2) (一)、独立键盘输入电路 (2) (二)、控制输入电路 (5) (三)、移位电路 (6) (四)、比较电路 (8) (五)、存储器模块 (12) (六)、译码模块 (14) (七)、密码锁的总体电路 (16) 三、密码锁的功能及分析 (17) 四、方案的优点及不足 (20) 五、心得体会 (21)

六、总结 (21) 七、参考文献 (22) 一、设计思路 1、设计一个电子密码锁,在锁开的状态下输入密码,密码共4位 2、设计一个初始密码 3、用数据开关K1 K10分别代表数字1、2、…、9、0 4、输入的密码用数码管显示,最后输入的密码显示在最右边的数码 管上,即每输入一位数,密码在数码管上的显示右移一位。 可删除输入的数字,删除的是最后输入的数字,每删除一位, 密码在数码管的显示左移一位,并在右边空出的位上补充 “0”。 5、密码锁的控制功能有清零、修改、锁定、解锁,删除,确认。 6、因为密码一般不想被人看到,所以在显示时在按键按下灯亮时显 示正确字符,在按键按下灯灭时显示特殊字符,由于数码管

显示译码时没有“*”,所以特殊字符选择“E”。 7、用一位输出电平的状态代表锁的开闭状态。 8、为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘 记密码时使用。 二、硬件电路的实现 (一)、独立键盘输入电路 由于EDA实验箱有独立式键盘输入和矩阵式键盘输入电路,本实验就选择独立式键盘输入,本实验的密码是4位,实现在按键按下去灯亮时有一位数据输入,在按键按下去灯灭时没有有数据输入。 1、实现键盘输入的VHDL设计 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JPSR IS PORT ( KEY_IN1:IN STD_LOGIC_VECTOR(9 DOWNTO 0); DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JPSR; ARCHITECTURE behav OF JPSR IS BEGIN P_REG: PROCESS(KEY_IN1) BEGIN CASE KEY_IN1 IS WHEN "0000000001"=>DATA_N<="0000"; WHEN "0000000010"=>DATA_N<="0001"; WHEN "0000000100"=>DATA_N<="0010"; WHEN "0000001000"=>DATA_N<="0011"; WHEN "0000010000"=>DATA_N<="0100"; WHEN "0000100000"=>DATA_N<="0101"; WHEN "0001000000"=>DATA_N<="0110"; WHEN "0010000000"=>DATA_N<="0111"; WHEN "010*******"=>DATA_N<="1000"; WHEN "1000000000"=>DATA_N<="1001"; WHEN OTHERS=>DATA_N<="1010"; END CASE; END PROCESS P_REG ; END behav; 2、异或电路的VHDL设计

EDA课程设计报告

学号 EDA课程设计 课程名称 EDA技术 题目名称简易逻辑分析仪 学生学院信息工程学院 _ 专业班级 学号 学生姓名 2012年 1 月 1 日

简易逻辑分析仪的设计 1. 设计的任务与要求 设计并制作一个8 路数字信号发生器与简易逻辑分析仪,其结构框图如图1 所示: 图12.1. 简易逻辑分析仪系统结构框图 1.1设计基本要求 基本要求: (1)制作数字信号发生器能产生8路可预置的循环移位逻辑信号序列,输出信号为TTL 电平,序列时钟频率为100Hz,并能够重复输出。逻辑信号序列示例如图2所示。 (2)制作简易逻辑分析仪 a.具有采集8路逻辑信号的功能,并可设置单级触发字。信号采集的触发条件为各路被测信号电平与触发字所设定的逻辑状态相同。在满足触发条件时,能对被测信号进行一次采集、存储。 b .能利用模拟示波器清晰稳定地显示所采集到的8路信号波形,并显示触发点位置。 c.8位输入电路的输入阻抗大于50k Ω,其逻辑信号门限电压可在0.25~4V范围内按16级变化,以适应各种输入信号的逻辑电平。 d.每通道的存储深度为20bit。

图12.2 重复输出循环移位逻辑序列00000101 1.2 设计发挥部分 (1)能在示波器上显示可移动的时间标志线,并采用LED或其它方式显示时间标志线所对应时刻的8路输入信号逻辑状态。 (2)简易逻辑分析仪应具备3级逻辑状态分析触发功能,即当连续依次捕捉到设定的3 个触发字时,开始对被测信号进行一次采集、存储与显示,并显示触发点位置。3级触发字可任意设定(例如:在8路信号中指定连续依次捕捉到两路信号11、01、00作为三级触发状态字)。 (3)触发位置可调(即可选择显示触发前、后所保存的逻辑状态字数)。(4)其它(如增加存储深度后分页显示等)。 2. 方案论证与选择 2.1 数字信号发生器方案 ?利用单片机内的定时器,产生计数溢出中断,从而实现信号频率要达到100Hz的要求。 ?当改变拨段开关的预设值后,按下数字开关,单片机会重新读入8位数据,并对改变后的数据进行读取和输出。 ?在中断程序中对信号实现循环右移和输出,每次中断到来的时候,单片机便对输出端口输送一组信号。

EDA课程设计报告DOC

天津工业大学 毕业实践实习报告N沟道MOS管工艺模拟与器件模拟 班级:电科1103 学号:1110940316 姓名:汪兆明 成绩:

2015年4月1日 一、实践目的 熟练氧化、离子注入与扩散工艺,使用Silvaco软件进行模拟,掌握CMOS 工艺流程。学会用Silvaco软件提取MOS晶体管的各种参数,掌握用SILVACO 工具对MOS晶体管进行器件模拟 二、实践要求 1、用Anthena构建一个NMOS管,要求沟道长度不小于0.8微米,阈值电压在 -0.5v 至 1V之间。 2、工艺模拟过程要求提取S/D结结深、阈值电压、沟道表面掺杂浓度、S/D 区薄层电阻等参数。 3、进行器件模拟,要求得到NMOS输出特性曲线族以及特定漏极电压下的转移 特性曲线,并从中提取MOS管的阈值电压和β值。 4、分析各关键工艺步骤对器件性能的影响。 三、操作步骤 1、启动silvaco软件。 2、创建一个网格并定义衬底的参数。 3、由于本实验运用了cmos工艺,所以先在衬底上做一个p阱,严格定义p阱的浓度,注入能量,以及阱区的推进。 4、生长栅氧化层,严格控制各参数。 diffus time=10 temp=950 dryo2 press=1.00 hcl.pc=3 5、淀积多晶硅,其厚度为0.2um。 6、刻蚀掉x=0.35左面的多晶硅,然后低剂量注入磷离子,形成轻掺杂层,剂量为3e13,能量为20kev。 7、淀积氧化层,然后再进行刻蚀,以进行下一步的源漏区注入。 8、进行源漏砷离子的注入,剂量为4e15,能量为40kev。 9、淀积铝,形成S/D金属接触。 10、进行向右镜像操作,形成完整的nmos结构并定义电极。 11、抽取源漏结深,阈值电压,n+区薄层电阻,沟道表面掺杂浓度,轻掺杂源漏区的薄层电阻等参数。 12、描述输出特性曲线并绘出。 13、描述转移特性曲线并绘出,同时从中提取MOS管的阈值电压和β值。 四.测试结果 4.1 测试结果分析 4.1.1.工艺图

eda课程设计1203010

《EDA技术》 课程设计报告 题目: FPGA数字时钟设计 班级: 12电信本2 学号: 1203010211 姓名:高翔 同组人员:汤吉鑫王正提 指导教师:杨祖芳 2015年 5月1日

目录 1 设计任务 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2 总体设计框图 (1) 3 单元电路设计 (1) 3.1 秒计数器模块设计与实现 (1) 3.2 分计数器模块设计与实现 (3) 3.3 时计数器模块设计与实现 (4) 3.4 校准模块 (5) 3.5 BCD七段显示译码器 (5) 3.6 3-8线译码器模块设计与实现 (6) 3.7 分频器的设计与实现 (7) 3.8 去抖模块 (7) 3.9 动态扫描数码显示器 (8) 3.10 顶层原理设计图 (8) 4 硬件测试与结果分析 (9) 4.1 硬件测试 (9) 4.2 测试过程及结果分析 (9) 5 收获与体会 (10) 参考书目 (10) 附录 (11)

1 设计任务 设计并实现具有一定功能的数字钟。包括清零、置数、计数、报时等功能。 (1)具有时、分、秒计数显示功能,且以24小时循环计时。 (2)具有清零的功能,且能够对计时系统的小时、分钟进行调整。 (3)具有整点报时功能。 2 总体设计方案 2.1 设计思路 本设计采用层次化设计方式,先设计数字时钟的底层器件:秒计数器、分 计数器、时计数器、bcd 七段显示译码器、3-8译码器、分频器、动态扫描数码显示器。顶层采用原理图设计方式,将所设计的底层器件连接起来构成一个具有计时和调时功能的数字时钟。 2.2 总体设计框图 图2-2 设计框图 3 单元电路设计 3.1 秒计数器模块设计与实现 计时模块使用的时钟信号为1Hz 。秒计时模块为60进制计数器,也可以看为个位为10进制十位为6进制。当秒的个位显示到9时,下一秒向十位进1 并将个位重新归零并开始计数,当十位为5个位为9时,计时器下一秒向分计数器进1并同时将秒计时器个位、十位归零。也可以看成计时器从00开始计数到59,当秒显示为59时,下一秒将显示00并从新开始计数,同时向分位为进1。当秒计时模块中扫描到有按键按下时,直接向分计时器进1,但不影响秒计时器的正常计数(扫描按键是

相关文档