一位全加器_可编程逻辑器件VHDL实验报告

时间:2024.4.29

1.一位全加器实验报告

一、   实验目的要求

学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。设计程序独立完成全加器的仿真。全加器由两个半加器组合而成,原理类似。半加器不考虑低位进位,但有高位进位;全加器要考虑低位的进位且该进位和求和的二进制相加,可能获得更高的进位。

二、        设计方法与原理图

图1是一个一位二进制全加器电路图,由图1所示,由两个半加器和一个或门构成一个一位二进制全加器;ain,bin为全加器的输入端,cin为全加器的低位进位,sum是全加器的全加和,cout是全加器的全加进位端;从而实现一位二进制全加器。

(图1)一位二进制全加器原理图

三、        实验内容

按照教材上的步骤,在max plus II上进行编辑、编译、综合、适配、仿真。说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

四、源程序

library ieee;

use ieee.std_logic_1164.all;

entity full_adder is

port(a,b,cin:in std_logic;

cout,sum:out std_logic);

end entity full_adder;

architecture fd1 of full_adder is

component h_adder

port(a,b:in std_logic;

co,so:out std_logic);

end component;

component or2a

port(a,b:in std_logic;

c:out std_logic);

end component;

signal d,e,f:std_logic;

begin

u1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e);

u2:h_adder port map(a=>e,b=>cin,co=>f,so=>sum);

u3:or2a port map(a=>d,b=>f,c=>cout);

end fd1;

过程性截图

六、仿真结果

未命名0.bmp(图2)一位二进制全加器仿真结果

七、分析结果与总结

由图2,本实验的目标已达成,及通过编写VHDL语言实现一个一位二进制全加器。通过图2可知,对输入量a, b, cin三者来说可以通过b的频率为cin的两倍,a的频率为b的两倍来实现输入信号。而输出波形则完全符合真值表的理论值,即s的输出为,cout的输出为

由于本实验是给定源代码,也就是说本次实验只是一个简单的验证实验,只是让我们熟悉max plus II的操作环境与这个软件的使用方法。在实验中,还出现过这样的问题:输出波形出现很多毛刺,比对输入也有延迟。后来知道这只是因为max plus II原本就是按照元器件的真实特性进行的仿真,如果想要得到如图2一般的理想输出波形,只需在使用波形输出工具时选择理想波形再进行编译就可以了。


第二篇:111EDA实验报告


实验一  MaxplusⅡ软件的安装与使用

一、实验目的:

学习MaxplusⅡ软件的使用,包括软件安装及基本的使用流程。

本次实验是以半加器的原理图输入法设计为例,学习MaxplusⅡ软件的使用,体会用原理图输入法设计简单组合电路的方法和详细设计流程。掌握层次化设计的方法,并通过一位全加器的设计把握利用EDA软件进行原理图输入法进行电子线路设计的详细流程。为后续原理图的层次化设计打下基础。

本次实验不要求下载。

二、实验原理:

半加器可以通过调用基本的与、或、非门来实现。按照课本5.4节介绍的方法用原理图输入法设计一个半加器,然后将其封装成模块以备下次实验调用。

三、实验内容和步骤:

1、打开原理图编辑器,完成半加器的设计。

半加器原理图如下:

2、完成1位半加器的设计输入、目标器件选择、编译和仿真各步骤,详细的过程见教材5.4节相关内容。

仿真结果如下:

3、正确完成之后,选择File\create\Create Symbol file for current file,将文件变成一个包装好的单一元件模块待调用。

四、实验结果与总结:

   

实验二  用原理图输入法设计一位全加器

一、实验目的:

熟悉MaxplusⅡ软件的原理图输入法的层次化设计方法,并通过一位全加器的设计把握利用EDA软件进行原理图输入法进行电子线路层次化设计的详细流程。

本次实验要求进行下载验证。

二、实验原理:

一位全加器可以由两个半加器构成。可以利用上次实验设计的半加器模块,完成本次全加器的设计。本次全加器原理图文件是顶层文件。

三、实验内容和步骤:

1、打开原理图编辑器,调用上次实验包装好的1位半加器可画以下1 位全加器:

保存并完全编译,进行仿真,结果如下:

2、引脚锁定并下载:

ain=>     对应实验箱上的

bin=>     对应实验箱上的

cin=>     对应实验箱上的

sun=>     对应实验箱上的

cout=>     对应实验箱上的

3、引脚锁定后再重新进行编译,连接实验箱并进行下载。详细下载步骤见书上相关内容。注意第一次下载时的一些设定。

四、实验结果与总结:

实验三  用原理图输入法设计较复杂数字系统

一、实验目的:

熟悉原理图输入法中74系列等宏功能模块的使用方法,掌握更复杂的原理图层次化设计技术和数字系统设计方法。利用74248芯片模块完成BCD-7段码译码显示电路的设计。

二、实验原理:

该实验用到了74248芯片,该芯片主要为共阴极数码管提供七段码。74248芯片真值表及对应显示符号如下所示:L为低电平,H为高电平,X为任意态(H或L)。

BI/RBO灭灯输入:做输入端使用时,若BI为0,则无论其他输入端是什么电平,所有各段输出a——g均为0,字型熄灭。

LT试灯输入:当LT为0时,BI /RBO是输出端,且RBO=1,此时无论其他输入端是什么电平,所有各段输出a——g均为1,显示字型8。该输入端常用于检查74248本身及数码管的好坏。

RBI动态灭零输入:当LT=1时,若RBI=0,则当输入代码为0000时,各段输出均为低电平,对应的字型0熄灭,故成灭零端。此时BI/RBO时输出端,且RBO=0。当输入为其他代码时各段输出能正常显示对应字型。

LT=1RBI=0DCBA=0000时,RBO=0

LT=0或者LT=1RBI=1,则RBO=0

因此,对输入的0000,要想正常显示,要求LT和RBO都为1,而对其他代码,只要求LT=1即可。

在BCD-7段译码器原理图中,74248芯片的RBON脚(数码管的H脚即小数点)悬空没有用,故本实验所显示的符号不含有小数点。另外由于试验箱上数码管有8个(SM1-SM8),sel2-sel0作为选择数码管的位选信号。

三、实验内容与步骤:

1、打开原理图编辑器,完成BCD-七段译码显示电路的设计。包括原理图输入、编译、综合、适配、仿真。

实验原理图如下:

仿真结果如下:

2、引脚锁定并下载:

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

。。。。。。。。

引脚锁定后再重新进行编译,连接实验箱并进行下载。

四、实验结果与总结:

实验四  用波形图输入法设计简单数字电路

一、实验目的:

掌握MaxplusⅡ软件的波形图输入法设计方法,并通过一位热码循环电路的设计把握利用EDA软件进行波形图输入法设计电子线路的详细流程。

二、实验原理:

本次实验要设计一个一位热码循环电路,原理:clk为时钟信号,start为编码有效信号,低电平时有效,c3——c0为四个输出信号。当start信号有效时, c3-c0从1000-0100-0010-0001-1000循环显示,保持一位热码循环显示,如下图所示:

图1

三、实验内容与步骤:

1、选择MAX+plus II的菜单“File”中“New”对话框如下图2所示:选择“Waveform Editor file”。注意要选“WDF”文件类型。

 

图2                                       图3

2、选择菜单“Node”中的 “Insert Node….”选项,弹出“Insert Node”对话框,如图3所示。在接点名中填入需要增加的节点,选择节点类型。输完所有的节点,就可以把波形输进去了。

注意:c3-c0引脚的变化与时钟的上升沿是严格一致的,不能有延迟。参照图1输入好相关波形并存盘。具体步骤课参看教材6.3节相关内容。

3、完成项目的编译与仿真,仿真结果如下:

4、仿真通过后进行引脚锁定。引脚锁定信息如下:

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

。。。。。。。。

引脚锁定后再重新进行编译,连接实验箱并进行下载。

四、实验结果与总结:

实验五  用VHDL输入法设计七段译码器电路

一、实验目的:

熟悉VHDL程序的一般结构以及用VHDL语言设计组合逻辑电路的一般方法。要求用VHDL语言设计一个7段译码器,能实现四位二进制数到对应的十六进制数的译码功能,并完成设计输入、编译、仿真、硬件测试等过程。

二、实验原理:

VHDL程序通常包含库、程序包、实体、结构体、配置5个组成部分,其中实体和结构体是VHDL程序中不可缺少的最基本的两个组成部分。

组合电路的特点是电路任一时刻的输出仅与当时的输入有关,而与当前的状态无关。组合电路的设计只须注意如果采用条件语句,一定要采用完整的条件语句。

三、实验内容与步骤:

1、打开VHDL编辑器,完成七段译码器的设计。包括VHDL程序输入、编译、综合、适配、仿真。

实验程序如下(CASE语句实现):

LIBRARY  IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY DECODER IS

    PORT(INP:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

         OUTP:OUT BIT_VECTOR (6 DOWNTO 0);

               SELIN:IN BIT_VECTOR(2 DOWNTO 0);

         SELOUT:OUT BIT_VECTOR(2 DOWNTO 0));

END DECODER;

ARCHITECTURE ART4 OF DECODER IS

   BEGIN

   process(inp)

   begin

    CASE INP IS

     WHEN "0000"=>OUTP<= "0111111";

     WHEN "0001"=>OUTP<= "0000110";

     WHEN "0010"=>OUTP<= "1011011";

     WHEN "0011"=>OUTP<= "1001111";

     WHEN "0100"=>OUTP<= "1100110";

     WHEN "0101"=>OUTP<= "1101101";

     WHEN "0110"=>OUTP<= "1111101";

     WHEN "0111"=>OUTP<= "0000111";

      WHEN "1000"=>OUTP<= "1111111";

        WHEN "1001"=>OUTP<= "1101111";

        WHEN "1010"=>OUTP<= "1110111";

        WHEN "1011"=>OUTP<= "1111100";

        WHEN "1100"=>OUTP<= "0111001";

        WHEN "1101"=>OUTP<= "1011110";

     WHEN "1110"=>OUTP<= "1111001";

        WHEN "1111"=>OUTP<= "1110001";

     WHEN OTHERS=>NULL;

  END CASE;

 end process;

     SELOUT<=SELIN;

END ART4;

仿真结果如下:

2、引脚锁定并下载:

提示:在七段显示译码器实验时,可用拨码开关作为输入,一个数码管进行显示。

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

四、实验结果与总结:

实验六 用VHDL输入法设计计数器

一、实验目的:

熟悉VHDL程序的一般结构以及用VHDL语言设计计数器类型模块的描述方法。要求用VHDL语言设计设计实现一个异步清零、同步使能的16进制计数器,并完成设计输入、编译、仿真、硬件测试等过程。

二、实验原理:

计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。本实验设计实现16进制要求计数器有同步计数允许(/ENA低电平有效)和异步复位(/RESET低电平有效)输入及进位输出功能。计数器输入时钟可以用1MHZ或2HZ信号,显示计数值可以采用7段数码LED显示。

三、实验内容与步骤:

1、打开VHDL编辑器,完成16进制计数器的设计。包括VHDL程序输入、编译、综合、适配、仿真。

实验程序如下:16进制计数器程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT16 IS

  PORT(CLK:IN STD_LOGIC;

       RST:IN STD_LOGIC;

       ENB:IN STD_LOGIC;

       LD:IN STD_LOGIC;

       DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

       Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END;

ARCHITECTURE behave OF CNT16 IS

  SIGNAL q1:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

   PROCESS(CLK,RST,ENB,LD)

    BEGIN

      IF RST='0' THEN

       Q1<="0000";

      ELSIF CLK'EVENT AND CLK='1' THEN

        IF LD='1' THEN

          Q1<=DATA;

        ElSIF ENB='1' THEN

             Q1<=Q1+1;

        END IF;

      END IF;

    END PROCESS;

      Q<=Q1;

END BEHAVE;

仿真结果如下:

将计数器封装成模块,在顶层设计文件中调用计数器模块和上一实验中的译码器模块,完成计数显示功能,顶层原理图如下:

2、引脚锁定并下载:

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

=>     对应实验箱上的

四、实验结果与总结:

实验七  硬件电子琴电路验证实验

一、实验目的:

了解一般乐曲演奏电路设计方法;

通过本次实验熟悉VHDL语言的复杂系统的开发方法。

 二、实验原理:

     组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能够连续演奏所需的两个基本要素,设计演奏电路的关键就是获得这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。

音名与频率的关系:

音乐的十二平均率规定:每两个八度音(如简谱中的中音1 与高音1)之间的频率相差一倍。在两个八度音之间,又可分为十二个半音,每两个半音的频率比为 。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音名的频率,如下表所示。

简谱中音名与频率的关系:

由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频 数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。

三、实验步骤及实验现象:

1、  启动QuartusII7.0软件,打开工程Test27/songer文件,下载songer.sof程序。

2、  将8位拨码开关CTRL的(1)档设置为“ON”,短接主板上的SK2。

3、  将TJ1频率段设置为4Hz档,TJ5频率段设置为32768Hz档,TJ9频率段设置为12MHz档,其余的频率段不加以设置。

实验现象:实验下载完毕,接通电源后,扬声器就开始连续演奏“梁祝”乐曲,并且可以通过电位器SW1来调节喇叭声音的大小。其中数码管SM1显示乐曲演奏的音符(高、中、低1~7音符);数码管SM4显示乐曲音符的高、中、低音(‘0’代表低音,‘1’代表中音,‘2’代表高音);数码管SM2~SM3显示常零。本设计得到的电路可以作为一个乐曲演奏模块,如果要演奏出另外一首曲子,只需将该曲子出现的简谱分频预置数写入ToneTaba.VHD,再将该曲子的节拍表输入到NoteTabs.VHD中,编译后,编程下载即可。

实验一  MaxplusⅡ软件的安装与使用

一、实验目的:

学习MaxplusⅡ软件的使用,包括软件安装及基本的使用流程。

本次实验是以半加器的原理图输入法设计为例,学习MaxplusⅡ软件的使用,体会用原理图输入法设计简单组合电路的方法和详细设计流程。掌握层次化设计的方法,并通过一位全加器的设计把握利用EDA软件进行原理图输入法进行电子线路设计的详细流程。为后续原理图的层次化设计打下基础。

本次实验不要求下载。

二、实验原理:

半加器可以通过调用基本的与、或、非门来实现。按照课本5.4节介绍的方法用原理图输入法设计一个半加器,然后将其封装成模块以备下次实验调用。

三、实验内容和步骤:

1、打开原理图编辑器,完成半加器的设计。

半加器原理图如下:

2、完成1位半加器的设计输入、目标器件选择、编译和仿真各步骤,详细的过程见教材5.4节相关内容。

仿真结果如下:

3、正确完成之后,选择File\create\Create Symbol file for current file,将文件变成一个包装好的单一元件模块待调用。

四、实验结果与总结:

更多相关推荐:
一位全加器实验报告

计算机组成原理课程实验实验题目实验报告正文一律使用A4打印纸打印或手写页眉上标明XXXX课程实验字样页面设置上边距25cm下边距2cm右边距2cm左装订多倍行距125倍正文用宋体5号字页眉和页脚同宋体小5号字并...

一位全加器的实验报告

专业班级20xx级电子2班学号1020xx07姓名周娟EDA技术实验报告实验项目名称在QuartusII中用原理图输入法设计1位加法器实验日期20xx510实验成绩实验评定标准一实验目的熟悉利用QuartusI...

1位全加器实验报告

浙江万里学院实验报告课程名称可编程逻辑器件应用实验名称全加器的设计专业班级通信姓名黄文龙学号20xx014139实验日期20xx329一实验目的1掌握QuartusII软件使用流程2熟悉AlteraDE2实验板...

计算机实验报告---一位全加器

计算机实验报告一位全加器系别烟大软件工程专业班级学生姓名学生学号20xx25503223指导教师潘庆先一位全加器一实验目的用门电路设计一个一位二进制全加器二实验仪器ExpEXPERTSYSTEM软件ispLSI...

全加器实验报告

数电实验报告二组合逻辑电路半加器全加器及逻辑运算一实验目的1掌握组合逻辑电路的功能测试2验证半加器和全加器的逻辑功能3学会二进制数的运算规律二实验元器件数电实验箱集成芯片74LS0074LS1074LS5474...

全加器实验报告

南昌大学实验报告实验一全加器的设计学生姓名学号专业班级实验类型验证综合设计创新实验日期实验成绩一实验目的以一位二进制全加器为例熟悉利用QuartusII的原理图输入方法和文本输入法设计简单组合电路学习多层次工程...

EDA实验报告1_8位全加器

EDA技术与应用实验报告

FPGA一位全加器设计实验报告

题目1位全加器的设计一实验目的1熟悉QUARTUSII软件的使用2熟悉实验硬件平台的使用3掌握利用层次结构描述法设计电路二实验原理由于一位全加器可由两个一位半加器与一个或门构成首先设计半加器电路将其打包为半加器...

计算机组成原理一位全加器实验报告

实验二一位全加器实验姓名钱相州班级网工1201学号120xx10707实验环境1Windows20xx或WindowsXP2QuartusIIGW48PK2或DE2115计算机组成原理教学实验系统一台排线若干实...

全加器实验报告

深圳大学实验报告课程名称数字电路实验名称全加器学院信息工程学院专业班级06组号指导教师张金凤报告人陈鑫学号20xx800387实验地点N101实验时间20xx年11月26日星期三实验报告提交时间20xx年12月...

全加器 实验报告

深圳大学实验报告课程名称学院信息工程学院班级实验时间实验报告提交时间教务处制ByDZ

HDL实验报告一位全加器、4选一、16选一数选器

西安郵電學院VerilogHDL实验报告题目一位全加器4选一16选一数选器系部名称专业名称班级班内序号学生姓名指导教师时通信工程通信工程20xx119间一用门级电路实现一位加法器源文件moduleaddssum...

一位全加器实验报告(39篇)