《eda实验报告(全加器,四选一数据选择器,交通灯).doc》由会员分享,可在线阅读,更多相关《eda实验报告(全加器,四选一数据选择器,交通灯).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 浙师大数理与信息工程学院 学 生 实 验 报 告 实验 一 简单组合逻辑电路设计 1、实验目的 熟悉软件使用,了解CPLD设计的过程。用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。2、 实验内容用开关K7,K8作为输入设置,从输出指示LED观察OUT21,22,23,24等的变化。3、 实验条件 EDA实验箱、QUARTUS2软件4、 实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shier is Port( k7,k8:in std_logic; out20,out21,out22,out23,out2
2、4:out std_logic);end shier;architecture sr of shier is beginout20=k7;out21=not k7;out22=k7 and k8;out23=k7 or k8;out24=k7 xor k8;end sr; 波形仿真 实验二 三八译码器电路设计1、 实验目的 熟悉软件使用,了解CPLD设计的过程。用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。2、实验内容 用开关K1,K2,K3,K4作为输入设置,组成一个高输出有效的三八译码器,从输出指示LED观察OUT1到OUT8随K1,K1,K3置值的改变而引起相应的变化。3、实验
3、条件 EDA实验箱、QUARTUS2软件4、 实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shisan is port( a,b,c:in std_logic; y:out std_logic_vector(7 downto 0);end shisan;architecture one of shisan is begin process(a,b,c) variable d:std_logic_vector(2 downto 0); begin d:=(c&b&a); if d=000 then y=; elsif
4、 d=001 then y=; elsif d=010 then y=; elsif d= 011then y=; elsif d= 100then y=; elsif d=101then y=; elsif d=110 then y=; elsif d=111 then y=; else null; end if; end process;end one;波形仿真 实验四 四选一数据选择器电路设计1、 实验目的 熟悉和了解VHDL语言涉及数字电路的流程,掌握完整的EDA设计方法。2、 实验内容 用VHDL语言编程实现一个四选一电路。开关K5,K6作为控制端来确定K1,K2,K3,K4四个输入
5、中的一个作为输入信号,并将结果从OUT1输出。3、实验条件 EDA实验箱、QUARTUS2软件4、 实验设计 VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shisi is port( s1,s2,k1,k2,k3,k4:in std_logic; y:out std_logic);end shisi;architecture mux of shisi is signal s:std_logic_vector(1 downto 0); begin syyyynull; end case ; end process;end mux;
6、波形仿真: 实验五 全加器电路设计1、实验目的 熟悉VHDL语言的模块化设计,了解元件例化和打包调用语句。2、实验内容 用VHDL语言设计一个半加器电路。然后用元件例化语句调用两个半加器电路,用结构描述实现一个全加器。3、实验条件 EDA实验箱、QUARTUS2软件4、 实验设计 VHDL源程序library ieee;use ieee.std_logic_1164.all;entity banjia is port( a,b:in std_logic; so,co:out std_logic); end banjia;architecture mux of banjia is -半加器 be
7、gin so=a xor b; co=a and b;end mux;library ieee;use ieee.std_logic_1164.all;entity or1 is port( a,b:in std_logic; c:out std_logic); end or1;architecture orr of or1 is -与门 begin ccin,b=y,co=z,so=sum); -关联方式u2:banjia port map(a=ain,b=bin,co=x,so=y); -关联方式 u3:or1 port map(a=x,b=z,c=cout); -关联方式end quan
8、jia;波形仿真 实验六 交通灯电路设计1、实验目的 熟悉软件使用,了解CPLD设计过程。设计逻辑电路,完成交通灯控制逻辑。2、 实验内容 1、设计电路,交通灯控制逻辑 2、了解状态变化电路的设计 3、实验条件 EDA实验箱、QUARTUS2软件5、 实验设计 VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaotongdeng is generic( cnt_green1:integer:=25; -定义主通道绿灯亮的时间25秒 cnt_yellow1:integ
9、er:=5; -定义主通道黄灯亮的时间 5秒 cnt_green2:integer:=15; -定义支路绿灯亮的时间 15秒 cnt_yellow2:integer:=5); -定义支路绿灯亮的时间 5秒 port( clk ,rst :in std_logic; -时钟信号、复位信号 lgt1_yellow :out std_logic; -主通道黄灯控制信号 lgt1_green :out std_logic; -主通道绿灯控制信号 lgt1_red :out std_logic; -主通道红灯控制信号 lgt2_yellow :out std_logic; -支路黄灯控制信号 lgt2_
10、green :out std_logic; -支路绿灯控制信号 lgt2_red :out std_logic); -支路红灯控制信号end jiaotongdeng;architecture art of jiaotongdeng is type states is -状态机 (st0,st1,st2,st3); -状态机的各种状态 signal state:states:=st0; signal cnt:integer range 0 to 30:=0; -定义计数器 signal cnt_en:std_logic:=0; -计数使能信号 begin process(clk,rst,cnt
11、) begin if rst=1then -复位信号有效则执行复位操作 state=st0; cnt=0; elsif (rising_edge(clk) then -时钟上升沿到来 if cnt_en=1then cnt=cnt+1; -计数器计数 Else cnt if cnt=cnt_green1 then -主通道绿灯亮了25秒转换到状态1 state=st1; else state if cnt=cnt_yellow1 then -主通道黄灯亮了5秒转换到状态2 state=st2; else state if cnt=cnt_green2 then -支路绿灯亮了15秒转换到状态3
12、 state=st3; else state if cnt=cnt_yellow2 then -支路黄灯亮了5秒转换到状态0 state=st0; else state -状态0时主通道绿灯亮,支路红灯亮 lgt1_green=1; lgt1_yellow=0; lgt1_red=0; lgt2_green=0; lgt2_yellow=0; lgt2_red=1; cnt_en=1; -开始计数 if cnt=cnt_green1 then cnt_en -状态0时主通道黄灯亮 ,支路红灯亮 lgt1_green=0; lgt1_yellow=1; lgt1_red=0; lgt2_gree
13、n=0; lgt2_yellow=0; lgt2_red=1; cnt_en=1; -开始计数 if cnt=cnt_yellow1 then cnt_en -状态0时主通道红灯亮 ,支路绿灯亮 lgt1_green=0; lgt1_yellow=0; lgt1_red=1; lgt2_green=1; lgt2_yellow=0; lgt2_red=0; cnt_en=1; -开始计数 if cnt=cnt_green2 then cnt_en -状态0时主通道红灯亮 ,支路黄灯亮 lgt1_green=0; lgt1_yellow=0; lgt1_red=1; lgt2_green=0; lgt2_yellow=1; lgt2_red=0; cnt_en=1; -开始计数 if cnt=cnt_yellow2 then cnt_en=0; -计数到5秒停止计数 end if; end case; end process;end art;波形仿真 由于交通灯程序中绿灯设定时间较长,仿真时只能看到部分波形,因此仿真时将绿灯时间缩短以便观察到完整的波形