EDA实验报告及课程设计_第1页
EDA实验报告及课程设计_第2页
EDA实验报告及课程设计_第3页
EDA实验报告及课程设计_第4页
EDA实验报告及课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

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="111100"or clr='1')then out1<="000000"elsif

10、(clk'event and clk='1')then out1<=out1+'1'if(out1="000000")then a<='1'else a<='0'end if;end if;end process;process(a,clr) isbeginif(out2="111100"or clr='1')then out2<="000000"elsif (a'event and a='1')th

11、en out2<=out2+1;end if;end process;end architecture artmei;实验图片:六,实验总结:这是我第一次上机写vhdl程序并运行。在开始写程序时我并不明白程序在maxplus2中是怎么运行的。所以我习惯性的按照c语言程序设计的思想来写。当然在综合的时候出现了很多错误,然后在老师的帮助下我明白了程序运行的方式。进程的运行时敏感信号发生变化的时候。在这次实验中我还学会了if语句的用法和注意事项。从而改变了我的编程思想。我编写的程序错误之处也就少了很多。实验四 序列检测器的设计一、实验目的:1、掌握序列检测器的工作原理;2、学会用状态机进行数字

12、系统设计;二、实验器材:pc机一台、eda教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验原理与内容:1、 序列检测器的基本工作过程:由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。2、 状态机的基本设计思想:在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。其过程如下:四、实验步骤:1、 充分理解状态机的工作原理,画出状态转换图;2、 写出源程序,按顺序进行处理;

13、3、 检查结果是否正确。五,实验代码;library ieee;use ieee.std_logic_1164.all;entity mei isport(clk:in std_logic; a:in std_logic; b:out std_logic);end entity mei;architecture artmei of mei istype states is(s0,s1,s2,s3,s4,s5,s6,s7,s8);signal ste:states; begin process(clk,a) is begin if(clk'event and clk='1'

14、;)then case ste is when s0=>if a='1' then ste<=s1; else ste<=s0; b<='0' end if; when s1=>if a='0' then ste<=s2; else ste<=s0; b<='0' end if;when s2=>if a='0' then ste<=s3; else ste<=s0; b<='0' end if;when s3=>if a

15、='0' then ste<=s4; else ste<=s0; b<='0' end if;when s4=>if a='1' then ste<=s5; else ste<=s0; b<='0' end if;when s5=>if a='1' then ste<=s6; else ste<=s0; b<='0' end if;when s6=>if a='1' then ste<=s7; else s

16、te<=s0; b<='0' end if;when s7=>if a='0' then ste<=s8; else ste<=s0; b<='0'end if;when s8=>ste<=s0; -if a(7)='0' then b<='1' end case;end if;end process;end architecture artmei;实验结果图片:六,实验总结:在这次实验中我还是学到了不少知识,这次我在写vhdl源程序代码时,先是用if语句编写的

17、,但是在综合是出现了大量的错误。后改为了case语句,学会了case语句的使用,也明白了case语句和if语句之间的区别。实验五 数字频率计的设计一、实验目的:1、学会数字频率计的设计方法;2、设计一个计数范围在01mhz的数字频率计;3、进一步掌握自顶向下的数字系统设计方法,并体会其优越性;二、实验器材:pc机一台、eda教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验原理与内容:1、 测频原理若某一信号在t秒时间里重复变化了n 次,则根据频率的定义可知该信号的频率fs 为: fs=n/t 通常测量时间t取1秒或它的十进制时间。频率计方框图如下:(1)、时基t 产生电路:提供准确的

18、计数时间t。晶振产生一个振荡频率稳定的脉冲,通过分频整形、门控双稳后,产生所需宽度的基准时间t的脉冲,又称闸门时间脉冲。(2)、计数脉冲形成电路:将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。(3)、计数显示电路:对被测信号进行计数,显示被测信号的频率。计数器一般采用多位10 进制计数器;控制逻辑电路控制计数的工作程序:准备计数显示复位准备下一次测量。2、 具体实现:(1)、测频控制逻辑电路(以1 秒为例)一种可能的时序关系:a) 10 进制计数器要求具有计数使能端cnten、复位端clr、进位输出端co。四、实验步骤:1、 画出实验原理方框图;2、 设计各个元件;3、 进行元件例化

19、;五,实验代码:library ieee;use ieee.std_logic_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

20、 1); begin process(clk,clr)is begin if clr='1'or g="00"then j<="0000000000" elsif clk'event and clk='1' then j<=j+1; end if;end process;process(text)isbeginif clr='1'then g<="00"elsif text'event and text='1'then if g=&quo

21、t;01"then g<="00" i<=j; else g<=g+1; end if;end if;end process;end architecture artmei;六,实验总结:在这次的实验中我学会的时钟信号的更深更全面的用法。其中包括在同一个进程之中只能有一个时钟信号,不可以有两个及其以上的时钟信号。即使是同一个时钟信号在一个进程中也只能用一次。只要出现clkevent and clk=1,maxplus2编译环境就会认为clk是时钟信号。还学会了一个编程技巧,用变量去计某一时间的状态。课程设计交通灯控制器一, 实验目的:实现高速公路

22、与乡间小路的交叉路口红绿灯的控制二、实验器材:pc机一台、eda教学实验系统一台、下载电缆一根(已接好)、导线若干三,实验功能与要求:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间.注;这段时间定义为20s时间)。3.高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯 (注:这段时间定义为60s)。过程分析:由上图可以看出只要小路没车,高速路就会通车。且是没有黄灯过度的。可以分四个状态来设计程序。状态一:小路没有车通过,这是应该是高速路亮绿灯。状态二,小路

23、有车出现,高速路指示灯要变成黄色。状态三,小路通车高速路指示灯为红色。状态四,小路指示灯由绿色变成黄色,向高速路通车变化时。四,实验内容:由题目要求知道,只要小路没有车,高速路就一直不断的通车。所以我们不关心高速路有没有车。我们只关心小路有没有车,所以我们一直检测小路有没有车的情况。当检测到小路有车的时候,我们就判断高速路的通车时间,如果高速路通车时间大于六十秒,就让小路通车。综上所述,我们只需要高速路和小路分别有红黄绿三个输入,再加上小路有无车的信号,所以我们只需要七个输入。五,实验结果与分析:代码如下:library ieee;use ieee.std_logic_1164.all;use

24、 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; -用high来判断高速路上有无车- hr,hy,hg,pr,py,pg这六个信号分别表示高速路和小路上红黄绿三个指示灯。architecture arjun of jun is-结构体部分说明type state_type is(a,b,c,d); -定义了一个状态变量

25、signal state:state_type; -定义了一个状态信号signal s:std_logic_vector(0 to 9); -定义了一个数组,用来当做计数器使用。signal clr,en:std_logic;beginprocess(clk)is -进程的开始部分beginif clk'event and clk='1' thenif clr='0' then s<="0000000000"elsif en='0' then s<=s;else s<=s+'1'end

26、 if;case state is -case语句的开始when a=>hr<='0'hy<='0'hg<='1' pr<='1'py<='0'pg<='0'if path='0' then state<=a;clr<='1'en<='1' else if s>"0000111100" thenstate<=b;clr<='0'en<

27、='0' else state<=a;clr<='1'en<='1' end if;end if;when b=>hr<='0'hy<='1'hg<='0' pr<='1'py<='0'pg<='0' if s="0000000101" then state<=c;clr<='0'en<='0'else state<=

28、b;clr<='1'en<='1'end if;when c=>hr<='1'hy<='0'hg<='0' pr<='0'py<='0'pg<='1'if path='0' then state<=a;clr<='0'en<='0'else if s="0000010100" thenstate<=d;clr<='0'en<='0' else state<=c;clr<='1'en<='1' end if;end if;when d=>hr<='1'hy<='0'hg<=

温馨提示

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

评论

0/150

提交评论