Shop OBEX P1 Docs P2 Docs Learn Events
FPGA experiments — Parallax Forums

FPGA experiments

prof_brainoprof_braino Posts: 4,313
edited 2014-08-14 22:21 in Propeller 1
We can now implement a prop chip in FPGA. What are some experiments folks can try? Could we :
  • Have more than 8 cores? 16, 32, or 64?
  • Have more than 32k RAM? 1 meg?
  • More than 32 I/O pins? 64 (32A and 32B)? More than 64?

Would these be primarily dependent on the resources of the FPGA, or would these require Chip Gracey level expertise?

Not that I would try to mod the P1 as my first FPGA project. But I would be interested in a whole bunch of cogs and ram.
«1

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-09 14:31
    prof_braino,

    - all of your bullets are FPGA resource bound
    - more cogs would slow down hub access

    The I/O and memory would be the easiest mods.
    We can now implement a prop chip in FPGA. What are some experiments folks can try? Could we :
    • Have more than 8 cores? 16, 32, or 64?
    • Have more than 32k RAM? 1 meg?
    • More than 32 I/O pins? 64 (32A and 32B)? More than 64?

    Would these be primarily dependent on the resources of the FPGA, or would these require Chip Gracey level expertise?

    Not that I would try to mod the P1 as my first FPGA project. But I would be interested in a whole bunch of cogs and ram.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-08-09 18:13
    prof_braino,

    - all of your bullets are FPGA resource bound
    - more cogs would slow down hub access

    The I/O and memory would be the easiest mods.

    Thanks for the response!

    Anybody have a guestimate as to which, if any, of the FPGA boards being discussed, would support:
    64 I/O pins
    1 meg of RAM
    double the number of P1 cogs? (assuming the hub access issue is not the primary concern)

    Are any of these straight forward parameter changes or are they all brain surgery?
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-08-09 18:33
    None - DE2-115 probably the most real estate currently, but don't know how much

    Brain Surgery of varying degrees, I imagine

    Thanks for the response!

    Anybody have a guestimate as to which, if any, of the FPGA boards being discussed, would support:
    64 I/O pins
    1 meg of RAM
    double the number of P1 cogs? (assuming the hub access issue is not the primary concern)

    Are any of these straight forward parameter changes or are they all brain surgery?
  • Dave HeinDave Hein Posts: 6,347
    edited 2014-08-09 19:01
    The idea of experimenting with variations of the P1 in FPGA is interesting, but it seems academic unless it can be converted into a chip. So is there an intent to create a new version of the P1 chip, or will the new versions of the P1 only exist in FPGA? It also seems like activity of the P1 FPGA may detract a bit from the P2 development. I would rather see the P2 design completed instead of a new P1 chip, so I hope the P1 FPGA activity doesn't have a major impact on the P2 project.
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-08-09 19:14
    Maybe it was intended to distract all of us so we leave Chip alone to do P2 stuff?

    It is interesting but like you say mostly academic. Maybe a training course for the P3 "Community Propeller"?

    I'll switch back to P2 as soon as there is something to run.
  • potatoheadpotatohead Posts: 10,261
    edited 2014-08-09 19:20
    Seconded.

    It seems to me, as a learning vehicle, modifying P1 is a good thing. It may well put the P2 work into better context for everyone too. People may understand the impact of changes better, which may lead to better ideas in the future.

    Could be some P1 based design does end up in a chip. Older processes aren't as expensive. It really could be worth kickstarting a P1 that has a small ROM, 64 I/O's, multiply, etc...
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-09 19:40
    I don't really see any new designs coming out of what we do. But who knows.

    And if we do something really imaginative, it could find its way into the P2.
    And sooner or later there may be a P1B and some of these newfound experiments could find their way into that.

    In the meantime, we can all have fun, and try things without interrupting Chip. And in the process, we are learning Verilog and which FPGAs work best with this design.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-09 20:05
    Bill mentioned rearrangement of the ROM to lower hub on another thread.

    I suggest initially we keep it to the upper part of the 64KBhub so we can keep compatibility.

    We just require the booter and spin. I want to replace the spin interpreter with my faster version as soon as I get time.

    We also want to max the hub ram above 32KB. Might be good to see if we can define the hub as all ram, and preload the top part from the file on bootup.
    Next would be to mod the booter to load 64KB (or maybe slightly less so the booter and spin does not get destroyed)

    There are just so many possibilities here. What to try first???.
  • David BetzDavid Betz Posts: 14,516
    edited 2014-08-09 20:10
    Cluso99 wrote: »
    There are just so many possibilities here. What to try first???.
    I need to understand how the current code works before I can attempt any modifications. I guess you guy's are way ahead of me in that regard.
  • potatoheadpotatohead Posts: 10,261
    edited 2014-08-09 20:20
    Right there with you David.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-09 20:27
    My first experiment will be to add a couple of segment registers for some experiments I want to run (see my thread for details), with the rest of the verilog just as Chip made it (ok, plus reset fix).

    The low rom suggestion was due to the 512 long hubexec hub blind spot for cog addresses. I still intend to do that until I get segment registers working.

    Then more small steps, no huge changes for now. Port B for sure. Maybe a debugger? Different hubexec experiments? The sky is the limit.

    Long term, I intend to put a boot rom at $FFFF0000, possibly booting directly from a uSD card, or an SPI flash. Perhaps 4K - 8K, with a monitor.

    Basically, I see the P1V (Propeller 1 Verilog) as a great way of experimenting, and learning more about designing processors in Verilog.

    I love the freedom of trying really wild ideas simply by implementing them myself in FPGA form!

    FedEx tracking says my CV's are in Vancouver... I should get them Monday or Tuesday.
    Cluso99 wrote: »
    Bill mentioned rearrangement of the ROM to lower hub on another thread.

    I suggest initially we keep it to the upper part of the 64KBhub so we can keep compatibility.

    We just require the booter and spin. I want to replace the spin interpreter with my faster version as soon as I get time.

    We also want to max the hub ram above 32KB. Might be good to see if we can define the hub as all ram, and preload the top part from the file on bootup.
    Next would be to mod the booter to load 64KB (or maybe slightly less so the booter and spin does not get destroyed)

    There are just so many possibilities here. What to try first???.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-09 20:38
    At home I have written down some mods to add the extra 4 x USR instructions. First up I just want to duplicate the mov instruction to verify I have it running. Then I will make it load an immediate 18 bit value. Then I want to copy a new JMPRET instruction.

    I have also looked at adding more hub ram, and making 64 I/O. The I/O has some ramifications though.

    Bill,
    Yes, small ROM at the top of the 64KB hub $FFFF0000 makes sense. It needs to be $FF9F0000or wherever both the booter and spin live - ie Use the same entry addresses as the P1.

    We also need to remove the encryption so we can make the ROM booter easily.

    I have my P2 debugger which I made sure it was almost P1 compatible when I did it. That plus Chips monitor from the P2 will be a nice addition.

    Anyone,
    Can we make the hub RAM and still preload it from a file as Chip is doing it for the ROM?
  • Willy EkerslykeWilly Ekerslyke Posts: 29
    edited 2014-08-10 00:08
    Cluso99 wrote: »
    Can we make the hub RAM and still preload it from a file as Chip is doing it for the ROM?

    Yes you can. Just use the same directive that inits the ROM - (* ram_init_file = "hub_rom_high.hex" *) but with the appropriate filename.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-10 00:46
    Yes you can. Just use the same directive that inits the ROM - (* ram_init_file = "hub_rom_high.hex" *) but with the appropriate filename.
    Thanks Willy.
    BTW Welcome to the forum. Are you going to join us with experimenting?
  • ColeyColey Posts: 1,110
    edited 2014-08-10 03:13
    @Willy

    Welcome!
    Great to see another Brit on the forum..... :D
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-08-10 06:55
    Dave Hein wrote: »
    The idea of experimenting with variations of the P1 in FPGA is interesting, but it seems academic unless it can be converted into a chip. So is there an intent to create a new version of the P1 chip, or will the new versions of the P1 only exist in FPGA? It also seems like activity of the P1 FPGA may detract a bit from the P2 development. I would rather see the P2 design completed instead of a new P1 chip, so I hope the P1 FPGA activity doesn't have a major impact on the P2 project.

    OF course, if you're already working on P2 don't stop. But the purpose of open source is to allow folks to attempt imporvements, yes no?

    And no one should bother thinking about converting any design into a chip until the design is demonstrated to have some benefit not available in current offerings.

    That being said, variations in FPGA might be a way to try the various permutations that have been discussed, to see if any of those have utility in ways not imagined by CG. While most mutations are not viable, 1 in 1000 (is that right?) might be superior. It the weird experiemnts (by folks that don't understand enough to know in advance that it will fail) that uncover radical interesting new information. Just because something is impossible is no reason not to do it anyway.

    Folks interested in P2 development are interested in P2 development. Other folks might want P1 with 64 cores and/or 1 meg of RAM.

    If I had more cores and more ram, I might do stuff that that could be interesting.

    Low hanging fruit and all.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-10 07:31
    Hi Ray,

    I plan to use $FFFF0000 then map it into wherever the legacy code wants it using DSEG, but it could be anything WAY the heck up in the potential 32 bit address space.

    Totally agred about removing encryption P1V experiments, it just slows down the dev cycle. Due to FPGA costs, I really doubt P1V's will show up on commercial boards.

    I am looking forward to your debugger running on P1V, along with a port of Chip's monitor.
    Cluso99 wrote: »
    At home I have written down some mods to add the extra 4 x USR instructions. First up I just want to duplicate the mov instruction to verify I have it running. Then I will make it load an immediate 18 bit value. Then I want to copy a new JMPRET instruction.

    I have also looked at adding more hub ram, and making 64 I/O. The I/O has some ramifications though.

    Bill,
    Yes, small ROM at the top of the 64KB hub $FFFF0000 makes sense. It needs to be $FF9F0000or wherever both the booter and spin live - ie Use the same entry addresses as the P1.

    We also need to remove the encryption so we can make the ROM booter easily.

    I have my P2 debugger which I made sure it was almost P1 compatible when I did it. That plus Chips monitor from the P2 will be a nice addition.

    Anyone,
    Can we make the hub RAM and still preload it from a file as Chip is doing it for the ROM?
  • Willy EkerslykeWilly Ekerslyke Posts: 29
    edited 2014-08-10 09:08
    Cluso99 wrote: »
    Thanks Willy.
    BTW Welcome to the forum. Are you going to join us with experimenting?

    Thanks for the welcome an yes I'm going to be experimenting. I'll post some details to the relevant threads soon - we've had guests for a few days so not much time to play :(
  • Willy EkerslykeWilly Ekerslyke Posts: 29
    edited 2014-08-10 09:09
    Coley wrote: »
    @Willy

    Welcome!
    Great to see another Brit on the forum..... :D

    Thanks! Don't we outnumber the Americans here then? :)
  • ColeyColey Posts: 1,110
    edited 2014-08-10 09:26
    Mate, we don't even outnumber our antipodean cousins :tongue:
  • cgraceycgracey Posts: 14,155
    edited 2014-08-10 13:22
    Cluso99 wrote: »
    I don't really see any new designs coming out of what we do. But who knows....

    I suspect you guys are going to learn logic design and will be coming up with all kinds of ideas which will find their way into future chips.
  • ColeyColey Posts: 1,110
    edited 2014-08-10 13:27
    Hey Chip, how do you feel about setting your P1 baby free to be brought up by others?
    It must be kinda exciting to see it grow in different ways...
  • cgraceycgracey Posts: 14,155
    edited 2014-08-10 13:35
    Coley wrote: »
    Hey Chip, how do you feel about setting your P1 baby free to be brought up by others?
    It must be kinda exciting to see it grow in different ways...

    I don't know what's going to happen, but I think a lot of people will discover that designing hardware is fun, which will be a good outcome. It takes a few months for the hardware design mindset to take hold, after having done only software. It's a big adventure.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-10 15:22
    cgracey wrote: »
    I suspect you guys are going to learn logic design and will be coming up with all kinds of ideas which will find their way into future chips.
    Absolutely agreed. Guess this particular sentence is a little out of context to where I was thinking.

    I don't expect that we will get a new chip design from what we are doing, but I do agree that some parts will be taken on board for another design, be it P1B or P2 or P3.
    And in the process, we will have learnt heaps. And I have already in the past few days... just reading the code I learnt a lot.

    Actually, thinking a little deeper about all this. I know someone who has a possibility of altering the code and getting Parallax to fab a new P1X specifically for them.

    Definitely fun times ahead!
  • jmgjmg Posts: 15,173
    edited 2014-08-10 15:54
    Cluso99 wrote: »
    Actually, thinking a little deeper about all this. I know someone who has a possibility of altering the code and getting Parallax to fab a new P1X specifically for them.

    That would be a tricky target to hit, as much of the P1 is hand crafted, and so a merge of Custom + Synth Logic would be a tough call.

    What may be practical would be an ASIC style synth, with minimal Analog - so the Pin-ADCs would go, and maybe the PLLs (PLL may be common enough, an IC vendor has a standard, tested cell )

    Clock generator ICs are getting smaller and cheaper, so it may be the PLL issues can be side-stepped on a custom pass.
    (I'm guessing they are not price-paranoid, if they are looking at running their own silicon ?)
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-10 16:19
    I think you are absolutely right.

    I've been meaning to do some "real experiments" with my FPGA boards... and this motivates me greatly. I wanted to keep my DE2-115 free for P2 testing, but wanted more memory, so I should be receiving my two shiny new BE CV's tomorow (latest Tuesday) :-)

    Kudos to you, Ken, and the rest of Parallax for releasing the Verilog files.
    cgracey wrote: »
    I don't know what's going to happen, but I think a lot of people will discover that designing hardware is fun, which will be a good outcome. It takes a few months for the hardware design mindset to take hold, after having done only software. It's a big adventure.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-10 17:51
    jmg wrote: »
    That would be a tricky target to hit, as much of the P1 is hand crafted, and so a merge of Custom + Synth Logic would be a tough call.

    What may be practical would be an ASIC style synth, with minimal Analog - so the Pin-ADCs would go, and maybe the PLLs (PLL may be common enough, an IC vendor has a standard, tested cell )

    Clock generator ICs are getting smaller and cheaper, so it may be the PLL issues can be side-stepped on a custom pass.
    (I'm guessing they are not price-paranoid, if they are looking at running their own silicon ?)
    For some, price is not an issue. Could just go with Verilog and even the P2 planned process.

    I have built products that would only be used once to transfer data from one computer to another. Pricing was never really an issue (but I didn't gouge either, just an excellent ROI and both sides were happy). They just needed to transfer the files overnight to go live on a new system. The vendor suggested they re-key their database... can you image the downtime as well as errors!
  • Todd MarshallTodd Marshall Posts: 89
    edited 2014-08-14 16:30
    Folks interested in P2 development are interested in P2 development. Other folks might want P1 with 64 cores and/or 1 meg of RAM.
    Low hanging fruit and all.
    Features like smart pins could be played with using FPGA. Unfortunately, to do so probably means open sourcing SPIN and pasm.
  • David BetzDavid Betz Posts: 14,516
    edited 2014-08-14 16:44
    Features like smart pins could be played with using FPGA. Unfortunately, to do so probably means open sourcing SPIN and pasm.
    That's already been done. Check out OpenSpin.
  • Todd MarshallTodd Marshall Posts: 89
    edited 2014-08-14 16:55
    David Betz wrote: »
    That's already been done. Check out OpenSpin.
    Found it. Thanks.
Sign In or Register to comment.