EDA课设报告
eda花样彩灯课程设计报告

eda花样彩灯课程设计报告一、课程目标知识目标:1. 学生能理解并掌握EDA(电子设计自动化)花样彩灯的基本原理与设计流程。
2. 学生能识别并运用课程中所学的电子元件,如LED灯、电阻、电容等,并理解其在电路中的作用。
3. 学生能够运用已学的电子知识,设计并搭建简单的EDA花样彩灯电路。
技能目标:1. 学生能够运用计算机软件进行电路设计与仿真,提高实际操作能力。
2. 学生通过小组合作,提高沟通协调能力和团队协作能力。
3. 学生能够运用问题解决策略,对设计过程中出现的问题进行分析、调试和优化。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,增强创新意识和实践能力。
2. 学生在设计和制作过程中,培养耐心、细心的品质,提高面对困难的勇气和毅力。
3. 学生通过课程学习,认识到科技与生活的密切联系,增强环保意识和责任感。
本课程针对五年级学生特点,结合电子设计实际应用,注重培养学生的动手能力、创新能力和团队协作能力。
通过课程学习,使学生能够将所学知识应用于实际生活,激发他们对科技的兴趣,提高科学素养。
课程目标具体、可衡量,便于教师进行教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. 电子元件的认识:介绍常用电子元件如LED灯、电阻、电容等,使学生了解其性能、特点及在电路中的作用。
2. EDA软件使用:教授学生如何使用EDA软件进行电路设计与仿真,包括电路图的绘制、元件的选取与放置、电路的仿真与调试等。
3. 花样彩灯设计原理:讲解花样彩灯的设计原理,如电路的基本连接方式、控制方法等。
4. 实践操作:指导学生进行EDA花样彩灯的设计与制作,让学生在实际操作中掌握所学知识。
5. 课程总结与展示:学生完成作品后,进行课程总结,分享设计经验,展示作品成果。
教学内容安排如下:1. 第一课时:电子元件的认识及基本电路原理介绍。
2. 第二课时:EDA软件的使用方法教学。
3. 第三课时:花样彩灯设计原理及实践操作指导。
eda课程设计5篇[修改版]
![eda课程设计5篇[修改版]](https://img.taocdn.com/s3/m/a1aef8d5dd36a32d72758100.png)
第一篇:eda课程设计数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零、校时、校分功能。
3、具有整点蜂鸣器报时以及LED花样显示功能。
二、设计方案根据设计要求,数字钟的结构如图8-3所示,包括:时hour、分minute、秒second计数模块,显示控制模块sel_clock,七段译码模块deled,报时模块alert。
三、VHDL程序library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;--use UNISIM.VComponents.all;entityddz is port(rst,clk: in std_logic; hour_h: out std_logic_vector( 6 downto 0); hour_l: outstd_logic_vector( 6 downto 0); min_h: out std_logic_vector( 6 downto 0);min_l: out std_logic_vector( 6 downto 0);sec_h: out std_logic_vector( 6 downto 0);sec_l: out std_logic_vector( 6 downto 0)); endddz;architecture Behavioral of ddz is signalcnt: std_logic_vector(15 downto 0); signalsec_h_in: std_logic_vector( 3 downto 0); signalsec_l_in: std_logic_vector( 3 downto 0); signalmin_h_in: std_logic_vector( 3 downto 0); signalmin_l_in: std_logic_vector( 3 downto 0); signalhour_h_in: std_logic_vector(3 downto 0); signalhour_l_in: std_logic_vector(3 downto 0);signalclk_s,clk_m,clk_h: std_logic; begin process(rst,clk) begin if rst='0' then sec_h_in'0');sec_l_in'0');clk_msec_l_inifsec_h_in=5 thensec_h_inclk_melsesec_h_inclk_mend if; else sec_l_inclk_mend if; end if; end process;process(rst,clk_m) begin if rst='0' then-- min_h_in'0');min_l_in'0'); -- clk_hmin_l_inmin_h_inclk_mend if; else min_l_inend if; end if; end process;process(rst,clk_n) begin if rst='0' then-- hour_h_in'0');hour_l_in'0'); -- clk_hhour_l_inhour_h_inclk_nend if; else hour_l_inend if; end if; end process;process(sec_l_in) begin casesec_l_in iswhen "0000" =>sec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lprocess(sec_h_in) begin casesec_h_in iswhen "0000" =>sec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hprocess(min_l_in) begin casemin_l_in iswhen "0000" =>min_lmin_lmin_lwhen "0011" =>min_lmin_lmin_lmin_lmin_lmin_lmin_lmin_lprocess(min_h_in) begin casemin_h_in iswhen "0000" =>min_hmin _h min _hmin _hmin _h min _hmin _hmin _hmin _hmin _hmin _hend case; end process;process(hour_l_in) begin casehour_l_in iswhen "0000" =>hour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lprocess(hour_h_in) begin casehour_h_in iswhen "0000" =>hour_hhour_hhour_hhour_h hour _h hour _h hour _h hour _h hour _hhour_h hour _h四、VHDL仿真结果五、课程设计心得通过这次课程设计,有效得巩固了课本所学的知识,而且通过上机仿真不断发现问题并及时改正,加深了我们对该课程设计的印象。
eda课程设计

eda课程设计一、教学目标本课程的教学目标是使学生掌握EDA(电子设计自动化)的基本概念、原理和方法,培养学生运用EDA工具进行电子系统设计和分析的能力。
具体目标如下:1.知识目标:(1)理解EDA的定义、发展历程和应用领域;(2)掌握常见的EDA工具及其功能;(3)了解电子系统设计的基本流程;(4)熟悉硬件描述语言(如VHDL、Verilog)的基本语法和用法。
2.技能目标:(1)能够熟练使用至少一种EDA工具进行电子系统设计;(2)能够编写简单的硬件描述语言程序,实现基本的电子系统功能;(3)具备分析电子系统性能和优化设计的能力;(4)能够阅读和理解电子设计相关的技术文档。
3.情感态度价值观目标:(1)培养学生的创新意识和团队合作精神;(2)增强学生对电子技术的兴趣和热情;(3)培养学生严谨的科学态度和良好的职业道德。
二、教学内容本课程的教学内容主要包括以下几个方面:1.EDA基本概念和原理:介绍EDA的定义、发展历程、应用领域和基本原理。
2.EDA工具的使用:介绍常见的EDA工具(如Cadence、Altera、Xilinx等)的功能和操作方法。
3.硬件描述语言:介绍硬件描述语言(如VHDL、Verilog)的基本语法、结构和用法。
4.电子系统设计流程:介绍电子系统设计的整个流程,包括需求分析、电路设计、仿真验证、硬件实现等。
5.电子系统性能分析与优化:讲解如何分析电子系统的性能,并提出优化设计的策略。
6.实例分析:通过具体案例,使学生掌握EDA工具在实际工程项目中的应用。
三、教学方法本课程采用讲授法、实践教学法和小组讨论法相结合的教学方法。
1.讲授法:用于讲解EDA的基本概念、原理和工具的使用方法。
2.实践教学法:通过实际操作EDA工具,使学生熟悉电子系统设计流程,提高实际操作能力。
3.小组讨论法:分组进行案例分析,培养学生的团队协作能力和解决问题的能力。
四、教学资源1.教材:选用权威、实用的EDA教材,如《电子设计自动化原理与应用》。
基于eda的课程设计

基于eda的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握其基本原理和应用范围。
2. 学生能够运用EDA工具进行简单的电路设计和仿真,了解电路设计中常用的EDA软件及其功能。
3. 学生能够掌握数字电路基础知识,理解并运用逻辑门、触发器等基本元件进行电路设计。
技能目标:1. 学生能够运用EDA软件进行电路原理图绘制,并进行相应的仿真分析。
2. 学生能够通过团队协作,完成一个简单的数字电路设计项目,提高实际操作能力。
3. 学生能够运用所学知识解决实际问题,提高创新意识和动手能力。
情感态度价值观目标:1. 培养学生对EDA技术及其在电子设计领域应用的兴趣,激发学生的学习热情。
2. 培养学生良好的团队协作精神和沟通能力,增强合作解决问题的意识。
3. 培养学生严谨的科学态度,提高学生对技术进步和社会发展的责任感。
分析课程性质、学生特点和教学要求:本课程为电子技术相关课程,旨在让学生了解并掌握EDA技术,提高电子设计能力。
考虑到学生所在年级,课程内容以基础知识和实际操作为主,注重培养学生的实践能力和创新意识。
在教学过程中,注重理论与实践相结合,强调学生的主体地位,鼓励学生积极参与、主动探究。
二、教学内容1. EDA基本概念与原理- EDA技术发展历程- EDA软件分类及功能- EDA设计流程2. 常用EDA软件介绍- Altium Designer、Cadence等软件的界面及基本操作- 电路原理图绘制与仿真- PCB设计基础3. 数字电路基础知识- 逻辑门、触发器等基本元件功能与应用- 数字电路设计方法- 电路设计与仿真案例分析4. EDA电路设计与仿真实践- 设计一个简单的数字电路(如:计数器、译码器等)- 电路原理图绘制与仿真- 电路板设计及制作5. 团队协作与项目实践- 分组进行项目设计- 各组汇报与交流- 指导学生完成项目,总结经验教学内容安排与进度:第1周:EDA基本概念与原理第2周:常用EDA软件介绍第3-4周:数字电路基础知识第5-6周:EDA电路设计与仿真实践第7周:团队协作与项目实践第8周:项目总结与评价教学内容与教材关联:本教学内容与教材中关于电子设计、数字电路、EDA技术等章节相关,通过对教材内容的整合和拓展,确保学生能够系统地学习和掌握EDA技术。
EDA课程设计_7

乒乓球游戏电路设计一、乒乓球设计方案(1)我们设计的乒乓球游戏是以一排发光二极管交替发光指示乒乓球的行进路径, 其行进的速度可由输入的时钟信号控制。
乒乓球比赛是甲乙双方的比赛, 所以用两个按键模拟左右两个球拍;我们还要设计一个乒乓球控制模块, 即当发光二极管到最后一个的瞬间, 若检测到对应的表示球拍的键的信号, 立即使“球”反向运行, 如果此瞬间没有接到按键信号, 将给出失败鸣叫, 同时为对方记1分, 并将记分显示出来, 然后由对方重新发球以此类推;还要设计失球计数器的高低位计数模块;乒乓球行进方向控制模块, 主要由发球键控制;还要有一个失球提示发生模块。
(2)要知道乒乓球的游戏规则, 以多少分为一局, 谁先得到一定的分数谁就赢一局, 以此来判断输赢。
(3)用数码管显示双方的得分, 还要设计一个十进制计数器, 来显示分数。
(4)在乒乓球设计方案时还要考虑球速的问题。
二、乒乓球游戏电路的设计程序1.LIBRARY IEEE;--乒乓球游戏顶层文件use ieee.std_logic_1164.all;entity TENNIS isport(bain,bbin,clr,clk,souclk:in std_logic;ballout:out std_logic_vector(7 downto 0);countah,countal,countbh,countbl:out std_logic_vector(3 downto 0);lamp,speaker:out std_logic);end entity TENNIS;architecture ful of TENNIS iscomponent soundport(clk,sig,en:in std_logic;sout:out std_logic);end component;component ballctrlport(clr,bain,bbin,serclka,serclkb,clk:in std_logic; bdout,serve,serclk,ballclr,ballen:out std_logic);end component;component ballport(clk,clr,way,en:in std_logic;ballout:out std_logic_vector(7 downto 0));end component;component boardport(ball,net,bclk,serve:in std_logic;couclk,serclk:out std_logic);end component;component cou10port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component cou4port(clk,clr:in std_logic;cout:out std_logic;qout:out std_logic_vector(3 downto 0));end component;component mwayport(servea,serveb:in std_logic;way:out std_logic);end component;signalnet,couclkah,couclkal,couclkbh,couclkbl,cah,cbh:std_logic; signalserve,serclka,serclkb,serclk,ballclr,bdout,way,ballen:std_lo gic;signal bbll:std_logic_vector(7 downto 0);beginnet<=bbll(4);ballout<=bbll;lamp<=clk;uah:cou4 port map(couclkah,clr,cah,countah);ual:cou10 port map(couclkal,clr,couclkah,countal);ubh:cou4 port map(couclkbh,clr,cbh,countbh);ubl:cou10 port map(couclkbl,clr,couclkbh,countbl); ubda:board port map(bbll(0),net,bain,serve,couclkal,serclka);ubdb:board port map(bbll(7),net,bbin,serve,couclkbl,serclkb);ucpu:ballctrlportmap(clr,bain,bbin,serclka,serclkb,clk,bdout,serve,serclk, ballclr,ballen);uway:mway port map(serclka,serclkb,way);uball:ball port map(clk,ballclr,way,ballen,bbll);usound:sound port map(souclk,ballen,bdout,speaker);end ful;2.library ieee;use ieee.std_logic_1164.all;entity sound isport(clk:in std_logic; --发声时钟sig:in std_logic; --正确接球信号en:in std_logic; --球拍接球脉冲sout:out std_logic); --提示声输出, 接小喇叭end entity sound;architecture ful of sound isbeginsout<=clk and (not sig) and en;--球拍接球, 没接到时, 发提示声end ful;3.library ieee; --总控制模块use ieee.std_logic_1164.all;entity ballctrlisport(clr:in std_logic; --系统复位bain:in std_logic; --左球拍bbin:in std_logic; --右球拍seclka:in std_logic; --左拍准确接球或发球serclkb:in std_logic; --右拍准确接球或发球clk:in std_logic; --乒乓球灯移动时钟bdout:out std_logic; --球拍接球脉冲serve:out std_logic; --发球状态信号serclk:out std_logic; --球拍正确接球信号ballclr:out std_logic; --乒乓球灯清零信号ballen:out std_logic); --乒乓球灯使能end entity ballctrl;architecture ful of ballctrl issignal bd:std_logic;signal ser:std_logic;beginbd<=bain or bbin;ser<=serclka or serclkb;serclk<=ser;--球拍正确接球信号bdout<=bd; --球拍接球脉冲process(clr,clk,bd)beginif(clr='1')then --系统复位serve<='1'; --系统处在职发球状态ballclr<='1'; --乒乓球灯清零elseif(bd='1')then --系统正常--球拍发球或接球时ballclr<='1'; --乒乓球灯清零if(ser='1')then --球拍发球或准确接球ballen<='1'; --乒乓球灯使能允许serve<='0'; --系统处在接球状态else ballen<='0';serve<='1'; --系统处在发球状态end if;else ballclr<='0';--没发球或接球时乒乓球灯不清零end if;end if;end process;end ful;4.--乒乓球灯模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ball isport(clk:in std_logic; --乒乓球灯前进时钟clr:in std_logic; --乒乓球灯清零way:in std_logic; --乒乓球灯前进方向en:in std_logic; --乒乓球灯使能ballout:out std_logic_vector(7 downto 0));--乒乓球灯end entity ball;architecture ful of ball issignal lamp:std_logic_vector(9 downto 0);beginprocess(clk,clr,en)beginif(clr='1') then lamp<="1000000001";--清零elsif en='0' thenelsif (clk'event and clk='1')then--使能允许, 乒乓球灯前进时钟上升沿if(way='1') then lamp(9 downto 1)<=lamp(8 downto 0);lamp(0)<='0';--乒乓球灯右移else lamp(8 downto 0)<=lamp(9 downto 1); lamp(9)<='0';--乒乓球灯左移end if;end if;ballout<=lamp(8 downto 1);end process;end ful;5.--乒乓拍模块library ieee;use ieee.std_logic_1164.all;entity board isport(ball:in std_logic; --接球点, 也就是乒乓球灯的末端net:in std_logic; --乒乓球灯的中点, 乒乓球过中点时, counclk、serclk复位bclk:in std_logic; --球拍接球信号serve:in std_logic; --发球信号couclk:out std_logic;serclk:out std_logic);end entity board;architecture ful of board isbeginprocess(bclk,net)beginif(net='1')then serclk<='0';couclk<='0';--乒乓球过中点时, counclk、serclk复位elsif(bclk'event and bclk='1')then—球拍接球时if(serve='1')then serclk<='1';--系统处于发球状态时—发球成功else—系统处于接球状态if(ball='1')then serclk<='1';--乒乓球刚落在接球点上, 接球成功else serclk<='0';couclk<='1';end if;end if;end if;end process;end ful;6.--十进制计数器用来做失球低位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;7、--四进制计数器用来做失球高位计数library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;serveb:in std_logic;way:out std_logic);end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';elsif(serveb='1')then way<='0';end if;end process;end ful;8、--乒乓球前进方向产生模块library ieee;use ieee.std_logic_1164.all;entity mway isport(servea:in std_logic;--左选手发球信号serveb:in std_logic;--右选手发球信号way:out std_logic);--乒乓球灯前进方向信号end entity mway;architecture ful of mway isbeginprocess(servea,serveb)beginif(servea='1')then way<='1';--左选手发球方向向右elsif(serveb='1')then way<='0';--右选手发球方向向左end if;end process;end ful;三、乒乓球游戏程序的仿真波形仿真波形图四、硬件测试方法然后我们就要测试硬件, 下载文件。
eda课程设计实验小结

eda课程设计实验小结一、教学目标本课程的教学目标是使学生掌握EDA(电子设计自动化)的基本原理和实验技能,能够运用EDA工具进行简单的电子系统设计和仿真。
具体目标如下:1.知识目标:学生能够理解EDA的基本概念、发展历程和主要应用领域;熟悉常见的EDA工具及其基本操作。
2.技能目标:学生能够运用EDA工具进行电路设计、仿真和验证;能够进行简单的PCB设计和管理。
3.情感态度价值观目标:培养学生对电子技术的兴趣和好奇心,提高学生的问题解决能力和创新意识。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.EDA基本概念和发展历程:介绍EDA的定义、发展历程和主要应用领域。
2.EDA工具的基本操作:以某一款常见的EDA工具为例,讲解其基本操作和功能。
3.电路设计和仿真:通过具体案例,讲解如何使用EDA工具进行电路设计和仿真。
4.PCB设计和管理:介绍PCB的基本概念,讲解如何使用EDA工具进行PCB设计和管理。
三、教学方法为了达到课程目标,我们将采用以下几种教学方法:1.讲授法:讲解EDA的基本概念、发展历程和主要应用领域。
2.案例分析法:通过具体案例,引导学生掌握EDA工具的基本操作和应用。
3.实验法:让学生亲自动手进行电路设计和仿真实验,提高其实践能力。
4.讨论法:鼓励学生积极参与课堂讨论,培养其创新意识和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的EDA教材,为学生提供系统、科学的学习材料。
2.参考书:提供一些精选的参考书籍,拓展学生的知识视野。
3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:准备充足的实验设备,确保每个学生都能动手进行实验。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其学习态度和理解能力。
eda技术实训课程设计

eda技术实训课程设计一、课程目标知识目标:1. 理解EDA技术的基本概念、原理及其在电子设计中的应用;2. 掌握EDA工具的使用方法,如原理图绘制、印制电路板(PCB)设计等;3. 学会利用EDA技术进行简单电路系统的设计、仿真与验证;4. 了解EDA技术的发展趋势及其在现代电子工程领域的地位和作用。
技能目标:1. 能够使用EDA工具完成原理图绘制、PCB布线等基本设计任务;2. 培养学生运用EDA技术解决实际电子工程问题的能力;3. 提高学生的团队协作能力和沟通能力,通过项目实训,掌握项目管理和时间规划技巧;4. 培养学生独立思考和创新能力,能够针对特定需求提出电子设计方案。
情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发学习热情,树立良好的学习态度;2. 增强学生的实践操作能力,培养勇于尝试、善于克服困难的品质;3. 培养学生的创新意识和团队精神,提高职业素养,为未来从事电子工程设计奠定基础;4. 强化学生的环保意识,认识到电子设计在环保方面的重要性,培养绿色设计理念。
本课程针对高年级电子工程及相关专业学生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。
通过本课程的学习,使学生掌握EDA技术的基本知识,具备实际电子工程设计能力,为未来从事相关工作打下坚实基础。
同时,培养学生积极的学习态度、团队协作精神和创新能力,提高职业素养。
二、教学内容1. EDA技术概述- EDA技术发展历程- EDA技术的基本概念与分类- EDA技术在现代电子工程领域的应用2. EDA工具介绍- 常用EDA工具软件特点及功能对比- EDA工具的基本操作与使用方法- EDA工具在实际电子设计中的应用案例3. 原理图绘制- 电路原理图的基本元素与绘制方法- 元器件库的创建与管理- 原理图的层次化设计方法4. 印制电路板(PCB)设计- PCB设计的基本流程与方法- PCB布局、布线原则与技巧- PCB设计中的信号完整性分析5. 电路仿真与验证- 仿真软件的基本使用方法- 电路仿真模型的建立与参数设置- 仿真结果的分析与验证6. 项目实训- 项目需求分析- 项目设计、仿真与验证- 项目总结与汇报教学内容按照教学大纲安排,结合课本章节进行组织,确保科学性和系统性。
eda课程设计报告

eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
尾灯控制器1 设计目的(1)学会在QuartusⅡ环境中运用VHDL语言设计方法来构建具有一定逻辑功能的模块,并能运用原理图设计方法完成顶层设计。
掌握所学的课程知识和基本单元电路的综合设计应用。
(2)通过对实用汽车尾灯控制器的设计,巩固和综合运用所学知识,提高设计能力,并掌握汽车尾灯控制在FPGA中实现的方法。
1.调试底层模块,并时序仿真。
2.设计顶层模块,并时序仿真。
3.撰写课程设计报告。
2 设计要求和任务假设汽车尾部左右侧各有3盏指示灯,其控制功能应包括:(1)汽车正常行驶时指示灯都不亮(2)汽车右转弯时,右侧的一盏指示灯亮(3)汽车左转弯时,左侧的一盏指示灯亮(4)汽车刹车时,左右侧的指示灯同时亮(5)汽车在夜间行驶时,左右侧的指示灯同时一直亮,供照明使用顶层设计采用原理图设计方案,它由时钟分频模块,汽车尾灯主控模块,左边灯控制模块和右边灯控制模块四部分组成。
3 总体设计思路及原理描述汽车尾灯控制器就是一个状态机的实例。
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯ldright亮;当汽车向左侧转弯时,汽车左侧的指示灯ldleft亮;当汽车刹车时,汽车右侧的指示灯ldbrake1和汽车左侧的指示灯ldbrake2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯ldnight1和汽车左侧的指示灯ldnight2同时一直亮。
通过设置系统的输入信号:系统时钟信号clk,汽车左转弯控制信号left,汽车右转弯控制信号right,刹车信号brake,夜间行驶信号night和系统的输出信号:汽车左侧3盏指示灯ldleft,dbrake1,dnight1和汽车右侧3盏指示灯ldright,ldbrake2,ldnight2实现以上功能。
系统的整体组装设计原理如图所示:4 分层次方案设计及代码描述4.1汽车尾灯主控模块汽车尾灯主控模块的工作框图如图4.1所示:图4.1汽车尾灯主控模块数据入口:RIGHT :右转信号;LEFT :左转信号;BRAKE :刹车信号;NIGHT :夜间行驶信号;数据出口:LP :左侧灯控制信号;RP :右侧灯控制信号;LR :错误控制信号;BRAKE_LED :刹车控制信号;NIGHT_LED :夜间行驶控制信号;汽车行驶信号主控模块左灯控制模块右灯控制模块显示时钟图 3.1 系统设计整体框图VHDL程序(CTRL.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CTRL ISPORT(LEFT,RIGHT,BRAKE,NIGHT: IN STD_LOGIC;LP,RP,LR,BRAKE_LED,NIGHT_LED: OUT STD_LOGIC);END ENTITY CTRL;ARCHITECTURE ART OF CTRL ISBEGINNIGHT_LED<=NIGHT;BRAKE_LED<=BRAKE;PROCESS(LEFT,RIGHT)VARIABLE TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINTEMP:=LEFT&RIGHT;CASE TEMP ISWHEN "00"=>LP<='0';RP<='0';LR<='0'; --当汽车直行时,左右灯都不亮WHEN "01"=>LP<='0';RP<='1';LR<='0'; --当汽车右拐时,右拐指示灯亮WHEN "10"=>LP<='1';RP<='0';LR<='0'; --当汽车左拐时,左指示灯亮WHEN OTHERS=>LP<='0';RP<='0';LR<='1';--当汽车刹车时,左右灯都亮 END CASE;END PROCESS;END ARCHITECTURE ART;功能:该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT 信号时,输出错误控制信号。
当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。
4.2左边灯控制模块左边灯控制模块的工作框图如图 4.2所示:图4.2左边灯控制模块数据入口:CLK:时钟控制信号;LP:左侧灯控制信号;LR:错误控制信号;BRAKE:刹车控制信号;NIGHT:夜间行驶控制信号;数据出口:LEDL:左侧LD1灯控制信号;LEDB:左侧LD2灯控制信号;LEDN:左侧LD3灯控制信号;VHDL程序(LC.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LC ISPORT(CLK,LP,LR,BRAKE,NIGHT: IN STD_LOGIC;LEDL,LEDB,LEDN: OUT STD_LOGIC);END ENTITY LC;ARCHITECTURE ART OF LC ISBEGINLEDB<=BRAKE;LEDN<=NIGHT;PROCESS(CLK,LP,LR)BEGINIF CLK'EVENT AND CLK='1' THEN --时钟上升沿有效 IF(LR='0') THEN --没有刹车信号时 IF(LP='0')THEN --没有左拐信号时LEDL<='0'; --左信号灯不亮ELSE --相反情况LEDL<='1';END IF;ELSELEDL<='0';END IF;END IF;END PROCESS;END ARCHITECTURE ART;功能:本程序用于控制左侧灯的亮、灭和闪烁情况,当时钟上升沿信号和左侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,左侧相应的灯亮或出现闪烁。
当错误控制信号出现时,LD1灯不亮。
4.3右边灯控制模块右边灯控制模块的工作框图如图 4.3所示:图4.3 右边灯控制模块数据入口:CLK:时钟控制信号;RP:右侧灯控制信号;LR:错误控制信号;BRAKE:刹车控制信号;NIGHT:夜间行驶控制信号;数据出口:LEDR:右侧RD1灯控制信号;LEDB:右侧RD2灯控制信号;LEDN:右侧RD3灯控制信号;VHDL程序(RC.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY RC ISPORT(CLK,RP,LR,BRAKE,NIGHT: IN STD_LOGIC;LEDR,LEDB,LEDN: OUT STD_LOGIC);END ENTITY RC;ARCHITECTURE ART OF RC ISBEGINLEDB<=BRAKE;LEDN<=NIGHT;PROCESS(CLK,RP,LR)BEGINIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿IF(LR='0') THENIF(RP='0') THENLEDR<='0';ELSELEDR<='1';END IF;ELSELEDR<='0';END IF;END IF;END PROCESS;END ARCHITECTURE ART;功能:本描述用于控制右侧灯的亮、灭和闪烁情况,当时钟上升沿信号和右侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,右侧相应的灯亮或出现闪烁。
当错误控制信号出现时,RD1灯不亮。
4.4时钟分频模块时钟分频模块的工作框图如图 4.4所示:图4.4 时钟分频模块VHDL程序(SZ.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SZ ISPORT(CLK: IN STD_LOGIC; --时钟输入CP: OUT STD_LOGIC);END ENTITY SZ;ARCHITECTURE ART OF SZ ISSIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0); --定义八位标准逻辑位矢量数据类型BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿COUNT<=COUNT+1;END IF;END PROCESS;CP<=COUNT(3); --输出第五位END ARCHITECTURE ART;功能:这块的功能是对左右两边的LLED1、RLED1的闪烁时间间隔,以CLK为输入信号, CP为输出信号,在程序中定义一个八位节点信号COUNT来放计数值,当CLK的上升沿到来时就开始计数,最后将COUNT(3)给CP,实现对CLK的八分频。
再将CP的电平信号分别和LEDL、LEDR电平与,最后用输出的电平来控制汽车左右的LLED1、RLED1,实现左右转的指示功能。
4.5顶层原理图顶层原理图如图 4.5所示:图4.5 顶层原理图顶层文件VHDL程序(tp.VHD)Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity tp isPort(clk:in std_logic;Left:in std_logic;Right:in std_logic;Brake:in std_logic;Night:in std_logic;Ld1,ld2,ld3:out std_logic;Rd1,rd2,rd3:out std_logic);End;Architecture bh of tp isComponent sz isPort(clk:in std_logic;Cp:out std_logic);End component;Component ctrl isPort(left,right,brake,night:in std_logic;Lp,rp,lr,brake_led,night_led:out std_logic);End component;Component lc isPort(clk,lp,lr,brake,night:in std_logic;Ledl,ledb,ledn:out std_logic);End component;Component rc isPort(clk,rp,lr,brake,night:in std_logic;Ledr,ledb,ledn:out std_logic);End component;Signal tmp0,tmp1,tmp2,tmp3,tmp4:std_logic;Signal err0,err1,err2,err3,err4,err5:std_logic;signal bm:std_logic;BeginU1:sz port map(clk,bm);U2:ctrl port map(left,right,brake,night,tmp0,tmp1,tmp2,tmp3,tmp4);U3:lc port map(clk,tmp0,tmp2,tmp3,tmp4,err0,err1,err2);U4:rc port map(clk,tmp1,tmp2,tmp3,tmp4,err3,err4,err5);Ld1<=err0 and bm;Ld2<=err1;Ld3<=err2;Rd1<=err3 and bm;Rd2<=err4;Rd3<=err5;End;5 各模块的时序仿真图5.1汽车尾灯主控模块仿真汽车尾灯主控模块由VHDL程序实现后,其仿真图如图 5.1所示:图5.1汽车尾灯主控模块仿真图对时序仿真图进行分析:当分别输入刹车信号BRAKE,左转控制信号LEFT,夜间信号NIGHT,右转控制信号RIGHT时,BRAKE_LED,LP,NIGHT_LED,RP分别亮;当同时输入刹车信号BRAKE,左转控制信号LEFT,BRAKE_LED和LP同时亮;当同时输入BRAKE和NIGHT,同时输入BRAKE和RIGHT,同时输入LEFT和NIGHT,同时输入NIGHT和RIGHT,对应的灯分别同时亮;当同时输入BRAKE,LEFT和NIGHT,同时输入BRAKE,RIGHT和NIGHT时,对应的灯分别同时亮;只要出现LEFT和RIGHT同时输入的情况,LP和RP都不亮,LR输出为“1”。