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

更新时间:2023-11-23 05:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数字电路与VHDL设计》实验报告

题目:用原理图输入法设计8位全加器

专业: 计算1011

学号: 2010810

姓名: 佐伊伦

2012-2013学年第二学期

一.设计目的

1.利用Quartus II的原理图输入法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计掌握原理图输入方式的电子设计的详细流程。

二.设计内容

1.建立一个高层次的原理图设计,利用已经设计好的1位全加器,将其转换成模块,构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。

三.程序设计原理

将8个一位全加器组合,如图所示

四.程序流程图

开始 设置输入输出端循环调用一位全加器8次 例化语句 编译运行 结束 五.源程序

顶层文件

library ieee;

use ieee.std_logic_1164.all; entity f_adder_8bit is

port(a,b: in std_logic_vector(7 downto 0); sum: out std_logic_vector(7 downto 0); cout: out std_logic); end entity f_adder_8bit;

architecture fd8 of f_adder_8bit is

component vhdl1 --diao yong 1 wei quan jia qi sheng ming yu ju port (

ain:in std_logic; bin:in std_logic; cin:in std_logic; sum:out std_logic; cout:out std_logic );

end component;

signal c:std_logic_vector(8 downto 0); begin

c(0)<='0'; cout<=c(8);

g1:for i in 0 to 7 generate

u:vhdl1 port map(ain=>a(i),bin=>b(i),cin=>c(i),cout=>c(i+1),sum=>sum(i)); end generate;

end architecture fd8;

一位全加器

LIBRARY IEEE; --1位二进制全加器顶层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY vhdl1 IS

PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY vhdl1;

ARCHITECTURE fd1 OF vhdl1 IS

COMPONENT vhdl2 --调用半加器声明语句 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; --定义3个信号作为内部的连接线。 BEGIN

u1 : vhdl2 PORT MAP(a=>ain,b=>bin,co=>d,so=>e); --例化语句 u2 : vhdl2 PORT MAP(a=>e, b=>cin, co=>f,so=>sum); u3 : or2a PORT MAP(a=>d,b=>f, c=>cout); END ARCHITECTURE fd1;

半加器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY vhdl2 IS

PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY vhdl2;

ARCHITECTURE fh1 OF vhdl2 is BEGIN so <= NOT(a XOR (NOT b)) ; co <= a AND b ; END ARCHITECTURE fh1;

或门

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS

PORT (a, b : IN STD_LOGIC; c: OUT STD_LOGIC); END ENTITY or2a;

ARCHITECTURE fh1 OF or2a is BEGIN c<=a or b ;

END ARCHITECTURE fh1;

六.调试过程

对8位全加器进行调试

输入:ain SW7~SW0; bin SW15~SW8 进位 LEDR8 输出:LEDR7~LEDR0 初始化:SW7~SW0 ,SW15~SW8全部按下。LED灯全灭 拨动的开关 输入ain值 输入bin值 输出sum LED亮灯情况 SW1,SW9 00000010 00000010 00000100 LEDR2亮 SW1,00000011 00000011 00000110 LEDR2,LEDR1亮 SW0,SW9,SW8 SW7,SW15 10000000 10000000 00000000 LEDR8亮 SW7~SW0, SW15~SW8 , 波形设置

11111111 11111111 11111110 cout=1 LEDR7~LEDR1亮 LEDR8亮

七.遇到的问题及解决方法

1.本次实验,主要遇到的问题是对于波形的仿真问题,在仿真之前要先画好器件的连接图,而相应的输入输出端口的设置只要出现一个错误就会导致结果的不正确,因此,我之前由于各种原因,使得结果一直出错,后来经过多次检查以及排查方才解决了问题。

本文来源:https://www.bwwdw.com/article/cz7v.html

Top