The following diagram is a Mealy machine implementation of the 2's complementer. Implement using one-hot encoding.
没啥说的,直接上代码。
module top_module (
input clk,
input areset,
input x,
output reg z
);
parameter S0 = 1'h0;
parameter S1 = 1'h1;
reg cur_state, nxt_state;
always @(*)
begin
case(cur_state)
S0:
begin
nxt_state = x?S1:S0;
end
S1:
begin
nxt_state = S1;
end
default:
begin
nxt_state = S0;
end
endcase
end
always @(posedge clk, posedge areset)
begin
if(areset)
cur_state <= S0;
else
cur_state <= nxt_state;
end
always @(*)
begin
case(cur_state)
S0:
begin
z = x;
end
S1:
begin
z = !x;
end
default:
begin
z = 1'h0;
end
endcase
end
endmodule