基于Verilog与器件图的1位全加器实现

这篇具有很好参考价值的文章主要介绍了基于Verilog与器件图的1位全加器实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1位二进制数全加器

1位二进制数全加器是一个具有三个输入端和两个输出端的,能对被加数、加数以及来自低位的进位相加得到“全加和”与“全加进位”。

它的真值表如下:

Ai Bi Ci-1 Ci Si
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

它的逻辑表达式如下:

Ci = AiBi + Ci-1 ( Ai ^ Bi )
Si = Ai ^ Bi ^ Ci

Verilog HDL实现

module exp1_fulladder  (
    input   d1,
    input   d0,
    input   q1,
    output out,
    output q
); 
//按照逻辑表达式输出即可
assign out = d1 ^ d0 ^ q1;
assign q = (d1&d0)||(q1&&(d1^d0));
endmodule  

原理图实现

一位全加器代码,单片机,fpga开发

仿真

一位全加器代码,单片机,fpga开发

从仿真的结果来看,Ci与Si的结果与真值表相符合。

上板验证

我使用的板子是实验室的DE2-115开发板,开发板上面有拨动开关与LED,可以使用三个拨动开关来表示1位全加器的输入,两个LED表示两个输出的高低电平。

以下是板子的拨动开关与LED的引脚:

一位全加器代码,单片机,fpga开发

一位全加器代码,单片机,fpga开发

在Quartus里面,配置引脚,将三个输入口与三个Switch开关相连,两个输出口与LED引脚相连:

一位全加器代码,单片机,fpga开发

将板子接上电源,打开开关,将USB线连接板子与电脑,点击烧录,得到以下现象:

一位全加器代码,单片机,fpga开发

上板的现象也是与真值表相符合的。

扩展:4位全加器

前面制作了1位全加器,接下来可以使用四个1位全加器,做一个4位全加器。

一位全加器代码,单片机,fpga开发

将1位全加器的q与q1首尾相连,开头的输入进位接地,最后一个全加器的输出的进位表示是否溢出。按照上图连接,将实现4位全加器,并判断是否溢出。

一位全加器代码,单片机,fpga开发

使用VerilogHDL语言实现4位全加器的话,原理与上面一样。

代码如下:

 module exp1_fulladder_4bits(
    input [3:0]  d1,
    input [3:0]  d0,
    output   [3:0] out,
    output   q
 );
	 wire q1;
	 assign q1 = 1'b0;
	 
    wire [2:0] _q;
    exp1_fulladder u_exp1_fulladder(
        .d1     (d1[0]),
        .d0     (d0[0]),
        .q1     (q1),
        .out    (out[0]),
        .q      (_q[0])
    );

    exp1_fulladder u_exp1_fulladder_2(
        .d1     (d1[1]),
        .d0     (d0[1]),
        .q1     (_q[0]),
        .out    (out[1]),
        .q      (_q[1])
    );
    
    exp1_fulladder u_exp1_fulladder_3(
        .d1     (d1[2]),
        .d0     (d0[2]),
        .q1     (_q[1]),
        .out    (out[2]),
        .q      (_q[2])
    );

    exp1_fulladder u_exp1_fulladder_4(
        .d1     (d1[3]),
        .d0     (d0[3]),
        .q1     (_q[2]),
        .out    (out[3]),
        .q      (q)
    );
 endmodule

一位全加器代码,单片机,fpga开发

这一部分笔者使用的是小脚丫Max10-02SCM系列的芯片做的,引脚分布与上面的板子不一样。但都是控制8位输入(两个4位二进制数)高低电平,然后使用LED表示全加器输出。

四位全加器的实验现象如下:

当输入的数分别为0001与0010,结果为0011,没有溢出,只有最低为两个灯亮:

一位全加器代码,单片机,fpga开发

当输入的数分别为1001与1100,结果为0101,有溢出,溢出灯亮,第一位与第三位亮:

一位全加器代码,单片机,fpga开发

实验总结

本次实验使用FPGA制作了全加器,并从1位全加器扩展到了4位。复习了前面学习的数电知识,以及更进一步地练习了verilog语法与fpga的使用。

另外发现,蓝色LED与白色LED的工作功率似乎比红,绿,黄三色的LED大。在接上限流电阻的时候白灯与蓝灯会不亮。文章来源地址https://www.toymoban.com/news/detail-723693.html

到了这里,关于基于Verilog与器件图的1位全加器实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用Verilog编写1位全加器,并进行波形仿真

    Quartus II+ModelSiml 全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。

    2024年02月11日
    浏览(29)
  • 使用verilog编写三八译码器及四位全加器

    目录 一、三八译码器原理 二、使用verilog编写三八译码器 1.使用verilog代码如下: 2.verilog的数据类型 (1)wire类型 (2)reg类型 三、使用verilog编写全加器 1.一位全加器  2.四位全加器 3.八位全加器  总结 三八译码器的输入信号有三个,相当于有八个二进制编码可以输入,每个

    2024年02月04日
    浏览(31)
  • 【FPGA】Verilog:模块化组合逻辑电路设计 | 半加器 | 全加器 | 串行加法器 | 子模块 | 主模块

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:加法器   ​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月15日
    浏览(34)
  • 【Verilog】期末复习——设计带进位输入和输出的8位全加器,包括测试模块

    数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分为哪两类?它们各自的特点是什么? 期末复习——VerilogHDL描述数字逻辑电

    2024年01月23日
    浏览(27)
  • 基于Quartus件完成1位全加器的设计及4位全加器的设计

    (1)、半加器的设计 半加器: 指对输入的两个一位二进制数相加a与b,输出一个结果位sum和进位cout 半加器真值表: a b sum cout 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 半加器输出表达式: 项目创建: 打开Quartus创建新项目: 设置项目路径及名称(adder4位实验名命名): 选择芯片(EP4CE115

    2024年02月05日
    浏览(29)
  • FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

    1、半加器是指对输入的两个一位二进制数相加,输出一个半加结果位和半加进位的组合电路,是没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。 2、半加器的真值表如下; S位结果位,C为进位 3、由真值表可以推出半加器的逻辑表达式为: 4、半加器逻辑电

    2023年04月25日
    浏览(30)
  • FPGA实现1位全加器和4位全加器

    1、基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。 2、在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性。 num1和num2是加数,cin是低位进

    2024年02月05日
    浏览(30)
  • FPGA——1位全加器和4位全加器的实现

    1、半加器 半加器是实现两个一位二进制数加法运算的器件。它具有两个输入端(被加数A和加数B)及输出端Y。 是数据输入被加数A、加数B,数据输出S和数(半加和)、进位C。 A和B是相加的两个数,S是半加和数,C是进位数。 所谓半加就是不考虑进位的加法,它的真值表如下 (见表

    2024年02月04日
    浏览(55)
  • 【FPGA实验一】半加器全加器实现

    半加器 什么是半加器? 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 半加器的真值表 半加器表达式: 半加器电路图: 建立原理图 启动 Quartus II 软件,选择File-New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着

    2024年02月12日
    浏览(34)
  • FPGA—基于Quartus软件设计全加器

    本篇博客主要是基于Quartus软件件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。 1、半加器 1、定义: 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 2、真值表: A,B表示

    2024年02月06日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包