Обновление указания по использованию присваиваний

Ранее давалось более простое правило:

"Используй неблокирующее присваивание во всех блоках always", которое
конфликтует с правилами, описанными в документе по присваиваниям.
Правила были обновлены, таким образом, чтобы сохранить простоту и
устранить конфликт.
This commit is contained in:
Andrei Solodovnikov
2024-02-03 12:18:12 +03:00
parent d215a215b8
commit 765a0a3f3e
3 changed files with 28 additions and 25 deletions

View File

@@ -85,7 +85,7 @@ module turnstile_fsm(
assign is_locked = state;
always @(posedge clk) begin
always_ff @(posedge clk) begin
if(rst) begin
state <= LOCKED;
end
@@ -128,7 +128,7 @@ module turnstile_fsm(
// (!push) && coin — условие перехода в состояние UNLOCKED
assign green_light = (state == LOCKED) && (!push) && coin;
always @(posedge clk) begin
always_ff @(posedge clk) begin
if(rst) begin
state <= LOCKED;
end
@@ -175,13 +175,13 @@ module turnstile_fsm(
always_comb begin
if(push) begin
next_state <= LOCKED;
next_state = LOCKED;
end
else if (coin) begin
next_state <= UNLOCKED;
next_state = UNLOCKED;
end
else begin
next_state <= state;
next_state = state;
end
end
```