将值同化到verilog中GCD FSM中的寄存器

将值同化到verilog中GCD FSM中的寄存器,verilog,fsm,greatest-common-divisor,Verilog,Fsm,Greatest Common Divisor,我正在尝试为GCD算法(减法)创建一个状态机,我需要将我的数字的值(连线)放入一个寄存器以使用该算法,但我不希望每个值的更改都被吸收到寄存器中。 换言之: module GCD_R (u,v,out,nrst,act,clk); input [31:0] A,B; input clk,act,rst; output reg [31:0] out; reg[4:0] state,next_state; reg[31:0] A_reg,B_reg,Aint_reg,Bint_reg; paramet

我正在尝试为GCD算法(减法)创建一个状态机,我需要将我的数字的值(连线)放入一个寄存器以使用该算法,但我不希望每个值的更改都被吸收到寄存器中。
换言之:

module GCD_R (u,v,out,nrst,act,clk);
input [31:0] A,B;
input clk,act,rst;
output reg [31:0] out;
reg[4:0] state,next_state;
reg[31:0] A_reg,B_reg,Aint_reg,Bint_reg;
parameter IDLE = 4'b0001;
parameter ABIG = 4'b0010;
parameter BBIG = 4'b0100;

always @(A,B)
    begin
        A_reg<=A
        B_reg<=B
    end
always @*   
    case (state)
        IDLE: begin
模块GCD\u R(u、v、out、nrst、act、clk);
输入[31:0]A,B;
输入时钟、act、rst;
输出寄存器[31:0]输出;
reg[4:0]状态,下一个_状态;
注册[31:0]A_注册,B_注册,Aint_注册,Bint_注册;
参数IDLE=4'b0001;
参数ABIG=4'b0010;
参数BBIG=4'b0100;
始终@(A,B)
开始

A_reg通常用于此类问题,使用时钟。甚至在参数中也有。因此,使用它:

always @(posedge clk) begin
    A_reg<=A
    B_reg<=B
end
始终@(posedge clk)开始

A_reg通常用于此类问题,使用时钟。甚至在参数中也有。因此,使用它:

always @(posedge clk) begin
    A_reg<=A
    B_reg<=B
end
始终@(posedge clk)开始

A_reg通常对于此类设计,使用
时钟边缘
以及
重置
信号

always @ (posedge clk, negedge rst)
begin
  if (!rst)
  begin
    // For initialisation
    A_reg<=A
    B_reg<=B
  end
  else
  begin
    // For non initialisation operation to retail value
    A_reg<=A_reg;
    B_reg<=B_reg;
  end 
end
始终@(posedge时钟、negedge rst)
开始
如果(!rst)
开始
//用于初始化

A_reg通常对于此类设计,使用
时钟边缘
以及
重置
信号

always @ (posedge clk, negedge rst)
begin
  if (!rst)
  begin
    // For initialisation
    A_reg<=A
    B_reg<=B
  end
  else
  begin
    // For non initialisation operation to retail value
    A_reg<=A_reg;
    B_reg<=B_reg;
  end 
end
始终@(posedge时钟、negedge rst)
开始
如果(!rst)
开始
//用于初始化
A_注册