2016-12-02 2 views
-1

Я хочу реализовать MOORE FSM, который находит min и max из массива из 10 элементов, используя 2 всегда блока, оба из них используют одни и те же состояния, но на разных половинах массива. Работает ли он, если я использую одни и те же имена состояний в обоих блоках всегда, но с разными реализациями (каждый из них влияет на разные регистры)?Moore machine, Verilog

+0

Непонятно !! –

ответ

0

Да, это возможно. Фактически, если вы сделаете так, код может быть более понятным, поскольку вы поймете реализацию каждого регистра.

parameter S_START = 0, 
      S_DO_SOMETHING = 1, 
      S_DO_ANOTHER = 2, 
      S_END = 3 

integer current_state = S_START; 

always @ (posedge clk) 
case (current_state): 
// define state transitions 
endcase 

always @ (posedge clk) 
case (current_state): 
// modify a register according to state 
end 

always @ (posedge clk) 
case (current_state): 
// modify another register according to state 
end 

Просто убедитесь, что каждый регистр изменен только на одном блоке.

Смежные вопросы