"Amit" <> wrote in message
news:85e4be1f-a2ed-4b43-a894-...
> Now, in this learning process I have given a project to read some
> music files which seemed doable and have done it by now (except some
> minor changes I have to apply). Next, step is reading the raw data
> (music) and sending them to a Wolson WM8731 CODEC and FIFO. Here is my
> nightmare; This CODEC has some timing theory which sounds very hard
> page 15 at http://www.wolfsonmicro.com/uploads/.../en/WM8731.pdf.
>
> I have few days to understand this timing thing and implement it using
> VHDL in Quratus II. I have no idea how to start it. I would love to
> learn this concept and impelement it so desperately looking for a way
> to understand how these things work.
You have your work cut out for you then. The fundamental ideas you need to
grasp are
1. Nothing happens instantaneously, there will always be some delay/skew
between any two signals
2. No delay/skew is completely predictable so there will always be some
uncertainty in the actual device delay
3. In order to work properly, most parts have some timing requirements that
need to be met.
The spec sheets defines the parameters for a particular device. An example
of #1 and #2 in your referenced spec is Figure 2 where the waveform and
parameter table define Tcop as being the delay from the input signal
'XTI/MCLK' to the output signal 'CLKOUT'. This delay has a minimum of 0 ns
and a maximum of 10 ns. What this means is that an edge on CLKOUT will be
skewed from an edge on XTI/MCLK by anywhere from 0 to 10 ns. Maybe you care
about that skew, maybe you don't, it is simply saying what to expect from
the device. This particular type of parameter is generally referred to as a
propogation delay.
Figure 4 shows examples of #1, #2 and #3. Parameters Tdl and Tdda define
the skew between the outputs ADCLRC, DAD/LRC, ADCDAT relative to the falling
edge of BCLK. Just like the Figure 15 example it is simply stating what the
part will do and is an example of #1 and #2. Since the output delays are
referenced to what appears to be a clock, this type of parameter is
generally referred to as 'clock to output' delay.
The parameters Tdst and Tdht on that same figure are an example of #3, which
is a requirement that you must meet in order for the part to work correctly.
That figure implies that the input DACDAT is an input that gets sampled on
the rising edge of BCLK. Again, real parts are not able to sample things
instantaneously, the thing that is being sampled (in this case DACDAT) must
be stable for some period of time (in this case Tdst) before the rising edge
of the thing that samples it (in this case BCLK) and must hold it stable for
some period of time after that rising edge of BCLK (in this case Tdht). In
order for the part to work correctly, whatever it is that connects to these
inputs must meet these requirements otherwise there is (in general) no way
to know what the part will do. Those two parameters are generally referred
to as setup time (Tdst) and hold time (Tdht).
It's also important to pay attention to the test conditions that are listed
with each figure. 'Most' of the time, those conditions are similar enough
to what you'll actually have in your design that the listed numbers will be
applicable, but not always and strictly speaking all those timing parameters
only apply to that test condition.
You'll also want to guard your design somewhat and leave a few ns of margin
so that if you have a requirement to have the signal stable 10ns before some
clock that the signal arrives there maybe 12-15 ns or so before. There are
a lot of electrical things that have to go on to get that signal there, and
most of them don't make the signal look like the nice square-ish waves shown
in a timing diagram.
Good luck.
Kevin Jennings