EDA实验报告及课程设计.doc

上传人:仙人指路1688 文档编号:4192764 上传时间:2023-04-09 格式:DOC 页数:24 大小:573.50KB
返回 下载 相关 举报
EDA实验报告及课程设计.doc_第1页
第1页 / 共24页
EDA实验报告及课程设计.doc_第2页
第2页 / 共24页
EDA实验报告及课程设计.doc_第3页
第3页 / 共24页
EDA实验报告及课程设计.doc_第4页
第4页 / 共24页
EDA实验报告及课程设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《EDA实验报告及课程设计.doc》由会员分享,可在线阅读,更多相关《EDA实验报告及课程设计.doc(24页珍藏版)》请在三一办公上搜索。

1、EDA实验报告及课程设计 学校:海 南 大 学学院:信息科学技术学院 专业:电 子 信 息 工 程姓名: 学号:20121601310112 实验一 MAX plusII及开发系统使用一、实验目的1、 熟悉利用MAX-plus的原理图输入方法设计简单的组合电路2、 掌握层次化设计的方法3、 熟悉DXT-B型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。1、 实验器材集中化,所有实验基本上在一套实验设备上进行。2、 实验耗材极小(基本上没有耗材);3、 在计

2、算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;4、 下载后,实验结果清晰;5、 实验仪器损耗少,维护简单;(一)4位全加器设计一个4位全加器可以由4个1位全加器构成,如图1.1所示,1位的全加器串行联接可以实现4位的二进制全加器。图1.1 4位全加器电路原理图1位全加器可以由两个半加器和一个或门构成,如图1.2所示。图1.2 全加器电路原理图根据实验原理中,采用层次法设计一个4位全加器。四、实验步骤1、如图1.3所示,利用MAX-plus中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件。2、建立一个更高得原理图设计层次,如图1.2所示,利用前面生成的半加器元件设计

3、一全加器,进行编译、仿真,并将其设置成为一元件3、再建立一个更高得原理图设计层次,如图1.1所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真。4、选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。然后下载,进行硬件测试,检验结果是否正确。五、实验结果:综合出来的只有输入输出端口的四位全加器:下图是仿真结果:六,实验总结:先做一位全加器,按照一位全加器原理图在maxplus2软件环境下连接各器件,将一位全加器综合成一个只留有端口的器件。再用刚刚综合出来的一位全加器连接做成四位全加器。然后再做综合处理,

4、再在maxplus2下输入波形仿真,输入端输入两个五,由上图可知,输出端输出为10.所以设计是正确的。实验二 高速四位乘法器设计一、 实验目的1.熟悉利用MAX-plus的原理图输入方法设计简单的组合电路2.掌握层次化设计的方法3.掌握高速乘法器的设计方法二、 实验原理根据乘法的运算规则,不难得出下图所示的乘法器的原理框图。4位加法器可以选择74283,b0*a,b1*a, b2*a,b3*a实际就是1位和4位的与运算,如下图所示。 由原理框图不难得出如图2.1所示的电路原理图。三、 实验内容 按以上原理实现一个高速4位乘法器四、 实验步骤1.如上图所示,利用MAX-plus中的图形编辑器设计

5、1-4的二进制乘法器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。2.建立一个更高得原理图设计层次,如图2.1所示,利用前面生成的1-4的二进制乘法器和调用库中的74283元件设计一高速4位乘法器3.选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。然后下载,进行硬件测试,检验结果是否正确。五、实验报告要求:详细描述4位乘法器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出乘法器的延时情况;最后给出硬件测试的流程和结果。图2.1高速4位乘法器电路原理图下图是

6、综合以后得到的,只有输入和输出端口的四位乘法器:下图是四位乘法器的仿真结果图:六,实验总结:先按照原理图在maxplus2软件环境下连接各器件,然后再maxplus2中综合连接好的电路图。再在maxplus2下输入波形,输入端入一个四和一个五,由上图可知,输出端输出为20.故设计的电路是正确的。实验三 秒表的设计一、实验目的:1、 熟练利用VHDL语言进行数字系统设计;2、 掌握数字系统的设计方法自顶向下的设计思想;3、 掌握计数器的设计与使用;4、 根据秒表的功能要求设计一个秒表;二、实验设备:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验要求:1、 有秒、分计

7、数,数码扫描显示输出;2、 有清零端和计数使能端;3、 在功能允许的情况下,可自由发挥;四、实验原理:1、 功能描述:本实验中的秒表要求有两个功能按钮:一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。在数码管上采用扫描显示输出。2、 基本原理:本实验中用到的主要元件有计数器、控制逻辑、数据选择器和译码器等。秒、分都是60 进制计数,所以必须采用两个60 进制的计数器(或6 进制计数器与10 进制计数器的组合);控制逻辑主要是用来实现计数和清零。基本方框图如下:3、 自顶向下的设计方法:自顶向

8、下的设计方法利用功能分割手段将设计由上到下进行层次化和模块化,即分层次、分模块进行设计和仿真。功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路.五、实验步骤:1、 采用自顶向下的设计方法,首先将系统分块;2、 设计元件,即逻辑块;3、 一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件六,实验代码;library ieee;-库和程序包的使用说明;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity m

9、ei is -vhdl语言的实体说明部分port(clk,clr: in std_logic;out1,out2: buffer std_logic_vector(0to5);end entity mei;architecture artmei of mei is -vhdl语言的结构体说明部分signal a: bit; -在结构体说明部分定义了一个信号abegin process (clk,clr) is -进程的开始beginif(out1=111100or clr=1)then out1=000000;elsif(clkevent and clk=1)then out1=out1+1;

10、if(out1=000000)then a=1;else a=0;end if;end if;end process;process(a,clr) isbeginif(out2=111100or clr=1)then out2=000000;elsif (aevent and a=1)then out2if a=1 then ste=s1; else ste=s0; bif a=0 then ste=s2; else ste=s0; bif a=0 then ste=s3; else ste=s0; bif a=0 then ste=s4; else ste=s0; bif a=1 then

11、ste=s5; else ste=s0; bif a=1 then ste=s6; else ste=s0; bif a=1 then ste=s7; else ste=s0; bif a=0 then ste=s8; else ste=s0; bste=s0; -if a(7)=0 then b=1; end case;end if;end process;end architecture artmei;实验结果图片:六,实验总结:在这次实验中我还是学到了不少知识,这次我在写vhdl源程序代码时,先是用if语句编写的,但是在综合是出现了大量的错误。后改为了case语句,学会了case语句的使

12、用,也明白了case语句和if语句之间的区别。实验五 数字频率计的设计一、实验目的:1、学会数字频率计的设计方法;2、设计一个计数范围在01MHz的数字频率计;3、进一步掌握自顶向下的数字系统设计方法,并体会其优越性;二、实验器材:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验原理与内容:1、 测频原理若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为: fs=N/T 通常测量时间T取1秒或它的十进制时间。频率计方框图如下:(1)、时基T 产生电路:提供准确的计数时间T。晶振产生一个振荡频率稳定的脉冲,通过分频整形、门控双稳后,产生所

13、需宽度的基准时间T的脉冲,又称闸门时间脉冲。(2)、计数脉冲形成电路:将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。(3)、计数显示电路:对被测信号进行计数,显示被测信号的频率。计数器一般采用多位10 进制计数器;控制逻辑电路控制计数的工作程序:准备计数显示复位准备下一次测量。2、 具体实现:(1)、测频控制逻辑电路(以1 秒为例)一种可能的时序关系:a) 10 进制计数器要求具有计数使能端CNTEN、复位端CLR、进位输出端CO。四、实验步骤:1、 画出实验原理方框图;2、 设计各个元件;3、 进行元件例化;五,实验代码:library ieee;use ieee.std_logi

14、c_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mei is port(clk,text,clr:in std_logic; i:buffer std_logic_vector(0 to 9);end entity mei;architecture artmei of mei is signal j:std_logic_vector(0 to 9); signal g:std_logic_vector(0 to 1); begin process(clk,clr)is begin if

15、 clr=1or g=00then j=0000000000; elsif clkevent and clk=1 then j=j+1; end if;end process;process(text)isbeginif clr=1then g=00;elsif textevent and text=1then if g=01then g=00; i=j; else g=g+1; end if;end if;end process;end architecture artmei;六,实验总结:在这次的实验中我学会的时钟信号的更深更全面的用法。其中包括在同一个进程之中只能有一个时钟信号,不可以有

16、两个及其以上的时钟信号。即使是同一个时钟信号在一个进程中也只能用一次。只要出现clkevent and clk=1,maxplus2编译环境就会认为clk是时钟信号。还学会了一个编程技巧,用变量去计某一时间的状态。课程设计交通灯控制器一, 实验目的:实现高速公路与乡间小路的交叉路口红绿灯的控制二、实验器材:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三,实验功能与要求:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间.注;这段时间定义为20S时间)。3.高速公路灯转为绿灯后,即使小路

17、上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯 (注:这段时间定义为60S)。过程分析:由上图可以看出只要小路没车,高速路就会通车。且是没有黄灯过度的。可以分四个状态来设计程序。状态一:小路没有车通过,这是应该是高速路亮绿灯。状态二,小路有车出现,高速路指示灯要变成黄色。状态三,小路通车高速路指示灯为红色。状态四,小路指示灯由绿色变成黄色,向高速路通车变化时。四,实验内容:由题目要求知道,只要小路没有车,高速路就一直不断的通车。所以我们不关心高速路有没有车。我们只关心小路有没有车,所以我们一直检测小路有没有车的情况。当检测到小路有车的时候,我们就判断高速路的通车时间,如

18、果高速路通车时间大于六十秒,就让小路通车。综上所述,我们只需要高速路和小路分别有红黄绿三个输入,再加上小路有无车的信号,所以我们只需要七个输入。五,实验结果与分析:代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jun is -实体部分port(clk,high,path:in std_logic; -端口说明部分,clk表示时钟信号 hr,hy,hg,pr,py,pg:out std_logic); -用high来判断高速路上有无车end entity jun; -用hi

19、gh来判断高速路上有无车- hr,hy,hg,pr,py,pg这六个信号分别表示高速路和小路上红黄绿三个指示灯。architecture arjun of jun is-结构体部分说明type state_type is(a,b,c,d); -定义了一个状态变量signal state:state_type; -定义了一个状态信号signal s:std_logic_vector(0 to 9); -定义了一个数组,用来当做计数器使用。signal clr,en:std_logic;beginprocess(clk)is -进程的开始部分beginif clkevent and clk=1 t

20、henif clr=0 then s=0000000000;elsif en=0 then s=s;else shr=0;hy=0;hg=1; pr=1;py=0;pg=0;if path=0 then state=a;clr=1;en0000111100 thenstate=b;clr=0;en=0; else state=a;clr=1;enhr=0;hy=1;hg=0; pr=1;py=0;pg=0; if s=0000000101 then state=c;clr=0;en=0;else state=b;clr=1;enhr=1;hy=0;hg=0; pr=0;py=0;pg=1;if

21、 path=0 then state=a;clr=0;en=0;else if s=0000010100 thenstate=d;clr=0;en=0; else state=c;clr=1;enhr=1;hy=0;hg=0; pr=0;py=1;pg=0;if s=0000000101 then state=a;clr=0;en=0;else state=d;clr=1;en=1;end if;end case; -case语句的结束end if; -if语句的结束end process; -进程的结束end architecture arjun; -源程序的结束仿真波形如下图所示:由上图可

22、以就看出当高速路通车时间小于60秒时,即使小路上出现车辆,但是高速路上面的三个指示灯还是不会发生变化。高速路依然是亮绿灯,小路还是红灯。由上图可看出;当高速公路上通行时间大于60秒,且小路有车通行时,高速路上的指示灯由绿灯变成了黄灯。小路上还是显示红灯。由上图可知:当高速路上的黄灯亮五秒以后,指示灯由黄灯变成了红灯。小路上的指示灯由红灯变成了绿灯。但是当小路上的通行时间小于20秒,且小路上的没有车通行时,小路的指示灯变成红色,而高速路上的指示灯由红色直接变为绿色。六,实验总结:由上面三幅图可以看出;当小路上的车的通行时间大于20秒时,先是小路上的指示灯由绿灯变成黄灯,高速路上还是红灯。但是五秒

23、黄灯之后,小路上的指示灯由黄灯变成了红灯,而高速路上的指示灯则是由红灯变成了绿灯。总结:经过两天的思考,终于将交通灯课程设计作业做完了。学到了不少编程技巧与方法。自已开始编程时我用的是if语句嵌套,我在一个if语句中嵌套了很多个if语句。但是思考了一天多还是没能设计成功,我不断的根据编译环境的运行方式来更改我的程序源代码,但是有一点是很难更改的,就是当程序在运行到等待黄灯计时时,下一次敏感信号发生变化时,如何才能再一次进入到上次的不满足处进行判断,且前面的if语句的判断条件不发生变化。If语句的多次嵌套会使得竞争冒险现象非常严重。所以这种方法不够好。最后我选择了用状态来做,先是定义一个状态,然后再用这个定义的状态去定义一个信号。经过半天的思考与调试最后把交通灯给做了出来。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号