使用FPGA实现超前进位加法器

news2024/11/18 1:32:27

介绍

前面已经向大家介绍过8位逐位进位加法器了,今天向大家介绍4位超前进位加法器。

对于逐位进位加法器来说,计算任意一位的加法运算时,必须等到低位的加法运算结束送来进位才能运行。这种加法器结构简单,但是运算慢。

对于超前进位加法器,对于每一位的计算结果,都不依赖于低位的运算,而是根据低位的输入直接求得该位的进位,因此,提高了运算速度,但是也占用了更多的资源。


设计文件

library ieee;
use ieee.std_logic_1164.all;
entity cla_adder is
    port (inp1,inp2 : in std_logic_vector(3 downto 0);
            cin : in std_logic;
            s : out std_logic_vector(3 downto 0);
            outp : out std_logic);
end entity;
architecture behavior of cla_adder is
    signal c : std_logic_vector(4 downto 0);
    signal p,g : std_logic_vector(3 downto 0);
begin
    u1:for i in 0 to 3 generate
        p(i) <= inp1(i) xor inp2(i);
        g(i) <= inp1(i) and inp2(i);
        s(i) <= p(i) xor c(i);
    end generate;
    c(0) <= cin;
    c(1) <= (cin and p(0)) or g(0);
    c(2) <= (cin and p(0) and p(1)) or 
                (g(0) and p(1)) or
                g(1);
    c(3) <= (cin and p(0) and p(1) and p(2)) or 
                (g(0) and p(1) and p(2)) or
                (g(0) and p(1) and p(2)) or
                g(2);
    c(4) <= (cin and p(0) and p(1) and p(2) and p(3)) or 
                (g(0) and p(1) and p(2) and p(3)) or
                (g(0) and p(1) and p(2) and p(3)) or
                (g(2) and p(3)) or 
                g(3);
    outp <= c(4);
end architecture;


测试文件

library ieee;
use ieee.std_logic_1164.all;
entity tb_cla_adder is
    
end entity;
architecture behavior of tb_cla_adder is
    component cla_adder is
    port (inp1,inp2 : in std_logic_vector(3 downto 0);
            cin : in std_logic;
            s : out std_logic_vector(3 downto 0);
            outp : out std_logic);
    end component;
    signal inp1,inp2,s : std_logic_vector(3 downto 0);
    signal cin,outp : std_logic;
begin
    dut : cla_adder
    port map(inp1,inp2,cin,s,outp);
    process
    begin
        inp1 <= "0010";
        inp2 <= "1101";
        cin <='0';
        wait for 20ns;
        cin <= '1';
        wait for 20ns;
        inp1 <= "0110";
        inp2 <= "0101";
        cin <='0';
        wait for 20ns;
        cin <= '1';
        wait for 20ns;
    end process;
end architecture;


仿真结果


结语

超前进位加法器相当于使用更多的硬件资源换取了更快的运算速度。大家可以结合逐位进位加法器去看。

有什么问题大家留言哈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WSL安装-问题解决

WslRegisterDistribution failed with error: 0x8004032d WslRegisterDistribution failed with error: 0x80080005 Error: 0x80080005 ??????? 解决&#xff1a; 1、 winr输入&#xff1a;optionalfeatures.exe 2、打开这两项

钉钉报警的优势在哪里?如何配置钉钉机器人进行报警信息推送?

一、常见的报警方式 1、短信或者电话报警 这样的报警方式更适合高级别的报警提醒&#xff0c;用于处理紧急情况。出现级别不高而又频繁地发送短信会让人产生排斥感&#xff0c;而且电话或者短信的报警方式也存在一定的成本。 2、邮件报警 邮件报警更适用于工作时的提醒&…

支付方式模块代码示例

支付方式模块代码示例 效果展示 <view class"card"><uni-title type"h3" title"支付方式"></uni-title><radio-group change"radioChange"><label class"radio"><view class"zf-t…

ThingsBoard通过规则链使用邮件发送报警信息

1、描述 2、通过规则链路配置发送邮件只需 两步 3、案例 1、基础链路 2、选择变换节点里面的To Email 3、 编辑节点to email 4、 将创建告警与to email链接 5、选择外部节点中的send email 6、配置邮箱相关信息&#xff0c;如过不知道密钥如何获取的&#xff0c;请查看下…

yolo-驾驶行为监测:驾驶分心检测-抽烟打电话检测

在现代交通环境中&#xff0c;随着汽车技术的不断进步和智能驾驶辅助系统的普及&#xff0c;驾驶安全成为了公众关注的焦点之一 。 分心驾驶&#xff0c;尤其是抽烟、打电话等行为&#xff0c;是导致交通事故频发的重要因素。为了解决这一问题&#xff0c;研究人员和工程师们…

JRT质控数据录入

之前有时间做了质控物维护界面&#xff0c;有了维护之后就应该提供可以录入业务数据的功能了&#xff0c;当时给质控物预留了一个“项目批次业务数据”的功能说是业务数据会给每天拷贝维护数据。这次一起补上&#xff0c;展示JRT怎么写质控数据录入的界面。 界面如下&#xff…

【Linux基础】Linux基础概念

目录 前言 浅谈什么是文件&#xff1f; Linux下目录结构的认识及路径 目录结构 路径 家目录 什么是递归式的删除 重定向 输出重定向&#xff1a; 追加重定向&#xff1a; 输入重定向&#xff1a; 命令行管道 shell外壳 为什么需要shell外壳&#xff1f; shell外壳…

智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法

智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法 目录 智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法效果一览基本介绍程序设计参考资料效果一览 基本介绍 Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法 融合自适应…

Linux下SPI设备驱动实验:使用内核提供的读写SPI设备中的数据的函数

一. 简介 前面文章的学习&#xff0c;已经实现了 读写SPI设备中数据的功能。文章如下&#xff1a; Linux下SPI设备驱动实验&#xff1a;验证读写SPI设备中数据的函数功能-CSDN博客 本文来使用内核提供的读写SPI设备中的数据的API函数&#xff0c;来实现读写SPI设备中数据。 …

【竞技宝】中超:国安本轮4比1大胜,张稀哲表现不俗

国安在本轮中超主场跟青岛西海岸相遇,这场比赛球队进攻多点开花,最终以4比1将对手斩落马下,拿到了久违的大胜。其中,张稀哲、李可、王子铭都在比赛中有不俗表现。首先,张稀哲身为国安中场核心,他在比赛中传出了多脚有威胁的球,并且成功帮助队友得分。张稀哲在国安神兵天降的表现…

C# 6.0+JavaScript云LIS系统源码 云LIS实验室信息管理新型解决方案

C# 6.0JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案 什么是医院云LIS系统&#xff1f; 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管…

爱普生RX-8130CE内置电池控制 RTC

特点&#xff1a;(1)封装极小&#xff0c;集成度高RX-8130CE是一个带|2C接口的实时时钟模块&#xff0c;内部集成32.768KHz晶体振荡器。实时时钟功能不仅集成了年、月、日、星期、小时、分、秒的日历和时钟计数器&#xff0c;同时也有时间闹钟、间隔定时器、时间更新中断等功能…

关于ResNet的假说

ResNet 最核心的思想就是 恒等映射吧 那么现在来提出几个问题&#xff1a; 为什么deeper 以后train L 会增加&#xff1f;恒等映射会解决什么问题&#xff1f;能否解决梯度非常陡峭的问题&#xff1f;你想到了什么模型有类似的问题&#xff0c;如何进行改进的&#xff1f; as…

JAVA学习笔记29(集合)

1.集合 ​ *集合分为&#xff1a;单列集合、双列集合 ​ *Collection 接口有两个重要子接口 List Set&#xff0c;实现子类为单列集合 ​ *Map接口实现子类为双列集合&#xff0c;存放的King–Value ​ *集合体系图 1.1 Collection接口 1.接口实现类特点 1.collection实现…

wangEditor集成Word导入(富文本编辑器)

wangEditor集成Word导入(富文本编辑器)&#xff0c;wangEditor – 支持word上传的富文本编辑器&#xff0c;WANGEDITOR实现WORD图片自动转存&#xff0c;JAVA中将WORD转换为HTML导入到WANGEDITOR编辑器中&#xff08;解决图片问题&#xff0c;样式&#xff0c;非常完美&#xf…

Java web应用性能分析之服务端慢[网络慢]

Java web应用性能分析之服务端慢&#xff0c;如果是网络原因引起的服务端慢&#xff0c;经常会被忽略&#xff0c;很多时候我们第一时间不会去排查网络原因。出现这种情况也很正常&#xff0c;因为应用的外部网络都是超100M的大宽带服务器&#xff0c;而内部则是千兆网卡或者万…

el-tree搜索父节点,父子节点一起展示

会2024.04.22今天我学习了如何对el-tree的:filter-node-method方法进行优化&#xff0c;如果我们有多层的节点数据&#xff0c; 比如我们有这样的数据&#xff0c;当我们输入水果的时候应该出现的是水果和特级水果这两个父节点以及对应底下的子节点数据&#xff0c; 用element里…

Vue3 Vite配置环境变量

Vue3 Vite配置环境变量 相关文档配置.env文件vite.config.jspackage.json 使用 相关文档 Vite 官方中文文档&#xff1a;https://cn.vitejs.dev/环境变量和模式&#xff1a;https://cn.vitejs.dev/guide/env-and-mode.html#env-file在配置中使用环境变量&#xff1a;https://c…

如何轻松实现多微信批量自动加好友?

当我们需要在添加大量的微信好友时&#xff0c;手动逐个添加难免会感到乏味枯燥&#xff0c;还很容易出错。这时候&#xff0c;微信管理系统就能帮助我们实现微信批量自动加好友的便利。 首先&#xff0c;在微信管理系统中&#xff0c;可以将待加好友的手机号码或微信号导入系…

全自动开箱机:从原理到应用,全面解析自动化装箱技术

随着科技的飞速发展&#xff0c;自动化技术在各行各业的应用越来越广泛。其中&#xff0c;全自动开箱机作为现代物流领域的重要设备&#xff0c;以其高效、精准的特点&#xff0c;受到了广大企业的青睐。与星派全面解析全自动开箱机的原理、应用领域以及它所带来的变革。 一、…