Subject: Re: FSM Enhancement Goals and Thoughts
From: Adam Krolnik (krolnik@lsil.com)
Date: Thu Dec 13 2001 - 08:47:52 PST
Good morning Cliff;
You wrote:
>But a design with enumerated onehot state assignments (such as enum >{S0=4'b0001, S1=4'b0010, S2=4'b0100, S3=4'b1000} state;) will not
>synthesize nearly as efficient as adding (* synthesis fsm_style =
>onehot *), and per my experience, telling the synthesis tool to >synthesize the onehot FSM rarely yields the same efficient results
>that I achieve when use indexed parameters and case (1'b1).
This is a critique of synthesis tools.
I do understand that in the real world, the synthesis tools are not
going to change by the time that you need your design to meet its
physical metrics and so you will recode to meet the requirements.
But at the language level, must we also concede this point?
Should it be possible for a tool to receive an attribute (a hint)
that the encoding should be synthesized as a decoded (one hot) style,
and the result be the same as if the code explicitly checked a single
bit?
BTW, there is a trick I have seen people use instead of using the
case(1'b1) style for inferring one-hot designs.
parameter S0 = 1, S1 = 2, S2 = 4, S3 =8,
RS0 = 4'b???1, RS1 = 4'b??1?, RS2 = 4'b?1??, RS3 = 4'b1???;
casez(state)
RS0: ... next_state = S2;
RS1: ...
RS2: ... next_state = S1;
endcase
Adam Krolnik
Verification Mgr.
LSI Logic Corp.
Plano TX. 75074
This archive was generated by hypermail 2b28 : Thu Dec 13 2001 - 08:48:42 PST