Shop OBEX P1 Docs P2 Docs Learn Events
Porting the Prop1 to other FPGA — Parallax Forums

Porting the Prop1 to other FPGA

John A. ZoidbergJohn A. Zoidberg Posts: 514
edited 2014-08-09 09:15 in Propeller 1
Just checking in, I have only seen the Prop1 inside the featured FPGA boards like the DE0, but I believe that all of these can also reside in other FPGA brands like Xilinx and Actel.

I have another CycloneII board bought from Ebay, and I know the Prop1 is not gonna fit inside due to the smaller size. However, I know the number of cogs can be dropped to 4 or 2 for experimentation purposes.

I have learnt Verilog before and skimmed the code - and before I'm told to "read the Verilog codes" again, is it ok if someone can point me the approximate location in "hub.v" where I can drop the number of cogs from 8 to 4 or 2? I believe it's called "bus_sel" or something here.

Again, I have to print the whole codes out and study them in my free time. I'm a bit too excited to modify some of it for my work. :)

As for the other interfacing to the ports and etcetera, I can take it from there myself.

Comments

  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-09 04:15
    I don't have the code listing with me. But it is quite easy to find. Just look for the iterations sequence something like
    for i 0 to 7 i++
    That is where it is expanded to 8 iterations. I am unsure if you can just reduce the iterations or there are other things requiring changes too.
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,720
    edited 2014-08-09 04:51
    Also, I did find a output reg enable and config reference in the HUB.V file

    output reg [7:0] cog_ena,



    output [7:0] ptr_w,

    output [27:0] ptr_d,


    output reg [7:0] cfg

    );

    ========================================





    // cogs

    reg [7:0] cog_e;

    wire cog_start = sys && ac[2:0] == 3'b010 && !(dc[3] && all);

    always @(posedge clk_cog or negedge nres)
    if (!nres)
    cog_e <= 8'b00000001;
    else if (ena_bus && sys && ac[2:1] == 2'b01)
    cog_e <= cog_e & ~num_dcd | {8{!ac[0]}} & num_dcd;

    always @(posedge clk_cog or negedge nres)
    if (!nres)
    cog_ena <= 8'b0;
    else if (ena_bus)
    cog_ena <= cog_e & ~({8{cog_start}} & num_dcd);

    assign ptr_w = {8{cog_start}} & num_dcd;

    assign ptr_d = dc[31:4];
  • John A. ZoidbergJohn A. Zoidberg Posts: 514
    edited 2014-08-09 06:01
    Thanks everyone for the advice. For now, I have to struggle to install Quartus inside as I have changed my computer's OS.

    As I do not have a DE0, I'll open the files provided by Parallax inc. in the Quartus and look at the block diagram (if there is one) and then improvise from there.

    I will drop the total cores (cogs) to 2 as a start first as I have other stuff to do at this moment. :)
  • doggiedocdoggiedoc Posts: 2,241
    edited 2014-08-09 07:27
    Have you determined the minimum number on LEs needed to run 2 cogs? I have a Xilinx Spartan XC3S100E with only 2160 LE cells. But I suspect it is not nearly enough.

    Paul
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-09 07:45
    Past posts indicate about 15K LE's on a Cyclone IV for 8 cogs... we can round that to roughly 2K LE/cog

    Assuming LE's are created equal, your XC3S100E should fit one cog.

    Two on an XC3S200

    Four on an S500

    I have those Xilinx FPGA's in my lab (mostly on SeeedStudio Papilio's), but sadly no time right now to try the Verilog on them.

    http://www.seeedstudio.com/depot/Papilio-One-500K-p-811.html?cPath=6_10

    I think the above might fit four cogs.
  • doggiedocdoggiedoc Posts: 2,241
    edited 2014-08-09 07:52
    Thanks Bill - I'm dusting off my XC3S100E now and will try to get 1 cog to work. This is assuming I can get the BASYS software to work at all. It may require Windows OS.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-09 08:17
    You are most welcome!

    Please keep us updated - I for one am very interested in the results of your experiment.
    doggiedoc wrote: »
    Thanks Bill - I'm dusting off my XC3S100E now and will try to get 1 cog to work. This is assuming I can get the BASYS software to work at all. It may require Windows OS.
  • doggiedocdoggiedoc Posts: 2,241
    edited 2014-08-09 09:15
    Bill, I have started a new thread to document my efforts.
Sign In or Register to comment.