资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一 MAX plusII及开发系统使用一、实验目的1、 熟悉利用MAX-plus的原理图输入方法设计简单的组合电路2、 掌握层次化设计的方法3、 熟悉DXT-B型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面:1、 实验器材集中化,所有实验基本上在一套实验设备上进行。传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致;2、 实验耗材极小(基本上没有耗材);3、 在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;4、 下载后,实验结果清晰;5、 实验仪器损耗少,维护简单;下面,我们就本套实验设备做一个简单的介绍。(一)Max+plus10.0的使用。1、Max+PlusII软件的安装步骤:第一步:系统要求奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果大家只进行仿真的话,对系统没要求)第二步:安装点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,将此文件复制到你的安装目录下(你的安装目录可放在任一个驱动器下,然后建立一个Max10的文件夹,将系统安装在此文件夹中,安装后此文件夹中会有三个文件夹)的任一个文件夹中,要清楚位置。第四步:注册启动Max+PlusII 软件,可以从开始-程序-Altera-Max+PlusII 打开,也可以建立一个快捷方式在桌面上。启动软件后,会有弹出一个对话框,点击是或否都可以,然后进入系统。点击菜单中的Options,然后选中License菜单项,打开弹出一个注册对话框,在注册文件路径中打开你第三步中复制位置的License 文件,然后点击OK,注册完毕。2、 max+plus软件基本设计流程注意:实验时必须严格按照上述流程进行,如实验中遇到问题,举手向老师提出,严禁随意乱做!(二)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、选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。然后下载,进行硬件测试,检验结果是否正确。五、思考题:为了提高加法器的速度,如何改进以上设计的进位方式? 六、实验过程及结果:思考题:答:把元件的串行进位改为并行进位。因为串行进位是逐级进位的,延时较大,而并行进位 是同时进行不存在依赖关系,故并行进位会提高加法器的速度。 二 高速四位乘法器设计一、 实验目的1.熟悉利用MAX-plus的原理图输入方法设计简单的组合电路2.掌握层次化设计的方法3.掌握高速乘法器的设计方法二、 实验原理根据乘法的运算规则,不难得出下图所示的乘法器的原理框图。4位加法器可以选择74283,b0*a,b1*a, b2*a,b3*a实际就是1位和4位的与运算,如下图所示。 由原理框图不难得出如图2.1所示的电路原理图。三、 实验内容 按以上原理实现一个高速4位乘法器四、 实验步骤1.如上图所示,利用MAX-plus中的图形编辑器设计1-4的二进制乘法器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。注意:编译之前必须将文件设为当前文件。2.建立一个更高得原理图设计层次,如图2.1所示,利用前面生成的1-4的二进制乘法器和调用库中的74283元件设计一高速4位乘法器3.选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。然后下载,进行硬件测试,检验结果是否正确。五。思考题:除了以上方法是否还有其他实现高速乘法的方法?图2.1高速4位乘法器电路原理图六、实验结果:思考题:把元件的串行进位改为并行进位。因为串行进位是逐级进位的,延时较大,而并行进位 是同时进行不存在依赖关系,故并行进位会提高乘法器的速度。综合性设计实验部分 实验一 秒表的设计一、实验目的:1、 熟练利用VHDL语言进行数字系统设计;2、 掌握数字系统的设计方法自顶向下的设计思想;3、 掌握计数器的设计与使用;4、 根据秒表的功能要求设计一个秒表;二、实验设备:PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干三、实验要求:1、 有秒、分计数,数码扫描显示输出;2、 有清零端和计数使能端;3、 在功能允许的情况下,可自由发挥;四、实验原理:1、 功能描述:秒表是一种计时的工具,有着很广泛的用途。本实验中的秒表要求有两个功能按钮:一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。在数码管上采用扫描显示输出。2、 基本原理:本实验中用到的主要元件有计数器、控制逻辑、数据选择器和译码器等。秒、分都是60 进制计数,所以必须采用两个60 进制的计数器(或6 进制计数器与10 进制计数器的组合);控制逻辑主要是用来实现计数和清零。基本方框图如下:注意:计数器必须有进位输出、计数使能端和清零端。3、 自顶向下的设计方法:自顶向下的设计方法是数字系统设计中最常用的设计方法,也是基于芯片的系统设计的主要方法。它的基本原理框图如下:自顶向下的设计方法利用功能分割手段将设计由上到下进行层次化和模块化,即分层次、分模块进行设计和仿真。功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。如此分割,逐步的将系统细化,将功能逐步具体化,模块化。高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。(注意:这里所说的模块可能是芯片或电路板。)五、实验步骤:1、 采用自顶向下的设计方法,首先将系统分块;2、 设计元件,即逻辑块;3、 一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。六、实验报告1、写出实验源程序,画出仿真波形;2、总结实验步骤和实验结果;3、心得体会本次实验中你的感受;你从实验中获得了哪些收益;本次实验你的成功之处;本次实验中还有待改进的地方;下次实验应该从哪些地方进行改进;怎样提高自的实验效率和实验水平等等。4、完成实验思考题。七、问题与思考设计一个600的递减计数器。八、实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jishuqi isport(clk,clr:in std_logic; sec,en:buffer std_logic_vector(0 to 5);end entity;architecture art of jishuqi is signal ca:std_logic;begin process(clk,clr) is begin if clr=1 or sec=111100 then sec=000000; elsif clkevent and clk=1 then sec=sec+1; if sec=111011 then if en=111011 then en=000000; else en=en+1; ca=0; end if; end if; end if; if sec=000000 then ca=1; else ca=0; end if; end process;end architecture;九、仿真波形:十、 心得体会: 经过这次秒表的设计,对于maxplus的使用有了更好的理解,而且在程序的设计上也有了更好的想法,程序的书写不同于C语言,VHDL更为严谨简练。附加:设计一个600的递减计数器:程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter60 is port ( clk : in std_logic; clr : in std_logic; DOUT : out std_logic_vector(5 downto 0) ); end counter60; architecture rt1 of counter60 is signal data_r:std_logic_vector(5 downto 0); begin process(clk,clr) begin if clr = 1 then data_r = 000000; else if clkevent and clk = 1 then if data_r = 000000 then data_r = 111011; else data
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号