单周期处理器设计思路

目录

  • 单周期处理器设计思路
    • 加法器的优化
      • 行波进位加法器(RCA)
      • 先行进位加法器(CLA)
      • 两种加法器的对比
      • CLA的再优化
      • 可以用加法器实现的其他操作
    • 编写可维护的RTL代码

单周期处理器设计思路

![[Pasted image 20240923102920.png]]

![[Pasted image 20240923103730.png]]

加法器的优化

(用综合器综合±*/等效果更好)
![[Pasted image 20240923210044.png]]

行波进位加法器(RCA)

- ![[Pasted image 20240923111237.png]

先行进位加法器(CLA)

- ![[Pasted image 20240923111640.png]]

- ![[Pasted image 20240923111657.png]]

两种加法器的对比

  • RCA在计算某一分支的时候,使用较多的门,一个连着一个,延迟大。而在计算其他分支时,延迟小。而最终的延迟,就是最大的分支的延迟。![[Pasted image 20240923115522.png]]

  • 而CLA,则更好地平衡了两个分支的延迟,让两个分支的延迟尽量相同,则总延迟也会下降

CLA的再优化

  • 当计算的位宽更大时,也会导致延迟增加

  • 因此将整个大位宽的CLA拆成几个小位宽的CLA

  • ![[Pasted image 20240923151846.png]]

  • FA为全加器![[Pasted image 20240923151907.png]]

  • 将全加器替换成4位CLA![[Pasted image 20240923151919.png]]

可以用加法器实现的其他操作

  • 减法指令![[Pasted image 20240923153337.png]]

  • 右边的图为真值表,可以发现溢出的时候Cn-1和Cn一定不相同在这里插入图片描述

  • 移位指令![[Pasted image 20240923205124.png]]

    • 交叉开关式 桶形移位器![[Pasted image 20240923205202.png]]

      • 直接用一个选择器来实现
    • 级联式 桶形移位器![[Pasted image 20240923205343.png]]

      • 用2-1选择器阵列来实现

编写可维护的RTL代码

  • 错误示范![[Pasted image 20240923212551.png]]![[Pasted image 20240923212606.png]]![[Pasted image 20240923212655.png]]在这里插入图片描述在这里插入图片描述

  • 需求:![[Pasted image 20240923212748.png]]

  • 解决方法

    • verilog编写选择器
      • 容易出错
      • 不能模糊匹配
      • casex和casez支持模糊匹配,但是不知道会综合出什么电路
    • 用excel写表格,让python脚本帮你生成verilog的case语句
      • excel是人写的,可以只保留关键信息
      • python负责生成大量重复的case代码
      • 缺点:case语句为行为建模
    • chisel 的 ListLookup API
      • 写起来方便,综合器会自动帮你编译成级联的选择器
      • 但是对综合器要求高,可能影响性能
    • chisel 的 Decoder API
      • 与 ListLookup API 几乎相同
      • 但是有特定算法优化,性能大大提升
    • ![[Pasted image 20240923213724.png]]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何修改MAC地址破解网络无线网络限制-担心别人蹭网,路由器设置MAC地址过滤,限定了能访问无线网络的网卡地址-供大家学习参考

路由器都设置了MAC地址过滤,也就是限定了能访问无线网络的网卡的MAC地址。因为无线路由器不一定由自己控制,所以当更换了笔记本或者更换了无线网卡的时候,也许就上不了网了。我们可以修改网卡的MAC地址实现上网。 下载:https://do…

R01 vue+springboot 高考志愿推荐AI问答大数据平台

可以查看本文系统对应的视频讲解: vuespringboot 高考推荐AI问答志愿推荐大数据 R01 带增删改查、大屏、支持爬虫 1 系统背景 近年来,高考作为中国教育体系中最重要的考试之一,承载了无数考生和家庭的梦想。随着信息技术的迅猛发展&#xff…

Linux shell脚本文件通过shc工具加密,生成静态链接可执行文件

要使用 shc 工具对 Linux shell 脚本进行加密并生成静态链接的可执行文件,你可以按照以下步骤操作: 安装 shc 工具: 如果你的系统中还没有安装 shc,可以通过包管理器安装,例如在 Ubuntu 系统中,可以使用以下…

YOLOv11模型改进-模块-引入空间池化模块StripPooling 解决遮挡、小目标

本篇文章将介绍一个新的改进机制——空间池化模块StripPooling,并阐述如何将其应用于YOLOv11中,显著提升模型性能。首先,我们将解析StripPooling的工作原理,SP模块通过条带池化在水平和垂直方向上捕捉长距离依赖关系,增…

如何在线查看近8年的建筑覆盖变化

我们在《谷歌发布建筑数据,高度误差达惊人的1.5米》一文中介绍了谷歌2.5D建筑数据用途、制作方法以及数据下载方式。 现在我们演示下如何在线查看近8年的建筑物覆盖、建筑物质心和建筑物高度的变化。 历史建筑覆盖在线查看 2.5D建筑演变数据集包含2016年至2023年…

碰一碰支付怎么推广的?小白也能看懂的教程来了!

作为支付宝和微信全面力推的一个项目,碰一碰支付的热度可谓是节节攀升,连带着与之相关的话题,如碰一碰支付是什么和碰一碰支付怎么推广的等也因此成为了人们关注的焦点。那么,本期,我们就来详细地解答一下这两个问题。…

2024台州赛CTFwp

备注: 解题过程中,关键步骤不可省略,不可含糊其辞、一笔带过。解题过程中如是自己编写的脚本,不可省略,不可截图(代码字体可以调小;而如果代码太长,则贴关键代码函数)。…

I.MX6U 字符设备驱动开发指南

目录 一、引言 二、字符设备驱动的基本概念 1.字符设备的定义 2.字符设备驱动的作用 三、I.MX6U 字符设备驱动开发步骤 1.确定设备信息 2.编写设备驱动代码 3.编译和加载驱动 4.测试设备驱动 四、实例分析 1.确定设备信息 2.编写设备驱动代码 3.编译和加载驱动 4.…

iOS 回到主线程刷新UI

在iOS 里面,项目打开就会运行一个主线程,所有的UI都在主线程里进行.其他网络请求或者耗时操作理论上也可以在主线程运行,但是如果太耗时,那么就会影响主线程其他UI.所以需要开字线程来进行耗时操作,子线程进行完耗时操作之后,如果项目需求有需要刷新UI,或者改变UI,一定得回到主…

音频/视频提取器:Python和moviepy实现

在这篇博客中,我们将深入探讨一个使用Python和wxPython构建的音频/视频提取器应用程序。这个应用程序允许用户从视频文件中提取音频,或者从音频文件中截取特定时间段。让我们逐步分析这个程序的功能和实现。 C:\pythoncode\new\MP3towav.py 全部代码 import wx import os imp…

「iOS」——YYModel学习

iOS学习 前言优势使用方法简单的Model与JSON互转多样化的数据类型交换容器类数据交换 model中包含其他model白名单与黑名单 总结 前言 YYModel是YYKit的高效组件之一,在实际场景中的非常实用,在项目中使用MVC架构时,可以简化数据处理。在性能…

OpenShift 4 - 云原生备份容灾 - Velero 和 OADP 基础篇

《OpenShift 4.x HOL教程汇总》 说明: 本文主要说明能够云原生备份容灾的开源项目 Velero 及其红帽扩展项目 OADP 的概念和架构篇。操作篇见《OpenShift 4 - 使用 OADP 对容器应用进行备份和恢复(附视频) 》 Velero 和 OADP 包含的功能和模…

028.爬虫浏览器-抓取shadowRoot下的内容

一、什么是Shadow DOM Shadow DOM是一种在web开发中用于封装HTML标记、样式和行为的技术,以避免组件间的样式和脚本冲突。它允许开发者将网页的一部分隐藏在一个独立的作用域内,从而实现更加模块化和可维护的代码结构 二、js操作Shadow DOM // 获取宿…

邮件营销文案设计:打造个性化内容的步骤?

邮件营销文案写作技巧与方法?外贸邮件营销怎么撰写? 一个成功的邮件营销文案设计不仅能吸引客户的注意力,还能有效提升转化率。MailBing将详细探讨如何通过一系列步骤,打造出既个性化又高效的邮件营销文案设计。 邮件营销文案设…

监控易监测对象及指标之:Microsoft Message Queue(MSMQ)监控

监控易是一款强大的监控工具,能够实时监控各类IT设施和应用程序的性能指标。对于Microsoft Message Queue(简称MSMQ)的监控,监控易提供了详尽的指标,以确保企业能够准确掌握消息队列的运行状况。 在MSMQ的监控中&#…

24、darkhole_2

难度 高(个人感觉属于中) 目标 root权限2个flag 基于VMware启动(我这里启动只能选择我wifi的那个网卡才能获取到ip地址,nat的没获取到不知道为什么。) kali 192.168.1.122 靶机 192.168.1.170 信息收集 端口扫描 只开…

【python】OpenCV—Fun Mirrors

文章目录 1、准备工作2、原理介绍3、代码实现4、效果展示5、参考 1、准备工作 pip install vacm2、原理介绍 在OpenCV中,VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。 一、VC…

用你的手机/电脑运行文生图方案

随着ChatGPT和Stable Diffusion的发布,最近一两年,生成式AI已经火爆全球,已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说,Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参…

读者写者问题与读写锁

读者写者问题 读者写者 vs 生产消费 重点是有什么区别 读者写者问题如何理解 重点理解读者和写者如何完成同步 下面是一段伪代码:公共部分 uint32_t reader_count 0; lock_t count_lock; lock_t writer_lock; Reader // 加锁 lock(count_lock); if(reader_c…

Java | Leetcode Java题解之第492题构造矩形

题目: 题解: class Solution {public int[] constructRectangle(int area) {int w (int) Math.sqrt(area);while (area % w ! 0) {--w;}return new int[]{area / w, w};} }