Ok, hang on. Look here for notes on drawing an ellipse inside a rectangle: http://members.chello.at/easyfilter/bresenham.html
Too bad that algorithm uses floats. But, it is easy to modify if you want to fill the ellipse by adding a for x loop when drawing between the left and right side.
I like that site, wish I'd found that earlier!
Have attached latest
Geo.bas and compiled
drawing.bin to show the working ellipse function.
I need to look a little more tonight when I wake up.
For now, star a new dummy Quartus project to simulate the Geometry_xy_plotter.sv.
...
When copying, yes, having a different bitplane mode for source and destination will work as the pixel writer will have basic conversion logic.
Okay, test project started in Quartus II with the inputs/outputs you've specified. Nothing really to show yet, but I've attached
geometry_xy_plotter.sv for info.
Can you think of anything else?
I'm hoping that's not a trick question, because right now I can't think of anything else.
EDIT: Just a thought, but what about a general FILL function? Specify a point coordinate and a colour and off it goes, filling in all pixels of the colour at the point coordinate with the new colour, until bounded by other colours? Or would that be too far?
I guess as an alternate to this, I'm thinking about a filled polygon function? Perhaps based off of the filled square, but being able to specify all four corner positions?
I need to read up on GSI Technologies '18Mb Pipelined and Flow Through Synchronous NBT SRAM'. They are more available, a bit cheaper and supposed to have a mode similar to ZBT as well as up to 333MHz speed, though, your 15$ FPGA has a 200MHz limit on the IOs in SDR, bit in DDR maybe with a proper layout, you will achieve 11-12 MAGGIES on all 2 megabytes.
36Mb Pipelined and Flow Through Synchronous NBT SRAM at 200MHz is available at under 27$ for 1 while the 18Mb versions are around 14$ for 1.
I know you guys have discussed this all already whilst I've been sleeping, but (for this project at least) $27 (or even $14) for a RAM chip is a bit expensive and I'd need to be convinced of the benefits before pulling the trigger on that.
nockieboy just wants to tie in something and go. I think the 2-4$ 512kb ram chip is fine for an 8 bit 8MHz Z80 while it requires 0 verilog coding experience to get it to work.
Sounds good to me. Don't forget that I already consider the design and assembly of this card to be pretty advanced for a beginner - minimising the number of (relatively) expensive components that could be difficult to solder seems like a good strategy.
nockieboy just wants to tie in something and go.
I can't read his mind, but I think this thread is a proof positive that that is absolutely not his intention. The way I see it, it's a typical hobby project where process is just as important as result, so once you achieve some goal, you invent another one, move the goal post and continue going. Infact if my memory serves me most of features you listed above were not in the original list of requirements, so they were added on the go, which again, is perfectly fine for a "permanently in-progress" hobby project.
To some degree you're right, asmi, but I
do have a specific goal in mind and I outlined that near the start of this thread. In more general terms, I wanted to free my little DIY computer from the host PC, breaking away from the serial console and giving it its own video output and keyboard interface so I could use it as a standalone system. I don't recall if I ever admitted this, but my holistic aim was to be able to create a computer, from scratch, that I could plug into the living-room TV and play Pong (or my home-coded version of it) with the family. That was my gold-standard end goal.
Now, technically I could write Pong for it at the moment and that would be that, but you're right in that it's a typical hobby project and I have become quite addicted to the process as much as the end result. Feature creep is a very significant factor, as is learning about this world of technicalities and skills I never, ever, thought I'd wind up learning about and developing. Originally the design for my computer was all through-hole components. I'm now soldering TSSOPs, 0603 passives and QFP-144s without breaking a sweat and seriously planning for the move to BGA. I'm not an electronics engineer. I'm not a programmer. I have no formal education in either domain. But I do like to learn - and if I can build something fun and practical whilst I'm doing that, so long as the 'next step' isn't insurmountable, then I'll always want to push further as long as you kind folks are willing to put up with my ignorance and stupidity.
Remember, his current cpu upgrade wishes is to add support for a 2-4MHz 6502, not a 100Mhz 486, hence the thread title 'FPGA VGA Controller for 8-bit computer'.
Err.. a 6502 isn't an upgrade from a Z80, it's more of a downgrade. Just sayin'.
There is a chance in the future that I'll move up to the 16-bit Motorola 68010 as I have one sitting in a box somewhere, but that's still a way off.