Also, I'm thinking of starting my own yahoo groups list specifically for this chip. Is that a good idea?
Next, I'm getting lots of ideas from people. Some of them are core to the product, and some of them would be nice for follow-on products. For instance, dual-video would not be on the first model released. However, it is important that analog output always have crisp rise and fall times and be free of noise in order to maximize display quality.
The reprogramability of the FPGA has many advantages, but reprogramability is not its primary purpose. The primary reason to use an FPGA is to minimize NRE for manufacturing. However, as a result, users will be able to download updates. Additionally, those who are
Ok, now on to some design stuff:
The picture I have in my head at this time expands on the idea of the setup engine seen in most GPU's. What I'm thinking is that the setup engine will be general-purpose-ish CPU with special vector and matrix instructions. This way, the transformation stage will occur in "software" executed by a specialized processor. Additionally, the lighting phase might be done here as well.
The setup engine would produce triangle parameters which are fed to a rasterizer which does Gouraud shading and texture-mapping. That feeds pixels into something that handles antialiasing and alpha blending, etc.
The advantages are:
- The community can customize the setup engine as they please, just by writing code.
- This also includes the 2D emulation
- Anything "missing" can be emulated.
The disadvantages are:
- Triangle rate limited by speed of processor
- T&L is serialized, rather than being parallelized in dedicated hardware
- Phong shading and bump mapping may be impossible or too slow