eda课程设计1203010

合集下载

eda课程设计

eda课程设计

eda课程设计EDA课程设计EDA(Electronic Design Automation)是电子设计自动化的缩写,是指利用计算机技术和软件工具来辅助电子设计的过程。

EDA课程设计是指在电子设计自动化领域中,为学生提供相关的课程内容和实践机会,以培养学生的电子设计能力和创新能力。

EDA课程设计的目的是为了让学生掌握电子设计自动化的基本理论和方法,了解EDA软件工具的使用和应用,培养学生的电子设计能力和创新能力。

在EDA课程设计中,学生需要学习电路设计、PCB 设计、仿真分析、布局布线等相关知识,掌握EDA软件工具的使用和应用,完成电子设计项目的实践任务。

EDA课程设计的内容包括电路设计、PCB设计、仿真分析、布局布线等方面。

在电路设计方面,学生需要学习电路基本理论、电路分析方法、电路设计流程等知识,掌握常用的电路设计软件工具,如Protel、Altium Designer等。

在PCB设计方面,学生需要学习PCB设计的基本原理、PCB设计流程、PCB设计软件工具的使用等知识,掌握常用的PCB设计软件工具,如PADS、Altium Designer等。

在仿真分析方面,学生需要学习仿真分析的基本原理、仿真分析的流程、仿真分析软件工具的使用等知识,掌握常用的仿真分析软件工具,如SPICE、PSpice等。

在布局布线方面,学生需要学习布局布线的基本原理、布局布线的流程、布局布线软件工具的使用等知识,掌握常用的布局布线软件工具,如PADS、Altium Designer等。

EDA课程设计的实践任务包括电子设计项目的设计和实现。

学生需要根据实际需求,设计并实现一个电子产品,包括电路设计、PCB 设计、仿真分析、布局布线等方面。

在电路设计方面,学生需要根据实际需求,设计一个符合要求的电路,包括电路原理图、电路元器件的选型和布局等。

在PCB设计方面,学生需要根据电路设计的要求,设计一个符合要求的PCB板,包括PCB板的布局、布线、元器件的安装等。

eda课程设计

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课程设计实验报告

eda课程设计--EDA课程设计实验报告

eda课程设计一EDA课程设计实验报告EDA课程设计实验报告学曉宿息工程学阮专业通信工程学号________________農名___________________任镌教师_________________2013 年10 月30 q一、FPGA 简介随着基于FPGA 的EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电 子信息.通信.自动控制及计算机等领域的重要性日益突出。

作为一个学通信 工程专业的学生,我们必须不断地去了解更多的新产品信息,这就更加要求我 们对EDA 有个全面的认识。

信号发生器在我们的日常中有很重要的应用,用VHDL 语言去实现设计将会使我们对本学科知识可以更好地掌握。

本设计是一个基于VHDL 的釆用自顶向下设计方法实现的信号发生器,该设 计方法具有外围电路简单,程序修改灵活和调试容易等特点,并通过计算机仿 真证明了设计的正确性。

要求设计一个函数发生器,该函数发生器能够产生递增斜波.递减斜波、 方波、三角波.正弦波.及阶梯波,并且可以通过选择开关选择相应的波形输 出;系统具有复位的功能;通过按键确定输出的波形及确定是否输出波形。

FPGA 是整个系统的核心,构成系统控制器,波形数据生成器,加法器,运算/译码等 功能。

通过以上分析设计要求完成的功能,确定函数发生器可由递增斜波产生模 块.递减斜波产生模块.三角波产生模块.阶梯波产生模块.正弦波产生模块、 方波产生模块和输出波形选择模块组成,以及按键复位控制和时钟输入。

由此 可确定系统的总体原理框图为:三、方案选择1、波形函数发生方案对比选择时 --- ► 复--- ►波形发生模块目分析波形输出选波形函数发生是本设计的最重要的部分,实现函数发生的途径也有很多,因此必须选择一种易于实现且精度高的方案,以此来提高本设计的实用性。

本信号发生器利用在系统编程技术和FPGA芯片产生。

用VHDL语言编写程序,调试成功后下载至实验装置的芯片上,再利用外接D/A转换电路实现以上设计功能。

EDA课程设计及应用课程设计

EDA课程设计及应用课程设计

EDA课程设计及应用课程设计一、课程目标知识目标:1. 理解EDA(电子设计自动化)的基本概念,掌握相关软件工具的使用方法。

2. 学习并掌握数字电路的基本原理和设计流程,能运用EDA工具完成基础数字电路的设计与仿真。

3. 掌握课程相关领域的专业知识,如电子元器件、逻辑门、触发器等,并能将其应用于实际电路设计中。

技能目标:1. 培养学生运用EDA软件进行数字电路设计与仿真的能力,提高实践操作技能。

2. 培养学生分析问题、解决问题的能力,使其能够针对实际问题进行合理的电路设计和优化。

3. 提高学生的团队协作能力,通过小组合作完成课程设计项目。

情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发其学习热情,形成主动探索和积极进取的学习态度。

2. 培养学生严谨、细致、负责的工作作风,养成遵守实验规程、爱护实验设备的良好习惯。

3. 培养学生的创新意识,鼓励他们勇于尝试、不断挑战,形成良好的创新精神。

本课程针对高年级学生,在已有电子技术基础的前提下,通过EDA课程设计及应用,旨在提高学生的理论联系实际能力,培养他们在电子设计领域的创新精神和实践技能。

课程目标紧密围绕学科知识、学生特点及教学要求,分解为具体的学习成果,以便于教学设计和评估的实施。

二、教学内容本章节教学内容主要包括以下三个方面:1. EDA基本概念与工具使用- 介绍EDA的基本概念、发展历程和应用领域。

- 学习并掌握主流EDA软件(如Multisim、Proteus等)的基本操作和功能。

2. 数字电路原理与设计- 回顾数字电路基础知识,包括逻辑门、触发器、计数器等。

- 学习数字电路设计流程,掌握从电路图绘制到电路仿真的全过程。

教学内容关联教材第3章“数字电路基础”和第4章“数字电路设计与仿真”。

3. 课程设计与实践- 分组进行课程设计,要求学生运用所学知识完成一个简单的数字电路设计与仿真。

- 教学过程中,安排如下进度:a. 第1周:分组,明确设计任务和要求。

EDA课程设计报告

EDA课程设计报告

EDA课程设计报告•相关推荐EDA课程设计报告在我们平凡的日常里,报告的使用成为日常生活的常态,报告中涉及到专业性术语要解释清楚。

那么报告应该怎么写才合适呢?以下是小编为大家整理的EDA课程设计报告,希望对大家有所帮助。

EDA课程设计报告1实训任务:一、实训目的和要求:(1)熟练掌握keil c51集成开发环境的使用方法(2)熟悉keil c51集成开发环境调试功能的使用和dp?51pro。

net单片机仿真器、编程器、实验仪三合一综合开发平台的使用。

(3)利用单片机的p1口作io口,学会利用p1口作为输入和输出口。

(4)了解掌握单片机芯片的烧写方法与步骤。

(5)学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。

(6)掌握利用protel 99 se绘制电路原理图及pcb图。

(7)了解pcb板的制作腐蚀过程。

二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?51pro。

net单片机仿真器、编程器、实验仪三合一综合开发平台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。

(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。

(6)制板。

首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。

(7)焊接。

将所给元器件根据原理图一一焊至pcb板相应位置。

(8)调试。

先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。

EDA技术课程设计

EDA技术课程设计

EDA技术课程设计EDA(Electronic Design Automation)技术是指采用计算机技术和算法辅助电路设计、绘图、仿真、分析、布局等过程的一系列技术。

通过EDA技术的应用,可以提高电路设计、布局的效率和精度,减少设计周期,降低成本,提高产品质量。

本文将介绍EDA技术的课程设计方案。

课程设计目标本课程设计旨在通过对EDA技术的学习和实践,使学生掌握EDA技术的基本理论、方法和应用,能够熟练使用EDA工具完成实际电路设计、仿真、分析等任务。

具体目标如下:1.理解EDA技术的基本概念、方法和流程,了解EDA工具的基本使用方法;2.掌握EDA工具的原理和使用方法,能够使用EDA工具进行电路设计、仿真、分析等任务;3.能够分析电路的工作原理和性能,设计电路图和PCB布局图;4.能够利用EDA工具对电路进行仿真和分析,评估电路的性能和稳定性;5.能够解决电路设计和布局过程中的问题,提高设计效率和质量;6.了解EDA技术的最新进展和发展趋势,具备不断学习和更新EDA技术的能力。

课程设计内容本课程设计主要包括以下内容:1. EDA技术概述介绍EDA技术的基本概念、方法和流程,包括EDA工具的类型和功能、电路设计流程和EDA工具的使用方法等,为后续课程设计的学习和实践做好基础准备。

2. EDA工具的使用方法介绍常用的EDA工具,如Altium Designer、PADS等,包括工具的功能、使用界面、设计流程、元器件库、元器件的选型和布局等,通过实际操作演示,让学生熟悉EDA工具的使用方法。

3. 电路设计和仿真介绍电路设计的基本原理和方法,包括电路设计的基本元件、传输线等,利用EDA工具进行电路仿真和测试,以评估电路的稳定性和性能。

4. PCB设计和布局介绍PCB的基本原理和设计方法,包括PCB的元器件布局和走线规则等,利用EDA工具进行PCB设计和布局,以满足电路设计的要求,提高电路的质量和可靠性。

eda课程设计报告

eda课程设计报告

eda课程设计报告本篇课程设计报告旨在介绍我所参加的EDA课程设计项目。

在这个项目中,我们学习了EDA(Electronic Design Automation)的基本概念和工具,并且设计了一个基于RTL(Register Transfer Level)的数字电路。

以下是具体内容:一、课程设计背景EDA是指用计算机辅助设计来协助电子设计工程师进行电子系统的设计、验证和实现。

EDA已经成为了电子工程领域中不可或缺的工具。

本次课程设计旨在让我们熟悉EDA工具的使用,理解数字电路设计和验证的基本原理。

二、课程设计内容我们采用了Verilog语言来描述数字电路,使用Xilinx Vivado 作为开发工具。

我们首先学习了Verilog的基本语法和编写方法,然后根据老师提供的案例,设计了一个基于RTL的数字电路——多功能计数器。

多功能计数器由三个模块组成:计数模块、比较模块和控制模块。

其中计数模块负责计数,比较模块负责比较计数器的值和一个给定的阈值,控制模块负责根据比较结果控制计数器的计数和清零。

我们使用Xilinx Vivado中的IP核生成器来构建这些模块,并将它们组合成一个完整的数字电路。

三、课程设计效果通过本次课程设计,我们掌握了EDA工具的基本使用和数字电路设计的基本原理。

我们通过自己的实践,加深了对Verilog语言的理解,并且学会了如何使用Xilinx Vivado来开发数字电路。

最终,我们成功实现了一个多功能计数器,并且对其进行了测试和验证,达到了预期效果。

四、总结EDA课程设计为我们打下了坚实的数字电路设计基础,使我们更加熟练地使用EDA工具,同时也为我们今后的学习和工作奠定了基础。

我们将继续探索EDA工具的应用,深入了解数字电路设计的原理和方法,为电子工程领域做出更多的贡献。

EDA课程设计报告书

EDA课程设计报告书

《电子设计自动化 EDA》课程设计报告书学号:08057102班级:自动化 081姓名:陈婷指导教师:刘伟目录一、设计思想 (2)二、设计步骤 (3)三、调试过程 (8)四、结果剖析 (10)五、心得领会 (11)六、参照文件 (11)一、设计思想(一)、设计要求1、拥有以 24 小时制时、分、秒记时、显示功能。

2、拥有整点报时功能,整点报时的同时LED 花式显示。

3、拥有消零,调理小时,分钟功能。

4、设计精度要求为1s。

( 二) 、系统功能描绘1.、系统输入:调时、调分,清零信号,分别用按键开关 SETHOUR、SETMIN、RESET控制;计数时钟信号 CLK采纳 2HZ时钟源,扫描时钟信号 CLKDSP采纳 32HZ时钟源或更高;2、系统输出:8 位八段共阴极数码管显示输出;LED花式显示输出;3、系统功能详尽描绘:计时:正常工作状态下,每天按24 小时计时制,蜂鸣器无声,逢整点报时。

显示:要求采纳扫描显示方式驱动8 位 8 段数码管显示。

整点报时:蜂鸣器在“ 51”、“ 53”、“ 55”、“57”、“59”秒发音,结束时为整点;校时:在计时状态下,按下按键 SETMIN设定分钟,按下按键 SETHOUR设定小时。

(三)设计思路1、分别写出六进制、十进制、二十四进制、清零、设置时分、 LED 译码部分,在主体部分用元件例化语句计时,清零设置时分、 LED 译码,再加上扫描模块2、将六进制、十进制、二十四进制、清零、设置时分、 LED 译码、扫描模块分模块写在一个主中(四)系统电路构造框图二、设计步骤(一)各种进制的计时实时钟控制模块程序1、6 进制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter6 isport( clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout: out std_logic_vector(3 downto 0);co: out std_logic);end counter6;architecture art2 of counter6 issignal count:std_logic_vector(3 downto 0);beginprocess(clk)beginif (clk'event and clk='1')thenif(reset='0')then count<="0000";elsif(set='1')then count<=ain;elsif (count="0101")thencount<="0000";co<='1';else count<=count+1;co<='0';end if;end if;end process;aout<=count;end art2;2、10 进制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter10 isport(clk,reset,set: in std_logic;ain:std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0);co:out std_logic);end counter10;architecture art1 of counter10 issignal count:std_logic_vector(3 downto 0); beginprocess(clk)beginif(clk'event and clk='1') thenif(reset='0')then count<="0000";elsif(set='1')then count<=ain;elsif(count="1001") thencount<="0000";co<='1';else count<=count+1;co<='0';end if;end if;end process;aout<=count;end art1;3、24 进制ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter24 isport( clk,reset,set: in std_logic;ainh:in std_logic_vector(3 downto 0);ainl:in std_logic_vector(3 downto 0);aout: out std_logic_vector(7 downto 0));end counter24;architecture art3 of counter24 issignal count:std_logic_vector(7 downto 0);beginprocess(clk)beginif(clk'event and clk='1') thenif(reset='0')then count<="00000000";elsif(set='1')then count(7 downto 4)<=ainh;count(3 downto 0)<=ainl;elsif(count(7 downto 4)<"0011" ) thenif(count(7 downto 4)="0010" and count(3 downto 0)="0011") then count<="00000000";elsif(count(3 downto 0)="1001") thencount(3 downto 0)<="0000";count(7 downto 4)<=count(7 downto 4)+1;else count(3 downto 0)<=count(3 downto 0)+1;end if;end if;end if;--end if;end process;aout<=count;end art3;(二)系统整体程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport(clk,b1,clks: in std_logic;reset: in std_logic;setmin,sethour: in std_logic;minutell,minutehh,hourll,hourhh,b2:in std_logic_vector(3 downto 0); secondl,secondh:out std_logic_vector(3 downto 0);--second0,second2:out std_logic_vector(6 downto 0);minutel,minuteh:out std_logic_vector(3 downto 0);--minute0,minute2:out std_logic_vector(6 downto 0);hourl,hourh:out std_logic_vector(3 downto 0);--hour0,hour2,dout:out std_logic_vector(6 downto 0);dout:out std_logic_vector(6 downto 0);s:out std_logic_vector(2 downto 0);singing,light: out std_logic);end clock;architecture art of clock iscomponent counter10 isport(clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0);co:out std_logic);end component;component counter6 isport(clk,reset,set: in std_logic;ain:in std_logic_vector(3 downto 0);aout:out std_logic_vector(3 downto 0);co:out std_logic);end component;component counter24 isport(clk,reset,set: in std_logic;ainh,ainl:std_logic_vector(3 downto 0);aout:out std_logic_vector(7 downto 0));end component;component led7 isport(ain: in std_logic_vector(3 downto 0);aout:out std_logic_vector(6 downto 0));end component;signal cs0,cs1,cm0,cm1:std_logic;signal s0,s1,m0,m1,h0,h1,cout:std_logic_vector(3 downto 0);signal h:std_logic_vector(7 downto 0);signal count:std_logic_vector(2 downto 0);beginh0<=h(3 downto 0);h1<=h(7 downto 4);u1:counter10 port map(clk=>clk,reset=>reset,set=>b1,ain=>b2,aout=>s0,co=>cs0);u2:counter6 port map(clk=>cs0,reset=>reset,set=>b1,ain=>b2,aout=>s1,co=>cs1);u3:counter10port map(clk=>cs1,reset=>reset,set=>setmin,ain=>minutell,aout=>m0,co=>cm0);u4:counter6port map(clk=>cm0,reset=>reset,set=>setmin,ain=>minutehh,aout=>m1,co=>cm1);u5:counter24port map(clk=>cm1,reset=>reset,set=>sethour,ainl=>hourll,ainh=>hourhh,aout=>h);u6:led7 port map(ain=>cout,aout=>dout);secondl<=s0;secondh<=s1;minutel<=m0;minuteh<=m1;hourl<=h0;hourh<=h1;process(m1,m0,s1,s0)beginif(m1="0101" and m0="1001" and s1="0101" and s0="1001")then singing<='1';light<='1';else singing<='0';light<='0';end if;end process;process(clks)beginif(clks'event and clks='1') thenif (count="101") thencount<="000";else count<=count+1;end if;s<=count;CASE count ISwhen"000"=> cout<=s0;when"001"=> cout<=s1;when"010"=> cout<=m0;s<="010";when"011"=> cout<=m1 ;when"100"=> cout<=h0;when"101"=> cout<=h1;when others=> cout<="0000";end case;end if;end process;end art;三、调试过程(一)仿真波形1、6 进制程序仿真波形2、10 进制程仿真波形3、24 进制程序仿真波形4、系统程序仿真波形(二)剖析问题 1:u6:led7 port map(ain=>secondl,aout=>second0);u7:led7 port map(ain=>secondh,aout=>second1);u8:led7 port map(ain=>minutel,aout=>minute0);u9:led7 port map(ain=>minuteh,aout=>minute1);u10:led7 port map(ain=>hourl,aout=>hour0);u11:led7 port map(ain=>hourh,aout=>hour1);问题剖析:元件例化是并行语句,按此段代码LDE 并行显示,每一个数码管都需要八个端口,这样就需要八排插口,而试验箱只有一排端口。

EDA计算器课程设计

EDA计算器课程设计

EDA计算器课程设计一、课程目标知识目标:1. 学生能理解EDA计算器的基本原理和功能,掌握其操作方法。

2. 学生能够运用EDA计算器进行简单的数据分析和解决实际问题。

3. 学生掌握EDA计算器在工程和数据领域的应用场景。

技能目标:1. 学生能够熟练使用EDA计算器的各项功能,如数据处理、图表生成等。

2. 学生能够运用EDA计算器解决实际问题时,具备分析和解决的能力。

3. 学生能够通过EDA计算器,提高自己的逻辑思维和创新能力。

情感态度价值观目标:1. 学生通过学习EDA计算器,培养对工程和数据科学的兴趣,激发学习的内驱力。

2. 学生在学习过程中,养成合作、探究的学习习惯,形成良好的团队协作意识。

3. 学生能够认识到科技发展对社会进步的重要性,增强社会责任感和使命感。

课程性质分析:本课程为实践性较强的课程,以学生动手操作和实际应用为主,注重培养学生的实际操作能力和解决问题的能力。

学生特点分析:学生处于好奇心强、求知欲旺盛的阶段,对新鲜事物有较高的兴趣。

他们具备一定的计算机操作基础,但EDA计算器的使用还需进一步学习。

教学要求:1. 教师需注重理论与实践相结合,引导学生学以致用。

2. 教师应关注学生的个体差异,提供有针对性的指导。

3. 教学过程中要充分调动学生的积极性,鼓励学生主动探索和解决问题。

二、教学内容1. EDA计算器概述- 计算器的发展历程- EDA计算器的定义与特点2. EDA计算器的功能与操作- 数据处理功能:数据录入、排序、筛选等- 图表生成:柱状图、折线图、饼图等- 基本运算:加减乘除、百分比、求和等3. EDA计算器在实际应用案例- 工程领域:数据分析、项目管理等- 数据科学:数据挖掘、预测分析等4. 教学内容的安排与进度- 第一课时:EDA计算器概述及基本功能介绍- 第二课时:数据处理功能的操作与实践- 第三课时:图表生成功能的操作与实践- 第四课时:基本运算操作及实际应用案例5. 教材章节及内容列举- 第一章:计算器概述- 第一节:计算器发展历程- 第二节:EDA计算器定义与特点- 第二章:EDA计算器功能与操作- 第一节:数据处理功能- 第二节:图表生成功能- 第三节:基本运算操作- 第三章:EDA计算器在实际应用案例- 第一节:工程领域应用- 第二节:数据科学应用教学内容确保科学性和系统性,以培养学生的实际操作能力和解决问题的能力为核心,注重理论与实践相结合。

eda的简易课程设计

eda的简易课程设计

eda的简易课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。

2. 学生能运用EDA软件进行简易电路设计与仿真,了解电路的基本原理。

3. 学生掌握数字电路基础知识,能对简易数字电路进行设计和分析。

技能目标:1. 学生能够独立操作EDA软件,完成基本电路的绘制、仿真和调试。

2. 学生具备基本电路分析能力,能够根据电路图分析电路性能和潜在问题。

3. 学生具备团队协作和沟通能力,能够与他人共同完成复杂电路设计任务。

情感态度价值观目标:1. 学生培养对电子工程的兴趣,激发创新精神和实践能力。

2. 学生树立正确的价值观,认识到科技发展对国家和社会的重要性。

3. 学生养成严谨、细致的学习态度,提高自我管理和自主学习能力。

课程性质:本课程为实践性较强的电子工程专业课程,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的电子基础知识和计算机操作能力,对新鲜事物充满好奇心,善于团队合作。

教学要求:教师需结合学生特点和课程性质,采用案例教学、分组讨论、实践操作等多种教学方法,激发学生学习兴趣,提高教学效果。

同时,注重过程评价,关注学生在课程学习中的实际表现和成果产出。

通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程的学习和实际工作打下基础。

二、教学内容本课程以《电子设计自动化》教材为基础,结合课程目标,选择以下教学内容:1. EDA基本概念与原理:介绍EDA技术的发展、基本概念和原理,使学生了解EDA技术在现代电子设计中的应用。

教学内容:(1)EDA技术的起源与发展趋势(2)EDA软件的组成和基本功能2. EDA软件操作与使用:以实际操作为主,培养学生熟练使用EDA软件的能力。

教学内容:(1)EDA软件的安装与界面介绍(2)基本操作:绘制电路图、元件库的使用、原理图设计3. 简易电路设计与仿真:通过实际案例,使学生掌握简易电路设计与仿真的方法。

EDA技术课程设计课程设计

EDA技术课程设计课程设计

EDA技术课程设计课程设计1. 简介EDA(Electronics Design Automation)即电子设计自动化,是电子信息领域中常用的技术,主要涉及到电子产品的设计与制造。

EDA技术课程设计是为了培养学生在EDA技术方面的理论与设计能力,提高其在EDA技术领域中的竞争力。

本文将介绍EDA技术课程设计的具体内容及设计方法。

2. 课程设计内容EDA技术课程设计主要包含以下内容:2.1 电路原理图设计电路原理图设计是EDA技术领域中的一个重要技能。

学生需要掌握电路原理图的设计方法和使用EDA软件进行导入和绘制的方法,同时学生需要了解电路原理图对电路功能的影响,了解原理图中各个部分之间的关系。

2.2 PCB设计PCB(Printed Circuit Board)即印制电路板,是EDA技术中另一个重要的内容。

本课程要求学生熟练掌握PCB的设计原理、设计方法和制造技术,学会使用EDA软件进行PCB布局、走线和样板制作。

2.3 仿真分析仿真分析是EDA技术中的另一项技能,主要是通过运行仿真程序来验证电路设计的正确性和稳定性。

学生需要了解仿真软件的基本原理、仿真流程、仿真结果的分析方法,掌握设计过程中的仿真分析技能,提高设计的可靠性和性能。

3. 设计方法EDA技术课程设计的设计方法主要包括以下几个步骤:3.1 学习EDA基础知识学生需要首先掌握EDA技术基本概念,包括电路原理图、PCB设计、EDA软件的基本使用等知识。

在此基础上,学生需要进一步深入了解EDA技术的设计过程和常用工具。

3.2 确定设计目标和需求如何选择电路原理图的设计方法、PCB的布局方式和仿真程序的使用方法等,这些都需要根据设计目标和需求来确定。

3.3 进行电路原理图设计学生需要根据设计目标和需求进行电路原理图设计,并在EDA软件中导入绘图。

3.4 进行PCB设计在完成电路原理图设计后,学生需要进行PCB设计,包括PCB布局、走线和样板制作等。

EDA课程设计实验报告

EDA课程设计实验报告

《EDA课程设计》报告学号:姓名:班级:指导教师:2013年6 月24日- 2013年7 月5日目录1.引言 ............................................................................................................... 错误!未定义书签。

2.原理图的设计................................................................................................ 错误!未定义书签。

文件的新建............................................................................................... 错误!未定义书签。

原理图文件XX .Sch的建立 ..................................................................... 错误!未定义书签。

元件库的导入........................................................................................... 错误!未定义书签。

原理图中各元件的布局和连线 (3)3.原理图新元件的设计 (4)元件库XX .Lib文件的建立 (4)原理图元件的画法................................................................................... 错误!未定义书签。

注意事项................................................................................................... 错误!未定义书签。

eda上机课课程设计

eda上机课课程设计

eda上机课课程设计一、教学目标本课程的教学目标是使学生掌握eda的基本知识和技能,能够熟练地使用eda工具进行电子设计。

具体分为三个部分:1.知识目标:使学生了解eda的基本概念、原理和流程,掌握常见的eda工具的使用方法。

2.技能目标:使学生能够独立完成简单的电子设计任务,包括电路设计、仿真和编程等。

3.情感态度价值观目标:培养学生对电子科技的兴趣和热情,提高学生的问题解决能力和创新意识。

二、教学内容根据教学目标,本课程的教学内容主要包括三个部分:1.eda基本概念和原理:介绍eda的定义、发展历程和基本原理,使学生了解eda在电子设计中的重要作用。

2.eda工具的使用:详细讲解常见eda工具的使用方法,包括电路设计、仿真和编程等,让学生通过实际操作掌握这些工具的使用。

3.电子设计实例:通过具体的电子设计实例,让学生将所学的知识和技能应用于实际问题中,提高问题解决能力和创新意识。

三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:通过讲解和演示,使学生了解eda的基本概念和原理,掌握eda工具的使用方法。

2.讨论法:通过分组讨论和交流,让学生深入理解和探讨电子设计中的问题和解决方案。

3.实验法:通过实际操作和实验,让学生亲手实践,提高学生的动手能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选择一本适合学生水平的eda教材,作为学生学习的主要参考资料。

2.多媒体资料:制作和收集与课程内容相关的多媒体资料,包括PPT、视频和实验演示等,丰富学生的学习体验。

3.实验设备:准备必要的实验设备和工具,让学生能够进行实际操作和实验。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面、客观、公正地评价学生的学习成果。

1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生在课堂上的表现和参与度。

2.作业:布置适量的作业,评估学生的理解和应用能力,包括电路设计、仿真和编程等任务。

EDA课程设计报告

EDA课程设计报告

目录目录1.1EDA简介 (2)1.1.1EDA的发展史 (2)1.1.2EDA的应用 (3)1.1.3EDA技术的设计方法 (3)1.2数字系统设计 (4)1.2.1数字系统设计模型 (4)1.2.2 数字系统的设计步骤 (5)2.1任意波形产生器的系统构成 (7)2.1.1直接模拟法 (7)2.1.2直接数字法 (7)2.1.3基于地址计数器的直接数字和成法 (8)2.1.4基于相位累加器的直接数字合成法 (8)2.2任意波形产生器的作用 (10)2.3任意波形产生器的应用场合 (10)3.1设计要求 (12)3.2设计思路 (12)3.3设计流程 (13)3.4设计步骤及程序 (13)3.5硬件实现及调试结果 (21)3.5.1硬件实现 (21)电路模块组成部分: (21)3.5.2调试结果 (22)参考文献 (30)第一章绪论1.1EDA简介1.1.1EDA的发展史EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

自20世纪80年代初期诞生至今,自动化软件(组态软件)已有20年的发展历史。

应该说组态软件作为一种应用软件,是随着PC机的兴起而不断发展的。

80年代的组态软件,像Onspec、Paragon 500、早期的FIX等都运行在DOS环境下,图形界面的功能不是很强,软件中包含着大量的控制算法,这是因为DOS 具有很好的实时性。

90年代,随着微软的Windows 3.0风靡全球,以Wonderware 公司的Intouch为代表的人机界面软件开创了Windows下运行工控软件的先河,由于Windows 3.0不具备实时性,所以当时,80年代已成名的自动化软件公司在对于操作系统的支持上,或按兵不动,或将组态软件从DOS向OS/2移植,人们这样做的原因,是大家都认为工控软件必须具有很强的实时性和控制能力,必须运行在一个具备实时性的操作系统下,像DOS、OS/2、Win NT(1993年才推出)等。

eda课程设计完整

eda课程设计完整

eda课程设计完整一、教学目标本课程的教学目标是使学生掌握eda的基本概念、原理和应用方法,培养学生进行电子设计的能力和创新意识。

知识目标:使学生了解eda的基本概念、原理和流程,掌握常用的电子设计工具和软件,了解电子设计的基本方法和步骤。

技能目标:培养学生进行电子设计的能力,使学生能够熟练地运用eda工具进行电子电路的设计、仿真和验证,培养学生解决实际问题的能力。

情感态度价值观目标:培养学生对电子设计的兴趣和热情,使学生认识到电子设计在现代科技中的重要地位和作用,培养学生的创新意识和团队协作精神。

二、教学内容本课程的教学内容主要包括eda的基本概念、原理和应用方法。

1.eda的基本概念和原理:介绍eda的定义、发展和分类,讲解电子设计的基本流程和方法,使学生了解eda工具的作用和重要性。

2.eda的应用方法:讲解常用的eda工具和软件的使用方法,介绍电子设计的基本方法和步骤,使学生能够熟练地运用eda工具进行电子电路的设计、仿真和验证。

3.实例分析:通过具体的实例分析,使学生更好地理解和掌握eda的应用方法,培养学生解决实际问题的能力。

三、教学方法本课程的教学方法包括讲授法、案例分析法和实验法。

1.讲授法:通过教师的讲解,使学生了解和掌握eda的基本概念、原理和应用方法。

2.案例分析法:通过具体的案例分析,使学生更好地理解和掌握eda的应用方法,培养学生解决实际问题的能力。

3.实验法:通过实验室的实践操作,使学生熟练地掌握eda工具的使用方法,培养学生的动手能力和创新意识。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验室设备。

1.教材:选用权威、实用的教材,为学生提供全面、系统的学习资源。

2.参考书:提供相关的参考书籍,丰富学生的学习资料,拓展学生的知识面。

3.多媒体资料:制作精美的多媒体课件,生动形象地展示教学内容,提高学生的学习兴趣和效果。

4.实验室设备:提供完善的实验室设备,让学生能够进行实际的操作练习,提高学生的动手能力和创新意识。

eda计算机课程设计

eda计算机课程设计

eda计算机课程设计一、课程目标知识目标:1. 让学生掌握EDA(电子设计自动化)的基本概念,了解其在计算机科学与电子工程领域的重要应用。

2. 使学生了解并掌握至少一种EDA工具的使用,如 Quartus、Vivado等,并运用该工具进行基本的数字电路设计。

3. 让学生理解并掌握Verilog或VHDL硬件描述语言的基本语法和结构,能运用其编写简单的数字电路模块。

技能目标:1. 培养学生运用EDA工具进行数字电路设计的能力,包括设计、仿真和测试等环节。

2. 培养学生利用硬件描述语言进行编程的能力,能够独立编写并调试简单的数字电路模块。

3. 培养学生团队协作和沟通能力,通过项目实践,学会与他人共同分析和解决问题的方法。

情感态度价值观目标:1. 培养学生对EDA技术及计算机辅助设计的兴趣,激发学生探究电子设计领域新技术、新方法的热情。

2. 培养学生具备良好的工程素养,遵循工程规范,注重实际应用,提高学生的实践能力和创新能力。

3. 培养学生面对挑战和困难时,保持积极的心态,勇于尝试,不断调整和完善设计方案。

本课程针对高年级学生,具有较强的实践性和应用性。

结合学生特点和教学要求,课程目标旨在使学生在掌握基本理论知识的基础上,提高实际操作能力和创新能力。

通过课程学习,使学生能够适应计算机科学与电子工程领域的发展需求,为未来从事相关领域工作打下坚实基础。

二、教学内容本章节教学内容主要包括以下三个方面:1. EDA基本概念与工具使用- EDA技术发展历程及其在现代电子设计中的应用。

- 介绍主流EDA工具,如Quartus、Vivado等,并指导学生掌握基本操作。

2. 硬件描述语言Verilog/VHDL- Verilog/VHDL基本语法和结构。

- 常用数字电路模块的Verilog/VHDL编写方法。

- 代码编写规范及调试技巧。

3. 数字电路设计与实践- 数字电路设计流程,包括设计、仿真和测试。

- 基本数字电路模块的设计与实现。

EDA技术教程课程设计

EDA技术教程课程设计

EDA技术教程课程设计引言EDA(Electronic Design Automation)是电子设计自动化的缩写,是一种利用计算机技术,使设计工作自动化,从而提高生产效率和降低成本的技术。

EDA技术已经成为了电子设计领域的主要工具。

为了更好地掌握EDA技术,我们进行了一些相关的课程设计。

在这个项目中,我们将介绍EDA技术的基础知识,并通过一些实践案例帮助大家更好地理解和应用EDA技术。

设计目标本次课程设计主要有以下几个目标:1.掌握EDA技术的基础知识和相关工具的使用。

2.通过具体案例,深入理解EDA技术的应用。

3.学会通过EDA技术提高电路设计效率和优化设计质量。

设计内容本次课程设计主要内容如下:1. EDA技术概述介绍EDA技术的概念、历史和发展以及相关的软件工具。

2. 电子设计流程介绍常见的电子设计流程:前端设计、后端设计、物理实现以及验证。

3. 电路元件库和设计规范介绍电路设计中常见的元器件和设计规范。

包括:模拟电路元件、数字电路元件、射频电路元件、半导体器件等。

4. 仿真和验证介绍仿真和验证在电子设计中的重要性和应用。

包括:SPICE仿真、FPGA验证、电路可靠性验证等。

5. 物理实现和制造介绍物理实现和制造中的常用工具和技术。

包括:IC设计流程、PCB设计软件、电路板制造等。

设计案例为了更好地帮助大家理解和应用EDA技术,我们列出一些实践案例。

1. 一个简单的电路设计设计一个简单的有源滤波器电路,采用OPA2333运放为放大器,实现50Hz低通滤波器。

使用SPICE软件进行仿真验证。

2. Verilog HDL设计设计一个简单的ALU,在Quartus II软件中进行仿真和验证。

3. PCB板设计使用Altium Designer软件进行PCB设计,包括原理图设计、布线和元器件选型。

总结EDA技术广泛应用于电子设计领域,掌握EDA技术对于提高电路设计效率和设计质量至关重要。

通过本次课程设计的学习,希望大家可以更好地掌握EDA技术,并在实践中应用。

eda课程设计1203010要点

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

《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,但不影响秒计时器的正常计数(扫描按键是否按下的时钟速度要极快,否则可能无法扫描到是否有按键按下)。

3.1.1 秒计数器流程图如下:YN图3-1-1 秒钟计数器流程图3.1.2 秒计数器生成模块如图所示:图3-1-2 秒钟计数器模块图其中,clk 是时钟信号,daout 是60计数输出,enmin 是向分进位的高电平。

3.1.3 波形仿真图图3-1-3 波形仿真图波形分析:由波形图知秒计数器是由60进制计数器完成的00到59的循环计数功能,当计数到59时,再来一个计数脉冲则产生进位输出,即enmin=1,作为分计数器的计数脉冲。

秒脉冲 满60 向分进位60计数器 清零秒计数输出3.2 分计数器模块设计与实现计时模块60进制计数器,也可以看为个位为10进制十位为6进制。

分计时器接收到来自秒计时器的脉冲信号是,其个位自动进1,当分的个位显示到9时,下一秒向十位进1并将个位重新归零并开始计数,当十位为5个位为9时,计时器下一秒向时时器进1并同时将分计时器的个位、十位均归零。

当分计时模块中扫描到有本模块的按键按下时,直接向时计时器进1,但不影响分计时器的正常计数。

3.2.1 分计数器流程图如下:NYYN图3-2-1 分钟计数器流程图3.2.2 分计数器生成模块如图所示:图3-2-2 分钟计数器模块图其中,clk 是时钟信号,daout 是60计数输出,enhour 是向时进位的高电平。

3.2.3 波形仿真图分计数输出 向时进位清零60计数器 调分按键按下 满60 进位高电平图3-2-3 波形仿真图波形分析:由波形图可知,该模块实现了分计数的功能,计数循环从00到59,计数脉冲为秒计数器的进位输出,即enmin 。

当计数到59时,再来一个计数脉冲则产生进位输出,即enhour=1,作为时计数器的计数脉冲。

3.3 时计数器模块设计与实现时计时器为一个24进制计数器,也可以看为个位由4进制、十位由2进制构成。

当时计时器接收到来自分计时器的脉冲信号时,自动加1,当计数器为23时若再接收到一个脉冲信号则归零并重新开始计数。

3.3.1 时计数器流程图如下:NYYN图3-3-1 时钟计数器流程图3.3.2 时计数器生成模块如图所示:图3-3-2 时钟计数器模块图其中,clk 是时钟信号,daout 是24计数输出。

调时按键按下 24计数器 满24 时计数输出 清零进位高电平3.3.3 波形仿真图图3-3-3 波形仿真图波形分析:小时计数模块由24进制计数器完成的从00到23之间的循环计数,计数脉冲为分计数器的进位输出,即enhour。

3.4 校准模块当开关拨至校时档时,电子钟秒计时工作,通过时、分校时开关分别对时、分进行校对,开关每按1次,与开关对应的时或分计数器加1,当调至需要的时与分时,拨动reset开关,电子钟从设置的时间开始往后计时。

3.5 BCD七段显示译码器LED数码显示器是数字系统实验里面经常使用的一种显示器件,因为它经常显示的是十进制或十六进制的数,所以我们就要对实验里面所用到的二进制数进行译码,将它们转换成十进制的或是十六进制的数。

此次实验使用的LED数码显示器是共阴的连接,高电平有效。

输入信号为D0,D1,D2,D3,相应的输出8段为a、b、c、d、e、f、g、Dp。

它们的关系表格如下:其中A,B,C,D 接拨号开关,a,b,c,d,e,f,g,dp和使能端AN(高电平工作)接数码显示接口,管脚映射均为I/O口,映射后,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。

3-5-1 真值图3-5-2 波形仿真图3.6 3-8线译码器模块设计与实现有驱动8位7段数码管共阴极扫描数码管的片选驱动信号和7段输出。

位选模块产生3位的8位数码管的扫描信号和时钟显示数据,3位的数码管扫描信号通过3-8译码器转换成位选信号,时钟显示数据则是通过译码模块转变为0-9的数字显示。

3.6.1 3-8线译码器流程图如下:图3-6-1 3-8线译码器流程图3.6.2 3-8线译码器生成模块如图所示:图3-6-2 3-8译码器模块图其中,sel 是时、分、秒选择信号,y 是8位译码信号。

3.6.3 波形仿真图图3-6-3 波形仿真图波形分析:由波形图分析可知,3-8线译码器完成了3位信号的输入到8位译BCD 码秒值BCD 码分值 BCD 码时值3-8线转换数码管的2、1位显示 数码管的5、4位显示 数码管的8、7位显示码的输出功能。

3.7 分频器的设计与实现 3.7.1 分频器流程图如下:由于要为秒计数器提供1hz 的脉冲和数码显示提供1000hz 的脉冲,所以要把50Mhz 的时钟信号进行分频。

N Y N Y这是产生1hz 脉冲 这是产生1000hz 脉冲3-7-1 分频器流程图3.7.2 分频器生成模块如图所示:3-7-2 分频器模块图3.8 去抖模块在计数模块钱加上去抖模块,去抖模块实际上就一个倒数计数器,主要目的是为了避免按键时按键的抖动效应使按键输入信号产生不必要的抖动,而造成重复统计按键次数造成错误的结果。

因此,只需将按键输入信号作为计数器的重置输入,使计数器只有在按键时,且在输入信号为‘0’时间足够长的一次使重置无动作,而计数器开始倒数计数,自然课将输入信号在短时间内变为‘0’的情况滤掉。

50MHZ 时钟信号 二分频 次数加1 到达25000000 次数变0 到达25000 次数加1 次数变03-8-1 去抖模块图3.9 动态扫描数码显示器每个周期只选通一位数据。

在周期1显示第一个数码,周期2显示第二个数码…在扫描4个阶段后,又重新按顺序循环。

如果扫描的速度足够快,人感觉到就好像4个数码管同时显示。

)4位扫描数码显示器共有四组BCD码、4位输入线、8根8段译码输出线和4根位选通线。

扫描工作中,先从四组BCD数据中选出一组,通过BCD/七段译码器译码后输出。

与此同时,3/8 译码器产生位选通信号,则在此瞬间,显示器再改为显示要输出的数码。

然后再选出下一组数据译码后输出,位选通信号则相应下移一位,将下一数码选通输出。

利用这个原理,利用VHDL语言编写实现6位动态数码的程序,可以将其分为两个模块:一个模块用来译码,一个模块是计数器(状态机)输出;编译成功后在实验箱上试验其功能的正确性。

3-9-1 波形仿真图3.10 顶层原理设计图将分频器、秒计数器、分计数器、时计数器、译码器、3-8线译码器按照要求连接起来就组成了整个数字时钟的原理图,如图所示。

3-10-1 顶层原理图4 硬件测试与结果分析4.1 硬件测试:测试方式:clk选用clk1。

KS[0]控制调分,KS[1]控制调时。

数码管数码管8、7用作小时显示,高位是小时的十位,低位是小时的个位。

数码管5、4用作分钟显示,高位是分钟的十位,低位是分钟的个位。

数码管2、1用作秒钟显示,高位是秒钟的十位,低位是秒钟的个位。

管脚分配如图所示。

4-1-1 引脚分配图4.2 测试过程及结果分析将文件下载到FPGA中,数码管上显示00-00-00,并开始计时,秒钟计到59向分钟进1,分钟计到59向小时进1。

闭合KS[0]键分钟以1HZ的频率加1,加到59向小时进1,分钟清0。

闭合KS[1]键小时以1HZ的频率加1,加到59小时清0。

本数字时钟能够满足正常计时和调分调时功能,达到预期的设计效果。

5 收获与体会这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。

通过此次课程设计,使我更加扎实的掌握了有关EDA方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

这次课程设计让我进一步提高了用VHDL语言编程的能力。

在实验的过程中在老师和同学的帮助下也弄懂数字钟一些功能原理,明白其工作状态。

我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在实验课上,我们学会了很多学习的方法。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。

6指导老师意见参考书目[1] 孙志雄、谢海霞、杨伟、郑心武,《EDA技术与应用》,北京,机械工业出版社,2013年[2] 谭会生、张昌凡,《EDA技术及应用(第三版)》,西安,西安电子科技大学出版社,2013年附录:程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY yimaqi ISPORT ( din : IN STD_LOGIC_VECTOR(0 TO 2);output : OUT STD_LOGIC_VECTOR(0 TO 7)); END yimaqi;ARCHITECTURE behav OF yimaqi ISSIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINPROCESS(din)BEGINIF (din="000") THEN output <="10000000";ELSIF (din="001") THEN output <="01000000";ELSIF (din="010") THEN output <="00100000";ELSIF (din="011") THEN output <="00010000";ELSIF (din="100") THEN output <="00001000";ELSIF (din="101") THEN output <="00000100";ELSIF (din="110") THEN output <="00000010";ELSE output <="00000001";END IF;END PROCESS;END behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD ISPORT(BCD_CODE: IN STD_LOGIC_VECTOR(3 DOWNTO 0);AN: IN STD_LOGIC;BCD_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));end BCD;ARCHITECTURE hehav OF BCD ISBEGINPROCESS(AN,BCD_CODE)BEGINIF(AN='1') THENCASE BCD_CODE ISwhen "0000" => BCD_OUT<="11111100";when "0001" => BCD_OUT<="01100000";when "0010" => BCD_OUT<="11011010";when "0011" => BCD_OUT<="11110010";when "0100" => BCD_OUT<="01100110";when "0101" => BCD_OUT<="10110110";when "0110" => BCD_OUT<="10111110";when "0111" => BCD_OUT<="11100000";when "1000" => BCD_OUT<="11111110";when "1001" => BCD_OUT<="11110110";when "1010" => BCD_OUT<="11101110";when "1011" => BCD_OUT<="00111110";when "1100" => BCD_OUT<="10011100";when "1101" => BCD_OUT<="01111010";when "1110" => BCD_OUT<="10011110";when "1111" => BCD_OUT<="10001110";when others=> BCD_OUT<="00000000";END CASE;ELSEBCD_OUT<="ZZZZZZZZ";END IF;END PROCESS;END hehav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY F_DIVIDER ISGENERIC(N: INTEGER:=10;N1: INTEGER:=11);PORT(CLK: IN STD_LOGIC;CLK10: OUT STD_LOGIC;CLK11: OUT STD_LOGIC;CLK2: OUT STD_LOGIC);END F_DIVIDER;ARCHITECTURE BEHAV OF F_DIVIDER ISSIGNAL DATA:INTEGER RANGE 0 TO 10;SIGNAL CNT: STD_LOGIC_VECTOR(N-1 DOWNTO 0); SIGNAL CNT1: STD_LOGIC_VECTOR(N1-1 DOWNTO 0); SIGNAL Q:STD_LOGIC;BEGINP1: PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1') THENCNT <= CNT+1;END IF;END PROCESS P1;CLK10 <= CNT(N-1);P2: PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1') THENCNT1 <= CNT1+1;END IF;END PROCESS P2;CLK11 <= CNT1(N1-1);P3: PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1') THENIF(DATA=0) THENDATA<=0;Q<=NOT Q;ELSEDATA<=DATA+1;END IF;END IF;END PROCESS P3;CLK2 <= Q;END BEHAV;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LED ISPORT ( CLK: IN STD_LOGIC;SG: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); BT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);A:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0)); END LED;ARCHITECTURE rt OF LED ISBEGINP1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF A="101" THEN A<="000";ELSE A<=A+1;END IF;END IF;END PROCESS P1;P2:PROCESS(A)BEGINCASE A ISWHEN "000" =>BT<="000";SG<="1011111";WHEN "001"=>BT<="001";SG<="1011011";WHEN "010" =>BT<="010";SG<="0110011";WHEN "011"=>BT<="011";SG<="1111001";WHEN "100" =>BT<="100";SG<="1101101";WHEN "101" =>BT<="101";SG<="0110000";WHEN OTHERS =>SG<="XXXXXXX" ;END CASE;END PROCESS P2;END rt;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clock isport(clk:in std_logic;--12M时钟keyin:in std_logic;speak:out std_logic;--蜂鸣器dout:out std_logic_vector(7 downto 0);--段码selout:out std_logic_vector(2 downto 0));--位选end clock;architecture one of clock issignal count:integer range 0 to 11999999;--1HZ秒信号signal counf:integer range 0 to 11999;--1000HZSIGNAL CP_5ms : STD_LOGIC;SIGNAL Q1,Q2,Q3: STD_LOGIC;SIGNAL keyout : STD_LOGIC;SIGNAL CJ:STD_LOGIC_VECTOR(2 DOWNTO 0);signal sel:std_logic_vector(2 downto 0);--位选signal hou1:std_logic_vector(3 downto 0);--计数中小时的十位 signal hou2:std_logic_vector(3 downto 0);--小时的个位signal min1:std_logic_vector(3 downto 0);--分钟的十位signal min2:std_logic_vector(3 downto 0);--分钟的个位signal sec1:std_logic_vector(3 downto 0);--秒的十位signal sec2:std_logic_vector(3 downto 0);--秒的个位signal seth1:std_logic_vector(3 downto 0);--设时中小时的十位 signal seth2:std_logic_vector(3 downto 0);--小时的个位signal setm1:std_logic_vector(3 downto 0);--分钟的十位signal setm2:std_logic_vector(3 downto 0);--分钟的个位signal h1:std_logic_vector(3 downto 0); ---显示小时十位signal h2:std_logic_vector(3 downto 0);---小时的个位signal m1:std_logic_vector(3 downto 0);--分钟的十位signal m2:std_logic_vector(3 downto 0);--分钟的个位signal s1:std_logic_vector(3 downto 0);--秒的十位signal s2:std_logic_vector(3 downto 0);--秒的个位signal clk1,clkk,beep:std_logic;begin------------------------------------------------分频fp:process(clk)beginif rising_edge(clk) thencount<=count+1;counf<=counf+1;if count=11999999 then clk1<='1';---1Hzcount<=0;beep<='1';elsif count>5999999 then beep<='0'; ---2Hzelse clk1<='0';end if;if counf=11999 then clkk<='1';--1000HZcounf<=0;else clkk<='0';end if;end if;end process fp;----------------------------------------------位扫描choice:process(clkk)---位选扫描beginif rising_edge(clkk)thenif sel="111" thensel<="000";elsesel<=sel+1;end if;end if;end process choice;--------------------------------------------秒个位s220:process(clk1,cj)beginif clk1'event and clk1='1' thenif sec2="1001" then ---其中sec2是秒的个位 sec2<="0000";elsif cj="010" thensec2<=sec2;else sec2<=sec2+1;end if;end if;if cj="001" then sec2<="0000"; ---秒个位复位end if;end process s220;---------------------------------------------秒十位s110:process(clk1,cj)beginif clk1'event and clk1='1' thenif (sec1="0101" and sec2="1001")then---其中sec1是秒钟的十位sec1<="0000";elsif cj="010" thensec1<=sec1;else if sec2="1001"thensec1<=sec1+1;end if;end if;end if;if cj="001" then sec1<="0000"; ---秒十位复位end if;end process s110;----------------------------------------------分钟个位m220:process(clk1,sec1,sec2,cj)beginif clk1'event and clk1='1' thenif min2="1001"and (sec1="0101" and sec2="1001")then----其中min2是分钟的个位min2<="0000";elsif min2="1001"and (cj="011" and cj="100")then---min2<="0000";else if (sec1="0101" and sec2="1001") or(cj="011" and cj="100")thenmin2<=min2+1;end if;end if;end if;if cj="001" then min2<="0000";end if;end process m220;-----------------------------------------------分钟十位m110:process(clk1,min2,sec1,sec2,cj)beginif clk1'event and clk1='1' thenif (min1="0101" and min2="1001") and (sec1="0101" and sec2="1001")thenmin1<="0000";elsif min1="0101"and min2="1001"and (cj="011" and cj=100)thenmin1<="0000";elsif (min2="1001"and (sec1="0101" and sec2="1001")) or (min2="1001"and cj="011" and cj="100")thenmin1<=min1+1;end if;end if;--end if;if cj="001" then min1<="0000";end if;end process m110;-----------------------------------------------小时个位h220:process(clk1,min1,min2,sec1,sec2,cj,hou1)beginif clk1'event and clk1='1' thenif (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") thenhou2<="0000";elsif hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") thenhou2<="0000";elsif (hou2="1001"and cj="110")or (hou1="0010"and hou2="0011"and cj="110") thenhou2<="0000";--md<='1';elsif ((min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (cj="110") thenhou2<=hou2+1;--speak<=clk;end if;end if;if cj="001" then hou2<="0000";end if;end process h220;-----------------------------------------------小时十位h110:process(clk1,hou2,min1,min2,sec1,sec2,cj)beginif clk1'event and clk1='1' thenif (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") thenhou1<="0000";elsif hou1="0010"and hou2="0011"and cj="110" then--当时间为23点且处于校时状态时hou1<="0000";elsif (hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (hou2="1001"and cj="110") thenhou1<=hou1+1;end if;end if;if cj="001" then hou1<="0000";end if;end process h110;-------------------------------------------时间设置小时部分sethour1:process(clk1,seth1,seth2,cj)beginif clk1'event and clk1='1' thenif seth1="0010"and seth2="0011" thenseth1<="0000";elsif seth2="1001" thenseth1<=seth1+1;end if;end if;if cj="001" then seth1<="0000";end if;end process sethour1;-------------------------------------------sethour2:process(clk1,seth1,cj)beginif clk1'event and clk1='1' thenif (seth1="0010"and seth2="0011")or seth2="1001" then ---其中seth1,seth2分别是调时的小时部位的十位与个位seth2<="0000";elsif cj="111" thenseth2<=seth2+1;end if;end if;if cj="001" then seth2<="0000";end if;end process sethour2;-------------------------------------------时间设置分钟部分setmin1:process(clk1,setm2,cj)beginif clk1'event and clk1='1' thenif setm1="0101"and setm2="1001" thensetm1<="0000";elsif setm2="1001" thensetm1<=setm1+1;end if;end if;if cj="001" then setm1<="0000";end if;end process setmin1;----------------------------------------------setmin2:process(clk1,cj)beginif clk1'event and clk1='1' thenif setm2="1001" thensetm2<="0000";elsif cj="101" thensetm2<=setm2+1;end if;end if;if cj="001" then setm2<="0000";end if;end process setmin2;--------------------------------------------闹铃speaker:process(clkk,hou1,hou2,min1,min2,cj)beginif clkk'event and clkk='1'thenif seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then speak<=beep;else speak<='0';end if;end if;if cj="001" then speak<='0';end if;end process speaker;-------------------------------------------disp:process(sel,cj,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,set m2)---显示beginif sel="000" thenselout<="010";--位选case h1 is ---显示小时的十位when "0000"=>dout<="11111101";---0when "0001"=>dout<="01100001";---1when "0010"=>dout<="11011011";---2when others =>dout<="00000000";---不显示end case;elsif sel="001" thenselout<="011";case h2 is ---显示小时的个位when "0000"=>dout<="11111101";---0when "0001"=>dout<="01100001";---1when "0010"=>dout<="11011011";---2when "0011"=>dout<="11110011";---3when "0100"=>dout<="01100111";---4when "0101"=>dout<="10110111";---5when "0110"=>dout<="10111111";---6when "0111"=>dout<="11100001";---7when "1000"=>dout<="11111111";---8when "1001"=>dout<="11110111";---9when others=>dout<="00000001";---不显示 end case;elsif sel="010" thenselout<="100";case m1 is ---显示分钟的十位when "0000"=>dout<="11111101";when "0001"=>dout<="01100001";when "0010"=>dout<="11011011";when "0011"=>dout<="11110011";when "0100"=>dout<="01100111";when "0101"=>dout<="10110111";when others=>dout<="00000001";end case;elsif sel="011" thenselout<="101";case m2 is ---显示分钟的个位when "0000"=>dout<="11111101";when "0001"=>dout<="01100001";when "0010"=>dout<="11011011";when "0011"=>dout<="11110011";when "0100"=>dout<="01100111";when "0101"=>dout<="10110111";when "0110"=>dout<="10111111";when "0111"=>dout<="11100001";when "1000"=>dout<="11111111";when "1001"=>dout<="11110111";when others=>dout<="00000001";end case;elsif sel="100" thenselout<="110";case s1 is ---显示秒的十位when "0000"=>dout<="11111101";when "0001"=>dout<="01100001";when "0010"=>dout<="11011011";when "0011"=>dout<="11110011";when "0100"=>dout<="01100111";when "0101"=>dout<="10110111";when others=>dout<="00000000";end case;elsif sel="101" thenselout<="111";case s2 is ---显示秒的个位when "0000"=>dout<="11111101";when "0001"=>dout<="01100001";when "0010"=>dout<="11011011";when "0011"=>dout<="11110011";when "0100"=>dout<="01100111";when "0101"=>dout<="10110111";when "0110"=>dout<="10111111";when "0111"=>dout<="11100001";when "1000"=>dout<="11111111";when "1001"=>dout<="11110111";when others=>dout<="00000000";end case;end if;if cj="011" then---------------计时时间显示和设置模式 h1<=hou1;h2<=hou2;m1<=min1;m2<=min2;s1<=sec1;s2<=sec2;else -----------闹铃时间现实和设置模式 h1<=seth1;h2<=seth2;m1<=setm1;m2<=setm2;s1<="1111";s2<="1111";end if;end process disp;--------------------------yanshi:process(clk)variable fp:integer range 0 to 29999;beginif clk'event and clk='1' thenif fp=29999 then fp:=0;CP_5ms<= not CP_5ms;elsefp:=fp+1;end if;end if;end process;------------------quout:process(CP_5ms,keyin)beginif CP_5ms'event and CP_5ms='1' thenQ1<=keyin; Q2<=Q1; Q3<=Q2;end if;end process;-------------------process(Q1,Q2,Q3)beginif (Q1='0' and Q2='0' and Q3='0') thenkeyout<='0';elsekeyout<='1';end if;end process;process(keyout,CJ)beginif Rising_edge(keyout) then if cj="111" then cj<="000";else CJ<=CJ+1;end if;end if;end process;end one;。

相关文档
最新文档