On 8/9/06, Bradley Pesicka <[EMAIL PROTECTED]> wrote:
I am a yet another lurker on this mailing list surfacing with a few
questions.
Welcome.
> Start with just implementing the math directly. Use the '*' operator
> as necessary, and get it to simulate. We'll get into a more
> synthesizable form when you've mastered this.
How would the multiplication be written for synthesis? Is it a module
and if so has it been written already?
There is the '*' operator, and the synthesizer can infer block
multipliers. Even for architectures without block multipliers,
synthesizers will infer logic for '*'. The problem is that it isn't
necessarily efficient. What we typically do is shift (by a constant,
so it's no logic) and add. Something like x <= z + {z, 1'b0}; to
multiply by 3 or x <= {z, 8'b0} - z; to multiply by 255. I'd use the
<< operator, but I have a habit of not trusting synthesizers, but most
likely, it would produce identical logic.
> Focus on just RGB (8:8:8) and YUV (8:8:8), and we'll deal with
> variations in the physical format at another time.
Where does the format conversion go? After looking at the drawing
engine and the block diagram, I am clueless as to where the format
conversion belongs.
I'm going to put it in the datapath between the host interface and the
graphics memory.
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)