【基于FPGA的芯片设计】4位超前进位加法器

这篇具有很好参考价值的文章主要介绍了【基于FPGA的芯片设计】4位超前进位加法器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

实验原理

源代码

仿真代码

管脚配置


实验板卡:xc7a100tlc sg324-2L,共20个开关

实验原理

超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

 超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

 超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

 超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

 超前进位加法器,fpga开发,vivado,数字电路,计算机组成原理

源代码

顶层模块

`timescale 1ns / 1ps

module Four_Bits_Lookahead_Adder(a,b,cin,S,C);
    input [3:0] a;
    input [3:0] b;
    input cin;
    output [3:0] S;
    output C;
    wire [4:1] c;
    wire drop;
    
    Lookahead uut(a,b,cin,c);
    assign C=c[4];
    Full_Adder u1(a[0],b[0],cin,S[0],drop);
    Full_Adder u2(a[1],b[1],c[1],S[1],drop);
    Full_Adder u3(a[2],b[2],c[2],S[2],drop);
    Full_Adder u4(a[3],b[3],c[3],S[3],drop);
endmodule

超前进位模块

`timescale 1ns / 1ps

module Lookahead(a,b,cin,C);
    input [3:0] a;
    input [3:0] b;
    input cin;
    output [4:1] C;
    wire [3:0] G;
    wire [3:0] P;
    
    assign G[0]=a[0]&b[0];
    assign G[1]=a[1]&b[1];
    assign G[2]=a[2]&b[2];
    assign G[3]=a[3]&b[3];
    
    assign P[0]=a[0]|b[0];    
    assign P[1]=a[1]|b[1];
    assign P[2]=a[2]|b[2];
    assign P[3]=a[3]|b[3];
    
    assign C[1]=G[0]|(P[0]&cin);
    assign C[2]=G[1]|(P[1]&G[0])|(P[1]&P[0]&cin);
    assign C[3]=G[2]|(P[2]&G[1])|(P[2]&P[1]&G[0])|(P[2]&P[1]&P[0]&cin);
    assign C[4]=G[3]|(P[3]&G[2])|(P[3]&P[2]&G[1])|(P[3]&P[2]&P[1]&G[0])|(P[3]&P[2]&P[1]&P[0]&cin);
endmodule

全加器模块

`timescale 1ns / 1ps

module Full_Adder(a,b,cin,S,C);
    input a,b,cin;
    output S,C;
    wire S1,T1,T2,T3;
xor
    X1(S1,a,b),
    X2(S,S1,cin);

and
    A1(T3,a,b),
    A2(T2,b,cin),
    A3(T1,a,cin);
    
or
    O1(C,T1,T2,T3);
endmodule

仿真代码

`timescale 1ns / 1ps

module sim_Four_Lookahead_Adder();
    reg [3:0] a;
    reg [3:0] b;
    reg cin;
    wire [3:0] S;
    wire C;
    Four_Bits_Lookahead_Adder uut(
        a[3:0],
        b[3:0],
        cin,
        S[3:0],
        C
        );
    initial begin
        a[3:0]=0;
        b[3:0]=0;
        cin=0;
    end
    always 
    #10
    {a[3],a[2],a[1],a[0],b[3],b[2],b[1],b[0],cin}={a[3],a[2],a[1],a[0],b[3],b[2],b[1],b[0],cin}+1;
endmodule

管脚配置

注:vivado版本为2018版,板卡为xc7a100tlcsg324-2L文章来源地址https://www.toymoban.com/news/detail-736162.html

set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN V5} [get_ports a[3]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN T4} [get_ports a[2]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN V6} [get_ports a[1]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN T5} [get_ports a[0]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN T6} [get_ports b[3]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN V7} [get_ports b[2]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN R8} [get_ports b[1]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN U9} [get_ports b[0]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN T9} [get_ports cin]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN U6} [get_ports C]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN R5} [get_ports S[3]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN U7} [get_ports S[2]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN R6} [get_ports S[1]]
set_property -dict {IOSTANDARD LVCMOS18 PACKAGE_PIN R7} [get_ports S[0]]

到了这里,关于【基于FPGA的芯片设计】4位超前进位加法器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Verilog快速入门(8)—— 4bit超前进位加法器电路

    (1) 四选一多路器 (2)异步复位的串联T触发器 (3)奇偶校验 (4)移位运算与乘法 (5)位拆分与运算 (6)使用子模块实现三输入数的大小比较 (7)4位数值比较器电路 (8)4bit超前进位加法器电路 (9)优先编码器电路① (10)用优先编码器①实现键盘编码电路 (11)8线-3线优先编码器 (12)使用8线-3线

    2024年02月04日
    浏览(35)
  • 使用FPGA实现逐级进位加法器

    逐级进位加法器就是将上一位的输出作为下一位的进位输入,依次这样相加。下面以一个8位逐级进位加法器给大家展示。 我增加了电路结构,应该很容易理解吧。 下面我也列举了一位加法器,可以看下。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity adder1 is

    2024年04月23日
    浏览(25)
  • Verilog数字系统设计——带进位的8位加法器

    试分别使用门级原语和always 语句设计带进位的8位加法器,要求编制测试模块对实现的逻辑功能进行完整的测试; 使用门级原语设计时注意先在草稿上做出该加法器的门级设计; 如有余力可以进一步使用门级原语设计出带超前进位链的8位加法器(期末有加分); 实验提交

    2024年02月15日
    浏览(33)
  • FPGA实验一:层次法设计组合电路(加法器)

    目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果及分析

    2024年02月12日
    浏览(30)
  • FPGA加法器实现与资源消耗-四位数加法器

    测试在实现半加器和全加器的基础上开始实现多位数的加法器 可以按照一位全加器,然后循环实现多位加法器。 相加正确,功能正确。 可能看不太清,但是基本就是按照与、或、异或进行连接,而且是串行实现的。 分析可知,工具使用两个查找表(SUM[0]_INST_0,SUM[1]_INST_0)实

    2024年02月03日
    浏览(35)
  • 【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)
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 利用已设计好的四位先行进位电路构造四位快速加法器,其引脚定

    2024年02月02日
    浏览(94)
  • [FPGA]用Verilog写一个简单三位二进制加法器和减法器

    加法器和减法器是数字电路中的基本组件,它们可以对二进制数进行算术运算。加法器可以将两个或多个二进制数相加,得到一个和和一个进位。减法器可以将两个二进制数相减,得到一个差和一个借位。加法器和减法器可以用来实现更高级的运算,例如乘法、除法、移位等

    2024年02月04日
    浏览(36)
  • FPGA学习笔记(1):使用Verilog实现常见的加法器

    本文使用VerilogHDL实现一些简单的加法器,本人水平有限,希望大佬能够多指证 Quartus Prime(18.0) Modelsim 半加器可以用于计算两个单比特二进制数的和,C表征进位输出,S表述计算的结果。 半加器的真值表 化简以后的逻辑表达式可以表达为: s = a’b+ab’ c = ab Verilog 代码块 全加

    2024年02月09日
    浏览(33)
  • 【FPGA & Verilog】4bitBCD码加法器+7段数码管

    顶层文件: module add_bcd( input [9:0]I_1, input [9:0]I_0, input clk, input rst_n, output [7:0]seg, output [7:0]value, output select, output  [3:0]encode_1, output  [3:0]encode_0, output  [3:0]high_bit, output  [3:0]low_bit ); assign value ={high_bit,low_bit}; encoder encoder_inst2( .in(I_1), .out(encode_1) ); encoder encoder_inst1( .in(I_0), .out(e

    2024年01月18日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包