VHDL实现全加器

简介: VHDL实现全加器

VHDL实现全加器

1.一位全加器

全加器是能够计算低位进位的二进制加法电路,一位全加器(FA)的逻辑表达式为:

F=A⊕B⊕Ci

Co=Ci(A⊕B)+AB

其中A,B为要相加的数,Ci为进位输入;F为和,Co是进位输出

真值表如下:

原理图如下:

因此在设计实体时,选定三输入二输出:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED;
ENTITY homework5 IS
  PORT(
    a,b,ci:IN STD_LOGIC;
    f,co:OUT STD_LOGIC
  );
END homework5;
ARCHITECTURE yejiayu OF homework5 IS
BEGIN
  f<=(a XOR b)XOR ci;               --F=A⊕B⊕Ci
  co<=((a XOR b)AND ci)OR(a AND b); --Co=Ci(A⊕B)+AB
END yejiayu;

保存编译后仿真如下:

2.四位全加器

(1)元件例化方法实现:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY  homework6 IS
  PORT(
  A0,A1,A2,A3,B0,B1,B2,B3:IN STD_LOGIC;
  F0,F1,F2,F3:OUT STD_LOGIC;
  CI:IN STD_LOGIC;
  CO:OUT STD_LOGIC
  );
END homework6;
ARCHITECTURE yejiayu OF homework6 IS
COMPONENT homework5           --COMPONENT语句来实现元件例化方法
  PORT(
  a,b,ci:IN STD_LOGIC;
  f,co:OUT STD_LOGIC
  );
END COMPONENT homework5;
SIGNAL S0,S1,S2:STD_LOGIC;
BEGIN
  U1:homework5 port map(A0,B0,CI,F0,S0);
  U2:homework5 port map(A1,B1,S0,F1,S1);
  U3:homework5 port map(A2,B2,S1,F2,S2);
  U4:homework5 port map(A3,B3,S2,F3,CO);
END yejiayu;

其中的homework5为上方一位全加器的实体文件

(接下来注意!!!)

首先,打开quratusII点击打开homework5文件

接着新建VHDL文件,写入四位全加器代码,保存至同一文件夹(必须在同一文件夹!!!)

接着在编译前点击settings按钮改变顺序(不然编译的是homework5当时我就倒在了这里)

选择homework6

再进行编译仿真

(2)简化实现四位全加器

通过调用 STD_LOGIC_UNSIGNED 包中的“+”号方法设计一个4位全加器

代码如下:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY homework7 IS
PORT(
  A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  F:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END homework7;
ARCHITECTURE yejiayu OF homework7 IS
BEGIN
PROCESS(A,B)
BEGIN
  F<="00000"+A+B;
END PROCESS;
END yejiayu;

编译仿真:

ᵎ(•̀㉨•́)و ̑̑ 加油

相关文章
|
5月前
|
监控 算法 编译器
初识 Verilog HDL , 什么是verilog HDL?
这是一篇关于Verilog HDL的学习笔记摘要。Verilog是一种硬件描述语言,用于数字系统的多层抽象设计,包括行为、数据流和结构。设计流程包括功能设计、Verilog描述、软件模拟、逻辑综合和硬件实现。模块是Verilog的基本单元,代表逻辑实体,通过并行运行和分层连接实现复杂系统。模块包含端口列表和定义,通过模块调用(实例化)实现子模块连接。Verilog的参数声明和预处理指令(如`define、`include和`timescale)增加了代码的可读性和灵活性。笔记指出Verilog与C语言有相似之处,易于学习。
|
6月前
|
C语言
逻辑电路与逻辑运算笔记分享
【4月更文挑战第1天】逻辑电路与逻辑运算笔记分享
95 4
|
6月前
|
算法 关系型数据库 计算机视觉
基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
|
存储
门电路
门电路是数字电路中最基本的组成单元之一,它由一组逻辑门组成,用于实现布尔逻辑运算。门电路可以根据输入信号的不同组合产生不同的输出信号,从而实现各种逻辑功能。本文将介绍门电路的基本原理、常见类型以及应用场景。 一、门电路的基本原理 门电路的基本原理是根据布尔代数的逻辑运算规则,将输入信号进行逻辑运算,然后输出结果。门电路通常由多个逻辑门组成,每个逻辑门都有一个或多个输入端和一个输出端。逻辑门根据输入信号的不同组合,产生不同的输出信号。常见的逻辑门有与门、或门、非门、异或门等。 与门是最基本的逻辑门之一,它的输出信号只有在所有输入信号都为1时才为1,否则为0。或门是另一种常见的逻辑
143 0
|
人工智能 BI C语言
5.2.1_电路的基本原理、加法器设计
计算机组成原理之电路的基本原理、加法器设计
324 0
5.2.1_电路的基本原理、加法器设计
|
人工智能 BI
Verilog 的连续赋值
连续赋值语句是 Verilog 数据流建模的基本语句,用于对 wire 型变量进行赋值。:
162 0
|
人工智能 编译器 异构计算
FPGA(3)--VHDL及原理图--4位全加器
FPGA(3)--VHDL及原理图--4位全加器
622 0
FPGA(3)--VHDL及原理图--4位全加器
Verilog语法入门(四)一位全加器
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
197 0