EDA实验报告(包含多个实验).doc_第1页
EDA实验报告(包含多个实验).doc_第2页
EDA实验报告(包含多个实验).doc_第3页
EDA实验报告(包含多个实验).doc_第4页
EDA实验报告(包含多个实验).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA实验报告海南大学EDA实验报告 学院:信息科学与技术学院 专业班级:09理科实验班 课程:EDA 任课教师:刘文进 姓名:钟智翔 学号:20091613310087实验一 MAX plusII及开发系统使用一、实验目的1、 熟悉利用MAX-plus的原理图输入方法设计简单的组合电路2、 掌握层次化设计的方法3、 熟悉DXT-B型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。 4位全加器设计一个4位全加器可以由4个1位全加器构成,如图1.1所示,1位的全加器串行联接可以实现4位的二进制全加器。图1.1 4位全加器电路原理图1位全加器可以由两个半加器和一个或门构成,如图1.2所示。图1.2 全加器电路原理图1位半加器可以由与、或、非等基本门构成,如图1.3所示。图1.3 半加器电路原理图根据实验原理中,采用层次法设计一个4位全加器。四、实验步骤1、如图1.3所示,利用MAX-plus中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。注意:编译之前必须将文件设为当前文件。2、建立一个更高得原理图设计层次,如图1.2所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。3、再建立一个更高得原理图设计层次,如图1.1所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真。五、实验报告要求:详细描述4位全加器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出加法器的延时情况;最后给出硬件测试的流程和结果。1)半加器图 半加器仿真图2)全加器图 全加器仿真图 3)四位全加器仿真图实验二 十进制计数器一、实验目的 学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 图2.1 含计数使能、异步复位和计数值并行预置功能4位加法计数器二、实验原理图2.1是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,图中间是4位锁存器;RST是异步清信号,高电平有效;CLK是锁存信号;D3.0是4位数据输入端。当ENA为1时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为0时将0000加载于锁存器。程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUN_10 IS PORT ( CLK,RST,EN:IN STD_LOGIC;CO:OUT STD_LOGIC; QQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY;ARCHITECTURE RTL OF COUN_10 ISSIGNAL Q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINQQ=Q; PROCESS(CLK,RST,EN) BEGIN IF RST=1 THEN Q=0000; ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN IF (Q=9) THEN Q=0000;CO=1; ELSE Q=Q+1;CO=0; END IF; END IF; END IF; END PROCESS;END RTL;实验仿真图: 实验三 秒表的设计一、实验目的:1、 熟练利用VHDL语言进行数字系统设计;2、 掌握数字系统的设计方法自顶向下的设计思想;3、 掌握计数器的设计与使用;4、 根据秒表的功能要求设计一个秒表;二、实验设备:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验要求:1、 有秒、分计数,数码扫描显示输出;2、 有清零端和计数使能端;3、 在功能允许的情况下,可自由发挥;四、实验原理:1、 功能描述:秒表是一种计时的工具,有着很广泛的用途。本实验中的秒表要求有两个功能按钮:一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。在数码管上采用扫描显示输出。2、 基本原理:本实验中用到的主要元件有计数器、控制逻辑、数据选择器和译码器等。秒、分都是60 进制计数,所以必须采用两个60 进制的计数器(或6 进制计数器与10 进制计数器的组合);控制逻辑主要是用来实现计数和清零。基本方框图如下:注意:计数器必须有进位输出、计数使能端和清零端。3、 自顶向下的设计方法:自顶向下的设计方法是数字系统设计中最常用的设计方法,也是基于芯片的系统设计的主要方法。它的基本原理框图如下:自顶向下的设计方法利用功能分割手段将设计由上到下进行层次化和模块化,即分层次、分模块进行设计和仿真。功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。如此分割,逐步的将系统细化,将功能逐步具体化,模块化。高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。(注意:这里所说的模块可能是芯片或电路板。)五、实验步骤:1、 采用自顶向下的设计方法,首先将系统分块;2、 设计元件,即逻辑块;3、 一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。六、实验报告1、写出实验源程序,画出仿真波形;2、总结实验步骤和实验结果;七、实验结果设计一个600的递减计数器。2、 设计元件,即逻辑块;其中TIME_4为由两个60进制计数器组成,SELE_4为四选一选择器,DUAN 为八段数码管显示译码器,COUN_2为二进制计数器,YIMA24为2-4译码器。TIME_4的代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity time_4 is port ( clk,rst: in std_logic; mh :out std_logic_vector(3 downto 0); ml :out std_logic_vector(3 downto 0); sh :out std_logic_vector(3 downto 0); sl :out std_logic_vector(3 downto 0);end entity;architecture rtl of time_4 issignal qmh:std_logic_vector(3 downto 0);signal qml:std_logic_vector(3 downto 0);signal qsh:std_logic_vector(3 downto 0);signal qsl:std_logic_vector(3 downto 0);beginprocess(clk,rst)-variable begin if rst=1 then qsh=0000;qsl=0000;qmh=0000;qml=0000; elsif clkevent and clk=1 then if qsl=1001 then if qsh=0101 then qsl=0000;qsh=0000; if qml=1001 then if qmh=0101 then qml=0000;qmh=0000; else qmh=qmh+0001;qml=0000; end if;-分高5 else qml=qml+0001; end if;-分低9 else qsh=qsh+0001; qsl=0000; end if;-秒高5 else qsl=qsl+0001; end if;-秒低9 end if;-复位ifend process; mh=qmh; ml=qml; sl=qsh; sh=qsl; end rtl;SELE_4代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity sele_4 is port ( D0,D1,D2,D3: in std_logic_vector(3 downto 0); S:in std_logic_vector(1 downto 0); Y:out std_logic_vector(3 downto 0);end entity;architecture art of sele_4 issignal SEL:std_logic_vector(1 downto 0); begin selYYYYY=null; end case; end process; end art;DUAN的代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity duan is port ( data: in std_logic_vector(3 downto 0); Y:out std_logic_vector(7 downto 0);end entity;architecture rtl of duan issignal indata:std_logic_vector(3 downto 0); begin indataYYYYYYYYYYY=10000000; end case; end process; end rtl;COUN_2的代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity coun_2 is port ( clk,rst : in std_logic; s :out std_logic_vector(1 downto 0); end entity;architecture rtl of coun_2 issignal ss:std_logic_vector(1 downto 0);beginprocess(clk,rst)begin if rst=1 then ss=00; elsif clkevent and clk=1 then if ss=11 then ss=00; else ss=ss+01; end if; end if;end process;s=ss; end rtl;YIMA24的代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;entity yima24 is port ( S:in std_logic_vector(1 downto 0); Y:out std_logic_vector(3 downto 0);end entity;architecture rtl of yima24 issignal indata:std_logic_vector(1 downto 0); begin indataYYYYY=null; end case; end process; end rtl;六、实验结果两个60进制组成的计数器time_4的仿真结果如下: 两个60进制组成的计数器time_4的仿真结果如下:四选一数据选择器仿真结果如下: 段译码器的仿真结果如下: 二进制计数器仿真结果如下: 位译码仿真结果如下:总电路仿真结果如下:实验四 数字频率计一、实验目的:1、学会数字频率计的设计方法;2、设计一个计数范围在01MHz的数字频率计;3、进一步掌握自顶向下的数字系统设计方法,并体会其优越性;二、实验器材:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验原理与内容:1、 测频原理若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为: fs=N/T 通常测量时间T取1秒或它的十进制时间。频率计方框图如下:(1)、时基T 产生电路:提供准确的计数时间T。晶振产生一个振荡频率稳定的脉冲,通过分频整形、门控双稳后,产生所需宽度的基准时间T的脉冲,又称闸门时间脉冲。注意:分频器一般采用计数器完成,计数器的模即为分频比。(2)、计数脉冲形成电路:将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。(3)、计数显示电路:对被测信号进行计数,显示被测信号的频率。计数器一般采用多位10 进制计数器;控制逻辑电路控制计数的工作程序:准备计数显示复位准备下一次测量。2、 具体实现:(1)、测频控制逻辑电路(以1 秒为例)A) 产生一个1秒脉宽的周期信号;B) 对计数器的每一位计数使能进行控制;C) 完成下一次测量前的计数器复位;一种可能的时序关系:a) 10 进制计数器要求具有计数使能端CNTEN、复位端CLR、进位输出端CO。3、 元件例化图(方框图):四、实验内容实验总图分频器程序:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;USE ieee.std_logic_arith.all;entity fenpin is port (clk: in std_logic; co: out std_logic); end entity;architecture rtl of fenpin issignal qh: std_logic_vector(3 downto 0);signal q: std_logic;beginprocess(clk)begin if clkevent and clk=1 then if qh=0100 then qh=0000; q=not q; else qh=qh+0001; end if; end if; co=q;end process;end rtl;分频仿真图数据选择器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux4 isport(sec1,sec0:in std_logic; ru1,ru2,ru3,ru4:in std_logic; co:out std_logic);end entity;architecture rtl of mux4 issignal q:std_logic_vector(1 downto 0);beginqcococococo=null;end case;end process;end rtl;数据选择器仿真图控制端程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kongzhi isport(clk:in std_logic; clr,en,load:out std_logic);end entity;architecture rtl of kongzhi is-signal a:std_logic_vector(1 downto 0);signal b:std_logic;beginprocess(clk)-variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clkevent and clk=1then b=not b;end if;en=b;load=not b;clr=(not b )and (not clk);end process;end rtl;仿真图:锁存器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity suocun isport(en:in std_logic; ru0,ru1,ru2:in std_logic_vector(3 downto 0); sec0,sec1,sec2:out std_logic_vector(3 downto 0); end entity;architecture rtl of suocun isbeginprocess(en)-variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif enevent and en=1 thensec0=ru0;sec1=ru1;sec2=ru2;end if;end process;end rtl;锁存器仿真图二进制计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt2 is port( clk:in std_logic; S0: OUT STD_LOGIC; S1: OUT STD_LOGIC);END cnt2; architecture RTL of cnt2 is signal S: STD_LOGIC_VECTOR(1 DOWNTO 0);begin process(clk) begin IF (clkevent and clk=1) then IF S=11 THEN S=00; ELSE S=S+1; END IF; END IF; END PROCESS;S0=S(0);S1=S(1);END RTL;总的仿真结果:25k的仿真图实验五 序列检测器的设计一、实验目的:1、掌握序列检测器的工作原理;2、学会用状态机进行数字系统设计;二、实验器材:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验原理与内容:1、 序列检测器的基本工作过程:序列检测器用于检测一组或多组由二进制码组成的脉冲序列信号,在数字通信中有着广泛的应用。当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。方框图如下:2、 状态机的基本设计思想:在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。同时,状态机的设计方法也是数字系统中一种最常用的设计方法。一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。在摩尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。米立机的输出则是当前状态值、当前输出值和当前输入值的函数。本实验要从一串二进制码中检测出一个已预置的8 位二进制码10001110,每增加一位二进制码相当于增加一个状态,再加上一个初始态,用9个状态可以实现。其过程如下:注意:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论