Shop OBEX P1 Docs P2 Docs Learn Events
XProp - an XMOS co-processor for the Propeller — Parallax Forums

XProp - an XMOS co-processor for the Propeller

LeonLeon Posts: 7,620
edited 2010-12-04 14:17 in Propeller 1
Here is my schematic for a 'proof of concept' PCB which interfaces to the XMOS XC-1 board:

www.leonheller.com/Propeller/XProp/XProp(Page1).pdf

The XC-1 doesn't have the XLinks brought out to the pads I'm using for the connector, so I'll implement a simple bi-directional 8-bit port for data transfers with two handshaking bits. I'll work out the protocol when I've checked out the hardware. The XC-1 board has the four-core XS1-G4A-512 chip, delivering 1600 MIPS. The chip actually has 256 I/Os, most of those on Core 2 are brought out to four 2x8 pin headers. The pads I'm using for the Propeller interface are connected to Core 0.

Here are the details of the XC-1 board that I'm using:

http://forums.parallaxinc.com/www.xmos.com/products/development-kits/xc-1-development-kit

The Propeller board could also be interfaced to the SparkFun XS1-L1-64 board, with a few pieces of wire, as that has the same I/Os available.

If this pans out I can create a new PCB with the usual Propeller goodies on it, like VGA/video and a keyboard interface.

Leon

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM

Post Edited (Leon) : 11/18/2009 3:08:47 PM GMT
«134567

Comments

  • Luis DigitalLuis Digital Posts: 371
    edited 2009-11-18 16:02
    I see you have new website, you should put an index on the homepage.

    I think if you or someone else make economic protoboards (chip XS1-L01A-LQ64) can succeed in xmos forums, and here some might be interested.
  • LeonLeon Posts: 7,620
    edited 2009-11-18 16:07
    I used to use Yahoo/Geocities for my personal stuff, but they closed down the service. I ought to set it up again on www.leonheller.com.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • potatoheadpotatohead Posts: 10,261
    edited 2009-11-18 16:34
    Yeah Leon, it's best on your domain, that way you've got content control, and can keep it clean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • Ahle2Ahle2 Posts: 1,179
    edited 2009-11-18 16:49
    Why use the propeller at all, why not use the XMOS by itself?
    I don't know much about XMOS, but please enlight me!

    The XMOS seems to have a very high RAW performance, but how does it compare to other features of the Propeller?
  • LeonLeon Posts: 7,620
    edited 2009-11-18 17:11
    Look at the XMOS site to see the chips' capabilities:

    www.xmos.com

    People have been doing all sorts of wacky things with Propellers, like connecting them together to get more computing power or I/O pins, or connecting them to an FPGA, so I thought I'd try something even wackier. It's such a simple thing to do from a hardware point of view that it would be shame not to try it.

    I'm designing the PCB at the moment; it'll be made at home in my kitchen sink, and I should have it working tomorrow.

    Here is the PCB layout so far:

    www.leonheller.com/Propeller/XProp/XProp.gif

    The board will be single-sided with a few wire links.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/18/2009 5:24:27 PM GMT
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-11-18 17:27
    It does rather beg the question, "Which is the tail, and which is the dog?" smile.gif But to the extent that each chip can amplify the other's advantages, this could be an interesting project. I think the devil will be in the detail of efficient communication between them.

    -Phil
  • Nick MuellerNick Mueller Posts: 815
    edited 2009-11-18 19:15
    > It does rather beg the question, "Which is the tail, and which is the dog?"

    I just thought the same! smile.gif

    I had a glance at the XMOS-specs. That sounds great. Now before I ask here a lot of stupid off-topic-questions: Is there a forum that you reccomend, Leon? Half as good as this one would be enough. wink.gif
    And reading about XC and the communication, it reminds me a lot of the transputer. Even the name is similar Inmos <-> XMOS. Is there a relationship?


    Nick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Never use force, just go for a bigger hammer!

    The DIY Digital-Readout for mills, lathes etc.:
    YADRO
  • LeonLeon Posts: 7,620
    edited 2009-11-18 19:16
    Efficient comms will be quite challenging. The Propeller will be the bottleneck, of course.

    The PCB layout is finished.

    Nick:

    You need the Xlinkers forum:

    www.xmoslinkers.org/

    You'll see quite a lot of Propeller-heads that you recognise there.

    It was designed by David May, which is why it has some similarities to the transputer. He's a Prof. now and an FRS!

    I was designing transputer-based systems 24 years ago.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/18/2009 7:27:24 PM GMT
  • nutsonnutson Posts: 242
    edited 2009-11-18 19:37
    PIC's and X-MOS processors can become more accessible and easy to use with a propeller handling (high speed) IO and serial data. Interfacing is not the problem, designing a widely usable protocol and libraries for that is. I have ordered one of XGamestations PIC Chamelons, mainly to have a look at the interface between the PIC and the propeller. A route to follow?
  • LeonLeon Posts: 7,620
    edited 2009-11-18 19:55
    Andre is using a 16-bit PIC24 delivering 40 MIPS. I use them a lot, as well as dsPICs. He uses an SPI link between the chips, but I want something much faster.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • Nick MuellerNick Mueller Posts: 815
    edited 2009-11-18 20:04
    > It was designed by David May, which is why it has some similarities to the transputer. He's a Prof. now and an FRS!

    roll.gifroll.gifroll.gif
    When the transputers came out, I always wanted to have a board and play around with them. But I simply didn't have the money as a pupil.

    I think I'll buy me a board and play around with that chip. Looks like a long dream coming true!

    Thank you for your evil XMOS-postings! wink.gif


    Nick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Never use force, just go for a bigger hammer!

    The DIY Digital-Readout for mills, lathes etc.:
    YADRO

    Post Edited (Nick Mueller) : 11/18/2009 9:23:39 PM GMT
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-11-18 20:33
    Take a look at the instruction set first !

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • LeonLeon Posts: 7,620
    edited 2009-11-18 20:37
    They were expensive devices. I used to pay £750 (GBP) each for T800 chips - 20 MIPS and hardware floating-point. I put 16 of my T400/T800 modules on a motherboard, each with 1 MB of RAM.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • FredBlaisFredBlais Posts: 380
    edited 2009-11-18 20:48
    Leon, did you used XMOS a lot? Did you tried their XC language? Do you think the project (XMOS chips) is solid enough to compete with the best micro out there and with all the FPGA thing?
  • LeonLeon Posts: 7,620
    edited 2009-11-18 21:01
    I haven't done very much work with them yet. The tools are very good, and much easier to use than Xilinx's software.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • Nick MuellerNick Mueller Posts: 815
    edited 2009-11-18 21:32
    > Take a look at the instruction set first !

    The missing "goto"? Well that doesn't hurt that much! smile.gif

    Edit:
    And it has MUL and DIV.
    And something called "stack". wink.gif


    Nick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Never use force, just go for a bigger hammer!

    The DIY Digital-Readout for mills, lathes etc.:
    YADRO

    Post Edited (Nick Mueller) : 11/18/2009 10:27:07 PM GMT
  • CounterRotatingPropsCounterRotatingProps Posts: 1,132
    edited 2009-11-18 21:44
    Leon,

    glad to see your "whacky" side come out [noparse]:)[/noparse]

    I too have wondered about what the prop and xmos could do together ... it'll be interesting to watch what this leads to.

    thanks for thinking outside of the boxes.

    cheers
    - Howard

    Post Edited By Moderator (Chris Savage (Parallax)) : 11/18/2009 11:28:48 PM GMT
  • LeonLeon Posts: 7,620
    edited 2009-11-18 22:47
    Here's a little assembler program which adds two numbers in an infinite loop:

        .text
        .file "test.S"
    
        .globl main
        .globl _start
        .globl main.nstackwords
        .linkset main.nstackwords, 0
    
    main:
    _start:
        entsp   0
    loop:
        ldc     r0, 1
        ldc     r1, 2
        add     r2,r0,r1
        bu      loop
        retsp   0
     
    
    



    The stack statements aren't really needed.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/18/2009 11:01:33 PM GMT
  • heaterheater Posts: 3,370
    edited 2009-11-18 23:03
    I can feel and Z80 emulator in XMOS assembler coming on[noparse]:)[/noparse]

    Problem is neither the XMOS or the Propeller can do me a Z80 emulator with 64K+ RAM without wonky RAM implementations. That is: external RAM on the Prop or borrowing RAM from other cores on the XMOS or external RAM on the XMOS as well.

    In fact I have yet to find a micro-controller that will provide a single chip CP/M computer inc. Z80, RAM, keyboard, video and disk interface.

    The Prop + external RAM comes closest as Dr_Acula has shown.

    The Prop II will do it quite well by all accounts.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • LeonLeon Posts: 7,620
    edited 2009-11-18 23:18
    There is an XC-1 SID emulator demo that looks as though it includes a 6502 emulation.

    External RAM works well, I think that there is an SDRAM interface.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/18/2009 11:28:58 PM GMT
  • heaterheater Posts: 3,370
    edited 2009-11-18 23:27
    Bet it's written in C. There are plenty of C codes for 8080/Z80 emulators out there which I'm sure could be persuaded to run there.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Nick MuellerNick Mueller Posts: 815
    edited 2009-11-18 23:32
    > Bet it's written in C.

    I'd like to know how compact the C-code is.
    Anyhow, I think emulating a different processor in C is too expensive. Both in speed and size of the emulator.


    Nick

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Never use force, just go for a bigger hammer!

    The DIY Digital-Readout for mills, lathes etc.:
    YADRO
  • mikedivmikediv Posts: 825
    edited 2009-11-18 23:48
    Leon that Xmos board is pretty awesome and I think I will order one or wait for your version , but I have to ask not to be redundant but I also have to ask Why beside just somehting cool to do is there a practical reason to connect prop to this device?
    I am just trying to understand how it could be useful, does it give the prop more I/O or Ram? I still don't quite get the Chamelons either . But would just like somehting to sink my teeth into
    I bought a CPLD and FPGA eval boards and beside blinking an LED they have been of no use to me even as a learning aid the docs were so lacking, The Xmos looks like you could actually use it for meaningful stuff.
    I am just curious where the prop comes in???? Hate to be a pest but this just looks like a really good idea I would like to understand more thanks.
  • Nick MuellerNick Mueller Posts: 815
    edited 2009-11-18 23:58
    > Why beside just somehting cool to do is there a practical reason to connect prop to this device?

    This serves only as a justification for his "evil XMOS posts"[noparse][[/noparse]tm]

    Ni-just kidding-ck

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Never use force, just go for a bigger hammer!

    The DIY Digital-Readout for mills, lathes etc.:
    YADRO
  • BradCBradC Posts: 2,601
    edited 2009-11-19 00:05
    Nick Mueller said...
    > Bet it's written in C.

    I'd like to know how compact the C-code is.

    The instruction set looks like it's pretty well optimised for a high level language. I'd expect the C compiler to generate quite tight code.
    Nick Mueller said...

    Anyhow, I think emulating a different processor in C is too expensive. Both in speed and size of the emulator.

    I'd look at most of the emulators with source available. I think you'll see most of them are written in C. C is not an inherently inefficient language. Hell, some very popular operating system kernels are written in C with a splash of asm here or there as required. Unless the programmer is very good, a C compiler can often generate better optimised machine code.

    Huh, I'm defending C. Who'd have thought? Anyway, a case of the right tool for the right job. The XMOS has been designed to be programmed in C. The Propeller has been designed to be programmed in Spin [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-11-19 00:08
    I looked into xmos a while back but I couldn't find the equivalent of the prop obex, namely a pile of pre-written code (plus a forum of the people who wrote it). Probably I wasn't looking in the right place, but this feature of the prop is extremely useful.

    Re heater "I can feel and Z80 emulator in XMOS assembler coming on[noparse]:)[/noparse]"

    Oh great. Now look what you have gone and done! *grin*

    Seriously, the reason I'm into CP/M is that I started in pic chips and got sick of always running out of memory. I've now decided that whenever I write a program, I never want to have to worry about memory. Even the prop cogs end up not being quite enough, and I've got some spin that is getting close to filling up a chip. Bill Gates once said that 640k ought to be enough, but actually I think I'll be happy with about 40k. Which is slightly more than the prop, but perfect for CP/M.

    I'm eagerly looking forward to some of the Prop Basic projects and using a bit of external memory.

    I'm with heater on "In fact I have yet to find a micro-controller that will provide a single chip CP/M computer inc. Z80, RAM, keyboard, video and disk interface."

    Back to the xmos, a hybrid board sounds absolutely fascinating.

    How would you program such a thing? Would you have one serial/usb download cable and route it to one or the other? Or two cables, or something else?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/build
  • mctriviamctrivia Posts: 3,772
    edited 2009-11-19 00:12
    If you are right that an xmos can be used as a 400MPS USB to SD Card Converter then may is sugest a small PCB with:
    *1 prop
    *1 xmos chip
    *USB Support Hardware
    *SD Card Jack
    *4 pin multiplexer ic(to allow both chips access to same sd card)


    Connect a few pins together for high speed serial link, connect xmos to usb. if you solder the xmos directly to the pcb instead of using breakouts it would not have to be very expensive.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
  • LeonLeon Posts: 7,620
    edited 2009-11-19 00:23
    That emulator was written in C. With 100 MIPS per thread, it should be fast enough. The XMOS architecture is suitable for virtually any high-level language but most software is developed in XC, which is fully deterministic and has features to handle parallel processing and concurrent threaded applications. C and C++ are also available, and C/C++ functions may be freely mixed with XC.

    As someone has suggested, it's just an extension of Andre LaMothe's Chameleon concept, those boards have an AVR or PIC24 interfaced to a Propeller. I don't think that he has any idea what people are going to do with them.

    The XC-1 board is programmed and debugged via a USB connection, like the Propeller. It should be feasible to have one system booting the other, in a dedicated application.

    I've just made the PCB. I'll drill it tomorrow, build it, and test it.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/19/2009 12:36:49 AM GMT
  • RossHRossH Posts: 5,550
    edited 2009-11-19 02:13
    @Leon,

    This is a very thin line you're walking here. Andre's Chameleon is a product with both a definite purpose and also a well-specified design objective that is satisfied by using a Propeller as a co-processor (see here for details).

    I have no problem with the XMOS - it looks like a useful chip - but this is the Parallax forum. By whipping up a board that connects a Propeller to an XMOS without any evident purpose in mind, or any apparent design objective that can be satisfied by the Propeller's unique capabilities, you are inviting suspicion that that the main reason for doing it is to allow you to promote a competitor product in these forums. Some people would see this as an abuse of hospitality - perhaps even a violation of the forum rules.

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-11-19 03:02
    Leon,

    I'm afraid I have to agree with Ross on this. There's potential for this to be a really interesting project. But, lacking a clearly-defined objective that also highlights the Propeller's capabilities, and to whatever extent this might be just a "sham marriage" to call further attention to the XMOS chip, the Propeller forum is probably not the best venue for these postings. I'm not saying the combination is a bad idea (and it's certainly garnered some attention), just that the spotlight cannot be focused on the XMOS chip to the exclusion of the Propeller. You have a clearly and passionately implied bias towards the XMOS chip, so we can be forgiven if we're more than a little suspicious of your motives.

    -Phil
Sign In or Register to comment.