Skew between signals
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
Skew between signals

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> FPGA
Author Message
Michel Bieleveld
Guest





Posted: Tue Jan 04, 2005 1:55 am    Post subject: Skew between signals Reply with quote

The problem is that i have two output signals, CE and WE, now i want
to "schedule" the rising of WE just after the rising of CE.

I tried it by putting the rising statement of CE earlier in the
process than the rising of WE, unfortunately, but expectly, without
any succes.

So how can i "schedule" the rising of the signal after the other. I
don`t want to do doubling of the clock, using both clock edges, etc. I
hope to do it with just constraints in Xilinx ISE.

So can anyone tell me how to fix this problem, any info would be
appreciated !

Michel Bieleveld.
Back to top
Falk Brunner
Guest





Posted: Tue Jan 04, 2005 2:02 am    Post subject: Re: Skew between signals Reply with quote

"Michel Bieleveld" <aktaeon@gmail.com> schrieb im Newsbeitrag
news:47fe273e.0501031255.4e19d7fc@posting.google.com...

Quote:
The problem is that i have two output signals, CE and WE, now i want
to "schedule" the rising of WE just after the rising of CE.

I tried it by putting the rising statement of CE earlier in the
process than the rising of WE, unfortunately, but expectly, without
any succes.

Sure, we are talking about real world, synthesizable HDL. The delay
statements in VHDL are for simulation only.
VHDL is concurrent, statements are processed in parallel as fast as possible
(given by the target technology).

Quote:
So how can i "schedule" the rising of the signal after the other. I
don`t want to do doubling of the clock, using both clock edges, etc. I
hope to do it with just constraints in Xilinx ISE.

Hope is good, but basic understading of things is better.
So how do you think such a thing might be possible.?? Adding a RC-Filter to
an IO?
There are serval tricks to get a more or less usefull workaround, but a
reliable and safe way is to use a clock (and maybe the inverted edge).
Nothing wrong with this.
You can "adjust" the phase relation also by setting the IO driver to
different driving strength and slew rates, but this is IMHO not a clean way
(phase will vary with VCC and temperature)

Regrads
Falk
Back to top
Eric
Guest





Posted: Tue Jan 04, 2005 3:53 am    Post subject: Re: Skew between signals Reply with quote

if you want WE to toggle after CE you have two states not one (If you
think of your design as a state machine). So doubling the clk is the
best solution. That way you'll have WE toggle on one clk edge and CE
toggle on the next.

It's not the answer you wanted to hear, but i think it is the way that
will get you the most consistant results.

Eric
Back to top
Purvesh
Guest





Posted: Tue Jan 04, 2005 5:51 am    Post subject: Re: Skew between signals Reply with quote

What Eric is suggesting is the cleanest way to do things.

Another alternative without going thru re designing logic too much is
to use DCM to generate half frequency clk phase shifted by what ever
delay you want. Use that clock as a gate to your WE. This will cause
bad output times on you WE and could be a concern if you are planning
to run at very high speeds and there is no margin to play with (if
board delay plus set up times plus clk to q are barely meeting).

Else if you are generating WE thru a flop, things are still easier. Use
DCM to generate same frequency clk as your core clk, delay phase shift
by whatever amount you want and use that to clock your WE.

Hope all these help,

Regards,

Purvesh

Eric wrote:
Quote:
if you want WE to toggle after CE you have two states not one (If you
think of your design as a state machine). So doubling the clk is the
best solution. That way you'll have WE toggle on one clk edge and CE
toggle on the next.

It's not the answer you wanted to hear, but i think it is the way
that
will get you the most consistant results.

Eric
Back to top
Jeff Cunningham
Guest





Posted: Tue Jan 04, 2005 6:38 pm    Post subject: Re: Skew between signals Reply with quote

Michel Bieleveld wrote:
Quote:
The problem is that i have two output signals, CE and WE, now i want
to "schedule" the rising of WE just after the rising of CE.

You could make the CE signal bidirectional and use the fed back signal
from the CE pin to gate the trailing edge of the WE signal.

WE out: std_logic;
CE inout: std_logic;

CE <= internal_CE
WE <= internal_WE and CE; -- assuming both are active high.


You might need some other logic to disable this gating function at the
leading edge if WE leading edge must come before CE leading edge. Also,
you must make sure the internal WE signal lasts longer than the internal
CE signal so that skew between the two signals does not cause the
internal WE to negate before the fed back CE cuts it off.

-Jeff
Back to top
Michel Bieleveld
Guest





Posted: Wed Jan 05, 2005 6:29 pm    Post subject: Re: Skew between signals Reply with quote

Thanks for the suggestions !

I am using a spartan 2E so i guess that DCM is not an option for me.

Currently, which also works, I am using an area constraint to put the
logic closer to one pin than the other. In this way everything is
"schedules" as i want to. I was hoping for a similiar and cleaner
result by using some kind of timing constraint.

I imagine that this constraint would accept a minimum of delay
compared to another signal. If this delay after synthesis is not met i
would expect that aditional logic is place between pad and signal to
delay the logic.

Thanks all for your input !

With regards,

Michel Bieleveld.
Back to top
Falk Brunner
Guest





Posted: Wed Jan 05, 2005 11:52 pm    Post subject: Re: Skew between signals Reply with quote

"Michel Bieleveld" <thechatter@hotmail.com> schrieb im Newsbeitrag
news:0tqnt0dvs2d1mbgvfv9r0iqkgpboal6gdv@4ax.com...
Quote:
Thanks for the suggestions !

I am using a spartan 2E so i guess that DCM is not an option for me.

The spartan-IIE has the DLL, which can do phase shifts of 90, 180, 270
degree (provided that the clock frequency is >25 MHz)
You can use a 90 degree phase shifted clock to fix the delay in a reliable
way.

Quote:
Currently, which also works, I am using an area constraint to put the
logic closer to one pin than the other. In this way everything is
"schedules" as i want to. I was hoping for a similiar and cleaner
result by using some kind of timing constraint.

I imagine that this constraint would accept a minimum of delay
compared to another signal. If this delay after synthesis is not met i
would expect that aditional logic is place between pad and signal to
delay the logic.

Forget about such crap. This was a nasty (but often working) trick in the
good ole, TTL days. No real option anymore.

Regards
Falk
Back to top
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> FPGA All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB