Having created a custom CPU design focusing on a compressed instruction set in a CPLD as a undergraduate student I know first hand your pain... 'A lot of work' is an understatement...
Great effort, your frustrations were mine too. I completed both an EEE degree specialising in Computer Engineering but we were never exposed to something like this. The most we did was PIC microcontroller and some FPGA stuff around an implementation of the Nokia Snake game. Masters in Mechatronics was similarly in a different direction - both were Math/ Theory heavy with minimal practical exposure. It is rather shocking. I’ve learned much more post Uni and appreciate your efforts for sure.
This is a perfect tool to teach basic computing concepts but with programmable logic it is so much more, simple processors with no memory management or other complexities and programmable logic for everything else.
In feel, it reminds me of the old BBC B. One of the assessments on my degree in the 80s was design and implement a server room climate control system - used analogue signals on the userport to read analogue humidity and temperature, and control cooling, heating, and dehumidifier devices in the 'room' (basically variable resistors, with a bit of support circuitry supplied from the Computer Lab skunk works) with paper logging of time out of specification. This (without the printer) would be great for teaching external control and monitoring
You mentioned the cplds you're using are the best choice because they have internal program memory, making the design simpler. How many write cycles does their internal memory get? I was using some xc2c128 cplds in my project but then found out they only get 100 rewrites before they stopped working. The next easiest to use chips were ice40 fpgas which needs an external spi rom but at least they're faster and 1/3rd the cost so it was a worthwhile tradeoff. I miss that easy schematic mode thingy ISE 14.7 has though, man that made things so easy. If I would have known of the existence of simple cplds that don't have such severe write cycle limitations, I would have picked that instead. Too late though, I spent like a year tinkering with fpgas, already figured enough stuff out to actually use them and it's too late to turn back.
Not sure how many cycles, but I think it's flash-based, so a couple of thousand? I never had an issue, even after many, many reprogramming cycles in the original prototype/
How about if i want to use my desktop computer as a terminal to write assembly, C, and Forth on the CERBERUS? Or write my code in vscode, and run it on the CERBERUS?
You can use offline tools to develop for CERBERUS and serially download code straight to the uSD card. But in principle it won't work with an external terminal with the official version of the firmware. A hack of the I/O processor may perhaps enable it though.
Using the Acorn VDU interface is brilliant. I've used it a lot and having sound and graphics commands over the SPI analog is nicely isolating the systems too
The 6502 plus Z80 is like the vintage Commodore-128 that included both, plus the video controller and i/o controller and SID. I am not counting the 65xx in each floppy drive.
I’m intrigued with the educational benefits of this board in starting a new hobby to understand how computers work. Could someone perhaps recommend a complementary book(s) to get started so I can use this computer as my key to discovering the world of computer design and functioning? Thanks for the consideration.
This is very interesting, reminds me of a commodore pet with a bit of 128 mixed in, also reminds me that Chuck Peddle also was not targeting a game machine…question would the argon lite cp/m run here?
This is fantastic! I hope I can place an order when you have the necessary components as I’d love to use this to teach kids how computers work at the base level! I learned on the 6502 and Z80 way back when they were originally released. 😂
Now I wish I saved my BASIC programs I wrote in high school in the late 70s. Haha! Really looking forward to the series of episodes to come! Thanks so much!
@@thebyteatticI keep a few PS/2 keyboard mouse on hand, so to speak. They hopefully can allow a decent qty 1 price for us lonely old phartzzz with the will to bend the rules of Physics to our will in putting Freeint running on a multiprocessor system dedicated to it 24/7, for once it can just go...
Yes. In fact, this is how I originally designed it. I ultimately decided against it for simplicity reasons: chained JTAG requires a little more involvement with the software for programming any individual device. It's not difficult, but can lead to confusion and error for students. It would also require long traces with lots of VIA hops to connect all three ports on the PCB. On the pricing side of things, the shrouded connectors you see cost less than 30 cents each, so the extra cost was immaterial anyway (less than a dollar, in a bill of materials well over 100 dollars). So now the traces are all short, without VIA hops, and it's extremely easy to program individual devices.
A most cool machine, very seventies and twenty-twenties at the same time. I understand why you choose CPLD over FPGA, I'm sure it will be fun and illuminating to play with. However, it would be nice if somebody makes an FPGA expansion card (preferably using a chip which has an open source tool chain) for those who want to take the next step while still having a transparent underlying system.
It is running under BBC BASIC already. It's slow because many characters have to be redefined every time the cube moves (tile graphics), and doing so requires several calculations.
I might, in the future (read 2024) deliberately do an 'MSX3' code-compatible with all MSX machines. I would make very different choices in that case, since CERBERUS 2100 is meant only as an educational machine.
I know from the development of the MSX3 whether this will continue. I am a member of the msx resource center. I advise all people who like MSX to visit the website.
Why didn't they specify the ZILOG Z800 and WDC65C816 CPU which would let you have access to games for the ZILOG Z80/Z80A/Z800/6502 and 65C816 coded games so what about a 16bit CERBERUS and I think that there is a version of UNIX for the 65C816
This is meant as an educational machine, a platform for experimentation. Code compatibility is not relevant for it. And it is important to keep things simple in an educational machine.
the chips can be reduced down to 2 ICs. A Max10 cpld with 50k elements and an rp2040 as True USB Interface for connecting mice & keyboard, UART, GPIOplug, and HDMI over DVI. for IO header, CPLD pins can be used. also the CPU Z80, 6502, AVR, 4004, Mc14500, CDP1802, etc can be designed in CPLD. Nice project. Although the microchip cpld ecosystem is a bit weird considering the software. Cheers!!
I guess you didn't watch the video through to the end, otherwise you would have understood that I didn't want black boxes (such as the RP2040 doing all video and I/O) in this system. This is an educational system, not one aiming at the lowest possible cost. As for the MAX10, it is an FPGA, not a CPLD (they are completely different things). And if you had watched the video to the end, you would have understood why I deliberately did NOT used an FPGA. In conclusion, just watching the video before commenting might be a good idea.
The most interesting part is you insist using a PS2 compatible keyboard which is rather hard to find, not sure if the wireless dongle will work, you must have your reason ... though.
@@thebyteattic Is there any chips available to easily make the job done? I know USB is not simple thing, but the fact is USB pushing out other options since they are dirt cheap.
"This is meant as an educational machine, a platform for experimentation. Code compatibility is not relevant for it. And it is important to keep things simple in an educational machine." You cannot read?
Slide show didn't written in assembly 🙂
It just loads content of character and screen ram from basic - nothing special not required, just basic 🙂
I stand corrected! :)
I cannot wait for the deep dives into the different CPLD programs.
I really enjoyed the 2080 video series.
Having created a custom CPU design focusing on a compressed instruction set in a CPLD as a undergraduate student I know first hand your pain... 'A lot of work' is an understatement...
Great effort, your frustrations were mine too. I completed both an EEE degree specialising in Computer Engineering but we were never exposed to something like this. The most we did was PIC microcontroller and some FPGA stuff around an implementation of the Nokia Snake game.
Masters in Mechatronics was similarly in a different direction - both were Math/ Theory heavy with minimal practical exposure. It is rather shocking.
I’ve learned much more post Uni and appreciate your efforts for sure.
This is a perfect tool to teach basic computing concepts but with programmable logic it is so much more, simple processors with no memory management or other complexities and programmable logic for everything else.
Very happy to hear this, thanks!
In feel, it reminds me of the old BBC B. One of the assessments on my degree in the 80s was design and implement a server room climate control system - used analogue signals on the userport to read analogue humidity and temperature, and control cooling, heating, and dehumidifier devices in the 'room' (basically variable resistors, with a bit of support circuitry supplied from the Computer Lab skunk works) with paper logging of time out of specification. This (without the printer) would be great for teaching external control and monitoring
You mentioned the cplds you're using are the best choice because they have internal program memory, making the design simpler. How many write cycles does their internal memory get? I was using some xc2c128 cplds in my project but then found out they only get 100 rewrites before they stopped working. The next easiest to use chips were ice40 fpgas which needs an external spi rom but at least they're faster and 1/3rd the cost so it was a worthwhile tradeoff. I miss that easy schematic mode thingy ISE 14.7 has though, man that made things so easy.
If I would have known of the existence of simple cplds that don't have such severe write cycle limitations, I would have picked that instead. Too late though, I spent like a year tinkering with fpgas, already figured enough stuff out to actually use them and it's too late to turn back.
Not sure how many cycles, but I think it's flash-based, so a couple of thousand? I never had an issue, even after many, many reprogramming cycles in the original prototype/
How about if i want to use my desktop computer as a terminal to write assembly, C, and Forth on the CERBERUS? Or write my code in vscode, and run it on the CERBERUS?
You can use offline tools to develop for CERBERUS and serially download code straight to the uSD card. But in principle it won't work with an external terminal with the official version of the firmware. A hack of the I/O processor may perhaps enable it though.
I would love to see Cerberus coupled with the graphics and sound of the Argon Lite!
Using the Acorn VDU interface is brilliant. I've used it a lot and having sound and graphics commands over the SPI analog is nicely isolating the systems too
The 6502 plus Z80 is like the vintage Commodore-128 that included both, plus the video controller and i/o controller and SID. I am not counting the 65xx in each floppy drive.
That board is COOL!!
I’m intrigued with the educational benefits of this board in starting a new hobby to understand how computers work. Could someone perhaps recommend a complementary book(s) to get started so I can use this computer as my key to discovering the world of computer design and functioning? Thanks for the consideration.
How do you handle swapping between processors without crashing the whole machine?
The I/O controller runs the BIOS. A CPU kicks in only when you do 'run.'
This is very interesting, reminds me of a commodore pet with a bit of 128 mixed in, also reminds me that Chuck Peddle also was not targeting a game machine…question would the argon lite cp/m run here?
It would be very straightforward to port it.
This is fantastic! I hope I can place an order when you have the necessary components as I’d love to use this to teach kids how computers work at the base level! I learned on the 6502 and Z80 way back when they were originally released. 😂
I believe Olimex will be carrying it in a couple of months! So you will be able to get it from them.
Awesome!
Now I wish I saved my BASIC programs I wrote in high school in the late 70s. Haha! Really looking forward to the series of episodes to come! Thanks so much!
@@thebyteatticI keep a few PS/2 keyboard mouse on hand, so to speak. They hopefully can allow a decent qty 1 price for us lonely old phartzzz with the will to bend the rules of Physics to our will in putting Freeint running on a multiprocessor system dedicated to it 24/7, for once it can just go...
@@thebyteattic Will there be an alternative to Olimex? Buying from the UK through Olimex can be problematic. Thanks.
CERBERUS 2100 vs AGON video, is that possible? Can different OS CPM, Commodore, ZX Spectrum, and so on be installed?
Video is possible, sure. CP/M can run on both computers, no problem either. ZX Spectrum/C64 emulation is possible on Agon, but not on CERBERUS.
Great work Bernardo!
Cheers Tommy! Would you like one of these? I still have four available.
@@thebyteattic Sure! It would be fun to test it
Good stuff old chap.
I'm guessing the two dual-port RAMs are the hardest to get chips?
Those and the CPLDs have a 5-month order lead-time right now (at commercial quantities, so lots of 90 units). This should resolved by January or so.
Very cool!
Looks like a fun board.
Wouldn't it be possible to chain JTAG ports of all CPLDs and get rid of two connectors to reduce the price and complexity little bit?
Yes. In fact, this is how I originally designed it. I ultimately decided against it for simplicity reasons: chained JTAG requires a little more involvement with the software for programming any individual device. It's not difficult, but can lead to confusion and error for students. It would also require long traces with lots of VIA hops to connect all three ports on the PCB. On the pricing side of things, the shrouded connectors you see cost less than 30 cents each, so the extra cost was immaterial anyway (less than a dollar, in a bill of materials well over 100 dollars). So now the traces are all short, without VIA hops, and it's extremely easy to program individual devices.
A most cool machine, very seventies and twenty-twenties at the same time.
I understand why you choose CPLD over FPGA, I'm sure it will be fun and illuminating to play with. However, it would be nice if somebody makes an FPGA expansion card (preferably using a chip which has an open source tool chain) for those who want to take the next step while still having a transparent underlying system.
It should be fairly easy to make that FPGA card! Maybe at some point I'll do it myself, if others don't do it before me.
Excellent work!
Cheers mate!
@@thebyteattic no worries. Ive got an agon light so will keep an eye on this.
BBC BASIC for the ZILOG can speed up that cube program.
It is running under BBC BASIC already. It's slow because many characters have to be redefined every time the cube moves (tile graphics), and doing so requires several calculations.
Not so central, your central processing unit?
possible an option for building an new MSX computer.
very little memory total 64Kb that was common in the 80s
I might, in the future (read 2024) deliberately do an 'MSX3' code-compatible with all MSX machines. I would make very different choices in that case, since CERBERUS 2100 is meant only as an educational machine.
I know from the development of the MSX3 whether this will continue.
I am a member of the msx resource center. I advise all people who like MSX to visit the website.
2:30 I strongly disagree. There is value in learning how to produce sound.
gives me a Geargasm
Why didn't they specify the ZILOG Z800 and WDC65C816 CPU which would let you have access to games for the ZILOG Z80/Z80A/Z800/6502 and 65C816 coded games so what about a 16bit CERBERUS and I think that there is a version of UNIX for the 65C816
This is meant as an educational machine, a platform for experimentation. Code compatibility is not relevant for it. And it is important to keep things simple in an educational machine.
the chips can be reduced down to 2 ICs. A Max10 cpld with 50k elements and an rp2040 as True USB Interface for connecting mice & keyboard, UART, GPIOplug, and HDMI over DVI. for IO header, CPLD pins can be used. also the CPU Z80, 6502, AVR, 4004, Mc14500, CDP1802, etc can be designed in CPLD.
Nice project. Although the microchip cpld ecosystem is a bit weird considering the software.
Cheers!!
I guess you didn't watch the video through to the end, otherwise you would have understood that I didn't want black boxes (such as the RP2040 doing all video and I/O) in this system. This is an educational system, not one aiming at the lowest possible cost. As for the MAX10, it is an FPGA, not a CPLD (they are completely different things). And if you had watched the video to the end, you would have understood why I deliberately did NOT used an FPGA. In conclusion, just watching the video before commenting might be a good idea.
The most interesting part is you insist using a PS2 compatible keyboard which is rather hard to find, not sure if the wireless dongle will work, you must have your reason ... though.
The USB protocol is much more difficult than PS2 and would require a much more expensive and complex I/O processor.
@@thebyteattic Is there any chips available to easily make the job done? I know USB is not simple thing, but the fact is USB pushing out other options since they are dirt cheap.
@@johnsonlam there are plenty of PS/2-compatible USB keyboards, new from amazon. There just isn't an issue.
You can convert usb to ps2 using a pi pico.
@@thebyteattic Will check out the list.
Why are we going backwards?
"This is meant as an educational machine, a platform for experimentation. Code compatibility is not relevant for it. And it is important to keep things simple in an educational machine."
You cannot read?