码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数字IC设计中基本运算的粗略的延时估计


    数字IC设计中基本运算的粗略的延时估计

    本文以与逻辑门电路为最小单位,对数字IC中的一些基本逻辑运算的延时进行了粗略的评估分析。

    目录

    • 数字IC设计中基本运算的粗略的延时估计
    • 一、逻辑门电路的延时
    • 二、半加器
    • 三、全加器
    • 四、多个多位加法运算的延时估算
    • 五、+1,+2,+4运算的延时估算
    • 六、乘法器的延时估算
    • 七、 总结
    • 八、参考资料

    一、逻辑门电路的延时

    由于一些材料的特性,将其做成与非门成本最低,因此很多设计的最底层将与非门作为最基本的元件。可以通过与非门来实现与,或,非,异或的运算。博客【1】对这部分有很详细的介绍,由于逻辑门电路搭建方式的不同,因此各个逻辑门之间的延时并没有确定的换算关系(查到了好几种),但基本上异或门运算的延时都大于与,或,非这种基础逻辑门的。

    二、半加器

    半加器的真值表如下所示:

    in1in2sumcout
    0000
    0110
    1010
    1101

    由表可知,sum = in1^in2; cout = in1 & in2;
    请添加图片描述
    如图所示,由于异或门延时大于与门,因此,一个半加器的延时等于一个异或门的延时。

    三、全加器

    请添加图片描述
    由图一个全加器可以由两个半加器组成,由于半加器的组成可知,count计算的延时为2个与门的延时和一个或门的延时,而sum计算的延时为2个异或门的延时。因此一个全加器的延时为2个异或门的延时,即1个全加器的延时为2个半加器的延时。

    四、多个多位加法运算的延时估算

    假设有assign a = a0 + a1 + a2; 其中a0为2bit,a1, a2为3bit。我们可以采用行波进位加法器的原理进行估算;
    请添加图片描述
    全加器搭建该加法运算的结构如上所示,其中FA为全加器,因此上图结构的延时为5个全加器的延时;以此类推,m个数的连续加法运算,若在不失真的情况下,运算结果为N bits,则延时为 N + m – 1个全加器的延时.

    五、+1,+2,+4运算的延时估算

    数字IC设计中常常需要用到+1运算,如果只是给某个变量+1,则不需要按上节的方式算,可以有更简单的方式。
    请添加图片描述
    HA为半加器,如上图所示,Nbit变量的+1运算,只需要N个半加器的延时即可,即N/2个全加器的延时。同理,如果是Nbit变量的+2运算,假设out = in + 2,in为Nbit,则可以被看做out[N : 1] = in[N-1 : 1] + 1’b1; 和 out[0] = in[0],因此,N bit变量+2运算的延时为(N-1)/2个全加器的延时。依此类推,N > m 时,N bits变量+2^m的延时为(N-m)/2个全加器的延时;

    六、乘法器的延时估算

    乘法器估算时,我们采用阵列乘法器的结构,假设 a为3 bit,b为2 bit的变量;则a * b的结构图为:
    请添加图片描述
    因此,依次类推,M bit * N bit运算的延时可以粗略的估计为M + N – 1个全加器的延时;(图中a0[12]应为a0[2]);

    七、 总结

    本文只是根据电路的结构,对一些基本运算进行了粗略的估计,具体的延时换算还需要根据课本(考试),手册(项目)的具体要求来;

    八、参考资料

    【1】个人博客:通过 与非门 构建异或门
    【2】CSDN:乘法器的实现(阵列、Booth、Wallace)
    【3】CSDN:行波进位加法器设计
    【4】CSDN:全加器和行波进位加法器的延迟时间

  • 相关阅读:
    车牌号识别易语言代码
    猿创征文 | 国产数据库之使用PXD在Docker环境下部署PolarDB-X集群
    【React】第一部分 React 基本使用
    满足新能源三电系统气密和电性能测试的E10系列多功能电连接器
    信创产业现状、分析与预测
    CUMCM历年赛题汇总
    没有基础能否学Java
    Java知识梳理 第七章 面向对象编程
    Vue之组件传值 provide-inject 非响应式,组件传值 provide-inject 响应式,自定义事件,动态组件,缓存组件,异步组件
    第01章 第01章 数据结构基础和算法简介
  • 原文地址:https://blog.csdn.net/kuan__/article/details/126164972
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号