AnyCPU
http://anycpu.org/forum/

FT68000 - 68k similar core
http://anycpu.org/forum/viewtopic.php?f=23&t=355
Page 2 of 2

Author:  robfinch [ Tue Jun 26, 2018 5:18 am ]
Post subject:  Re: FT68000 - 68k similar core

I haven't done much more on this project. Instead I've taken up writing a sci-fi story which is taking up more of my time.


I had a brief look at floating point support. I've written some FP primitives but they have limited pipelining so they use a slow clock. I really should go back and add more pipelining to increase the fmax.


I'm backtracking on the mailbox implementation. It's questionable to connect every mailbox to every sender in parallel. I think it would be slow because of all the routing. So it's back to having a message queue in the router component.

Author:  BigEd [ Tue Jun 26, 2018 8:22 am ]
Post subject:  Re: FT68000 - 68k similar core

> SF story
Interesting - hope we get a chance to read it one day. Does it involve a rogue CPU?

Author:  robfinch [ Wed Jun 27, 2018 1:15 am ]
Post subject:  Re: FT68000 - 68k similar core - OT

Quote:
Interesting - hope we get a chance to read it one day. Does it involve a rogue CPU?

The story involves an immortal woman escaping from a planet about to be fried by the star. Sorry, no rogue CPU in the story. There is only limited AI in the story. Takes place in about a 1990 technical level, with one or two exceptions.

I’ve written about 11,000 words over the last two weeks. It’ll likely be a year or so before the story is done.

Author:  BigEd [ Wed Jun 27, 2018 7:12 am ]
Post subject:  Re: FT68000 - 68k similar core

It's a huge amount of work, I know that - but not from personal experience. Good luck with the endeavour!

Author:  robfinch [ Fri Jun 29, 2018 4:11 am ]
Post subject:  Re: FT68000 - 68k similar core

Added states to support floating point to FT68000x16.v. While the 68000 supports several different operand types (single, double, long, word, byte, etc). The FT68k will only support doubles (64 bits) to begin with. There is some finagling of the datapath necessary as the FT68k previously didn’t support data over 32 bits.

Used an unused mode, reg combination of the 68k (mode 7, reg 6) to implement reading of 64-bit immediate constants. Immediate constants are handled slightly different in FT68k. Rather than look at the op size, there is a separate mode, reg combination to support encoding 16, 32, or 64-bit constants. This allows longer operations to make use of shorter constant encodings. It does make the required instruction encodings not 100% binary compatible, but very close. Since FT68k is little endian constants are encoded differently than the 68k anyway.

Author:  robfinch [ Sat Jul 07, 2018 6:01 am ]
Post subject:  Re: FT68000 - 68k similar core

Now that I selected multiple mode,reg combinations to represent immediates, I've decided that was a bad way to do things and to change it all around and use just a single mode,reg combo. This came from a desire to support extended precision (96 bit) arithmetic. Instead the immediate values are going to be processed with bit 15 of a 16 bit parcel indicating to include more bits in the constant (0 means include the next parcel). The problem is that so many different sizes of constants are required. I want to be able to support at least 128 bits and lower. 128 bits take 9x 15 bits. A small constant (less than 16 bits) will have bit 15 set to indicate that is the last parcel required. I'm going to modify the core so that addresses and displacements work the same way.

I came up with an extended precision (96 bit format) for the FPGA makeing use of 18x18 multipliers.

Attachment:
File comment: 96 bit FP format
DXPres.png
DXPres.png [ 8.09 KiB | Viewed 2705 times ]

Page 2 of 2 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/