[an error occurred while processing this directive]
|
Чем отличается в работе описание модели управляющего автомата следующих двух форм:
1) Рекомендуемая альтерой
always @ (posedge clk or posedge reset)
begin
if (reset)
state <= state_0;
else
state <= next_state;
end
always @ (state or in_1, or in_2)
begin
tmp_out_0 <= in_1 + in_2;
tmp_out_1 <= in_1 - in_2;
case (state)
state_0: begin
tmp_out_2 <= in_1 + 5’b00001;
next_state <= state_1;
end
state_1: begin
if (in_1 < in_2) begin
next_state <= state_2;
tmp_out_2 <= tmp_out_0;
end
else begin
next_state <= state_3;
tmp_out_2 <= tmp_out_1;
end
end
state_2: begin
tmp_out_2 <= tmp_out_0 - 5’b00001
next_state <= state_3;
end
state_3: begin
tmp_out_2 <= tmp_out_1 + 5’b00001
next_state <= state_0;
end
state_4:begin
tmp_out_2 <= in_2 + 5’b00001
next_state <= state_0;
end
default:begin
tmp_out_2 <= 5’b00000
next_state <= state_0;
end
endcase
end
2) Переход в этом же самом процессе по posedge clk
always @ (posedge clk or posedge reset)
begin
if (reset) begin
...
state <= state_0;
end
case (state)
state_0: begin
...
state <= state_1;
end
state_1: begin
...
end
default: state <= state_0;
endcase
end
Может ли кто толково объяснить в чем собственно разница в
работе этих двух форм описания fsm моделей?
E-mail: info@telesys.ru