Recently a Thread on here gave me an idea for a Project: (Post: "Arduino Nano-Sized" Logic Chip..ette?)
the idea being a full System (minus RAM) on a mircochip sized board, specifically a DIP package.
that's also where the name idea comes from. "SoC" means "System on a Chip", and while this isn't a full computer inside a chip, it is an almost full computer on a chip sized/shaped carrier board.
the system is planned to be powered by a 65816 with a VIA for some GPIO, and (gasp) no progammable logic!
so i chose DIP-64, the same package the 68000 uses, as it hopefully has enough pins for all signals and enough area to fit everything. (spoilers it didn't)
Code: Select all
Memory Map:
$000000 - $00FEFF - External ( 63.75 kB)
$00FF00 - $00FFFF - Low ROM (256 B)
$010000 - $017FFF - High ROM ( 32 kB)
$018000 - $01FBFF - External ( 31 kB)
$01FC00 - $01FFFF - IO ( 1 kB)
$020000 - $FFFFFF - External (~15.9 MB)
IO Map:
$FC00 - $FC0F - VIA
$FC10 - $FFFF - Externalspeaking of logic, as mentioned above i wanted to try out the LVC 1G/2G/3G logic ICs instead of something programmable this time. this also allows the SoC to run at 3.0-5.5V without having to swap out any ICs besides the Flash chip.
anyways, problem is that i've never really worked with discrete logic that much. so there might be some obvious mistakes i have made in my design.
plus there might be some ways to optimize the circuit to use fewer gates or spread them out more. currently the longest chain of gates is 8. so i expect the propagation delay to not be that great, and i'd like to reach atleast 16MHz with this.
here the current Schematic: i designed the logic in Digital, tested it, then went over the design again to use only 2/3 input gates, after another round of testing i remade it in KiCad.
so i'm fairly sure the circuit will work as it did in the simulator, but again there might be some mistakes here and there (like missing pull resistors or similar).
here the logic circuit: I am using the same clock circuit as in my current 65816 SBC, but the WSE (Wait State Enable) signal doesn't come from a CPLD this time, and the LVC series doesn't have a JK Flip Flop, so i opted to use 2x D Flip Flops instead. i'm thinking about replacing U14 and U24 with a single 2G79 (dual D-Flip Flop) to save 1 IC, as neither of those require the PRE/CLR inputs or make use of the inverted output.
on another note, the Schematic doesn't specify the type of 74's ICs used for the 245 and 573, because i don't really know which one would be the best to use. HC, AC, or something else? i'm not sure.
also, depsite the SST39SF0x0 looking like a PLCC chip, the pinout is the same for the PLCC and DIP variant. and i think i will go with the DIP version, so programming the Flash for the first time doesn't require a PLCC to DIP adapter.
lastly, the connector J0 (which is the 64-pin DIP footprint) has the signals i want around it, but none of them are connected yet as they might move around a bit to make routing easier. due to a lack of pins i had to sacrifice some signals, specifically i removed CB1 and CB2 from the connector in favor of a second set of VCC and GND pins. it does remove some functionality from the VIA but CA1/2 are still around so it should be fine. (also i forgot to put any pull resistors on the CB1/2 pins, which direction should i pull them to if at all?)
i have already done a bit of work on the PCB itself, but i have to find a good placement for all the ICs to avoid excessive crossing of signals, plus i'd like to keep this a 2 layer PCB so i have to worry about GND and VCC as well. .
but that is pretty much all i have right now.
any criticism/suggestions/ideas (especially around the logic and how i could make it better) are appreciated!
and of course any questions as well.