当前位置:范文大全 > 调查报告 > EDA技术基础实验报告_eda实验报告完整版

EDA技术基础实验报告_eda实验报告完整版

时间:2021-11-04 14:45:12 浏览次数:

 . .

  . . .

 《EDA技术基础》

 实验报告

 学院:信息科学技术学院

 专业:电子信息工程

 指导教师:龙翔

 完成日期:2013年12月

 目录

 实验一 MAX-plusll 及开发系统使用………………………….. 3

 实验二 高速四位乘法器设计……………………………………6

 实验三 秒表的设计……………………………………………… 9

 实验四 序列检测器的设计……………………………………… 13

 实验五 数字频率计的设计……………………………………… 18

 六 实验总结………………………………………… 20

 实验一

 一:实验名称:

 MAX-plusll 及开发系统使用

 二 :实验容

 利用MAX-plusII中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件。

 2.建立一个更高的原理图设计层次,利用前面生成的半加器元件设计一个全加器,进行编译、仿真,并将其设置成为一个元件。

 3.再建立一个更高的原理图设计层次,利用前面生成的半加器元件设计一个全加器,进行编译、仿真。

 4.选择器件“Assign” “Device” “MAX7000S” “EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。然后下载,进行硬件测试,检验结果是否正确。

 三.实验程序

 1).半加器图

 2)全加器图

  3)四位全加器

 四:仿真图

 1).半加器仿真图

 2).全加器仿真图

 3).四位全加器仿真图

 实验二

 一:实验名称

 高速四位乘法器设计

 二: 实验容

 1.利用MAX-plusⅡ中的图形编辑器设计1-4的二进制乘法器,进行编译、仿真,并将其设置成为一元件,命名为and14。

 2.建立一个更高得原理图设计层次,利用前面生成的1-4的二进制乘法器和调用库中的74283元件设计一高速4位乘法器。

 三:实验程序

 1.

 2.

 四:仿真图

 实验三

 一:实验名称

 秒表的设计

 二:实验容

 (一)、实验步骤

 1、 采用自顶向下的设计方法,首先将系统分块;

 2、 设计元件,即逻辑块;

 3、 一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。

 (二)、实验程序设计原理

 实验程序如三所示,其中输入信号分别为使能信号ENA、清零信号CLR、时钟信号CLK,输出信号有秒针信号CA和分针信号CB。实验原理为通过始终信号,控制两个计数器的计数来实现的,当始终上升沿到来时,对信号CAI进行计数,当CAI计数达到59,则产生一个进位1,从而对信号CBI进行计数,即信号CAI每次达到59就对信号CBI进行计数一次,同时下个时钟上升沿到来时,信号CAI复位为0.当信号CBI达到59时,则下个时钟上升沿到来时,信号CBI复位为0。

 三.实验程序

 LIBRARY IEEE;

 USE IEEE.STD_LOGIC_1164.ALL;

 USE IEEE.STD_LOGIC_UNSIGNED.ALL;

 ENTITY MS IS

 PORT(CLK,CLR,ENA:IN STD_LOGIC;

  CA,CB:BUFFER STD_LOGIC_VECTOR(5 DOWNTO 0));

 END ENTITY MS;

 ARCHITECTURE ARE OF MS IS

  SIGNAL CAI:STD_LOGIC_VECTOR(5 DOWNTO 0);

  SIGNAL CBI:STD_LOGIC_VECTOR(5 DOWNTO 0);

 BEGIN

 PROCESS (CLK,CLR,ENA) IS

  BEGIN

  IF CLR='1' THEN

  CAI<="000000";

  CBI<="000000";

  ELSIF CLK'EVENT AND CLK='1' THEN

  IF ENA='1' THEN

  IF CAI="111011" THEN CAI<="000000";CBI<=CBI+1;

  IF CBI="111011" THEN CBI<="000000";

  ELSE CBI<=CBI+1;

  END IF;

  ELSE CAI<=CAI+1;

  END IF;

  END IF;

  END IF;

 END PROCESS;

 CA<=CAI;

 CB<=CBI;

 END ARCHITECTURE ARE

 四:仿真图

  实验四

 一:实验名称

 序列检测器的设计

 二:实验容

 (一)、实验步骤

 1、 序列检测器的基本工作过程:

 序列检测器用于检测一组或多组由二进制码组成的脉冲序列信号,在数字通信中有着广泛的应用。当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。方框图如下:

 2、 状态机的基本设计思想:

 在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。同时,状态机的设计方法也是数字系统中一种最常用的设计方法。一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。在摩尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。米立机的输出则是当前状态值、当前输出值和当前输入值的函数。本实验要从一串二进制码中检测出一个已预置的8 位二进制每增加一位二进制码相当于增加一个状态,再加上一个初始态,用9个状态可以实现。其过程如下:

 注意:此图作为参考,检测不同的二进制码其过程不同!

 3、 实验容:

 写出状态机的源程序,编译后进行仿真,看结果是否正确。

 (二)、实验程序原理

 实验程序如三所示,其中RESET为复位输入信号,CLK为时钟输入信号,INS为输入信号,OUTS为输出信号,DATAOUT为状态输出信号。实验原理为当时钟上升沿每到来一次,INS输入一个信号,如果INS依次输入时,OUTS就输出一个‘1’信号,否则其他情况OUTS都是输出‘0’信号。而DATAOUT则根据输入信号INS来输出一个状态值。

 三.实验程序

 LIBRARY IEEE;

 USE IEEE.STD_LOGIC_1164.ALL;

 USE IEEE.STD_LOGIC_UNSIGNED.ALL;

 ENTITY ZT IS

  PORT(CLK,INS,RESET:IN STD_LOGIC;

  OUTS:OUT STD_LOGIC;

  DATAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

 END ENTITY ZT;

 ARCHITECTURE ART OF ZT IS

  TYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8);

  SIGNAL STATE:STATE_TYPE;

 BEGIN

 PROCESS(CLK,RESET,INS) IS

  BEGIN

  IF RESET='1' THEN

  STATE<=S0;

  ELSIF CLK'EVENT AND CLK='1' THEN

  CASE STATE IS

  WHEN S0=>IF INS='1' THEN STATE<=S1;ELSE STATE<=S0;END IF;

  WHEN S1=>IF INS='0' THEN STATE<=S2;ELSE STATE<=S1;END IF;

  WHEN S2=>IF INS='0' THEN STATE<=S3;ELSE STATE<=S1;END IF;

  WHEN S3=>IF INS='0' THEN STATE<=S4;ELSE STATE<=S1;END IF;

  WHEN S4=>IF INS='1' THEN STATE<=S5;ELSE STATE<=S0;END IF;

  WHEN S5=>IF INS='1' THEN STATE<=S6;ELSE STATE<=S2;END IF;

  WHEN S6=>IF INS='1' THEN STATE<=S7;ELSE STATE<=S2;END IF;

  WHEN S7=>IF INS='0' THEN STATE<=S8;ELSE STATE<=S1;END IF;

  WHEN S8=>STATE<=S0;

  WHEN OTHERS=>STATE<=S0;

  END CASE;

  END IF;

 END PROCESS;

 PROCESS(STATE)

 BEGIN

  CASE STATE IS

  WHEN S0=>DATAOUT<=;OUTS<='0';

  WHEN S1=>DATAOUT<=;OUTS<='0';

  WHEN S2=>DATAOUT<=;OUTS<='0';

  WHEN S3=>DATAOUT<=;OUTS<='0';

  WHEN S4=>DATAOUT<=;OUTS<='0';

  WHEN S5=>DATAOUT<=;OUTS<='0';

  WHEN S6=>DATAOUT<=;OUTS<='0';

  WHEN S7=>DATAOUT<=;OUTS<='0';

  WHEN S8=>DATAOUT<=;OUTS<='1';

  WHEN OTHERS=>DATAOUT<=;

  END CASE;

 END PROCESS;

 END ARCHITECTURE ART;

 四:仿真图

  实验五

 一:实验名称

 数字频率计的设计

 二:实验容

 (一)、实验步骤

 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、 元件例化图(方框图):

 、实验程序原理

 实验程序如三所示,输入信号为复位信号CLR、输入信号CLK和CLK1,其中CLK为时间计数,一个周期为1s,而CLK1为脉冲计数,一个周期为10ms。当信号SSI为‘0’时,信号CQI随着时钟信号CLK1的上升沿到来开始计数,没来一次上升沿计数一次。而当时钟信号CLK下降沿到来时,信号SSI变化为‘1’,则信号CQI停止计数。从而在1s时刻读取输出信号CQ的值,即为脉冲信号的频率。

 三.实验程序

 LIBRARY IEEE;

 USE IEEE.STD_LOGIC_1164.ALL;

 USE IEEE.STD_LOGIC_UNSIGNED.ALL;

 ENTITY PLJ IS

  PORT(CLK,CLR,CLK1:IN STD_LOGIC;

  SS:OUT STD_LOGIC;

  CQ:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

 END ENTITY PLJ;

 ARCHITECTURE ART OF PLJ IS

  SIGNAL CQI:STD_LOGIC_VECTOR(6 DOWNTO 0);

  SIGNAL SSI:STD_LOGIC;

 BEGIN

 PROCESS(CLK,CLR) IS

  BEGIN

  IF CLR='1' THEN SSI<='0';

  ELSIF CLK'EVENT AND CLK='0' THEN SSI<='1';

  END IF;

 END PROCESS;

 PROCESS(CLR,CLK1) IS

  BEGIN

  IF CLR='1' THEN CQI<="0000000";

  ELSIF CLK1'EVENT AND CLK1='1' THEN

  IF SSI='1' THEN

  CQI<="0000000";

  ELSE CQI<=CQI+1;

  END IF;

  END IF;

 END PROCESS;

 CQ<=CQI;SS<=SSI;

 END ARCHITECTURE ART;

 四:仿真图

 EDA实验总结:

 通过短短的五个实验,让我们对EDA这门学科有了更深刻的理解,平时课堂上所学的理论知识也通过实验有了一个实践和运用。

 EDA实验的编程是一个难点,但也是我们学习的重点,所以预习就显得格外重要,每次实验前事先编好实验所需的程序,实验课上就可以利用有限的时间进行程序的调试和仿真,遇到问题就可以及时向老师请教,以解决问题。

 在学习的过程中,刚开始接触这门课程感觉很棘手,因为许多知识的理解不透彻再加上编程软件为英文软件,对于软件操作不是很熟悉,很多时候一个小的问题或者某一步错误就导致程序编译不出来,遇到那密密麻麻的错误,大多时候我们很容易就会失去耐心,不会再有耐心继续去该错误,编程序。

 秒表的设计,序列检测器的设计,数字频率计的设计让我们真正有了一次EDA设计的经历,也极大的提升了我们队对CPLD的兴趣,毕竟这些设计是一次全新的设计过程,从编程到最后的仿真,都是由我们自己创作出来的,也可以在作品中假如自己的思想,开始由于对设计没有什么概念或者对知识的不完全理解,所以开始感觉很困难,在老师的指导下,我们完成了自己的设计。

 团队合作是实验能够完成的一大主因。我们团队通过每一次的合作和分工,明确每一个人的任务和每次实验的目标,在遇到困难时,我们细心沟通,以寻求一个完美的解决方案,团队的力量是巨大的,感我的队友,感我们一起努力和奋斗。