. .
. . .
《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的兴趣,毕竟这些设计是一次全新的设计过程,从编程到最后的仿真,都是由我们自己创作出来的,也可以在作品中假如自己的思想,开始由于对设计没有什么概念或者对知识的不完全理解,所以开始感觉很困难,在老师的指导下,我们完成了自己的设计。
团队合作是实验能够完成的一大主因。我们团队通过每一次的合作和分工,明确每一个人的任务和每次实验的目标,在遇到困难时,我们细心沟通,以寻求一个完美的解决方案,团队的力量是巨大的,感我的队友,感我们一起努力和奋斗。
相关热词搜索: 实验 基础 报告 技术 EDA