EDA交通灯课程设计

合集下载

eda交通灯课程设计

eda交通灯课程设计

eda交通灯课程设计一、教学目标本课程旨在让学生了解和掌握交通灯系统的基本原理和设计方法。

通过本课程的学习,学生将能够:1.知识目标:理解交通灯系统的原理和组成,包括信号灯、控制器、传感器等;掌握交通灯系统的设计和实施方法,包括硬件设计和软件编程。

2.技能目标:能够使用相关工具和软件进行交通灯系统的设计和仿真;具备一定的实际操作能力,能够进行交通灯系统的安装和调试。

3.情感态度价值观目标:培养学生对交通安全和秩序的重视,提高学生的社会责任感和公民意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.交通灯系统的原理和组成:介绍交通灯系统的工作原理和基本组成,包括信号灯、控制器、传感器等。

2.交通灯系统的设计和实施:讲解交通灯系统的设计方法和步骤,包括硬件设计和软件编程。

3.交通灯系统的仿真和实验:使用相关工具和软件进行交通灯系统的仿真,并进行实际操作和实验。

4.交通安全和秩序的重要性:强调交通安全和秩序对社会的的重要性,培养学生的社会责任感和公民意识。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:讲解交通灯系统的原理和组成,设计和实施方法等基本知识。

2.讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的思维能力和团队合作能力。

3.案例分析法:分析真实的交通灯系统案例,让学生了解交通灯系统的实际应用和效果。

4.实验法:进行交通灯系统的仿真和实验,让学生亲身体验交通灯系统的设计和实施过程。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择一本适合学生水平的交通灯系统设计教材,作为学生学习的基本参考资料。

2.参考书:提供一些相关的参考书籍,供学生深入学习和研究。

3.多媒体资料:制作一些教学PPT、视频等多媒体资料,帮助学生更好地理解和掌握交通灯系统的原理和设计方法。

4.实验设备:准备一些实验设备,包括交通灯控制器、传感器等,供学生进行实际操作和实验。

eda交通灯课程设计

eda交通灯课程设计

eda交通灯课程设计一、课程目标知识目标:1. 学生能理解并掌握交通灯的基本原理及其在现代社会交通管理中的作用。

2. 学生能了解EDA(电子设计自动化)的基本概念,并运用其原理设计简单的交通灯控制系统。

3. 学生掌握交通灯工作周期的计算方法,以及不同交通情况下信号灯变换的逻辑规则。

技能目标:4. 学生能够通过EDA软件进行交通灯电路的设计与仿真,具备基本的电子设计能力。

5. 学生能够运用所学知识分析并解决交通灯控制中的实际问题,具备一定的创新设计思维。

情感态度价值观目标:6. 学生通过设计交通灯控制系统,培养对工程技术的兴趣,增强社会责任感和团队合作意识。

7. 学生能够在项目实践中体验科学探究的乐趣,提高学习科学的积极性,形成良好的学习习惯。

8. 学生通过课程学习,认识到科技在生活中的应用,增强对现代科技改善生活品质的认识,培养创新精神和实践能力。

本课程设计针对的是具有一定电子学基础的中高年级学生,课程性质为实践性强的综合设计课。

在分析课程性质、学生特点和教学要求的基础上,课程目标旨在分解为具体的学习成果,以便通过后续的教学设计和评估,有效提升学生对交通工程和电子设计自动化知识的综合应用能力。

二、教学内容本章节教学内容紧密围绕课程目标,结合课本相关章节,科学系统地组织以下内容:1. 交通灯基本原理:讲解交通灯的功能、结构及工作原理,对应教材第3章“交通信号控制基础”。

2. EDA软件介绍:介绍EDA软件的基本功能、操作方法及其在电子设计中的应用,对应教材第5章“电子设计自动化技术”。

3. 交通灯控制系统设计:a. 设计要求:分析交通灯控制系统的需求,明确设计目标和功能要求。

b. 电路设计:学习并运用EDA软件设计交通灯控制电路,对应教材第6章“数字电路设计”。

c. 仿真测试:利用EDA软件对设计电路进行仿真测试,验证设计方案的可行性。

4. 交通灯控制逻辑:学习并掌握交通灯工作周期的计算方法,以及不同交通情况下的信号灯变换规则,对应教材第3章“交通信号控制策略”。

eda交通灯课程设计

eda交通灯课程设计

eda交通灯课程设计一、课程目标知识目标:1. 学生能理解并掌握EDA交通灯的基本原理,包括信号灯的工作原理、时序控制等。

2. 学生能够运用所学知识,分析并设计简单的交通灯控制系统。

3. 学生了解交通灯在现实生活中的应用,认识到其在交通安全中的重要性。

技能目标:1. 学生能够运用EDA软件进行交通灯电路的设计与仿真。

2. 学生通过小组合作,提高沟通协调能力和团队协作能力。

3. 学生掌握基本电路调试方法,具备解决实际问题的能力。

情感态度价值观目标:1. 学生培养对电子设计与应用的兴趣,激发创新意识。

2. 学生认识到交通灯在保障交通安全、提高道路通行效率方面的重要性,增强社会责任感。

3. 学生在学习过程中,培养严谨、细致、勇于探索的科学态度。

本课程针对初中年级学生,结合学科特点,注重理论与实践相结合,以提高学生的动手能力和创新能力。

在教学过程中,教师需关注学生的个体差异,激发学生的学习兴趣,鼓励学生积极参与讨论和实践,培养其团队协作能力。

通过本课程的学习,期望学生能够掌握交通灯的基本原理,提高电子设计与应用能力,并树立正确的价值观。

二、教学内容本章节教学内容主要包括以下三个方面:1. 交通灯基本原理:- 介绍交通灯的起源、发展及其在现代交通中的应用。

- 讲解交通灯的信号控制原理,包括红绿灯的切换机制和时序控制。

2. EDA软件应用:- 介绍EDA软件的基本功能和使用方法。

- 结合教材章节,教授如何使用EDA软件进行交通灯电路设计与仿真。

3. 实践操作与小组讨论:- 安排学生进行交通灯电路设计实践,指导学生完成电路搭建、调试与优化。

- 组织小组讨论,让学生分享设计心得,互相学习,提高团队协作能力。

教学大纲安排如下:第一课时:交通灯基本原理介绍,占总课时的1/4。

第二课时:EDA软件应用教学,占总课时的1/4。

第三课时:实践操作与小组讨论,占总课时的1/2。

教学内容与教材紧密关联,确保科学性和系统性。

在教学过程中,教师需关注学生对知识点的掌握情况,及时调整教学进度,确保教学效果。

EDA交通灯控制器课程设计

EDA交通灯控制器课程设计

交通灯控制器课程设计该交通信号控制器控制十字路甲、乙两条道路的红、黄和绿三色灯,指挥车辆和行人安全通行。

功能要求如下:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。

2.当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的时间。

(20s)3.高速公路灯转为绿色后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持绿灯。

(60s)。

设计如下:——1hz分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fen_pin1 isport(clk100hz:in std_logic;clk1hz:out std_logic);end fen_pin1;architecture bhv of fen_pin1 issignal qan:std_logic_vector(3 downto 0); signal qbn:std_logic_vector(3 downto 0); signal cin:std_logic;beginprocess(clk100hz)beginif(clk100hz'event and clk100hz='1')thenif qan="1001"then qan<="0000";cin<='1';else qan<=qan+1;cin<='0';end if;end if;end process;process(clk100hz,cin)beginif(clk100hz'event and clk100hz='1')thenif cin='1' thenif qbn="1001" then qbn<="0000";else qbn<=qbn+1;end if ;end if ;end if ;end process;process(qan,qbn)beginif (qan="1001"and qbn="1001")then clk1hz<='1'; else clk1hz<='0';end if;end process;end bhv;——2hz分频器library ieee;use ieee.std_logic_1164.all;entity fen_pin2 isport (clk100hz:in std_logic;clk2hz:out std_logic);end fen_pin2;architecture bhv of fen_pin2 isbeginprocess(clk100hz)variable cnt:integer range 0 to 24;variable tmp:std_logic;beginif(clk100hz'event and clk100hz='1')thenif cnt=24 thencnt:=0;tmp:=not tmp;elsecnt:=cnt+1;end if;end if;clk2hz<=tmp;end process;end bhv;——主干道控制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity contralz isport(clk:in std_logic;ra,ga,ya:out std_logic;timeah,timeal:out std_logic_vector(3 downto 0)); end contralz;architecture bhv of contralz istype rg is(green,red,yellow2);beginprocess(clk)variable a:std_logic;variable th,tl:std_logic_vector(3 downto 0);variable state:rg;beginif clk'event and clk='1'thencase state iswhen green=>if a='0'thenth:="0101";tl:="1001";a:='1';ga<='1';ra<='0';ya<='0';elseif not(th="0000"and tl="0001")thenif tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;elseth:="0000";tl:="0000";a:='0';state:=red;end if;end if;when red=>if a='0'thenth:="0001";tl:="1001";a:='1';ra<='1';ya<='0';ga<='0';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';ra<='0';ga<='0';state:=yellow2;end if;end if;when yellow2=>if a='0'thenth:="0000";tl:="1001";a:='1';ya<='1';ga<='0';ra<='0';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;tl:=tl-1;end if;elseth:="0000";tl:="0000";ga<='0';ra<='0';ya<='0';a:='0';state:=green;end if;end if;end case;end if;timeah<=th;timeal<=tl;end process;end bhv;——支路控制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity contralx isport(clk:in std_logic;rb,gb,yb,chu:out std_logic;timeah,timeal:out std_logic_vector(3 downto 0)); end contralx;architecture bhv of contralx istype rgy is(red,yellow1,green,yellow2);beginprocess(clk)variable a:std_logic;variable th,tl:std_logic_vector(3 downto 0);variable state:rgy;beginif clk'event and clk='1'thencase state iswhen yellow1=>if a='0'thenth:="0000";tl:="0100";a:='1';yb<='1';gb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=green;end if;end if;when green=>if a='0'thenth:="0001";tl:="1001";a:='1';gb<='1';rb<='0';yb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=yellow2;end if;end if;when red=>if a='0'thenth:="0101";tl:="0100";a:='1';yb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=yellow1;end if;end if;when yellow2=>if a='0'thenth:="0000";tl:="0100";a:='1';yb<='1';gb<='0';rb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';chu<='0';state:=red;end if;end if;end case;end if;timeah<=th;timeal<=tl;end process;end bhv;——反馈器library ieee;use ieee.std_logic_1164.all;entity smen isport( sm ,re,gr,ye:in std_logic;jinji:out std_logic);end smen;architecture se of smen isbeginprocess isbeginif(sm='1' and re='0' and gr='0' and ye='0') then jinji<='1'; elsejinji<='0';end if;end process;end se;——消抖电路library ieee;use ieee.std_logic_1164.all;entity xiaodou isport(jinji,clk1hz:in std_logic;b:out std_logic);end xiaodou;architecture bhv of xiaodou issignal temp1:std_logic;beginprocess(clk1hz,jinji)variable temp2:std_logic;beginif(clk1hz'event and clk1hz='0')thentemp1<=jinji;temp2:=not temp1;end if;b<=temp1 and temp2 and clk1hz;end process;end bhv;——状态转换library ieee;use ieee.std_logic_1164.all;entity no isport(a:in std_logic;en:out std_logic);end no;architecture no_arc of no isbeginprocess(a)variable tmp:std_logic;beginif(a'event and a='1')thentmp:=not tmp;end if;en<=tmp;end process;end no_arc;——mux4llibrary ieee;use ieee.std_logic_1164.all;entity mux41 isport(sel:in std_logic_vector(2 downto 0);d0,d1,d2,d3:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);so:out std_logic_vector(1 downto 0));end mux41;architecture bhv of mux41 isbeginprocess(sel)begincase sel iswhen"100"=>q<=d2;so<="00"; when"101"=>q<=d3;so<="01"; when"000"=>q<=d0;so<="10";when others=>q<=d1;so<="11";end case;end process;end bhv;——译码器library ieee;use ieee.std_logic_1164.all;entity dec7s isport(d:in std_logic_vector(3 downto 0);q0,q1,q2,q3,q4,q5,q6:out std_logic);end dec7s;architecture bhv of dec7s isbeginprocess(d)variable q:std_logic_vector(6 downto 0); begincase d iswhen"0000"=>q:="0111111"; when"0001"=>q:="0000110"; when"0010"=>q:="1011011"; when"0011"=>q:="1001111"; when"0100"=>q:="1100110"; when"0101"=>q:="1101101"; when"0110"=>q:="1111101"; when"0111"=>q:="0100111"; when"1000"=>q:="1111111"; when"1001"=>q:="1101111";when others=>q:="1111001";end case;q0<=q(0);q1<=q(1);q2<=q(2);q3<=q(3);q4<=q(4);q5<=q(5);q6<=q(6);end process;end bhv;--- - . -word 资料- 仿真图如下:Ya,ra,ga 表示主干道黄红绿灯;yb,rb,gb 表示乡村小路黄红绿灯。

EDA交通灯的课程设计

EDA交通灯的课程设计

EDA交通灯的课程设计一、课程目标知识目标:1. 让学生理解EDA交通灯的基本原理,掌握交通灯控制系统的设计方法和步骤。

2. 使学生掌握交通灯控制系统中各模块的功能和相互关系,如时钟模块、控制器模块、显示模块等。

3. 帮助学生了解交通灯控制系统的实际应用,提高对电子设计自动化技术的认识。

技能目标:1. 培养学生运用所学知识,设计并实现一个简单的EDA交通灯控制系统的能力。

2. 培养学生使用相关软件(如Multisim、Protel等)进行电路仿真、绘制和调试的能力。

3. 提高学生的团队协作和沟通能力,培养他们在项目实践中解决问题的能力。

情感态度价值观目标:1. 培养学生对电子设计自动化技术的兴趣,激发他们探索未知、创新实践的热情。

2. 培养学生关注社会问题,认识到交通灯控制系统在提高道路通行效率、保障交通安全方面的重要性。

3. 引导学生树立正确的价值观,认识到科技发展应服务于社会、造福于人类。

课程性质:本课程为实践性较强的电子设计课程,以项目为导向,注重培养学生的实际操作能力和团队协作能力。

学生特点:学生具备一定的电子技术基础知识,具有较强的学习兴趣和动手能力,但对EDA技术及其应用尚不熟悉。

教学要求:结合学生特点,采用讲授与实践相结合的教学方法,注重引导学生主动参与、积极探索,提高他们的实际操作能力和创新能力。

在教学过程中,关注学生的个体差异,给予个性化的指导和支持。

通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程的学习和实践奠定基础。

二、教学内容1. 交通灯控制系统概述:介绍交通灯控制系统的基本概念、分类及其在现实生活中的应用。

相关教材章节:第一章 电子设计自动化概述2. EDA技术基础:讲解EDA技术的基本原理、发展历程和常用软件工具。

相关教材章节:第二章 EDA技术基础3. 交通灯控制器设计:a. 时钟模块设计:介绍时钟电路的原理与设计方法。

b. 控制器模块设计:讲解控制器的工作原理、编程方法。

eda交通灯控制器课程设计

eda交通灯控制器课程设计

eda交通灯控制器课程设计课程设计:EDA交通灯控制器1. 课程背景和目标:EDA交通灯控制器是使用EDA(电子设计自动化)工具进行交通灯控制系统设计的课程。

学习该课程的目标是使学生能够熟练运用EDA工具进行交通灯控制系统设计,并能够理解交通灯控制系统的原理和设计方法。

2. 课程内容和安排:(1) 交通灯控制系统原理介绍:介绍交通灯控制系统的基本原理,包括信号机、信号控制方法和交通流量检测等。

(2) EDA工具介绍:介绍常用的EDA工具,如Verilog、VHDL等,并讲解其基本使用方法。

(3) 交通灯控制器设计流程:介绍交通灯控制器的设计流程,包括需求分析、功能设计、模块设计和系统集成等。

(4) 交通灯控制器设计实践:学生通过实践项目,使用EDA工具设计交通灯控制器。

项目涵盖设计、仿真、验证和生成等环节,学生需要独立完成设计并提交设计报告。

3. 课程教学方法:(1) 理论讲解:通过课堂讲解,介绍交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。

(2) 实践项目:学生通过实践项目,运用所学知识设计交通灯控制器,并进行仿真、验证和生成等环节。

(3) 讨论和案例分析:通过课堂讨论和案例分析,加深学生对交通灯控制系统的理解和应用能力。

(4) 指导和批评:教师对学生的设计进行指导和批评,帮助学生不断提高设计能力。

4. 评估方式:(1) 实践项目报告:学生独立完成实践项目,并提交设计报告,包括设计过程、仿真结果和验证结果等。

(2) 课堂测试:通过课堂测试检验学生对交通灯控制系统原理和EDA工具的理解程度。

(3) 课堂表现:评估学生的课堂出勤情况、学习态度和参与度等。

5. 参考教材:(1) 《交通信号控制原理与技术》高新泽(2) 《EDA与数字电路设计》陈骏等(3) 《数字电路与系统设计》刘敏衡等(4) 《系统设计自动化技术与EDA工具应用》杨学庆等以上是对EDA交通灯控制器课程设计的简要介绍。

课程内容涵盖了交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。

EDA交通灯课程设计

EDA交通灯课程设计

EDA 交通灯课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握交通灯系统的原理与设计流程。

2. 学生能够运用所学知识,设计并实现一个具备基本功能的交通灯控制系统。

3. 学生了解交通灯控制系统在实际应用中的重要性,理解不同颜色灯亮灭的时间间隔及其意义。

技能目标:1. 学生能够运用EDA软件进行电路设计,完成交通灯控制系统的原理图与PCB布线图绘制。

2. 学生能够通过编程实现对交通灯控制系统的仿真与调试,解决简单问题。

3. 学生能够运用团队协作、沟通技巧,共同完成课程设计任务,提高实践操作能力。

情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识和探索精神。

2. 学生通过实践操作,培养动手能力、问题解决能力和自主学习能力。

3. 学生认识到遵守交通规则的重要性,增强社会责任感和安全意识。

课程性质:本课程设计为实践性课程,注重培养学生的动手能力和团队协作能力。

学生特点:初三学生,具有一定电子基础知识,好奇心强,喜欢动手实践。

教学要求:结合学生特点,课程设计应注重理论与实践相结合,鼓励学生自主探究和团队协作,提高学生的综合能力。

通过分解课程目标为具体学习成果,使学生在完成课程设计的过程中达到预期目标。

二、教学内容1. 电子设计自动化(EDA)基本原理介绍:包括EDA的概念、发展历程、应用领域。

2. 交通灯控制系统原理:讲解交通灯的工作原理、控制逻辑、信号灯颜色时间设置。

3. EDA软件操作:学习并掌握EDA软件的使用,如原理图绘制、PCB布线图设计。

4. 交通灯控制系统设计:根据实际需求,设计具备基本功能的交通灯控制系统。

- 知识点:数字电路、逻辑门、时序逻辑、微控制器应用。

- 教材章节:第四章 电子设计自动化,第三节 数字电路设计。

5. 编程与仿真:学习编程实现对交通灯控制系统的仿真与调试。

- 知识点:基础编程知识、仿真软件使用。

- 教材章节:第五章 嵌入式系统设计,第一节 嵌入式编程基础。

《EDA技术及应用》交通灯控制电路的设计

《EDA技术及应用》交通灯控制电路的设计

《EDA技术及应用》交通灯控制电路的设计1 系统设计1.1 设计要求1.1.1 设计任务1、用4个八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。

2、能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。

3、交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。

4、红、绿、黄灯显示的次序应符合实际交通道路控制的要求。

5、其它功能。

1.1.2性能指标要求设计一个交通控制器,用LED 显示灯表示交通状态,并以8 段数码显示器显示当前状态剩余秒数南北方向绿灯亮时,东西方向红灯亮;反之亦然,二者交替允许通行,南北方向每次放行99s,东西方向每次放行99s,南北红绿灯始终比东西红绿灯快3s。

每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为3s。

因为开发板没有绿黄灯,所以用两组三个led灯替代显示红黄绿灯。

南北方向与东西方向各用两个8位数码管显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。

1.2 设计思路及设计框图1.2.1设计思路本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。

设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下两个方向的都为红灯亮启,进入正常工作状态后,当南北方向红绿灯上绿灯亮时,东西方向红绿灯上红灯亮,各方向最后倒计时3s时,南北方向红绿灯和东西方向红绿灯上的代表黄灯的led灯亮启,持续3S后,南北方向红绿灯上红灯亮启,东西方向红绿灯上绿灯亮启持续99s,之后南北方向和东西方向上的黄灯都亮启3s,一个循环完成,循环往复的直行这个过程。

1.2.2总体设计框图根据任务需求,总体设计有:分频器模块、控制器模块、倒计时模块、红绿灯显示模块、码模块和译码显示模块如下图所示:2 各个模块程序的设计led红绿灯显示:module led(clk,led,N,D,cout,zt);input clk;input [6:0] N;input [6:0] D;output reg [5:0] led;output reg [1:0] zt;output reg [6:0] cout;always@(posedge clk)begincout=cout+1;if(cout<N-3)led=6'b100001;//南北绿灯,东西红灯else if(cout>N-3&&cout<N)led=6'b100010;//南北黄灯,东西红灯else if(cout>N&&cout<D+N-3)led=6'b001100;//南北红灯,东西绿灯else if(cout>N+D-3&&cout<N+D)led=6'b010100;//南北红灯,东西黄灯else if(cout==N+D)cout=0;if(cout<N-4)zt=0;else if(cout>N-4&&cout<N-1)zt=1;else if(cout>N-1&&cout<D+N-4)zt=2;else if(cout>D+N-4&&cout<N+D-1)zt=3;endEndmodule分频器:module div(clk,clkout);input clk;output reg clkout;Parameter CNT_MAX =50_000_000;//1s->1hz(50_000_000/1),0.5s->2hz(50_000_000/2=25_000_000) //parameter CNT_MAX = 1; //for simulationreg [25:0] cnt;always @ (posedge clk)if (cnt < CNT_MAX - 1'b1)cnt <= cnt + 1'b1;elsecnt <= 26'd0;always @(posedge clk)if(cnt == CNT_MAX - 1'b1)clkout=1'b1;elseclkout=1'b0; Endmodule调时控制:module ts(s,N,D,mode);input [1:0] s;input mode;output [6:0] N;output [6:0] D;j u1(.s(s[0]),.q(N),.mode(mode));j u2(.s(s[1]),.q(D),.mode(mode));Endmodule倒计时计数:module seg(clk,N,D,cout,zt,fs1,fs2); input clk;input [6:0] N;input [6:0] D;input [6:0] cout;input [1:0] zt;output reg [6:0] fs1;output reg [6:0] fs2;always@(posedge clk)case(zt)2'b00:begin fs1=N-cout-4; fs2=N-cout-1;end2'b01:begin fs1=N+D-cout-1; fs2=N-cout-1;end2'b10:begin fs1=N+D-cout-1; fs2=N+D-4-cout;end2'b11:begin fs1=N+D-cout-1; fs2=2*N+D-cout-1;endendcaseEndmodule计时输出:module j(s,q,mode);input s,mode;output reg [6:0] q;initialq=15;//初始从15开始启动always@(posedge s)if(mode)q=q+1;elseq=q-1;Endmodule数码管调用:// Module Function:数码管的译码模块初始化module segment7 (seg_datin,seg_led,en);input [3:0] seg_datin; //数码管需要显示0~f共16个数字,所以需要4位数据输入端 input en; //数码管使能端output [7:0] seg_led; //在DE10-Standard上控制一个数码管需要7个信号MSB~LSB=DP、G、F、E、D、C、B、Areg [7:0] seg [15:0]; //定义了一个reg型的数组变量,相当于一个16*8的存储器,存储器一共有16个数,每个数有8位宽initial //在过程块中只能给reg型变量赋值,Verilog中有两种过程块always和initial//initial和always不同,其中语句只执行一次beginseg[0] = ~(8'h3f) ; //对存储器中第一个数赋值8'b0011_1111,7段显示数字 0 seg[1] = ~(8'h06); //7段显示数字 1seg[2] = ~(8'h5b); //7段显示数字 2seg[3] = ~(8'h4f); //7段显示数字 3seg[4] = ~(8'h66); //7段显示数字 4seg[5] = ~(8'h6d); //7段显示数字 5seg[6] = ~(8'h7d); //7段显示数字 6seg[7] = ~(8'h07); //7段显示数字 7seg[8] = ~(8'h7f); //7段显示数字 8seg[9] = ~(8'h6f); //7段显示数字 9seg[10] = ~(8'h77); //7段显示数字 aseg[11] = ~(8'h7c); //7段显示数字 bseg[12] = ~(8'h39); //7段显示数字 cseg[13] = ~(8'h5e); //7段显示数字 dseg[14] = ~(8'h79); //7段显示数字 eseg[15] = ~(8'h71); //7段显示数字 fendassign seg_led = en?seg[seg_datin]:8'hff; //连续赋值,输入不同四位数,输出对于译码的8位输出,共阴数码管取反。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA技术实用教程课题名称:EDA课程设计学院:大数据与信息工程学院专业:通信工程年级:通信121任课教师:2015 年 5 月 27 日前言伴随着社会的发展以及人类生活水平的提高,汽车的数量在D的DEA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。

随着技术市场与人才市场对DEA 的不断的增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。

以下就是运用数字电子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。

交通管理器工作流程图:1、设计任务设计一个十字路口的交通灯控制系统,用实验平台上的LED 发光二极管显示车辆通过的方向(甲车道和乙车道各一组),用数码管显示该方向的亮灯时间。

要求:交通灯按正常状态依次点亮红、黄、绿灯,交警可以根据路口车流量的情况分别设置红、绿、黄灯持续点亮的时间。

在红、绿灯点亮时,能够显示其点亮持续的时间。

2、题目分析与整体构思2.1 交通灯控制器应具备的功能设甲车道和乙车道方向的车流量大致相同,因此红、黄、绿灯的时长也相同,考虑到黄灯的作用是警示已过停车线的司机尽快离开路口,而路口总宽度不变,因此将其固定为5 秒,而红灯亮的时间等于绿灯亮的时间加上黄灯亮的时间,因此紧对绿灯点亮时间进行设置就可以同时改变红灯亮的时间,这里将绿灯所能设置的最长时间设置为40 秒即(0<t1<40)。

同时用数码管正计时指示当前状态(红、黄、绿)所亮的时间。

2.2 实现方案2.2.1 从题目中计数值与交通灯的亮灭的关系如图(1)所示:图一2.2.2 交通灯控制器系统框图如图2 所示:3、硬件电路设计3.1 分频器的设计分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器和计数器。

该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。

生成的Symbol 文件如图3 和仿真波形如图4 所示。

图三图四3.2 控制器的设计控制器的作用是根据计数器的计数值及t1 的输入数据控制发光二极管的亮、灭,以及输出正计时数值给七段数码管的分位译码电路。

本控制器是利用时钟沿的下降沿读取前级计数器的计数值,然后作出反应;生成的实体模块如图5 和仿真波形如图6所示。

图五图六3.3 计数器的设计计数器1 的计数范围为由t1 引脚输入。

计到t1 后,下一个时钟沿恢复到0,开始下一轮计数。

仿真波形如图当t1 取7 时,计数器计数到7 后清零。

实体模块如图7 和仿真波形如图8。

计数器2 和计数器3 的实体模块如图9 和图10 所示。

图7图9图10图83.4 分位译码电路的设计--1由于控制器输出的正计时数值可能是1 位或者2 位十进制数,因此在七段数码管的译码电路前要加上分位电路(即将其分成2 个1 位的十进制数,如40 分成4 和0,5分为0 和5)。

与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。

控制器中,引入了寄存器。

本电路中分位电路使用组合逻辑电路实现。

生成的实体模块如图11 及仿真波形如图12。

图11图123.5 分位译码电路的设计—2分位译码电路2 和分位译码电路1 的功能是一样的,为了区别两个不同的引脚图( 8)图(11)图(12)NumC[3..0]和NumD[3..0]因此再设计一个电路,只是引脚名的名称不同,如图13。

3.6 数码管驱动的设计——绿灯和红灯驱动要求数码管共阳极连接(共阳极的公共端为低电平时,LED 不亮),在设计中为每个数码管都添加了一个驱动电路,在使用时通过调用模块来实现。

本模块设计为时序逻辑电路,采用下降沿触发。

实体模块如图14 和仿真波形如图15。

图14图153.7 数码管驱动的设计——黄灯驱动由于黄灯固定时间是5 秒,因此变化范围是0 至5 秒,七段数码管只要能显示0-5 的数就行了,所以单独用一个数码管驱动。

实体模块如图16和仿真波形如图17。

图16图173.8 顶层连接及其仿真交通灯控制器的顶层文件连接图如图18 和仿真波形如图19。

图18图19对图18 和19 的解释:在图18 中,绿灯计数器直接接分位译码器1,红灯计数器直接接分位译码器2,每个译码器分别接两个驱动电路,然后接输出。

左边5 个驱动器接的数码管显示的是甲车道各个灯亮的时间,右边5 个驱动器接的数码管显示的是乙车道各个灯亮的时间。

在19 图中可以看出甲、乙车道绿灯亮的时间加上黄灯亮的时间等于甲车道红灯灭的时间。

同时我们可以看出该系统满足我们所需的要求。

4、程序设计4.1 分频器的设计library ieee;use ieee.std_logic_1164.all;entity fredevider is ----------分频器port(clkin:in std_logic;clkout:out std_logic);end;architecture devider of fredevider isconsta nt N:integer:=499;signa l counter:integer range 0 to N;图( 1signa l Clk:std_logic;beginprocess(clkin)beginif rising_ed ge(clkin)thenif Counter=N thencounter<=0;clk<=not clk;elsecounter<=counter+1;end if;end if;end process;clkout<=clk;end;4.2 控制器的设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出正计时数值给七段译码管的分译码电路。

library ieee;use ieee.std_logic_1164.all;entity control is -----------控制器port (clk :in std_logic;c1,c2,c3:out std_logic; ------计数器工作时能信号,为1 时计数w1,w2,w3:in std_logic; ------计数器指示信号,在计数过程中,相应的指示信号为0,计数结束时为1r1,r2 :out std_logic; ------分别为甲乙车道红灯y1,y2 :out std_logic; -------分别为甲乙车道黄灯g1,g2 :out std_logic; ------分别为甲乙车道绿灯reset :in std_logic); -------复位信号,高电平有效end control ;architecture a of control istype state_space is (s3,s2,s1,s0) ; -----四种状态signa l state : state_space ;beginprocess (clk)beginif reset='1' thenstate<=s0; --------复位时状态为S0else if (clk'event and clk='1') then -------时钟上升沿到来case state iswhen s0=>if w1='1' thenstate<=s1;end if ;when s1=>if w2='1' thenstate<=s2;end if ;when s2=>if w3='1' thenstate<=s3;end if ;when s3=>if w2='1' thenstate<=s0;end if ;end case;end if;end if;end process;c1<='1'when state =s0 else '0';c2<='1'when state =s1 or state =s3 else '0';c3<='1'when state =s2 else '0';r1<='1'when state =s1 or state =s0 else '0';y1<='1'when state =s3else '0';g1<='1'when state =s2 else '0';r2<='1'when state =s2 or state =s3 else '0';y2<='1'when state =s1 else '0';g2<='1'when state =s0 else '0';end a ;4.3 计数器的设计4.3.1 绿灯计数器library ieee;use ieee.std_logic_1164.all;entity counter1 isport (clk :in std_logic;enable :in std_logic;t1 :in integer range 0 to 40 ; -------绿灯可设置亮的时间c1 :out std_logic);end counter1 ;architecture a of counter1 isbeginprocess (clk)variable cnt : integer range 0 to 40 ; -----变量cnt 定义为常数,取值范围为0到40beginif (clk'event and clk='1') then -----时钟上升沿到来if enable='1'a nd cnt<t1 then -----使能信号为1,并且cnt 小于t1 时cnt:=cnt+1; ------加计数elsecnt:=0;end if ;if cnt=t1 thenc1<='1'; ---------乙道开始通行,S0 状态elsec1<='0';end if ;end if ;end process;end a ;4.3.2 红灯计数器library ieee;use ieee.std_logic_1164.all;entity counter2 isport (clk :in std_logic;enable :in std_logic;t1 :in integer range 0 to 40 ;c2 :out std_logic);end counter2 ;architecture a of counter2 isconsta nt y:Integer:=5; ---------黄灯固定时间为5 秒signa l t2 : integer range 0 to 45; -------红灯亮的时间beginprocess (clk)variable cnt : integer range 0 to 45 ; ----------变量cnt 定义为常数,取值范围为0到45begint2<=t1+y;if (clk'event and clk='1') then -------时钟上升沿到来if enable='1'a nd cnt<t2 then -----使能信号为1,并且cnt 小于t2 时cnt:=cnt+1;elsecnt:=0;end if ;if cnt=t2 thenc2<='1'; -------工作在S1 或S3 状态elsec2<='0';end if ;end if ;end process;end a;4.3.3黄灯计数器library ieee;use ieee.std_logic_1164.all;entity counter3 isport (clk :in std_logic;enable :in std_logic;c3 :out std_logic;m3 :out integer range 0 to 5 );end counter3;architecture a of counter3 isbeginprocess (clk)variable cnt : integer range 0 to 5 ; -------变量cnt 定义为常数,取值范围为0到5beginif (clk'event and clk='1') then -----时钟上升沿到来if enable='1'a nd cnt<5 then -----使能信号为1,并且cnt 小于5 时cnt:=cnt+1; ------加计数elsecnt:=0;end if ;if cnt=5 thenc3<='1'; ---------工作在S2 状态elsec3<='0';end if ;end if ;m3<=cnt;end process;end a ;4.4 分位译码电路设计--1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Fenwei1 ISPORT(Numin:IN integer RANGE 0 TO 45;NumA,NumB:OUT Integer RANGE 0 to 9 -------绿灯亮的时间,十位和个位数字);END;ARCHITECTURE behavior OF Fenwei1 ISBEGINprocess(Numin)BEGINIF Numin>=40 THEN -------输入计时数据大于40NumA<=4; -------把十位数字送给ANumB<=Numin-40; -------把个位数字送给BELSIF Numin>=30 THENNumA<=3;NumB<=Numin-30;ELSIF Numin>=20 THENNumA<=2;NumB<=Numin-20;ELSIF Numin>=10 THENNumA<=1;NumB<=Numin-10;ELSENumA<=0;NumB<=Numin;END IF;END PROCESS;END;4.5 分位译码电路的设计—2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Fenwei2 ISPORT(Numin:IN integer RANGE 0 TO 45;NumC,NumD:OUT Integer RANGE 0 to 9 -----红灯亮的时间,十位和个位);END;ARCHITECTURE behavior OF Fenwei2 ISBEGINprocess(Numin)BEGINIF Numin>=40 THENNumC<=4;NumD<=Numin-40;ELSIF Numin>=30 THENNumC<=3;NumD<=Numin-30;ELSIF Numin>=20 THENNumC<=2;NumD<=Numin-20;ELSIF Numin>=10 THENNumC<=1;NumD<=Numin-10;ELSENumC<=0;NumD<=Numin;END IF;END PROCESS;END;4.6 数码管驱动的设计4.6.1 红绿灯驱动LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY qudong ISPORT(clk:in STD_LOGIC;enable :in std_logic;data:IN integer RANGE 0 TO 9; ------输入数字segout: out STD_LOGIC_VECTOR(6 downto 0)); -------七段显示器输出END;ARCHITECTURE behavior OF qudong ISBEGINprocess(Clk,data)BEGINIF falling_edge(Clk) and enable='1' then ------下降沿到来和使能信号为1 时case data iswhen 0=>segout<="1111110";when 1=>segout<="0110000";when 2=>segout<="1101101";when 3=>segout<="1111001";when 4=>segout<="0110011";when 5=>segout<="1011011";when 6=>segout<="0011111";when 7=>segout<="1110000";when 8=>segout<="1111111";when 9=>segout<="1110011";when others =>null;END CASE;END IF;END PROCESS;END;4.6.2 黄灯驱动LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HDqudong IS ---------黄灯驱动PORT(clk:in STD_LOGIC;enable :in std_logic;data:IN integer RANGE 0 TO 5; ------黄灯变化范围segout: out STD_LOGIC_VECTOR(6 downto 0));END;ARCHITECTURE behavior OF HDqudong ISBEGINprocess(Clk,data)BEGINIF falling_edge(Clk) and enable='1' thencase data iswhen 0=>segout<="1111110";when 1=>segout<="0110000";when 2=>segout<="1101101";when 3=>segout<="1111001";when 4=>segout<="0110011";when 5=>segout<="1011011";when others =>null;END CASE;END IF;END PROCESS;END;5﹑硬件测试把顶层文件连接图进行编译仿真后就可以进行硬件测试了,我们所用的仿真实验箱是GW48 系列SOPC/EDA 实验开发系统(杭州康芯电子有限公司现代DSP 实验开发系统)。

相关文档
最新文档