Hi all. I'm an undergrad student doing a year long project on designing an 8051 variant for FPGA. We're required to decide upon the specifications, by targeting any particular application. I'd be really thankful for any suggestions for the applications.... Could someone guide me to sites that offer a comparison, & applications of available 8051 cores?
there are many many many free and commercial 8051 derivates. spending a year to make another clone really doesnt make sense unless there is something around the 8051 that makes the whole SoC different from the current offerings.
Here are some ideas, that would be both educational, and usefull.
Make the application "FPGA soft-cpu" - so that covers 8051+integration aspects.
Then, take all the 8051-cores you can find, and compile and benchmark them, and publish those results in a table. You will need to include a test suite, to verify they actually work.
Next, look at a FPGA-centric core, like the Open Source mico-8, from lattice (or PacoBlaze) : Note the speeds, and Sizes.
Follow the lead of these designs, and make your 80C51 _variable_ in scope. eg to make a smaller CPU, try for a subset of 80C51, that maps onto FPGA fabric better. Read up on the 8048 core, which was the precursor to the 80C51.
Some things to try :
Add a debug-engine, with an A5H trap opcode.
Make MUL and DIV opcodes conditional, and/or mapped onto hardware
Extend MUL & DIV on FPGA devices with HW maths resource
make IDATA and DATA opcodes conditional
Extend the stack pointer to 9 bits
Add a register frame pointer
remove AJMP/ACALL and/or remove LJMP/LCALL
remove all/some of the Boolean opcode engine
Overlay Code and data
ie you are looking to _shrink_ the 8051, but keep it compatible with existing tools, when used with care!
If you restrict to assembler, you should be able to create a much smaller "8048 resourced 80C51", for example.
Working with compilers+subset would get more interesting, and you would certainly need an opcode trap system, as well as SW tools to sift
At least some of that depends on whether the student wants a "A" or less. "A" level work exhibits general knowledge of where 8051's have been / are used and either does one of those things better or does something new and challenging.
Gegen dummheit kampfen die Gotter Selbst, vergebens.