Shop OBEX P1 Docs P2 Docs Learn Events
New Hub Scheme For Next Chip - Page 36 — Parallax Forums

New Hub Scheme For Next Chip

13132333436

Comments

  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-06-24 00:58
    I've started documenting the instruction set yet again but this time I am hopeful. Unlike last time I will use a Google document for each section of the manual, with the initial one being the instruction set. Since each document will be relatively small it should be fairly easy for a few collaborators to work on together. I'm not sure what format I will use but I started off with this: (link)

    Screenshot from 2014-06-24 17:50:36.jpg


    Anyone can view and comment but you need to sign in with an account and request edit access.
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2014-06-24 01:59
    Peter that's very nice!
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 02:27
    Agreed - nice work Peter.
    However, I think the C & Z flags are different to the P1 for the rotates/shifts in that the C & Z flags will now be set with the result, not the source. So this needs to be checked.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 02:31
    Chip,

    Should the following registers be read too to cater for read-modify-write ???
     -- addressable registers
     --
     -- addr  read  write  name
     -- ----------------------------------------------------
     -- 000-1F7  RAM  RAM
     --
     -- 1F8  PTRA  RAM+PTRA PTRA
     -- 1F9  PTRB  RAM+PTRB PTRB
     -- 1FA  INA  RAM  INA
     -- 1FB  INB  RAM  INB
     -- 1FC  [COLOR=#ff0000]OUTA[/COLOR] RAM+OUTA OUTA
     -- 1FD  [COLOR=#ff0000]OUTB[/COLOR] RAM+OUTB OUTB
     -- 1FE  [COLOR=#ff0000]DIRA[/COLOR] RAM+DIRA DIRA
     -- 1FF  [COLOR=#ff0000]DIRB[/COLOR] RAM+DIRB DIRB
    

    Needed for code such as that below. Perhaps it is covered as the Destination and we should separate the register definition into source and destination ???

    ANDN DIRA,#$03 'turn off P0 & P1
    OR OUTA,#$0C ' P2=P3=1

    Perhaps it would be an ideal time to just make the read return the register rather than the ram for both source and destination, or does this complicate things???
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 03:19
    Just finished looking at the instruction set. Looking good!

    The trick of using registers $1F2-1F9 (includes PTRA & PTRB) for LOCADDR & LINK instructions is a nice addition.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 04:27
    Another question: Might this be more correct ??? Or is there another chained latch?
    5ns period
    ------------____________------------____________------------____________------------____________------------____________------------____________-
    |                       |                       |                       |                       |                       |                       |
    |-------+               |              rdRAM Ic |-------+               |              rdRAM Id |-------+               |              rdRAM Ie |
    |       |               |                       |       |               |                       |       |               |                       |
    |---+   +----> rdRAM Db |------------> latch Db |---+   +----> rdRAM Dc |------------> latch Dc |---+   +----> rdRAM Dd |------------> latch Dd |
    |---+   +----> rdRAM Sb |------------> latch Sb |---+   +----> rdRAM Sc |------------> latch Sc |---+   +----> rdRAM Sd |------------> latch Sd |
    |---+   +----> latch Ib |------------>[COLOR=#ff0000]--------->[/COLOR]|---+   +----> latch Ic |------------>[COLOR=#ff0000]--------->[/COLOR]|---+   +----> latch Id |------------>[COLOR=#ff0000]--------->[/COLOR]|
    |   |                   |                       |   |                   |                       |   |                   |                       |
    |   +------------------ALU-----------> wrRAM Ra |   +------------------ALU-----------> wrRAM Rb |   +------------------ALU-----------> wrRAM Rc |
    |                       |                       |                       |                       |                       |                       |
    |                       |       <wait a>        |                       |       <wait b>        |                       |       <wait c>        |
    |                       |                       |                       |                       |                       |                       |
    
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 04:51
    Are the following instruction fixes correct ???
    ZCL-  1101111 00L CCCC DDDDDDDDD 0000[COLOR=#ff0000]1[/COLOR]0000  SETQ D/#
    

    Note: If there are more, I will just add here...
  • evanhevanh Posts: 15,192
    edited 2014-06-24 05:19
    Cluso99 wrote: »
    Another question: Might this be more correct ??? ...

    Yeah, that looks better, that double latch representation stood out the first time I saw it too. I'd guess the way it ended up will be a side effect of how Chip was editing at the time and he's never gone back to review it.
  • David BetzDavid Betz Posts: 14,511
    edited 2014-06-24 05:40
    cgracey wrote: »
    I compiled all 16 cogs and it took ~83k LE's, or 72% of the DE2-115's FPGA.

    Here's an updated instruction list:

    Thanks Chip!
  • RaymanRayman Posts: 13,897
    edited 2014-06-24 06:31
    Sounding pretty good. I was getting worried again that Chip hit a brick wall, but sounds like he's almost there...

    Separate ROM sounds great to me. I vaguely remember some weirdness about ROM memory space overlapping with RAM space before.
    Sounds like the RAM will be "clean" of ROM now...
  • AribaAriba Posts: 2,682
    edited 2014-06-24 07:43
    Cluso99 wrote: »
    Chip,

    Should the following registers be read too to cater for read-modify-write ???
     -- addressable registers
     --
     -- addr  read  write  name
     -- ----------------------------------------------------
     -- 000-1F7  RAM  RAM
     --
     -- 1F8  PTRA  RAM+PTRA PTRA
     -- 1F9  PTRB  RAM+PTRB PTRB
     -- 1FA  INA  RAM  INA
     -- 1FB  INB  RAM  INB
     -- 1FC  [COLOR=#ff0000]OUTA[/COLOR] RAM+OUTA OUTA
     -- 1FD  [COLOR=#ff0000]OUTB[/COLOR] RAM+OUTB OUTB
     -- 1FE  [COLOR=#ff0000]DIRA[/COLOR] RAM+DIRA DIRA
     -- 1FF  [COLOR=#ff0000]DIRB[/COLOR] RAM+DIRB DIRB
    

    Needed for code such as that below. Perhaps it is covered as the Destination and we should separate the register definition into source and destination ???

    ANDN DIRA,#$03 'turn off P0 & P1
    OR OUTA,#$0C ' P2=P3=1

    Perhaps it would be an ideal time to just make the read return the register rather than the ram for both source and destination, or does this complicate things???

    The RAM and the OUTA register hold the same value, because they are always both written, so it does not matter if you make a read-modify-write with the RAM as read-source or with the OUTA as read-source.
    Mapping OUTA into the registers also for reads will need another 32bit Multiplexer and some address decoding. Why do that if you get it for free with the RAM-block?

    Andy
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 07:54
    Ariba wrote: »
    The RAM and the OUTA register hold the same value, because they are always both written, so it does not matter if you make a read-modify-write with the RAM as read-source or with the OUTA as read-source.
    Mapping OUTA into the registers also for reads will need another 32bit Multiplexer and some address decoding. Why do that if you get it for free with the RAM-block?

    Andy
    Thanks Andy. Of course you are correct. This comment should be added to avoid any confusion.
  • BaggersBaggers Posts: 3,019
    edited 2014-06-24 08:19
    Awesome news Chip! and a great surprise too :)
  • David BetzDavid Betz Posts: 14,511
    edited 2014-06-24 09:58
    cgracey wrote: »
    The LINK instruction not implemented yet will be able to provide a 19-bit constant, but is limited on where the return address can be stored.
    19 bits? Does that mean we'll have 512k longs = 2MB of hub memory? :-)
  • BaggersBaggers Posts: 3,019
    edited 2014-06-24 10:15
    David, IIRC I think it's 19bits, because you can read from an unaligned address. although I could be wrong, I've been so busy lately I can't remember everything I've seen in these threads :D
  • David BetzDavid Betz Posts: 14,511
    edited 2014-06-24 11:04
    Baggers wrote: »
    David, IIRC I think it's 19bits, because you can read from an unaligned address. although I could be wrong, I've been so busy lately I can't remember everything I've seen in these threads :D
    Ah, I guess I missed that. It seems like a waste of two bits though.
  • whickerwhicker Posts: 749
    edited 2014-06-24 12:30
    David Betz wrote: »
    Ah, I guess I missed that. It seems like a waste of two bits though.

    As opposed to wasting 32-bits for an extra instruction almost every time to shift it over? For a net gain of -30 bits?

    Anyways glad to see things moving on again.
  • David BetzDavid Betz Posts: 14,511
    edited 2014-06-24 13:17
    whicker wrote: »
    As opposed to wasting 32-bits for an extra instruction almost every time to shift it over? For a net gain of -30 bits?

    Anyways glad to see things moving on again.
    This is an immediate field. It would be the compiler or assembler that would shift the address not code at runtime. However, it could be that this instruction format with a 19 bit immediate field would be used for other instructions as well so maybe it helps to be consistent.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-24 20:03
    David Betz wrote: »
    This is an immediate field. It would be the compiler or assembler that would shift the address not code at runtime. However, it could be that this instruction format with a 19 bit immediate field would be used for other instructions as well so maybe it helps to be consistent.
    It could be used with a rdbyte (ie for tables etc) so best to have the whole 19 bits if possible. Otherwise we would be limited to longs in hub which would be wasteful in some circumstances.
  • jmgjmg Posts: 15,148
    edited 2014-06-24 20:16
    Cluso99 wrote: »
    It could be used with a rdbyte (ie for tables etc) so best to have the whole 19 bits if possible. Otherwise we would be limited to longs in hub which would be wasteful in some circumstances.

    Yup, that is my understanding too, Chip wanted rdbyte to have a natural byte base.
    Of course, the final address fed to the physical RAM is 32b index, and the lower 2 bits select the presented byte.

    It gets more 'interesting' if two COGS write to adjacent bytes - IIRC RMW hw was talked about for that.
    Not sure what Chip has finally done for this instance.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-06-24 21:14
    I could do with a little help on the instruction set as there are a lot of instructions I know nothing about although I have been googling this information to find out a little bit more. You wouldn't have to worry about formatting or diagrams but if you know something about an instruction or you would like to correct the wording then please open the shared document and click share to request edit permissions.

    BTW, with edit permissions the document is no longer paginated and is much easier to work with but I've also changed the page size to A3 portrait so I still get the view width but also a longer page which makes it easier in the read-only format.

    Remember, this is a work in progress and there are a lot of things that aren't correct but I'm just trying to get a feel for layout at least.

    Shared instruction set document (comment only)

    Public read only webpage document
  • TubularTubular Posts: 4,622
    edited 2014-06-25 01:45
    Peter can I suggest maybe a "hit list" on the instructions you'd like assistance with?

    This could be on the forums, preferably, as it might guide more people into helping, but alternatively could be in-document
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-25 02:35
    Peter, the last documents that Chip put out would have much of the information required for the additional instructions. The info was in a file included with the fpga code.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2014-06-25 05:45
    Cluso99 wrote: »
    Peter, the last documents that Chip put out would have much of the information required for the additional instructions. The info was in a file included with the fpga code.

    I was going to ask you for a link because there is a lot of stuff buried out there but I did look in your emulation sticky and found a zip with Prop2_Docs.txt but it looks awfully out of date and not applicable etc. All I'm really asking for at the moment is for anyone in the know to put their two cents worth into the documentation, preferably directly editing this. If for some reason things get messed up it doesn't matter too much as Google Docs keeps track of changes and allows me to revert to earlier versions, even several revisions per day. The important thing is the content, not the formatting as that can be applied and changed at any time.

    I could start up a separate thread just for the documentation but I know that stuff will be posted here too. Anyway, I will plug away at it.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-25 06:27
    Here is the Instruction Summary. Note the instructions still to be done are in a separate section.
    ZCxS Opcode  ZC I Cond  Dest       Source     Instr00 01      10      11        Operand(s)  Flags
    -------------------------------------------------------------------------------------------------------
    ZCMS 00000ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  ROR     ROL     SHR     SHL       D,S/#       ZC ZC ZC ZC 
    ZCMS 00001ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  RCR     RCL     SAR     SAL       D,S/#       ZC ZC ZC ZC 
    ZCMS 00010ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  ADD     ADDX    ADDS    ADDSX     D,S/#       ZC ZC ZC ZC 
    ZCMS 00011ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  SUB     SUBX    SUBS    SUBSX     D,S/#       ZC ZC ZC ZC 
    ZCRS 00100ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  CMP     CMPX    CMPS    CMPSX     D,S/#       ZC ZC ZC ZC 
    ZCRS 00101ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  CMPR    CMPM    SUBR    CMPSUB    D,S/#       ZC ZC ZC ZC 
    ZCMS 00110ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  MIN     MAX     MINS    MAXS      D,S/#       ZC ZC ZC ZC 
    ZCMS 00111ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  SUMC    SUMNC   SUMZ    SUMNZ     D,S/#       ZC ZC ZC ZC 
    ZCMS 01000ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  ISOB    NOTB    CLRB    SETB      D,S/#       ZC ZC ZC ZC 
    ZCMS 01001ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  SETBC   SETBNC  SETBZ   SETBNZ    D,S/#       ZC ZC ZC ZC 
    ZCMS 01010ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  ANDN    AND     OR      XOR       D,S/#       ZC ZC ZC ZC 
    ZCMS 01011ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  MUXC    MUXNC   MUXZ    MUXNZ     D,S/#       ZC ZC ZC ZC 
    ZCWS 01100ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  MOV     NOT     ABS     NEG       D,S/#       ZC ZC ZC ZC 
    ZCWS 01101ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  NEGC    NEGNC   NEGZ    NEGNZ     D,S/#       ZC ZC ZC ZC 
    ZCMS 01110ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  ALTDS   DECOD   TOPONE  BOTONE    D,S/#       ZC ZC ZC ZC 
    ZCMS 011110f ZC I CCCC  DDDDDDDDD  SSSSSSSSS  INCMOD  DECMOD                    D,S/#       ZC ZC       
    ZCMS 0111110 ff I CCCC  DDDDDDDDD  SSSSSSSSS  DJZ     DJNZ    DJS     DJNS      D,S/@       -- -- -- -- 
    ZCRS 0111111 ff I CCCC  DDDDDDDDD  SSSSSSSSS  JZ      JNZ     JS      JNS       D,S/@       -- -- -- -- 
    --MS 1000ffn nn I CCCC  DDDDDDDDD  SSSSSSSSS  SETNIBn GETNIBn ROLNIBn           D,S/#       -- -- --    
    --MS 100011f nn I CCCC  DDDDDDDDD  SSSSSSSSS  SETBYTn GETBYTn ROLBYTn           D,S/#       -- -- --    
    --MS 1001001 fn I CCCC  DDDDDDDDD  SSSSSSSSS  SETWRDn GETWRDn ROLWRDn           D,S/#       -- -- --    
    --WS 1001010 1f I CCCC  DDDDDDDDD  SSSSSSSSS  SETBYTS MOVBYTS                   D,S/#       -- --       
    --WS 1001011 ff I CCCC  DDDDDDDDD  SSSSSSSSS  SPLITB  MERGEB  SPLITW  MERGEW    D,S/#       -- -- -- -- 
    --MS 1001100 ff I CCCC  DDDDDDDDD  SSSSSSSSS  SETS    GETS    SETD    GETD      D,S/#       -- -- -- -- 
    --MS 1001101 ff I CCCC  DDDDDDDDD  SSSSSSSSS  SETDS   SETCOND SETI    REV       D,S/#       -- -- -- -- 
    ZCMS 100111f ZC I CCCC  DDDDDDDDD  SSSSSSSSS  MUL     MULS                      D,S/#       ZC ZC       
    ZCRS 10100ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  TESTN   TEST    ANYB    TESTB     D,S/#       ZC ZC ZC ZC 
    ZCMS 10101ff ZC I CCCC  DDDDDDDDD  SSSSSSSSS  WAITCNT LINK    <empty> <empty>   D,S/#       ZC ZC ZC ZC 
    --LS 1100000 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  JP      JNP                       D/#,S/@     -- --       
    --LS 1100001 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  REP     <empty>                   D/#,S/#     -- --       
    --LS 1100010 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  WRFAST  WRBYTE                    D/#,S/PTRx  -- --       
    --LS 1100011 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  WRWORD  WRLONG                    D/#,S/PTRx  -- --       
    --LS 1100100 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  RDFAST  <empty>                   D/#,S/PTRx  -- --       
    ZCWS 1100101 ZC I CCCC  DDDDDDDDD  SSSSSSSSS  RDBYTE  RDWORD  RDLONG            D,S/PTRx    ZC ZC ZC    
    --LS 110100f Lf I CCCC  DDDDDDDDD  SSSSSSSSS  QSINCOS QARCTAN QROTATE QMUL      D/#,S/#     -- -- -- -- 
    --LS 1101010 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  QDIV    QSQRT                     D/#,S/#     -- --       
    -CLS 1101011 Lf I CCCC  DDDDDDDDD  SSSSSSSSS  COGINIT COGINIT                   D/#,S/#     -- --       
    ZCL- 1101111 0C L CCCC  DDDDDDDDD  0000000ff  CLKSET  COGID   <empty> COGSTOP   D/#         -C ZC ZC -- 
    ZCL- 1101111 ZC 0 CCCC  DDDDDDDDD  0000001ff  LOCKNEW LOCKRET LOCKCLR LOCKSET   D           ZC -- -C -C 
    ZCL- 1101111 ZC L CCCC  DDDDDDDDD  0000010ff  <empty> <empty> <empty> <empty>               ZC ZC ZC ZC 
    ZCL- 1101111 ZC L CCCC  DDDDDDDDD  0000011ff  <empty> <empty> QLOG    QEXP                  ZC ZC -- -- 
    ZCL- 1101111 00 L CCCC  DDDDDDDDD  0000100ff  SETQ    RFBYTE  RFWORD  RFLONG    D/#         -- ZC ZC ZC 
    ZCL- 1101111 00 L CCCC  DDDDDDDDD  0000101ff  <empty> <empty> <empty> <empty>               -- -- -- -- 
    ZCL- 1101111 00 L CCCC  DDDDDDDDD  0000110ff  WFWORD  <empty> <empty> <empty>   D/#         -- -- -- -- 
    ZCL- 1101111 00 L CCCC  DDDDDDDDD  0000111ff  WFLONG  <empty> <empty> <empty>   D/#         -- -- -- -- 
    ZCL- 1110nnn ZC L CCCC  DDDDDDDDD  SSSSSSSSS  <empty>                                       ZC          
    ---- 1111fnn nn n CCCC  nnnnnnnnn  nnnnnnnnn  AUGS    AUGD                      #23bits     -- --       
    -------------------------------------------------------------------------------------------------------
    ZCWS 1011001 ZC I CCCC  DDDDDDDDD  SSSSSSSSS  MSGIN                             D,S/#       ZC          
    --LS 110000f fL I CCCC  DDDDDDDDD  SSSSSSSSS  WAITPAN WAITPAE WAITPBN WAITPBE   D/#,S/#     -- -- -- -- 
    --LS 1100100 fL I CCCC  DDDDDDDDD  SSSSSSSSS  MSGOUTA MSGOUTB                   D/#,S/#     -- --       
    --LS 1100110 0L I CCCC  DDDDDDDDD  SSSSSSSSS  PICKZC                            D/#,S/#     --          
    ---- 1101100 ff n CCCC  nnnnnnnnn  nnnnnnnnn  JMP     JMP     CALL    CALL      #abs        -- -- -- -- 
    ---- 1101101 ff n CCCC  nnnnnnnnn  nnnnnnnnn  CALLA   CALLA   CALLB   CALLB     #abs        -- -- -- -- 
    ZCW- 1101111 ZC x CCCC  DDDDDDDDD  xxxxx00ff  GETCNT  GETRND  POP     CALL      D           ZC ZC ZC ZC 
    ZCR- 1101111 ZC x CCCC  DDDDDDDDD  xxxxx01ff  CALLA   CALLB   PUSH    SETVID    D           ZC ZC -- -- 
    --L- 1101111 00 L CCCC  DDDDDDDDD  xxxxx10ff  WAIT    WAITPX  WAITPR  WAITPF    D/#         -- -- -- -- 
    ---- 1101111 00 x CCCC  xxxxxxxxx  xxxxx11ff  SETQ    RET     RETA    RETB      D/#         -- ZC ZC ZC 
    ---- 11100fr rr n CCCC  nnnnnnnnn  nnnnnnnnn  LOCADDR LOCADDR                   reg,#abs    -- --       
    ---- 11101fr rr n CCCC  nnnnnnnnn  nnnnnnnnn  LINK    LINK                      reg,#abs    -- --       
    -------------------------------------------------------------------------------------------------------
    
    InstructionSummary_20140624.spin
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2014-06-25 06:55
    Reviewing that instruction list, would it be fair to assume that the incomplete instructions are for hubexec?
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-25 07:42
    Peter,
    I am looking at your google docs but not really sure how to edit it yet.

    Here are a few things as I find them...

    "L" is for immediate D value (equivalent to "I" for immediate S value). This is available on some instructions only.

    SETCOND D,S/# sets the CCCC bits in D to the lower 4 bits in S (similar to old MOVI but sets the condition code CCCC bits of an instruction)

    SETI D,S/# sets the IIIIIIICZ bits in D to the lower 9 bits in S (was MOVI)

    SETS & SETD were MOVS & MOVD.

    GETS & GETD get the S & D fields (9 bits). I presume they are placed into the lower 9 bits of D and the upper bits must be zeroed. Otherwise GETS doesn't make any sense???

    SETDS sets both the S & D fields within the D register to the same lower 9 bits in S (confirm anyone??)
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-06-28 06:01
    Chip,

    I have been looking at your new instruction set.

    Might it simplify the logic if the "L" bit were only used in the "Z" position, instead of Z/C/I positions?

    The only potential problem I can see is with the COGID instruction - do we need to check the Z flag on COGID???
    Please also check the SETQ instruction - should this have an "L" option?
    BTW should CALLB #abs and CALLB @rel have Z=1?
    --LS  1100000  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  JP       D/#,S/@    ;            adr    
    --LS  1100000  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  JNP      D/#,S/@    ;            adr    
    --LS  1100001  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  REP      D/#,S/#    ;                   
    --LS  1100010  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  WRFAST   D/#,S/PTRx ;            hub    
    --LS  1100010  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  WRBYTE   D/#,S/PTRx ;            hub    
    --LS  1100011  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  WRWORD   D/#,S/PTRx ;            hub    
    --LS  1100011  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  WRLONG   D/#,S/PTRx ;            hub    
    --LS  1100100  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  RDFAST   D/#,S/PTRx ;            hub    
    --LS  1101000  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  QSINCOS  D/#,S/#    ;            2      
    --LS  1101000  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  QARCTAN  D/#,S/#    ;            2      
    --LS  1101001  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  QROTATE  D/#,S/#    ;            3      
    --LS  1101001  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  QMUL     D/#,S/#    ;            2      
    --LS  1101010  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  QDIV     D/#,S/#    ;            3      
    --LS  1101010  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  QSQRT    D/#,S/#    ;            2      
    -CLS  1101011  L0 I  CCCC  DDDDDDDDD  SSSSSSSSS  COGINIT  D/#,S/#    ;wr if !L    2      
    -CLS  1101011  L1 I  CCCC  DDDDDDDDD  SSSSSSSSS  COGINIT  D/#,S/# WC ;wr if !L    2      
         
    ZCL-  1101111  0C L  CCCC  DDDDDDDDD  000000000  CLKSET   D/#        ;wr if C     1      
    ZCL-  1101111  ZC L  CCCC  DDDDDDDDD  000000001  COGID    D/#     WC ;wr if !WC   0/1    
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000000011  COGSTOP  D/#        ;            1      
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000000101  LOCKRET  D/#        ;            1      
    ZCL-  1101111  0C L  CCCC  DDDDDDDDD  000000110  LOCKCLR  D/#        ;            1      
    ZCL-  1101111  0C L  CCCC  DDDDDDDDD  000000111  LOCKSET  D/#        ;            1      
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000001110  QLOG     D/#        ;            1      
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000001111  QEXP     D/#        ;            1      
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000010000  SETQ     D/#        ;            
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000011000  WFWORD   D/#        ;            
    ZCL-  1101111  00 L  CCCC  DDDDDDDDD  000011100  WFLONG   D/#        ;            
         
    --LS  1100000  0L I  CCCC  DDDDDDDDD  SSSSSSSSS  WAITPAN  D/#,S/#    ;   *                       
    --LS  1100000  1L I  CCCC  DDDDDDDDD  SSSSSSSSS  WAITPAE  D/#,S/#    ;   *                       
    --LS  1100001  0L I  CCCC  DDDDDDDDD  SSSSSSSSS  WAITPBN  D/#,S/#    ;   *                       
    --LS  1100001  1L I  CCCC  DDDDDDDDD  SSSSSSSSS  WAITPBE  D/#,S/#    ;   *                       
    --LS  1100100  0L I  CCCC  DDDDDDDDD  SSSSSSSSS  MSGOUTA  D/#,S/#    ;   *                       
    --LS  1100100  1L I  CCCC  DDDDDDDDD  SSSSSSSSS  MSGOUTB  D/#,S/#    ;   *                       
    --LS  1100110  0L I  CCCC  DDDDDDDDD  SSSSSSSSS  PICKZC   D/#,S/#    ;   *         adr           
         
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx0110  PUSH     D/#        ;   *                       
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx0111  SETVID   D/#        ;   *                       
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx1000  WAIT     D/#        ;   *                       
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx1001  WAITPX   D/#        ;   *                       
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx1010  WAITPR   D/#        ;   *                       
    --L-  1101111  00 L  CCCC  DDDDDDDDD  xxxxx1011  WAITPF   D/#        ;   *                       
    ----  1101111  00 x  CCCC  xxxxxxxxx  xxxxx1100  SETQ     D/#        ;   *                       
    
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-06-28 12:38
    Chip:

    Sounds like you made leaps and bounds of progress!

    I will start digesting the latest instruction set while wifey naps (we just got back from an Alaska cruise).

    "I compiled all 16 cogs and it took ~83k LE's, or 72% of the DE2-115's FPGA."

    Sounds like four cogs should fit in a DE0-Nano.

    Cluso+Peter Jakacki:

    Nice work on more docs.
  • pjvpjv Posts: 1,903
    edited 2014-06-28 13:00
    Bill,

    pjv will not take credit for docs... I suspect that belongs to Peter Jakacki.

    Cheers,

    Peter (pjv)
Sign In or Register to comment.