XILINX关于Adder/Subtracter加法器减法器 IP核的使用与仿真

这篇具有很好参考价值的文章主要介绍了XILINX关于Adder/Subtracter加法器减法器 IP核的使用与仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

平台:vivado21018.3,modelsim 10.6c

芯片:xc7k325tffg900-2 (active)

Adder/Subtracter IP可提供LUT和单个DSP48 slice加法/减法实现方案。Adder/Subtracter 模块可实现加法器 (A+B)、减法器 (A–B),以及可通过签名或未签名数据运行的动态可配置加法器/减法器。该功能能够以单个DSP48 slice方式实现,也能够以LUT方式实现。模块可以进行流水线处理。

支持256位数据位宽输入。

端口说明

xilinx加法器,fpga开发

信号

描述

详细

A[N:0]

Input

输入A

B[M:0]

Input

输入B

ADD

Input

控制通过添加器/减法器执行的操作(高=加法,低=减法,选择模式为加减模式有效)

C_IN

Input

进位输入

C_OUT

Output

进位输出

S[P:0]

Output

输出结果S

BYPASS

Input

旁路控制信号

CE

Input

时钟使能 高有效

CLK

Input

时钟输入

SCLR

Input

同步清除 高有效

SINIT

Input

同步初始化

SSET

Input

同步设置

配置界面

xilinx加法器,fpga开发

配置界面如上图所示

设置两个输入数据的数据位宽,设置计算方式为加法或者减法,设置数据输出位宽。注意数据输出位宽会根据不同输入类型产生不同计算结果。

xilinx加法器,fpga开发

 xilinx加法器,fpga开发

 第二页的配置主要是选型添加一些信号,这里值选泽勒时钟使能。

仿真代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2023/04/12 15:45:07
// Design Name: 
// Module Name: c_addsub_tb
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module c_addsub_tb;

reg     [140:0]  a;
reg     [ 99:0]  b;
reg              clk;
reg              ce;
reg              rst_n;
wire    [140:0]  c;



c_addsub_0 u_c_addsub_0 (
    .A                          (a                          ),// input wire [140 : 0] A
    .B                          (b                          ),// input wire [99 : 0] B
    .CLK                        (clk                        ),// input wire CLK
    .CE                         (ce                         ),// input wire CE
    .S                          (c                          )// output wire [140 : 0] S
);

    //------------------------------------------------------
    //复位参数
    //------------------------------------------------------
    integer            i;
    //设置复位参数
    initial
    begin
            $display("[%t] : reset begin...", $realtime);
            rst_n = 0;
            for( i=0 ; i<100 ; i=i+1)
            begin
                    @(posedge clk );
            end
            $display("[%t] : reset stop...", $realtime);
            rst_n = 1;

            #1000;
            $finish;
    end

    

    initial
    begin
            clk = 0;
            rst_n = 0;
            ce  = 1;
    end

    reg [3:0] cnt   ;
    always@(posedge clk )
    begin
            if(rst_n == 1'b0)
            begin
                    cnt     <= 4'h0;
            end
            else if(cnt == 4'h4)
                    cnt     <= 4'h0;
            else
                    cnt     <= cnt + 4'h1;
    end

    always@(posedge clk )
    begin
            if(rst_n == 1'b0)
            begin
                    a   <= 46'h0;
                    b   <= 7'h0;
            end
            else if(cnt == 4'h4)
            begin
                    a   <= a + 46'h1;
                    b   <= b + 7'h1;
            end
            else
            begin
                    a   <= a;
                    b   <= b;
            end
    end


    always#5 clk = ~clk;



endmodule

仿真结果

仿真tb,可以看到,在设置为延迟4个时钟周期后,计算结果保存在输出端口上。

xilinx加法器,fpga开发文章来源地址https://www.toymoban.com/news/detail-609592.html

到了这里,关于XILINX关于Adder/Subtracter加法器减法器 IP核的使用与仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)

    加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也

    2024年02月14日
    浏览(54)
  • 【FPGA】Verilog:BCD 加法器的实现 | BCD 运算 | Single-level 16 bit 超前进位加法器 | 2-level 16-bit 超前进位加法器

    0x00 BCD 运算 在 BCD 中,使用4位值作为操作数,但由于只表示 0 到 9 的数字,因此只使用 0000 到 1001 的二进制数,而不使用 1010 到 1111 的二进制数(don\\\'t care)。 因此,不能使用常规的 2\\\'complement 运算来计算,需要额外的处理:如果 4 位二进制数的运算结果在 1010 到 1111 的范围

    2024年02月05日
    浏览(48)
  • 【FPGA】Verilog:二进制并行加法器 | 超前进位 | 实现 4 位二进制并行加法器和减法器 | MSI/LSI 运算电路

    0x00 并行加法器和减法器 如果我们要对 4 位加法器和减法器进行关于二进制并行运算功能,可以通过将加法器和减法器以 N 个并行连接的方式,创建一个执行 N 位加法和减法运算的电路。 4 位二进制并行加法器 4 位二进制并行减法器

    2024年02月05日
    浏览(58)
  • 加法器电路

    图3 图三中,由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (V- –Vout)/R3 ……b 代入a式,b式变为V1/R1 + V2/R2 = Vout/R3 如果取R1=R2=R3,则上式变为-Vout=V1+V2,这就是传说中的加法器了。 图4 请看图四。因为

    2024年02月14日
    浏览(36)
  • Quartus 入门 —— 加法器

    这里使用的 intel 的 芯片为 EP4CE115F29C7 的开发板,软件使用的是 Quartus(Quartus Prime 18.1) 的版本 首先点击新建项目: 下面我们就直接点击下一步到芯片选择部分: 这里我们需要选择 Cyclone IV E 的 EP4CE115F29C7 芯片 然后这里我们选择使用 ModelSim-Altera 进行仿真,然后我们直接点击下

    2024年02月08日
    浏览(40)
  • UVM实战--加法器

    这里以UVM实战(张强)第二章为基础修改原有的DUT,将DUT修改为加法器,从而修改代码以使得更加深入的了解各个组件的类型和使用。 和第二章的平台的主要区别点 (1)有两个transaction,一个为transaction_i,一个为transaction_o,由于DUT的输入输出值并不相同,输入为a,b,cin,输

    2024年02月06日
    浏览(45)
  • 运算放大电路(三)-加法器

    加法器 由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (Vout – V-)/R3 ……b 代入a式,b式变为 V1/R1 + V2/R2 = Vout/R3 如果取 R1=R2=R3 则上式变为 Vout=V1+V2 这就是传说中的加法器了。 因为虚断,运放同向端没

    2024年02月04日
    浏览(56)
  • Verilog实现超前进位加法器

    在CPU等对性能要求较高的电路中,一般都会采用超前进位加法器,因为超前进位加法器的延时相对来说比较小。下面讲述超前进位加法器的原理: 我们知道,一个三输入,二输出的全加器,其逻辑关系为 S = A ⊕ B ⊕ C i n S=Aoplus Boplus C_{in} S = A ⊕ B ⊕ C in ​ C o u t = ( A B ) ∣

    2023年04月08日
    浏览(40)
  • 使用FPGA实现逐级进位加法器

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

    2024年04月23日
    浏览(34)
  • 用加法器实现补码的加/减运算

    目录 1.原码的加减运算 (1)原码的加/减法运算 (2)溢出判断 (3)符号扩展 2.加法器原理 3.加法器实现补码的加减运算 1.原码的加减运算 (1)原码的加/减法运算 正+正---绝对值做加法,结果为正 负+负---绝对值做加法,结果为负 正+负---绝对值大的减绝对值小的,符号同绝

    2024年01月18日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包