- Joined
- Dec 13, 2007
- Messages
- 1
- Reaction score
- 0
Hi !
have a some questions regarding good design practice on how to choose the "right" clock(s) for a design.
I have a design where most of my logic can run on 80MHz, but small parts of it needs a 2x clock. Most likely I will put a 80MHz oscillator with the possibility of a 2x multiplier(DCM).
So then my questions are:
1. Should I run the whole design on 160MHz and divide all 80MHz processes (state machines etc.) down by two ?
2. Should I use two clock domains(80 and 160) and then deal with synchronizing between the domains afterwards ?
3. I have one state machine that should interact with a async. SRAM witch has a max. readout speed of 80MHz. Most of this state machine can run on 80MHz, but I need to toggle a latch signal to the RAM within the 80 MHz readout cycle. Should this state machine run on 160 ? If so, I need to divide down almost all the states except for the one that deals with the latching. Or should I make a separate process on 160MHz that deals with this latching ?
Answers to my question and maybe some general rules of thumb on this issue will be greatly appreciated !
have a some questions regarding good design practice on how to choose the "right" clock(s) for a design.
I have a design where most of my logic can run on 80MHz, but small parts of it needs a 2x clock. Most likely I will put a 80MHz oscillator with the possibility of a 2x multiplier(DCM).
So then my questions are:
1. Should I run the whole design on 160MHz and divide all 80MHz processes (state machines etc.) down by two ?
2. Should I use two clock domains(80 and 160) and then deal with synchronizing between the domains afterwards ?
3. I have one state machine that should interact with a async. SRAM witch has a max. readout speed of 80MHz. Most of this state machine can run on 80MHz, but I need to toggle a latch signal to the RAM within the 80 MHz readout cycle. Should this state machine run on 160 ? If so, I need to divide down almost all the states except for the one that deals with the latching. Or should I make a separate process on 160MHz that deals with this latching ?
Answers to my question and maybe some general rules of thumb on this issue will be greatly appreciated !