eda大作业

时间:2019-05-12 12:34:55下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《eda大作业》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《eda大作业》。

第一篇:eda大作业

班 级 021291 学 号 02129057

EDA实验报告

学 院 电子工程学院

专 业 电子信息工程

学生姓名

02129057

导师姓名

纠博

交通控制器

一. 设计目标

设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是70、5和75秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。

二. 设计思路与实施方案

1.设计目标思路整理

在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。

设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是70s、5s和75s。

当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。

2.原理分析

本系统主要由分频器,计数器,控制器,倒计时显示器等电路组成。分频器将晶振送来的50MHZ信号变为1HZ时钟信号;计数器实现总共150秒的计数,它也是交通控制系统的一个大循环;控制器控制系统的状态转移和红黄绿灯的信号输出;倒计时显示电路实现75秒,70秒及5秒的倒计时和显示功能。整个系统的工作时序受控制器控制,是系统的核心。基于此,做出交通控制系统的转移图如下:

其中,s0:A方向绿灯亮,B方向红灯亮,此状态持续70秒;

S1:A方向黄灯亮,B方向红灯亮,此状态持续5秒;

S2:A方向红灯亮,B方向绿灯亮,此状态持续70秒;

S3:A方向红灯亮,B方向黄灯亮,此状态持续5秒;

S4:紧急制动状态,A方向红灯亮,B方向红灯亮,当hold=‘0‘时进入这种状态。

当紧急制动信号无效时,状态按照s0—s1—s2—s3—s0循环;当紧急制动信号有效时,立即进入s4,两个方向红灯全亮,计数器停止计数。

三. 设计过程

1.电路设计

交通控制系统顶层原理图如下图示,它主要由50MHZ分频器模块,控制器,倒计时计数器模块,7段数码管组成。

(1)分频器的设计

分频器外部接口如右图所示:

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity fp50m is port(clk : in std_logic;

reset : in std_logic;

clk_out: out std_logic);end entity fp50m;

architecture behavior of fp50m is signal count : std_logic_vector(31 downto 0);signal Q:std_logic;begin process(reset,clk)

begin if(reset = '0')then

count <=(others=>'0');--复位计数器

elsif clk'event and clk='1' then

count<=count+1;

if(count = 25000000)then

Q<= not Q;--反置输出

count <=(others=>'0');

end if;

end if;

clk_out<=Q;end process;end architecture behavior;由于50MHz过大,在这里就不展示分频时序图。(2)控制器的设计

控制器control的逻辑符号如下图所示。其中,clk为时钟输入信号;hld为紧急制动信号;ared,agreen,ayellow为东西方向驱动红灯,绿灯及黄灯指示的输出信号;bred,bgreen,byellow分别为南北方向驱动红灯。绿灯及黄灯指示的输出信号。控制器按照上边的状态转移图所示控制系统的时序,即为个方向红,绿,黄灯的亮灭时间。control的VHDL描述文件control.vhd: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity control is

port(clk,hold:in std_logic;

ared,agreen,ayellow,bred,bgreen,byellow:out std_logic);end control;

architecture behavior of control is

type state_type is(s0,s1,s2,s3,s4);

signal current_state,next_state:state_type;

signal counter:std_logic_vector(6 downto 0);

begin synch:process begin

wait until clk'event and clk='1';

if hold='0' then

--当紧急制动信号有效时,计数器停止工作

counter<=counter;

else

--当紧急制动信号无效时,计数器进行周期为150s的计数

if counter<149 then

counter<=counter+1;

else

counter<=(others=>'0');

end if;

end if;end process;

process

--状态机的状态转移描述 begin

wait until clk'event and clk='1';

current_state<=next_state;end process;

state_trans:process(current_state)begin

case current_state is when s0=>

if hold='0' then

next_state<=s4;

else

if counter<69 then

next_state<=s0;

else

next_state<=s1;

end if;

end if;when s1=>

if hold='0' then

next_state<=s4;

else

if counter<74 then

next_state<=s1;

else

next_state<=s2;

end if;

end if;when s2=>

if hold='0' then

next_state<=s4;

else

if counter<144 then

next_state<=s2;

else

next_state<=s3;

end if;

end if;when s3=>

if hold='0' then

next_state<=s4;

else

if counter<149 then

next_state<=s3;

else

next_state<=s0;

end if;

end if;when s4=>

if hold='0' then

next_state<=s4;

else

if counter<69 then

next_state<=s0;

elsif counter<74 then

next_state<=s1;

elsif counter<144 then

next_state<=s2;

elsif counter<149 then

next_state<=s3;

end if;

end if;

end case;end process;

output:process(current_state)begin case current_state is when s0=>

ared<='0';

agreen<='1';

ayellow<='0';

bred<='1';

bgreen<='0';

byellow<='0';when s1=>

ared<='0';

agreen<='0';

ayellow<='1';

bred<='1';

bgreen<='0';

byellow<='0';

--每种状态下两个路口红绿灯的状态描述

when s2=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='0';

bgreen<='1';

byellow<='0';when s3=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='0';

bgreen<='0';

byellow<='1';when s4=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='1';

bgreen<='0';

byellow<='0';when others => NULL;end case;end process;end behavior;

control的时序图

由图可以看出紧急制动有效,即’hold’=0时,两个方向都是红灯。而紧急制动无效时,为s1状态,一方为绿灯,另一方红灯。(3)倒计时计数器upm75(x)的设计 倒计时计数器upm75(x)的逻辑符号如下图所示。其中,clk,cr分别为时钟和清零端,en0~en2分别表示倒计数75s,70s,5s使能端,ql[3..0],qh[3..0],oc分别为BCD码的个位,十位跟进位输出。

VHDL描述upm75(x).vhd如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity upm75 is

--实体声明 port(clk:in std_logic;

en0,en1,en2:in std_logic;

cr,hld:in std_logic;

ql,qh:out std_logic_vector(3 downto 0);

oc:out std_logic);end upm75;

architecture behavior of upm75 is

--结构体

signal coul,couh:std_logic_vector(3 downto 0);begin

process(cr,clk,hld,en0,en1,en2)

begin

if cr='0' then

--异步清零

coul<=“0000”;

couh<=“0000”;

elsif clk'event and clk='1' then

if hld='1' then

--紧急制动无效时,计数器正常计数

if en0='1' then

--en0有效,倒计时75s

if(coul=0 and couh=0)then

--减法记到00后,重新指数75

coul<=“0101”;

couh<=“0111”;

elsif coul=0 then

--否则,个位记到0时置为9,十位减1

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

--否则,个位减1

end if;

end if;

if en1='1' then

--en1有效,倒计时70s

if(coul=0 and couh=0)then

coul<=“0000”;

couh<=“0111”;

elsif coul=0 then

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

end if;

end if;

if en2='1' then

--en2有效,倒计时5s

if(coul=0 and couh=0)then

coul<=“0101”;

couh<=“0000”;

elsif coul=0 then

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

end if;

end if;

else

coul<=coul;

--紧急制动有效时,各位保持不变

couh<=couh;

end if;

end if;

end process;

process(coul,couh)

begin

if(coul=0 and couh=0)then

--减到00时,借位输出

oc<='1';

else

oc<='0';

end if;

end process;

ql<=coul;

qh<=couh;end behavior;倒计时的时序仿真图如下: 1.75s倒计时

由图可以看出紧急制动有效时,停止计时,一直持续在75s,满足要求。2.70s倒计时

3.5s倒计时

(4)七段数码管的设计

分频器外部接口如右图所示: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S IS

PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

hold:IN STD_LOGIC;

clk:IN STD_LOGIC;

LED7S : OUT STD_LOGIC_VECTOR(6 downto 0));END;ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A)BEGIN if(hold = '0' and clk = '1')then LED7S <= “0000000”;elsif(hold = '1')then CASE A IS WHEN “0000” => LED7S <= “0111111”;WHEN “0001” => LED7S <= “0000110”;WHEN “0010” => LED7S <= “1011011”;WHEN “0011” => LED7S <= “1001111”;WHEN “0100” => LED7S <= “1100110”;WHEN “0101” => LED7S <= “1101101”;

WHEN “0110” => LED7S <= “1111101”;WHEN “0111” => LED7S <= “0000111”;WHEN “1000” => LED7S <= “1111111”;WHEN “1001” => LED7S <= “1101111”;WHEN “1010” => LED7S <= “1110111”;WHEN “1011” => LED7S <= “1111100”;WHEN “1100” => LED7S <= “0111001”;WHEN “1101” => LED7S <= “1011110”;WHEN “1110” => LED7S <= “1111001”;WHEN “1111” => LED7S <= “1110001”;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS;END;

三. 遇到的问题及解决方法

1.七段数码管显示的数字并不是1,2,3…,将LED7S的输出取反后,得到了正确的结果; 2.倒计时开始设计的是从74s,69s,4s开始计时的,后改为75s,70s,5s;

3.紧急制动有效时,计时停止,但不闪烁,之后在DECL7S程序里加入了时钟,能够达到闪烁的效果。

四. 综合时序仿真结果及功能分析

总体电路图如下:

总体时序仿真:

由于50MHz太大,看不出多种状态间的变化,但通过仿真图可以看出一方是绿灯,而另一方是红灯。

五. 小结及心得体会

在本次实验中我选择的是交通灯,输出有很多种情况。该系统主要由分频器,计数器,控制器,倒计时显示器等电路组成。其中,分频器与七段数码管是小作业的时候做好的,控制器与倒计时计数器参考数电书完成。在实验过程中,出现了很多的问题,多亏了同学和老师的帮助,有很多问题都是由于粗心导致的,这又一次说明了编程是需要细心和耐心的,一个小小的错误就会影响到整个运行结果。所以我觉得,结果固然重要,但是自己真正投入努力的过程更是值得被体会。

第二篇:eda大作业

——EDA技术与Verilog HDL

交通灯设计学 院:电子信息学院

专 业:电气工程及其自动化 班 级:

学 号: 姓 名: 1

目录

前言------1

一、设计任务-----------

2二、题目分析与整体构思--

2三、硬件电路设计-------3

四、程序设计-----------7

五、设计创新----------12

六、心得体会----------1

3七、参考文献----------13

前 言

伴随着社会的发展以及人类生活水平的提高,汽车的数量在D的DEA技术的发展和应用领域的扩大与深入,EDA技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。随着技术市场与人才市场对DEA的不断的增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。以下就是运用数字电子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。一﹑设计任务

1.1设计要求: 设计一个十字路口的交通灯控制系统,用实验平台上的LED发光二极管显示车辆通过的方向(东西和南北各一组),用数码管显示该方向的剩余时间。要求:工作顺序为东西方向红灯亮45秒,前40秒南北方向绿灯亮,后5秒黄灯亮。然后南北方向红灯亮45秒,前40秒东西方向绿灯亮,后5秒黄灯亮。依次重复。有紧急事件时允许将某方向一直开绿灯或者开红灯,另外允许特定情况两方向均为红灯,车辆禁行,比如十字路口恶性交通事故时,东西,南北两个方向均有两位数码管适时显示该方向亮灯时间。

二、题目分析与整体构思

(1)该交通灯控制器应具备的功能

设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时长也相同,定为红灯45sec,黄灯5sec,绿灯40sec,同时用数码管指示当前状态(红、黄、绿)剩余时间。另外,设计一个紧急状态,当紧急状态出现时,两个方向都禁止通行,指示红灯。紧急状态解除后,重新计数并指示时间。(2)实现方案

一 从题目中计数值与交通灯的亮灭的关系如图(1)所示

三﹑硬件电路设计(1)分频器

分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。

(2)控制器设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(HOLD=‘1’)发生时,无条件点亮红灯的二极管。本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好。

(3)计数器设计

这里需要的计数器的计数范围为0-90。计到90后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况(HOLD=‘1’)发生是,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。

(4)分位译码电路设计--1 因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。

与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。为了让读者开拓眼界,分位电路就用组合逻辑电路实现。

(5)分位译码电路设计—2

(6)数码管驱动设计

串行连接,即每个数码管对应的引脚都接在一起(如每个数码管的a引脚都接到一起,然后再接到CPLD/FPGA上的一个引脚上),通过控制公共端为高电平控制相应数码管的亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。

串行法的优点在于消耗的系统资源少,占用的I/O口少,N个数码管只需要(7+N)个引脚(如果需要小数点,则是(8+N)个引脚)。其缺点是控制起来不如并行法容易。

(7)下图为交通灯控制器的顶层文件连接图

四、程序设计

(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 IS CONSTANT N:Integer:=499;signal counter:Integer range 0 to N;signal Clk:Std_Logic;BEGIN PROCESS(Clkin)begin IF rising_edge(Clkin)THEN

IF Counter=N then counter<=0;Clk<=not clk;else counter<=counter+1;end if;end if;end process;clkout<=clk;end;

四、程序设计

(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 IS CONSTANT N:Integer:=499;signal counter:Integer range 0 to N;signal Clk:Std_Logic;BEGIN PROCESS(Clkin)begin IF rising_edge(Clkin)THEN IF Counter=N then counter<=0;Clk<=not clk;else counter<=counter+1;end if;end if;end process;clkout<=clk;end;(3)计数器的设计

这里计数器的计数范围为0—45S。计到45后,下一个时钟沿回复到0,开始下一轮计数.此外,当检测到特殊情况(Hold=‘1‘)发生时,计数器暂停计数,而系统复位号Reset则使计数器异步清0。程序如下:

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter IS PORT(clock:IN STD_LOGIC;reset:in std_logic;Hold:in std_logic;countNum:BuFFeR INTEGER RANGE 0 TO 90);END;ARCHITECTURE behavior OF counter IS BEGIN process(reset,Clock)BEGIN IF Reset='1' THEN countNum<=0;ELSIF rising_edge(Clock)THEN IF Hold='1' then countNum<=countNum;ELSE IF countNum=90 THEN countNum<=0;ELSE countNum<=countNum+1;END IF;END IF;END IF;END PROCESS;END;(4)分位译码电路设计--1 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Fenwei IS PORT(Numin:IN integer RANGE 0 TO 45;NumA,NumB:OUT Integer RANGE 0 to 9);END;

ARCHITECTURE behavior OF Fenwei IS BEGIN process(Numin)BEGIN IF Numin>=40 THEN NumA<=4;NumB<=Numin-40;ELSIF Numin>=30 THEN NumA<=3;NumB<=Numin-30;ELSIF Numin>=20 THEN NumA<=2;NumB<=Numin-20;ELSIF Numin>=10 THEN NumA<=1;NumB<=Numin-10;ELSE NumA<=0;NumB<=Numin;END IF;END PROCESS;END;

(5)分位译码电路设计—2 USE IEEE.STD_LOGIC_1164.ALL;ENTITY Fenwei2 IS PORT(Numin:IN integer RANGE 0 TO 45;NumC,NumD:OUT Integer RANGE 0 to 9);END;ARCHITECTURE behavior OF Fenwei2 IS BEGIN process(Numin)BEGIN IF Numin>=40 THEN NumC<=4;NumD<=Numin-40;ELSIF Numin>=30 THEN NumC<=3;NumD<=Numin-30;

ELSIF Numin>=20 THEN NumC<=2;NumD<=Numin-20;ELSIF Numin>=10 THEN NumC<=1;NumD<=Numin-10;ELSE NumC<=0;NumD<=Numin;END IF;END PROCESS;END;

(6)数码管驱动设计 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY bcd_data IS PORT(bcd_data:in STD_LOGIC_VECTOR(3 downto 0);segout: out STD_LOGIC_VECTOR(6 downto 0));END;ARCHITECTURE behavior OF bcd_data IS BEGIN process(bcd_data)BEGIN case bcd_data is when “0000”=>segout<=“1111110”;when “0001”=>segout<=“0110000”;when “0010”=>segout<=“1101101”;when “0011” =>segout<=“1111001”;when “0100” =>segout<=“0110011”;when “0101”=>segout<=“1011011”;when “0110”=>segout<=“0011111”;when “0111”=>segout<=“1110000”;when “1000” =>segout<=“1111111”;when “1001” =>segout<=“1110011”;when others =>null;END CASE;END PROCESS;END;

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY dtsm IS PORT(clk:in STD_LOGIC;NumA,NumB,NumC,NumD: in STD_LOGIC_VECTOR(3 downto 0);segout1:out STD_LOGIC_VECTOR(6 downto 0);led_sel: out STD_LOGIC_VECTOR(3 downto 0));END dtsm;architecture bhv of dtsm is component bcd_data is port(bcd_data:in STD_LOGIC_VECTOR(3 downto 0);segout:out STD_LOGIC_VECTOR(6 downto 0));end component;signal x:STD_LOGIC_VECTOR(3 downto 0);signal q:STD_LOGIC_VECTOR(1 downto 0);begin p1:process(clk)begin if clk'event and clk ='1' then Q<= Q + '1';end if;end process;

p2:process(Q)begin case Q is when“00”=>led_sel<=“1110”;x<=NumD;when“01”=>led_sel<=“1101”;x<=NumC;when“10”=>led_sel<=“1011”;x<=NumB;when“11”=>led_sel<=“0111”;x<=NumA;when others=>null;end case;end process;u1:bcd_data PORT map(bcd_data=>x,segout=>segout1);end

五﹑设计创新

1﹑模块化编程,模块化接线,再编译总原理图,思路比较清楚解容易。2﹑可以比较容易的改变红绿灯的时间。3﹑有的模块可以供其它任务通用。

六﹑心得体会

EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次。我在编完各模块程序之后,编译查错最初有三十几个错误,有输入错误、语法错误。一遍一遍的变异查错,直到没有错误。必须注意工程名和实体名一致,不然一般会出错。在没有错误之后可以进行波型仿真。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。都通过可以进行管脚配对,把程序烧入芯片,在实物机上看结果,从显示中得出还需改正的地方,再去改程序。必须注意没改一次都要编译,重新烧入。七﹑参考文献

(1)杨颂华 ;数字电子技术基础.西安:西安电子科技大学。

(2)黄任;2005;VHDL入门.解惑.经典实例.经验总结.北京:北京航空航天大学出版社。

(3)徐志军,徐光辉.2002.CPLD/FPGA的开发与应用.北京:电子工业出版社。

(4)褚振勇.FPGA设计与应用.西安:西安电子科技大学出版社。

第三篇:EDA作业 单管低频放大器

贵州大学科技学院2010级 电科班

王斌

GUIZHOU UNIVERSITY EDA实验报

实验课程名称 EDA技术与实验 实验项目名称 单管低频放大器 学 院 科技学院 专 业 班 级 2010级电子信息科学与技术 学 生 姓 名 王斌 学 号 1020040464 任 课 教 师 李良荣

贵州大学科技学院2010级 电科班

王斌

单管低频放大器

1、实验目的

(1)学习元器件的放置和手动、自动连线方法;(2)熟悉元器件标号及虚拟元件值的修改方法;(3)熟悉节点及标注文字的放置方法;(4)熟悉电位器的调整方法;(5)熟悉信号源的设置方法;(6)熟悉示波器的使用方法;

(7)熟悉放大器的主要性能指标的测试方法;

(8)熟悉示波器、信号源、万用表、电压表、电流表的应用方法;(9)学习实验报告的书写方法。

2、实验内容 a:测试电路如图

图1——0(1)测量Ic 常规方法测量Ve。用Ie=Ve/Re ≈ Ic计算集电极电流。如图1——1所示。测试的Ve=1.589V

IeIcIbI c

Ic则Ie=Ve/Re ≈ Ic=1.589mA

VERE1.5891000=1.589V 2

贵州大学科技学院2010级 电科班

王斌

检测是否正确:如图1——2

图1——2 测试正确!

结论:测试看出,两种方法的结果是有些误差的,原因在于RE的值是有误差的,调入器件时计算机在器件的误差范围内任意取值作计算依据,在实际电路中也往往如此,用万用表测量晶体管发射极电阻上的电压来测量电路的Ic是实际电路的设计时的一般方法。

(2)信号发生器设置正旋波,f=1KHZ,V=10mV;

如图1——3

贵州大学科技学院2010级 电科班

王斌

图1——3 仿真,调整示波器观察后得到结果。

A通道(x1,y1)=(221.048ms ,-1.146v)、B通道为(222.085ms , 9.995mV)。利用两条时间差可以分析信号的周期、频率等参数(图中T2-T1=1.036ms为周期)。信号类型为“DC”方式,波形包含直流成分,“0”禁止输入,“AC”方式不包含直流成分。

结论:保持信号源不变,调整R5为5000(接入电阻的阻值为505000=25K,如果滑动变阻器增大,调到7400左右),信号输出幅度最大,失真较小,则R5的取值在56K左右

贵州大学科技学院2010级 电科班

王斌

最佳。

(3)调整R5,在示波器上观察波形,是波形输出幅度最大,且不失真;

a:减小电阻会使电路失真,且截止失真;

b:真大电阻会是电路的放大倍数增大;

(4)测量单管放大器的输入输出电阻RI、R0;

贵州大学科技学院2010级 电科班

王斌

输入电阻:

RIVIRVSVIVIII=

7.0713.6931031.914k

输出电阻:用“替代法”计算R0,闭合开关,得到VL的值为4.614mv,断开开关,得到V0的值为4.722mv。

贵州大学科技学院2010级 电科班

王斌

R0(V0VL1)31034.722313107.022k 4.614

(5)用“失真度测量仪”测量电路的失真度;

在输入信号3mV,f=1KHZ时,测得失真度:2.767%。在输入信号10mV,f=1KHZ时,测得失真度:9.193%。如图1——4。

结论:电路的失真度为9.193% 7

贵州大学科技学院2010级 电科班

王斌

图1——4(6)用“波特图示仪”测试电路的幅频特性曲线。

根据带宽的测量原理,移动测试指针,使幅度值下降3dB,找到半功率点=26.459MHZ。如图1——5

=23.698HZ,图1——5 测得fwfHfL26.459MHZ。

贵州大学科技学院2010级 电科班

王斌

心得:通过这次实验让我对Multisim 更进一步的了解和学习,也对很多电路的分析应用加深了了解。!

第四篇:EDA实验报告

实验一:

QUARTUS II 软件使用及组合电路设计仿真

实验目的:

学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。

实验内容:

1.四选一多路选择器的设计 基本功能及原理 :

选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。

逻辑符号如下:

程序设计:

软件编译:

在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析:

仿真结果如下图所示

分析:

由仿真图可以得到以下结论:

当s=0(00)时y=a;当s=1(01)时y=b;当 s=2(10)时y=c;当s=3(11)时y=d。符合我们最开始设想的功能设计,这说明源程序正确。2.七段译码器程序设计 基本功能及原理:

七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。数码管的图形如下

七段译码器的逻辑符号:

程序设计:

软件编译:

在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件

。仿真分析:

仿真结果如下图所示:

分析: 由仿真的结果可以得到以下结论:

当a=0(0000)时led7=1000000 此时数码管显示0; 当a=1(0001)时led7=1111001 此时数码管显示1; 当a=2(0010)时led7=0100100 此时数码管显示2; 当 a=3(0011)时led7=0110000 此时数码管显示3; 当 a=4(0100)时led7=0011001 此时数码管显示4; 当 a=5(0101)时led7=0010010 此时数码管显示5; 当 a=6(0110)时led7=0000010 此时数码管显示6; 当 a=7(0111)时led7=1111000 此时数码管显示7; 当 a=8(1000)时led7=0000000 此时数码管显示8; 当a=9(1001)时led7=0010000 此时数码管显示9; 当a=10(1010)时led7=0001000 此时数码管显示A; 当a=11(1011)时led7=0000011 此时数码管显示B; 当 a=12(1100)时led7=1000110 此时数码管显示C; 当a=13(1101)时led7=0100001 此时数码管显示D; 当a=14(1110)时led7=0000110 此时数码管显示E; 当a=15(1111)时led7=0001110 此时数码管显示F;

这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。

实验心得:

通过这次实验,我基本掌握了QUARTUS II软件的使用,也掌握了软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。在实验中,我发现EDA这门课十分有趣,从一个器件的功能设计到程序设计,再到编译成功,最后得到仿真的结果,这其中的每一步都需要认真分析,一遍又一遍的编译,修改。当然,中间出现过错误,但我依然不放弃,一点一点的修改,验证,最终终于出现了正确的仿真结果,虽然有一些毛刺,但是总的来说,不影响整体的结果。

实验二:计数器设计与显示

实验目的:

(1)熟悉利用QUARTUS II中的原理图输入法设计组合电路,掌握层次化的设计方法;

(2)学习计数器设计,多层次设计方法和总线数据输入方式的

仿真,并进行电路板下载演示验证。实验内容:

1.完成计数器设计

基本功能及原理:

本实验要设计一个含有异步清零和计数使能的4位二进制加减可控计数器,即有一个清零端和使能端,当清零端为1时异步清零,即所有输出值都为0,当使能端为0时,计数器停止工作,当使能端为1时,正常工作,由时钟控制。另外,还应该有一个控制端,当控制端为0时,进行减法运算,当控制端为1时,进行加法运算。输出端有输出值和进位端,当进行加法运算时,输出值递增,当减法运算时,输出值递减,同时进位端进行相应的变化。

4位二进制加减计数器的逻辑符号:

程序设计:

软件编译:

在编辑器中输入并保存了以上4位二进制加减计数器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 仿真结果如下:

分析:

由仿真图可以得到以下结论:

当enable端为0时,所有数值都为0,当enable端为1时,计数器正常工作;当reset端为1时,异步清零,所有输出数值为0,当reset端为0时,正常工作;当updown端为0时,进行减法运算,当updown为1时,进行加法运算;另外,当程序进行减法运算时,出现借位时,co为1,其余为0,当进行加法运算时,出现进位时,co为1,其余为0。图中所有的功能与我们设计的完全一样,所以说明源程序正确。2.50M分频器的设计

基本功能及原理:

50M分频器的作用主要是控制后面的数码管显示的快慢。即一个模为50M的计数器,由时钟控制,分频器所有的端口基本和上述4位二进制加减计数器的端口一样,原理也基本相同。分频器的进位端(co)用来控制加减计数器的时钟,将两个器件连接起来。50M分频器的逻辑符号如下:

程序设计:

软件编译:

在编辑器中输入并保存了以上50M分频器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 结果如下:

上图为仿真图的一部分,由于整个图太大,所以显示一部分即可,其余部分如图以上图规律一直递增,直到50M为止,然后再重复,如此循环。

上图是部分输出的显示,由于整个图太大,所以只显示部分,其余部分如图递增。

分析:

由仿真图可以看出,当reset为0,enable为1时(因为本实验中计数器的模值太大,为了尽可能多的观察出图形,可让reset一直为0,enable一直为1,即一直正常工作),输出值由0一直递增到50M,构成一个加法计数器,与我们设计的功能一致。3.七段译码器程序设计

基本功能及原理:

七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。

七段译码器的逻辑符号:

程序设计:

软件编译:

在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析:

仿真结果如下图所示:

分析:具体分析与实验一中七段译码器的分析相同,在此不再赘述。计数器和译码器连接电路的顶层文件原理图:

原理图连接好之后就可以进行引脚的锁定,然后将整个程序下载到已经安装好的电路板上,即可进行仿真演示。

实验心得:

经过本次试验,我学到了很多。首先,我加强了对QUARTUS II软件的掌握;其次,我掌握了电路图的顶层文件原理图的连接,学会了如何把自己设计的程序正确的转化为器件,然后正确的连接起来,形成一个整体的功能器件;最后,我学会了如何安装以及如何正确的把完整的程序下载到电路板上,并进行演示验证。

实验三:大作业设计

(循环彩灯控制器)

实验目的:

综合应用数字电路的各种设计方法,完成一个较为复杂的电路设计。实验内容:

流水灯(循环彩灯)的设计 设计任务:

设计一个循环彩灯控制器,该控制器可控制10个发光二极管循环点亮,间隔点亮或者闪烁等花型。要求至少三种以上花型,并用按键控制花型之间的转换,用数码管显示花型的序号。基本原理:

该控制器由两部分组成,一部分是一个50M的分频器,其主要用来控制花色变化的快慢;另一部分是一个彩灯控制器,该彩灯控制器可由两个开关控制花型的序号,10个输出分别控制10个发光二极管的亮暗,当输出为1时,该发光二极管亮,输出为0时,该二极管灭。将分频器的co端用来控制彩灯控制器的时钟,将两个器件连接起来。1.分频器的设计

50M分频器与实验二中的分频器一样,这里不再赘述。2.彩灯控制器的设计 基本原理:

该彩灯控制器由时钟控制,reset异步清零,enable当做使能端,由两个开关do(0-1)来控制选择不同的花型,10个输出端lig(0-9)来控制10个LED灯的亮灭。因为用了两个开关来控制花型,所以一共有4种花色。

彩灯控制器的逻辑符号:

程序设计:

3.七段译码器的设计

七段译码器是用来显示不同花型的序号的,其设计与实验一中的设计一样,这里不再赘述。循环彩灯控制器的原理图:

仿真波形如下: 第一种花型:

第二种花型:

第三种花型:

第四种花型:

仿真分析:

将以上仿真波形图和源程序对比,我们可以看到,仿真出来的波形和我们设计的功能一致,这说明源VHDL程序是正确的。实验心得:

本次试验是在没有老师指导的情况下自己完成的,我在参考了网上的程序的情况下,最终成功的设计并正确的演示出了循环彩灯的不同花型。通过本次试验,我真正的体会到了DEA这门课的乐趣,也发现它对我们的学习和生活带来很大的方便。

第五篇:EDA学习心得

EDA

专业;姓名;学号;学习心 得

刘华

201530220109

电气自动化技术

本学期对EDA技术的学习为我的专业知识学习打开了一个全新的窗口——微电子技术领域。对EDA技术,我更是有了全新的认识。

微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体工艺水平的线宽已经达到了纳米级。所以,集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展。

而现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。EDA技术在进入21世纪后,得到了更大的发展。嵌入式处理器软核的成熟,使得SOPC步入大规模应用阶段。电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化。同时,EDA使得电子领域各学科的界限更加模糊,更加互为包容。这些都利于设计人员利用EDA技术进行电子系统设计,如全定制或半定制ASIC设计,FPGA/CPLD开发应用和印制电路板 从EDA技术的特点不难看出,相比于传统的数字电子系统或IC设计,EDA技术拥有独特的优势。在传统的数字电子系统或IC设计中,手工设计占了较大的比例。因此,也存在很多缺点。例如:复杂电路的设计、调试十分困难;由于无法进行硬件系统仿真,如果某一过程存在错误,查找和修改十分不便;设计过程中产生大量文档,不易管理;可移植性差等。相比之下,EDA技术有很大不同。它运用HDL对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。由于有各类库的支持,能够完成各种自动设计过程。它极大地简化了设计文档的管理,逻辑设计仿真测试技术也日益强大。VHDL在现在的EDA设计中使用最多,也拥有几乎所有主流EDA工具的支持。VHDL作为一个规范语言和建模语言,不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。这种方法显然对于电路自动设计是一个极大的推进。它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。EDA技术良好的可移植性与可 测试性,将所有设计环节纳入统一的自顶向下的设计方案中。它不但在整个设计流程上充分利用计算机的自动设计能力、在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试

书中通过大量的图示对PLD硬件特性与编程技术进行了形象的讲解,不仅融合了之前学习的关于电路设计的知识还将EDA的技术加入其中。对VHDL语言的详尽讲解更是让我深刻理解了VHDL语言的编程原理。由于本门课程是一门硬件学习课程,所以实验必不可少。通过课程最后实验,我体会一些VHDL语言相对于其他编程语言的特点。

相对于其它计算机语言的学习,如C 或汇编语言,VHDL 具有明显的特点。这不仅仅是由于VHDL 作为一种硬件描述语言的学习需要了解较多的数字逻辑方面的硬件电路知识,包括目标芯片基本结构方面的知识更重要的是由于VHDL 描述的对象始终是客观的电路系统。由于电路系统内部的子系统乃至部分元器件的工作状态和工作方式可以是相互独立、互不相关的,也可以是互为因果的。这表明,在任一时刻,电路系统可以有许多相关和不相关的事件同时并行发生。例如可以在多个独立的模块中同时入行不同方式的数据交换和控制信号传输,这种并行工作方式是任何一种基于CPU 的软件程序语言所无法描绘和实现的。传统的软件编程语言只能根据CPU 的工作方式,以排队式指令的形式来对特定的事件和信息进行控制或接收。在CPU 工作的任一时间段内只能完成一种操作。因此,任何复杂的程序在一个单CPU 的计算机中的运行,永远是单向和一维的。因而程序设计者也几乎只需以一维的思维模式就可以编程和工作了。

VHDL 虽然也含有类似于软件编程语言的顺序描述语句结构,但其工作方式是完全不同的。软件语言的语句是根据CPU 的顺序控制信号,按时钟节拍对应的指令周期节拍逐条运行的,每运行一条指令都有确定的执行周期。但VHDL 则不同,从表面上观,VHDL 的顺序语句与软件语句有相同的行为描述方式,但在标准的仿真执行中有很大的区别。VHDL 的语言描述只是综合器赖以构成硬件结构的一种依据,但进程语句结构中的顺序语句的执行方式决非是按时钟节拍运行的。实际情况是其中的每一条语句的执行时间几乎是0(但该语句的运行时间却不一定为0),即1000 条顺序语句与10 条顺序语句的执行时间是相同的。在此,语句的运行和执行具有不同的概念(在软件语言中,它们的概念是相同),的执行是指启动一条语句,允许它运行一次,而运行就是指该语句完成其设定的功能。通过实验,我认识到理论要与实际结合,培养动手动脑能力的重要性,做事情要抱着一丝不苟的态度,这样才能做好事情。同时也入一步了解到EDA的强大之处,硬件电路的优秀的地方,对硬件方面更感兴趣了。这门课程的学习,为我以后的专业知识的学习打下了良好的基础。

下载eda大作业word格式文档
下载eda大作业.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    EDA学习心得

    EDA 学习心得 姓名:贺鑫 学号:20081001164 班号:072085-10 在本学期短短5周的EDA学习中,我初步对这一新的领域有了一个较为系统的理解,也为我的专业学习打开了一个新的思路,那就......

    EDA毕业论文

    现代EDA技术及其发展 引言 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,E......

    EDA 课程设计

    《电子系统设计自动化》课程设计报告 学 院: 机电工程学院 题 目: 数字时钟电路设计 课 程: 《电子系统设计自动化》课程设计 专业班级: 电信10级2 班 学生姓名: 刘星 秦玉杰 王......

    《EDA课程设计》

    《EDA课程设计》 课程设计题目: 基于单片机的温湿度采集系统 姓 名: xxx 学班时地 号:xxxx 级: xxxx 间:2014.4.21~ 2013.5.5 点: xxxxx 指 导老师: xxxxx 目录 一、电路原理......

    EDA课程设计

    考试序号:28 自动打铃系统设计说明书 学 生 姓 名:周文江 学 号:14112502521 专 业 班 级:1102 报告提交日期:2013.11.26 湖 南 理 工 学 院 物 电 学 院 目录 一、题目及要......

    EDA实验报告

    EDA课程实验报告 ----移位相加8位硬件乘法器电路计 ou 1 移位相加硬件乘法器设计 一.实验目的 1、学习移位相加8 位硬件乘法器电路设计; 2、学习应用EDA 技术进行项目设计......

    EDA实验报告

    EDA 实验报告 姓名:汤灿亮 学号:2012118060 班级:1211自动化实验一 QUARTUS Ⅱ的设计流程 一、实验目的: 1、掌握QUARTUSⅡ安装过程; 2、熟悉QUARTUSⅡ设计环境; 3、掌握QUARTUS......

    EDA实验报告

    EDA 实验报告 张佳兴 2220131738 电气工程及其自动化1班 一、 Verilog语言反应硬件特性举例 1. module cc ( clk,en,cout)、input、output,这三个语句用Verilog语言定义了一......