kernelthread wrote:
I'd suggest switching to SMD for the R's and C's - not only do they take up less board space, but you can put components on both sides of the board.
i already mentioned that i didn't wanted to go with SMT for the passives because it would double the cost of the board if i let JLC solder them for me, and i didn't want to bother soldering such small parts myself.
maybe for a "micro version" someday where every part is SMT and it runs at 3.3V or something.
kernelthread wrote:
You could increase performance and maximum clock speed by permanently grounding the CS lines of the RAM and Flash devices and using OE and WE lines to control access instead. So instead of CS_RAM0, CS_RAM1, CS_ROM, OE_MEM and WE_MEM you would have OE_RAM0, OE_RAM1, WE_RAM0, WE_RAM1, OE_ROM.
how exactly would that help with performance? does asserting CS take longer than OE/WE?
kernelthread wrote:
Also, if you connect the memory devices directly to the CPU data bus instead of routing them through the CPLD that would shave off the CPLD propagation delay on memory accesses.
honestly i didn't do that because i wasn't sure about how the Data Bus would behave when directly hooked up to devices. I don't want to accidentally cause damage to the CPU because the FLASH took too long to let go of the Bus before the CPU started driving it with the Bank Address again...
even WDC's Datasheet recommends a transceiver between the CPU and the rest of the system.
kernelthread wrote:
Why not connect up the A16, A17 and A18 lines of the Flash? The 65816 isn't short of address space and it seems a shame to waste most of the Flash.
it would just be a waste of space on the memory map that could be used for RAM expansions in the future, even 16kB of Flash is way more than i'll ever need.
these chips are really cheap so i don't mind leaving a massive part of one of them unused.
kernelthread wrote:
Also, why not connect up the Flash WE signal? The ability to reprogram the flash in situ can be useful. You have a spare CPLD pin (pin 8 ) which could be used for the purpose.
I don't really see the usefulness in that, ideally i'd program the Flash only a few times until i got a serial bootloader working and then never have to touch it again. that's how i did it on my 65C02 SBC as well.
kernelthread wrote:
If you can get hold of an AX100 version of the ATF1508 that would give you an extra 16 I/O pins to play with. The downside would be having to solder a fiddly 100 pin TQFP package.
it was already nerve wracking enough to solder on a TQFP-100 FPGA once, and if the PCB is irreparably broken somehow i would loose that chip, so no thanks i'll stick with PLCC.
plus i got like 10 of those PLCC ones for like 30 EUR total, which was an absolute steal, so i'm gonna make use them.
kernelthread wrote:
(nit pick) why is the FT240 WR signal labelled WR_RD instead of FT_WR ?
because i'm dumb, i genuinely didn't notice that... nice find!
also you made me realize that i was forgetting a signal on the expansion connector, specifically the CPU's RW signal... which is pretty important.
i'll also rename the CS_VRAM to CS_EXT and just map that to address $100000 and above, since that saves me having to route VDA and VPA all the way over there.