[Coco] CoCoFest Online - For those that just simply could not go.
John Kent
jekent at optusnet.com.au
Thu May 26 08:31:27 EDT 2011
Should have gone to the list.
I have not really done an exhaustive check of patents.
John.
On 26/05/2011 10:28 PM, John Kent wrote:
> Hi James & Boisy,
>
> Yes, my design uses what really boils down to microcoded state
> machine, although the next address or state is coded into the state
> machine rather than using a microcode Program Counter. On the 6809 I
> do have a state stack, so that I can share the addressing modes across
> all of the instructions. The addressing modes are microcode subroutines.
>
> The 68HC11 is similar to the 6809 although is probably closer to the
> 6800 or 6801 and can execute pretty well all the 6800 instructions.
> opcode extensions allow for the additional Y index register. I do have
> a 68HC11 design called System11 but I never bothered to complete it.
> The progression was: Micro8, System05 (68HC05) which I never quite
> finished, System68 (6800), System01 (6801/03), System11 (68HC11) which
> I never quite finished, and System09 (6809).
>
> They were all pretty similar in design, except for the 6809 I
> implemented a microcode or state stack.
>
> I used the ALU to do all the index register calculations which meant
> that the ALU had to be 16 bit. You could have a 16 bit address
> generator for the index registers, stack pointers and program counter
> and an 8 Bit ALU for the accumulators.
>
> It's not just the state sequencer that slows the design down, it's
> also the size of the multiplexer to the left and right side of the ALU.
>
> My 6809 design uses a single phase clock. The clock is used to clock
> the new registers into including the program counter and the
> transition state of the sequencer. I use the falling edge as with the
> 68XX although FPGA designs normally use the rising edge. The address
> and data are normally set up before the rising edge, mid cycle, rather
> than by the quadrature clock, so that the rising clock edge can be
> used for reading and writing block RAM.
>
> Ideally I'd like to use the wishbone bus although the SRAM and SDRAM
> typically need a faster clock than the CPU, i.e. 50MHz rather than 25MHz.
>
> I'd like to do a 6309, but I'm concerned if I spend the time on it
> that I would get some remuneration for it.
>
> John.
>
> On 26/05/2011 1:41 AM, jdagget at gate.net wrote:
>> John
>> I tend to concur that adding the instructions for the 6309 may very
>> well start to slow down the
>> buss speed. The real concern is the increase in logic in your state
>> control process. Operating
>> the 6809/63090 at buss speeds at other than submultiples of the pixel
>> clock will cause some
>> minor issues with the GIME chip or other video control logic timings.
>> It is neater to just use
>> sub multiples of the pixel clock like the GIME/VDG chips do. Just
>> neater.
>>
>> I have actually looked at doing a variant based on the patents for
>> the 6800 and the four
>> patents that I found that directly apply to the 6809. Also one can
>> look at what the University of
>> Florida students did with the GATORHC11. That is a micro coded
>> machine that maybe
>> modifiyable to the 6809/6309 usage. You would be surprised to know
>> that the internal
>> structure of the HC11 and the 6809 are more similar than one would
>> think. The HC11 is not
>> microcoded. Its instruction set is not totally unlike that of the
>> 6809 either.
>>
>> Also the address bus in the 6809 is two 8 bit busses and the data
>> buss is also two 8 bit
>> busses. The 6809 design uses bus switches in key locations to route
>> data in and ou and
>> between registers. Also the PCR has its own incrementer and does not
>> need to pass the
>> PCR increment through the ALU. The output of the incrementer is
>> routed back through the
>> address bus to the input of the PCR through bus switches. Granted
>> this is all dreived from
>> drawings and some of the patents on the 6800/6809 series of
>> processors. I know that the
>> switch concept is nearly impossible to duplicate in an FPGA. Though
>> the routing can be done
>> with muxes.
>>
>> Also to consider this the 6809/6309 does use a quadrature clock. This
>> gives four states per
>> clock cycle to do the internal routing with in the processor. I know
>> many FOGA circuit
>> designers do not like using both positive and negative edges in their
>> designs. And quadrature
>> clocks may not be as popular either. The quadrature clock system give
>> the 6809 its speed
>> advantage over it competitors of that time. Slower clock meant less
>> current.
>>
>>
>>
>> james
>>
>
--
http://www.johnkent.com.au
http://members.optusnet.com.au/jekent
More information about the Coco
mailing list