Ok, here's how it works... First off, we have two source clocks. One is 133MHz, the other is 156.25MHz. Select one with a mux.
Next, we have a pre-divider that can divide the clock by any number between 1 and 128. Restrict the range of your divider so that its output is in the range of 1MHz to 6.875MHz (330/48). Next, we have the DCM that multiplies by 48. Finally, we have a post-divider that divides by 1, 2, 4, 8, 16, or 32. To compute the parameters, we do an exhaustive search through all combinations of settings and pick the one that is closest to the desired clock rate. There may be an analytical solution, but this search is fast (and infrequent) enough that we don't care. Note that what you need to generate isn't always the dot rate. The video controller is clocked at 1/2 or 1/4 the dot rate, depending on the mode (that is, if we're processing 2 or 4 pixels per cycle), but we then need 4x and 2x (maybe, I forget) multiples of that for the final stage that controls the transmitters directly. -- Timothy Normand Miller http://www.cse.ohio-state.edu/~millerti Open Graphics Project _______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
