将值同化到verilog中GCD FSM中的寄存器
我正在尝试为GCD算法(减法)创建一个状态机,我需要将我的数字的值(连线)放入一个寄存器以使用该算法,但我不希望每个值的更改都被吸收到寄存器中。将值同化到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
换言之:
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_注册