LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Øyvind Harboe<oyvind.harboe@z...>
    Date: Thu Mar 6 21:02:01 CET 2008
    Subject: [oc] Re: ZPU (Adam Pierce)
    Top
    I get these email digests from this mailing lists a *LONG* time after
    the post.... how often are digest emails sent out?

    anway...

    I listen more closely to this mailing list. I've answered a number of
    emails privately in email, but I'm considering only replying
    to emails at the zylin-zpu mailing list...

    http://mail.zylin.com/mailman/listinfo/zylin-zpu_zylin.com


    > I want to know if the ZPU instruction set is documented anywhere.

    There are only 11 instructions :-) and there is some documentation
    here:

    http://www.opencores.org/cvsweb.shtml/zpu/zpu/docs/zpuprotoarch.odt

    - addsp is missing
    - pushpc is emulated (or implement in hw as the case may be)

    Patches welcome!

    > I
    > managed to synthesize the core and have compiled a very simple test
    > program but I cannot get it to run. If I understood a little more about
    > what the opcodes did, I could figure out what I am doing wrong.

    You can enable trace output, which shows what instructions are executed.

    I've recently checked in some fixes to hdl/examples.

    The ZPU really does work, but what I committed to opencores was not
    precisely the same as what i worked on, so some of the examples
    and modelsim demos, etc. stopped working. I had to leave a few
    things out to fit the open source license.

    > Maybe
    > this is an endian-ness issue but I can't tell.

    It's a big-endian architecture as far as I recall.

    >
    > Here is my simple example. I am running Cygwin on Windows XP.
    >
    > $ cat looptest.c
    > // Dead simple test program
    > main()
    > {
    > while(1)
    > ;
    > }
    >
    > $ zpu-elf-gcc -o looptest.elf looptest.c -nostartfiles

    -nostartfiles leaves out the microcode! :-)

    > /home/Adam/zpu/bin/../lib/gcc/zpu-elf/3.4.2/../../../../zpu-elf/bin/ld: warning:
    > cannot find entry symbol _start; defaulting to 00000000
    >
    > $ zpu-elf-objcopy -O binary looptest.elf looptest.bin

    To show disassembly:

    zpu-elf-objdump --disassemble looptest.elf

    To show all sections, including microcode:

    zpu-elf-objdump --disassemble-all looptest.elf


    > $ hexdump looptest.bin
    > 0000000 088c 8c02 0b0c 0b0b fb0b 0039
    > 000000b
    >
    > $ java -classpath zpu/simulator/zpusim.jar com.zylin.zpu.simulator.tools.MakeRam looptest.bin
    > 0 => x"8c08028c",
    > 1 => x"0c0b0b0b",
    >

    Answering second email from digest...

    > I've got another step further, I noticed that the Java "MakeRam" utility
    > tends to leave a few bytes off the end. I'm not much of a Java person so
    > I re-wrote it in C. Here it is. You could include it in the ZPU CVS if
    > you think it useful.

    Thanks! Committed:



    2008-03-06 Adam Pierce
    * zpu/zpu/hdl/example/zpuromgen.c - generate rom files
    without java

    --
    Øyvind Harboe
    http://www.zylin.com - eCos ARM & FPGA developer kit

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.