OpenCores

ao68000 - Wishbone 68000 core

Issue List
sel signal #2
Closed caramelgate opened this issue over 13 years ago
caramelgate commented over 13 years ago

Is this specifications of ao68000?

The MC68000 uses UDS and LDS as a byte lane in a read-cycle.

ao68000 uses the SEL signal as a byte lane. During a read-cycle, it is always SEL=4'b1111. In the read-cycle of 1 byte, SEL=4'b1111.

If this difference is specifications of ao68000, I do not assume it a problem. However, I think it to be slightly inconvenient.

alfik commented over 13 years ago

This behaviour of the SEL signal when reading was chosen deliberately because of its simplicity. I was planning to use the processor on a 32-bit bus, where reading a byte has the same cost as reading a 32-bit word.

I agree that this way of driving the SEL signal can be inconvenient (and inefficient), especially on a bus with a smaller width.

If I find some time this week I might commit a fix. The fix should not be difficult.

Thank you for your interest and tests.

caramelgate commented over 13 years ago

I implemented ao68000 for trial in FPGA.

The board is here. Device is ArriaGX. http://www.cqpub.co.jp/eda/ArriaGX/default.htm (This is written in Japanese.)

The software is here. http://www.vector.co.jp/soft/dos/prog/se007609.html (This is written in Japanese.) AS68K is an assembler for 68000. The distribution package includes a monitor program. This monitor program uses UART. Because it is an old program, the bus of the peripheral device is 16 bits width. I revised boundery to 32 bits to the specifications of the SEL signal.

It execute.

---- monitor program message ----

MC68000/08 CPU board monitor Ver1.20 ? This monitor supports following commands Dssssss(cr) - Dump in hex and char Gssssss(cr) - Go without trace Fssssss,eeeeee,dd(cr) - Fill with a value Mssssss - Memory set ssssssss dd xx cr,space,BS or "." Lssssss(cr) - List 20-lines or range RS - Register set/display Tssssss - Trace one instruction S - S2-loader (exit by ESC) l00ff0000 00FF0000 ORI.B #$00,D1 00FF0004 ??? 00FF0006 ??? 00FF0008 PEA $00F001CE 00FF000E MOVE.L #$00001000,-(A7) 00FF0014 MOVE SR,-(A7) 00FF0016 MOVEM.L D0-D7/A0-A7,-(A7) 00FF001A MOVE.L #$00F00592,$0008 00FF0022 MOVE.L #$00F005AC,$000C 00FF002A MOVE.L #$00F005B8,$0010 00FF0032 MOVE.L #$00F005E4,$0014 00FF003A MOVE.L #$00F005E4,$0018 00FF0042 MOVE.L #$00F005E4,$001C 00FF004A MOVE.L #$00F005E4,$0020 00FF0052 MOVE.L #$00F001C6,$0024 00FF005A MOVE.L #$00F005E4,$0028 00FF0062 MOVE.L #$00F005E4,$002C 00FF006A LEA $00FF05EE(PC),A0 00FF006E LEA $0080,A1 00FF0072 MOVEQ #$0F,D0 *

---- MON68K message ----

Thank you.

alfik commented over 13 years ago

I am happy to hear it executes.

It was interesting to hear about the Veritak simulator.

Thank you for your tests.

alfik closed this over 13 years ago

Assignee
No one
Labels
Reminder