Hi all,
I've been using Rudi's AC97 controller for a couple of projects and
found it's working very well. In the first place, I was in doubt about
compatability issues as there are many codec chips around and not all of
them might have been used with this core up to now.
Surprisingly, I've had only very few issues when integrating the whole
AC97 stuff using a very simple configuration. There's just an FSM
stimulating the Wishbone interface doing the basic initialization of the
core and the codec. After initialization, the FSM performs regular
writes to the FIFO to send 8-bit audio samples to the codec.
Well, in the future I might step to more complex applications and would
like to share experience with other users of the AC97 controller core.
I've identified three things that are worth mentioning concerning system
integration.
Xilinx' Project Navigator seems to have problems determining the
resulting hierarchy from all the conditional instantiations. For the
time being, I fixed the verilog RTL to my specific implementation but
that's not very nice. Is there a way that PN can handle the definitions
in ac97_defines.v properly?
The National Semi LM4550 requires a SYNC high time of 1.3 us for warm
reset instead of 1.0 us. Just had to adjust AC97_RES_SIG in
ac97_defines.c accordingly.
The Wishbone clock must be at least 2x bit_clk_pad_i. Sometimes, I got
excessive noise on the speaker lines when this rule was violated.
Tweaked the circuit in ac97_soc.v to account for lower WB clocks.
Do you have further input/comments? Is the whole AC97 story really
plug'n play; What should one be aware of?
Cheers
Arnim
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores