Shop Learn
P1V Working on Parallax 1-2-3 FPGA (A7) Board — Parallax Forums

P1V Working on Parallax 1-2-3 FPGA (A7) Board

I'm happy to report the P1V (Verilog version of the Propeller) is working on the Parallax 1-2-3 FPGA.

My github repository with the necessary changes is here:

I've forked Jac Goudsmit's repository as it appears to be the most up to date repository based on the Parallax corporate P1V repository. Jac has done a nice job of restructuring the Parallax repository and made it very easy to build P1V's for various boards from the same code base. I intend to follow his guide and work within the scaffold he built.

My changes include only the vary basics needed to build a standard P1V that runs on the A7 version of the Parallax 1-2-3 FPGA board as well as a readme.txt file with building and loading instructions.

The P1V uses the 1-2-3 FPGA USB port in RUN mode for programming. You do NOT need a Prop Plug; however, P30 and P31 are not exposed for your use, they are "hard-wired" to the USB port in the FPGA. The used LEDs, GRN0-GRN15 are used as COG activity indicators - GRN0-GRN7 are lit when COG0-COG7 are active, GRN8-GRN15 are lit when the COGs are inactive. P1V pins 0-29 are brought out to the 3.3V I/O header on the board*. Nothing else on the board is connected to the P1V or exposed to the user in this basic configuration.

*EDIT: I just realized I haven't tested to see if these actually are 3.3V I/O pins. They are intended to be but this must be verified. Sorry!

It does require Quartus II v15 in order to build for the A7 FPGA. Total time to build was about 13 minutes on my 8GB I7 laptop w/ SSD - you have the .rbf file in less time but the timing analysis takes a while to run.

Fitter Report:

Fitter Status    Successful - Fri Jul 31 10:41:44 2015
Quartus II 64-Bit Version    15.0.2 Build 153 07/15/2015 SJ Web Edition
Revision Name    fpga123
Top-level Entity Name    fpga123
Family    Cyclone V
Device    5CEFA7F23C8
Timing Models    Final
Logic utilization (in ALMs)    8,523 / 56,480 ( 15 % )
Total registers    5848
Total pins    52 / 240 ( 22 % )
Total virtual pins    0
Total block memory bits    655,360 / 7,024,640 ( 9 % )
Total RAM Blocks    80 / 686 ( 12 % )
Total DSP Blocks    0 / 156 ( 0 % )
Total HSSI RX PCSs    0
Total HSSI PMA RX Deserializers    0
Total HSSI TX PCSs    0
Total HSSI PMA TX Serializers    0
Total PLLs    1 / 7 ( 14 % )

As you can see, there is plenty of room to grow a P1V design on this board.

I hope someone gets a chance to try it out!



  • I merged Mindrobots' build back into my Github repo at


  • rjo__rjo__ Posts: 2,115
    edited 2015-08-01 14:26
    Thanks to both of you.  Excellent work.  Using Jac's repo, I have a persistent P1V on the Propeller-1-2-3 FPGA.

    Cog0's green light(GRN 0)  stays lit.  The rest are off(GRN1-7).  I can't get either the Propeller Tool or PropellerIDE to recognize the P1V. 

    I ran px.exe on Com3:  >px.exe fpga123-A7 /P /3
    and it worked fine.  The P1V seems to be there after a power cycle.

    I have switched to RUN from PGM and plugged and unplug the usb cable.  PropTool and PropellerIDE both see Com3, but no hardware found.


  • Rich
    Here's a test program for the Prop123 board
    It implements 128 IO lines and uses leds,pushbuttons,user io 3v3 and 2v5 and all the DAC's
    Give it a try.

  • rjo__rjo__ Posts: 2,115

  • Hi Rich,
    I wasn't able to try it with PropTool or PropellerIDE since I'm not running Windows but BST and one of the Prop Loaders (I think Heater's) see it just fine under Linux.
    If you built ti correctly for the 1-2-3 FPGA, you should see GRN0 lit, GRN1-7 off and also GRN8 off and GRN9-15 lit. I added the "inactive COG" LEDs on GRN8-GRN15 since they were there. If you aren't seeing GRN9-15 lit, that makes me think there was a problem with Quartus building the correct image.
    If you can zip up your .rbf file and attach it, I can try it later today on my board. 
    I'll also grab Jac's repo and build it from there to make sure I didn't mess up anything in doing the proper Git incantations to move things upstream.
    (Of course, Brian's P1V for over-achievers may distract me but I'll try to work on the plain old standard P1V we set up! :lol: )
  • rjo__rjo__ Posts: 2,115
    still can't identify hardware...

    I need "jm_ws2812_ss" to compile

  • rjo__rjo__ Posts: 2,115
    Do I need a PropPlug for this?
  • ozpropdevozpropdev Posts: 2,763
    edited 2015-08-01 15:29
    Sorry Rich, here's jm's spin file
    BTW. PortC and PortD are output only and accessed thru cog registers $1FE and $1FF
    Should identify as "Version 123".

  • Also be aware that the 123 board takes about 6 seconds to boot after a power cycle.
  • Do I need a PropPlug for this?

    No. When the PGM/RUN switch is in the RUN position it is the same as a PropPlug. :)
  • rjo__rjo__ Posts: 2,115
    Thanks again... PortC and  You need to slow down or I need to speed up:)

    hmmmmmmmm.... have to run around.  Back later.
  • rjo__rjo__ Posts: 2,115
    edited 2015-08-01 18:30
    Ok... I can load p123a7.rbf with px.exe.  PropellerIDE builds p123a7_test.spin but when I switch to "Run" on the P123 and then try to run p123a7_test.spin: no hardware is found.  PropellerTool also cannot find Propeller on Com 3. 

    Same with the files from MindRobot taken from Jac's repository. 

    I am fairly certain px.exe is doing it's job, because I see the proper led's lit when using MindRobots P1v... and when I load your .rbf file, those lights go away and I see just the red led's...

    has to be a serial problem, but why would it work on your boards and not mine and why would px.exe work but not PropellerTool?  Strange.
  • Strange... Propeller Tool works first time every time.
    PropellerIDE does not work at all! (Version 0.30.1)
    I don't normally use PropellerIDE as I found it doesn't work with some of my other boards as well.
    ALL my boards work with Prop Tool :)

  • I think Brett broke the loader for PropellerIDE - at least it hasn't worked for me lately.

    I need to find a way to run Propeller Tool somehow. It probably isn't an accurate test until I have it running on a REAL Win7 system (instead of a Vm or Wine).

    I'm building from jac's repo right now. I haven't built the 1-2-3 FPGA image from there, just from my repo. I may have messed something up in getting it merged with him.

    But in Rich's photos on the other thread, he did show the lights lit for COG activity, so that's a good sign.

    More testing time tomorrow, hopefully.
  • rjo__rjo__ Posts: 2,115
    Thanks... thought it was just me:)
  • ozpropdevozpropdev Posts: 2,763
    edited 2015-08-02 03:05
    Here's a P1V with no boot loader just a loop back test. (Worlds smallest PASM program?)
    1. Set to PGM
    2. px p123a7_serial_test.rbf /3
    3. Set to RUN

    Using PST at any baud rate you should get echo of received data.
    It sound like your FT231x USB is OK but maybe a mux/connection issue to the FPGA?
    Edit: BTW Terminal in PropellerIDE doesn't work with the loop back test either!

  • @MindRobots, I build Propman from the sources the and replaced the original 1 and my loading problems stopped, I attached the 1 I build on my linux mint 64bit box
  • Attached Propman
  • Thanks, Roadster! I'll give it a try!
  • rjo__rjo__ Posts: 2,115

    Will give it a try.  Right now I'm betwixt and between and away from my P123.  I actually have more than enough to get started.  Most of what I am concerned about I want to try out without my P1V4Cog variant in there... just to see if there is an issue.  When I first modified one of Terasic's camera projects, I noticed that there was noise in the image... even though my P1V variant wasn't connected... it was just sitting there, waiting to be connected.  When I went back and properly sized some of the involved registers and eliminated unused registers, the noise magically went away... So, to debug this rather interesting possibility, I need to start out with just the memory, vga and camera interfaces before I add the P1V.  Everything seems in order to start that.  Have to get rid of the rug rat and clear my day to do that:)


  • Rich,

    Sorry it took so long to get back to you especially without much helpful news.

    I finally dug out my Windows desktop and fired it up. After updating some software, I plugged in my 1-2-3 FPGA board with the standard P1V image loaded. Once the board loaded the FPGA image into the FPGA, it showed up in PropellerTool v1.3 as a P1 when I hit F7. I was able to load Spin programs into it without any problems.

    Win 7
    Propeller Tool 1.3
    Shows up as FT231x on Com 25

    FTDI driver is date 1/27/2014 and version is built by WinDDK

    It also shows up and is programmable from BST on Windows (same FTDI drivers and device, it should!)

    Give us an update when you get a chance. I can help out better now since I also have a REAL Win7 system available.

  • rjo__rjo__ Posts: 2,115
    No luck yet.

    Brian the .rbf loads without a hitch. When I try to run the spin file with PropellerTool
    Compile Current->load ram... it doesn't find the Propeller.
    I'm using Propeller Tool 1.3 Windows 8.1
    I've attached a picture of the control panel reports... doesn't look like that is the problem.

    I have also tried several different cables... all of them work with px... none of them allows Propeller Tool to see the P1V. I am using Prog & Run correctly. I do a power cycle between Prog and Run and in Propeller Tool removing and re-inserting the usb cable doesn't help.
    504 x 551 - 49K
  • I'm assuming that a "REAL" Propeller plugged into the same port with the same cable appears in Propeller Tool?

    On some computers, I've had problems with a Prop (or virtual Prop) when plugged into a USB3.0 port on the computer. When I moved it to a USB2.0 port, it worked fine. Not to say that all USB3.0 ports are created equal but........let's just say I've stopped using my USB3.0 ports for anything other than USB3.0 peripherals.

  • rjo__rjo__ Posts: 2,115
    Good thought!

    When I plug the usb ports into the other usb ports... px won't run. When I plug a Propeller activity board(PAB) into the SAME usb hub that works with px (as Com3) the propeller on the PAB is identified but on COM8... same usb cable and port... :) what?
  • rjo__rjo__ Posts: 2,115
    OOPS. i don't use a hub I was referring to the port on the side of the laptop.
  • rjo__rjo__ Posts: 2,115
    I should also mention that when I go into Proptool to try to identify hardware, I have only COM3 as a choice ... and then of course it doesn't identify the P1V...on Com3. If I then plug a regular Propeller into the same usb setup... it shows up on COM8. Px works set to com3.
  • mindrobotsmindrobots Posts: 6,506
    edited 2015-08-05 16:34
    Each FTDI chip you plug into Windows gets a new Com number - this doesn't usually cause issue except with px which only works with com1-com9 and some programs get upset when you com port goes over 99. I would be more surprised if the 1-2-3 FPGA and the PAB came up with the same Com port number under Windows.

    If px .exe can see the 1-2-3 FPGA as Com3, then Propeller Tool SHOULD be able to see it as Com3.
  • rjo__rjo__ Posts: 2,115
    If px .exe can see the 1-2-3 FPGA as Com3, then Propeller Tool SHOULD be able to see it as Com3.

    I agree completely. I am going to reboot and see if that helps.
  • rjo__rjo__ Posts: 2,115
    Reboot same as before. So... the only difference between our setups is that I am using Windows 8.1 and you are using Win 7.

    I just looked at the Port Settings... they are stuck at 9600, 8 bits, no parity, 1 stop, no flow control.
  • I'm not sure if I can help you with Win 8.1. I have an Asus convertible that should be able to run Propeller Tool...I just need to be motivated to load it up and try it.

    I'm guessing those are just default port settings - not sure if they really mean anything to anybody.
Sign In or Register to comment.