Как сделать полностью автоматом не знаю, но вот логику переходов можно точно упрятать в память, например с помощью синтеза в Synplify (или в Quartus применением аналогичного constraint):
Код
module FSM_Logic (
input [...:0] CurState,
input [...:0] DependentVar,
output reg [...:0] NextState
);
always @(*)
case (CurState, DependentVar)
{} : if () NextState = {};
.......
default: NextState = {};
endcase
endmodule
module FSM (
input Clk,
...............
output reg [...:0] CurState,
...............
);
.........
war [...:0] NextState;
reg [...:0] DependentVar;
.........
FSM_Logic FSM_Logic_Component (
.CurState(CurState),
.DependentVar(DependentVar)
.NextState(NextState))
/* synthesis altera_implement_in_eab=1 */;
always @(posedge Clk,.....)
CurState <= NextState;
........................
endmodule
По крайней мере Synplify генерирует mif файл, с внедрением в синхронную память придется еще помудрить.
Сообщение отредактировал cdg - Aug 2 2006, 07:11