gpt4 book ai didi

verilog - 在 Verilog 中交换 2 个寄存器的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-02 17:08:36 31 4
gpt4 key购买 nike

我知道交换两个寄存器的几种方法:使用 3 个异或、使用寄存器、使用多路复用器等...我们如何进行条件交换,它应该使用尽可能少的代码并尽可能快地工作

最佳答案

Tripple-XOR是一种软件技巧,用于在无法使用直接寄存器交换指令(例如 x86 XCHG)的顺序机器上交换寄存器值。 XOR 指令不能同时执行,因为它们都依赖于先前的输出,因此需要三个指令周期。

使用 Verilog,您可以描述硬件,因此可以通过赋值在单个周期内交换两个寄存器的值。这将从彼此的输出推断两个寄存器的加载路径。

if (swap) begin
a <= b;
b <= a;
end

您提到多路复用器 - 仅当存在另一个加载路径时,多路复用器和控制逻辑才会根据需要实例化,例如。某些交换/增量设备将具有多路复用器,因为 a 可以使用 ba+1 加载。

if (swap) begin
a <= b;
b <= a;
end else begin
a <= a+1;
end

关于verilog - 在 Verilog 中交换 2 个寄存器的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815642/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com