Title: Logic Synthesis 5 FSM and Retiming
1Logic Synthesis 5FSM and Retiming
- Ahmed Hemani
- Sources
- Synopsys Documentation
2Multi Cycle Paths
Timing path that is not expected to propagate a
signal in one cycle
To undo a set_multicycle_path command use
reset_path or reset_design.
3False Paths
You can exclude false paths from an Static Timing
Analysis run. False paths are considered
unconstrained.
4Pipelining a fully manual approach
Increases the throughput of designs to meet high
timing constraints.
5Re-timing a semi-automatic approach
Increases the throughput of designs to meet high
timing constraints.
6Re-timing - Limitations
Only works on mapped/compiled designs
7Re-timing registered outputs
How to get the output registers right?
8Finite State Machines
9Synthesis of Finite State Machines
Idea - Make Synopsys aware of that the logic
represents an FSM
10Synthesis flow of FSMs in Synopsys
11Synthesis Flow of FSMs in Synopsys
- Extraction of the state-vector in a design where
the state-vector is not the only sequential
elements - dcgt analyze -f vhdl state_vector.vhdl
- dcgt elaborate fsm -arch fsm_behave
- dcgt group -fsm -design_name extracted_fsm
- dcgt current_design extracted_fsm
- dcgt replace_synthetic
- dcgt extract
- dcgt report -fsm
- Extraction of the state-vector in a design where
the state-vector attribute is not set in the HDL - Existing Registers
- U1FLIP_FLOP port map (NEXT_STATE0, CLK,
STATE0) - U2FLIP_FLOP port map (NEXT_STATE1, CLK,
STATE1) - How to give the register the state attributes
- set_fsm_state_vector U1, U2
- set_fsm_encoding "S0200", "S1201",
"S2210", "S3211" - Use the script above for the rest
12Synthesis flow of FSMs in Synopsys