同时读取和写入寄存器

2023-12-30

我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU。 CPU 将具有经典的五级管道,没有转发和危险预防。在计算机体系结构课程中,我了解到第一个 MIPS-CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入。我使用的FPGA不支持同时使用上升和下降时钟沿(关于寄存器的读取和写入),所以我不能完全像原来的MIPS那样,必须在上升时钟沿上完成这一切。

所以,这是我遇到问题的部分。该指令在回写阶段回写寄存器。写回阶段将数据直接发送到解码阶段。解码阶段中的另一条指令想要读取写回阶段想要写入的同一寄存器。

在这种情况下会发生什么?解码阶段是否采用指令的新值或仍在寄存器文件中的旧值?


适合经典五级设计的解码级的寄存器文件由一个三端口 RAM(或两个双端口 RAM)以及两个复用器和比较器组成。比较器和复用器需要绕过来自写回级的数据。这是需要的,因为写数据在下一个周期写入三端口 RAM。因为来自写回级的信号是同步的,所以这不是问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同时读取和写入寄存器 的相关文章

  • 提示用户输入汇编 ci20 seg 错误

    我目前正在 ci20 机器上开发一个小程序 提示用户输入整数值 然后将该值打印到屏幕上 我当前的代码 data prompt asciiz Please enter an integer message asciiz nValue ente
  • VHDL 中的进程是可重入的吗?

    一个进程是否可以连续运行两次或多次VHDL 如果在进程的顺序执行未完成的情况下发生另一个事件 在敏感信号列表上 会发生什么 有可能还是我的VHDL流程中的模型完全错误 进程运行时不会发生任何事件 当进程被事件唤醒时 它会运行到完成 结束进程
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla
  • MIPS——这重要吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的问题 了解 MIPS 编程语言有用吗 我是一名计算机科学学生 正在上一门以 MIPS 为重点的汇编课程 我很擅长使用高级语言进行编写 但 M
  • 如何将数据直接写入显存?

    程序员有什么办法可以直接将数据写入显存吗 我知道操作系统对此非常严格 但是某些类型的应用程序 例如视频播放器或电脑游戏 如何将其数据直接写入视频内存 我知道有很多知名的库 例如 OpenGL 但它们毕竟只是普通的库 它们和我和你写的程序没有
  • “机器硬件”和“硬件平台”的区别

    我的 Linux 机器报告 uname a 输出如下 root tom i386 uname a Linux tom 2 6 9 89 ELsmp 1 SMP Mon Apr 20 10 34 33 EDT 2009 i686 i686 i
  • GCC最高指令集,兼容多种架构

    我正在由具有不同架构的机器组成的集群上运行作业 gcc march native Q help target grep march cut f3给了我其中之一 broadwell haswell ivybridge sandybridge
  • Simulink/HDL Coder 中的反馈循环

    我有一个 Simulink HDL 编码器系统 请参见下图 我有 3 个输出和 3 个输入 我希望我的系统运行 10 次 每次迭代后 它应该选择输出并将它们用作输入 我怎样才能做到这一点 使用存储器和每个信号的初始值块构建一个循环 内存块允
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • Aarch64 什么是延迟转发?

    中提到了 延迟转发 Arm Neoverse E1核心软件优化指南 https developer arm com documentation swog466751 a 以及其他一些 CPU 型号的优化指南 Instruction Grou
  • 阿迪和苏比之间到底是什么“关系”?

    我应该回答这个问题 经过一番研究后发现 add 和 sub 具有相同的操作码 仅在功能领域有所不同 这是答案还是其他什么 Update Nios II CPU 手册中提供了它 subi subtract immediate Operatio
  • 字大小及其指示

    请参阅下面关于各种指令集架构中的字长以及它与汇编语言的关系的问题 感谢您提供的所有帮助 先说几个事实 如有错误 请指正 处理器架构的字长表示 编辑 其中一些是错误的 请参阅下面 Seva 的帖子 每个寄存器的最大尺寸 每个内存地址的最大尺寸
  • 什么是微编码指令?

    我看过很多参考微编码指令的文献 这些是什么以及为什么使用它们 CPU 读取机器代码并将其解码为内部控制信号 将正确的数据发送到正确的执行单元 大多数指令映射到一个内部操作 并且可以直接解码 例如 在 x86 上 add eax edx只是将
  • I 类型指令的 MIPS 周期数 (addi)

    So on https en wikipedia org wiki Cycles per instruction https en wikipedia org wiki Cycles per instruction它说 对于多周期MIPS
  • 在 x86 Intel VT-X 非根模式下,是否可以在每个指令边界传递中断?

    除了不将中断传送到虚拟处理器的某些正常指定条件 cli if 0 等 之外 客户机中的所有指令实际上都是可中断的吗 也就是说 当传入的硬件中断先传递给 LAPIC 然后传递给处理器时 据说会发生一些内部魔法 将其转换为虚拟中断给来宾 使用虚
  • 为什么在强度降低乘法和循环进位加法之后,这段代码的执行速度会变慢?

    我正在读书阿格纳 雾 https en wikipedia org wiki Agner Fog s 优化手册 https en wikipedia org wiki Agner Fog Optimization 我遇到了这个例子 doub
  • 使用 MIPS 从 Big Endian 到 Little Endian 无需逻辑运算?

    我正在使用 MIPS QtSpim 将 32 位字从 Big Endian 转换为 Little Endian 我下面显示的内容已检查且正确 不过我想知道还有什么其他方法可以让我进行转换 我虽然只使用了旋转和移位 但如果没有逻辑运算 我就无
  • 带有适用于 MS-Windows 的工具链的预构建 MIPS 交叉编译器

    我在我的 Linux 机器上使用 MIPS 交叉编译器 效果很好 现在我需要在 Windows 上编译相同的应用程序 我正在网上搜索一些适用于 MS Windows 的预构建 MIPS 交叉编译器 带有工具链 但没有成功 由于我不确定该怎么
  • 如何在 icarus verilog 中包含文件?

    我知道基本的 include filename v 命令 但是 我试图包含另一个文件夹中的模块 现在 该模块还包括同一文件夹中存在的其他模块 但是 当我尝试在最顶层运行该模块时 出现错误 C Users Dell Desktop MIPS
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更

随机推荐

  • 获取整数的第 n 位

    我得到一个大整数a 和一个 相对较小的 整数n 最快的获取方式是什么n二进制表示的第 th 位 从右起 a使用原生Python 将位移到最后一个位置 屏蔽其他所有内容 bit a gt gt n 1 这假设这些位以通常的方式索引 即最低有效
  • 如何在 asp.net MVC 中压缩内容?

    如何压缩 asp net mvc 应用程序发送的输出 这是我使用的 截至目前 using System IO Compression public class CompressAttribute ActionFilterAttribute
  • 从 kpcs7 (.p7b) 文件中提取私钥和证书

    我有一个 p7b 文件 如何提取密钥和证书 我尝试过 openssl 但无法获得确切的命令 选项 Thanks PKCS 7 文件不包含私钥 至于证书 您尚未指定您使用的平台以及您的问题与编程有何关系
  • 在 Windows 上安装更新时 Electron 自动更新失败

    我有一个电子应用程序 它使用electron builder用于构建 打包和发布应用程序 我有以下自动更新代码 autoUpdater logger log autoUpdater logger transports file level
  • VBScript 打开一个对话框来选择文件路径

    目前我正在使用 vbscript 打开一个文件 如下所示 strFile C Users test file txt Set objFile objFSO OpenTextFile strFile 我想更改此设置 以便用户可以选择 导航到文
  • WPF:忽略覆盖/装饰器上的鼠标单击,但处理 MouseEnter 事件

    我真正想要的是忽略鼠标的 IsHitTestVisible 版本click事件但仍然捕获鼠标进入和离开 events 背景 每当焦点控件下方都会弹出信息叠加层 这是一项要求 因此我无权删除此行为 这是使用包含矩形形状且填充有图像画笔的装饰器
  • c# 将非常大的位图保存为 jpeg(或任何其他压缩格式)

    我目前正在处理非常大的图像 这些图像基本上是通过将许多较小的图像拼接在一起生成的 例如全景图或照片马赛克软件 为了避免内存不足的异常 内存中只有如何排列较小图像的 地图 我编写了一些代码 使用 BinaryWriter 和 LockBits
  • 如何使固定元素的内容仅在超过视口高度时才可滚动?

    我有一个div定位fixed位于网页的左侧 包含菜单和导航链接 它没有从 css 设置高度 内容决定高度 宽度是固定的 问题是如果内容太多的话div会大于窗口的高度 并且部分内容将不可见 滚动窗口没有帮助 因为位置是fixed和div不会滚
  • 如何从VB脚本确定Windows版本? [复制]

    这个问题在这里已经有答案了 可能的重复 用于查找 Windows 版本名称和服务包的 vbscript https stackoverflow com questions 4317794 a vbscript to find windows
  • 现有文件上的 java.io.FileNotFoundException

    当我尝试打开文件时出现此错误 java io FileNotFoundException D Portable 20Programs Android 20Development workspace3 XXX desktop bin Worl
  • Play 的 API 上找不到 JPA.getJPAConfig 方法

    我正在使用最新版本的 Play v 1 2 3 我的系统需要从一个数据库读取数据并将其保存到另一个数据库 我在 Play 文档中发现有一个名为 play db JPA getJPAConfig 的方法来完成这项工作 我需要在源数据库中进行本
  • 基于第三列的 pandas 数据框颜色的 Seaborn 散点图

    我有一个 pandas 数据框 其中包含 组名 结果 和 温度 列 我绘制了一个 Seaborn 群图 其中 x groupname 和 y result 它显示了分成组的结果数据 我还想做的是使用颜色图根据标记的温度对标记进行着色 例如最
  • 如何更改 VS Code 中特定单词的颜色?

    有没有办法用自定义颜色为特定单词着色 我正在查看 editor tokenColorCustomizations 但似乎没有任何暗示 我想轻松地从其他代码中辨别出一段特定的代码 例如自定义方法 例如在 javascript 中 您经常使用
  • 使用 scikit Pipeline 测试模型,但仅预处理数据一次

    假设我有一个数据管道 它进行预处理并在最后有一个估计器 现在 如果我只想在管道的最后一步更改估计器 模型 我该如何做而不再次预处理相同的数据 下面是一个代码示例 pipe make pipeline ColumnSelector colum
  • Spring 4.x/3.x (Web MVC) REST API 和 JSON2 Post 请求,如何一次性解决?

    在详细介绍之前 我知道 Stackoverflow 上已经有很多对话和相关问题 他们都以不同的方式帮助我 所以我想我将我的发现全部放在一起作为一个有组织的常见问题解答来总结我的发现 相关概念 您当然知道这些 但我只是将它们写为快速回顾 如果
  • 保留尾随空格 Sybase

    我有一大块文本数据 我将其拆分并写入多行varchar 255 表的列 有时 最后一个字符恰好是空格 当我读回这一行时 尾随空格被截断 我只得到 254 个字符 当我将下一行附加到这一行的末尾时 这会弄乱我的数据 我的代码将完整的 255
  • 从 ASP.NET 到 .NET Core 的 DelegateHandler

    在一个旧的 asp net 项目中 我有一个类实现DelegatingHandler我为每条路线设置的 public class AdminSecurityMessageHandler DelegatingHandler private r
  • 使用 Dynamics CRM Web API 创建帖子

    一个 Post 实体 https msdn microsoft com en us library mt607553 aspx https msdn microsoft com en us library mt607553 aspx 无法使
  • 如果在缓冲区上调用 glBufferData 之后再调用它,是否会发生内存泄漏?

    因为我认为这应该分配缓冲区 如果你调用它两次 旧的会被删除 还是存在内存泄漏 我正在尝试决定根据需要频繁更改缓冲区大小的最佳选择 使用 glBufferData 是最佳选择吗 我想是的 只要不漏水就行 OGL 文档说 glBufferDat
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F