Shop OBEX P1 Docs P2 Docs Learn Events
Some overclocking :) -- some illusions :( — Parallax Forums

Some overclocking :) -- some illusions :(

pik33pik33 Posts: 2,366
edited 2014-09-29 18:16 in Propeller 1
In the file "top.tdf" (in my current version "prop.pdf" because the top is the prop + rs232+video circuit on DE2-115) I changed

clk0_divide_by = 5

to

clk0_divide_by = 3

getting the Propeller clocked at 133 MHz...

Then in the video driver:

_clkmode = xtal1+pll16x
_clkfreq = 133_333_000

It works !!!! It works fast...

Edit: failed @ 150 MHz. Propeller found, programmed but not running.
Edit2: 141.667 MHz (pll*17/3) works

Comments

  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-10 02:33
    Congratulations!

    FYI Saphiea had a real prop running at 120MHz. I regularly run at 104MHz although IIRC I have had it running at 14.31818MHz.
  • pik33pik33 Posts: 2,366
    edited 2014-08-10 02:56
    My best real prop run @ 117_964_800 (7.xx MHz *16). This thing @140 MHz is really FAST.
  • ColeyColey Posts: 1,110
    edited 2014-08-10 03:09
    @pik33, it great that you are already seeing improved result by tweaking the setup.
    I did some tests a few years ago with overclocking a real Propeller.
    See my results here...

    Keep up the good work......


    < Shuffles off to find out where I put my DE2 board :D >
  • pik33pik33 Posts: 2,366
    edited 2014-08-10 03:15
    You have a really good chip. My prop @ demoboard cant run @120 MHz.

    Now I have DE2 run @ 150 MHz... let's try 160... compiling.

    Edit: @160 it cannot work. Maybe it is 320 MHz PLL clock which is too high. Maybe changing internal fake pll clock to cogx1 will help
  • ColeyColey Posts: 1,110
    edited 2014-08-10 03:17
    In all fairness it was a DIP40 chip which are much better for overclocking that the surface mount versions.

    Good luck with your experiments...
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-08-10 03:46
    pik33: Overclocking the real prop has a lot to do with the layout being clean and nice decoupling. Never-the-less, the DIP package performs better and we have no idea why.
  • overclockedoverclocked Posts: 80
    edited 2014-08-10 03:53
    When I did my optimization of build-time/performance/resources the COG was marked as being able to run @ 250Mhz. Will the whole Propeller work if one were to set PLL and COG-clock all the same, thus not using half-clock for COG or will this break any logic?

    I'm just trying out GEAR (Propeller emulator written in C#) so I can learn some more about the inner workings of it all.
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,720
    edited 2014-08-10 06:13
    re: Never-the-less, the DIP package performs better and we have no idea why.

    Over clocking generates more heat , wouldn't the larger DIP surface area help run it cooler?
  • pik33pik33 Posts: 2,366
    edited 2014-08-10 07:06
    150 MHz seems to be a wall with DE2-115. There are 2 problems:

    - fake pll clock is now 300 MHz. It is fast for this fpga.
    - rcfast seems to be too fast. I tried to patch this, but no success.

    Starting to learn AHDL :) to understand all these statements in top and tim.
  • cgraceycgracey Posts: 14,155
    edited 2014-08-10 07:12
    pik33 wrote: »
    150 MHz seems to be a wall with DE2-115. There are 2 problems:

    - fake pll clock is now 300 MHz. It is fast for this fpga.
    - rcfast seems to be too fast. I tried to patch this, but no success.

    Starting to learn AHDL :) to understand all these statements in top and tim.

    Note that the cog ALU settles over two clocks and the hub gets its ena signal every other clock. If you were to make multicycle=2 assignments for those paths, the compiler could optimize the other stuff that really needs it and you could maybe get 200MHz on the FPGA, even though the compiled Fmax might only be 160MHz.
  • pik33pik33 Posts: 2,366
    edited 2014-08-10 07:27
    cgracey wrote: »
    . If you were to make multicycle=2 assignments for those paths

    How to do this? This 150 MHz is my current experimental maximum, not something reported by the compiler.

    The smptom of lacking stability was losing connection with PC. So I tried to slower RCFAST clock (by 2) but this give no result. I also tried to set PLL:COG clocks as 1:1. Still ended about 150 MHz.
  • cgraceycgracey Posts: 14,155
    edited 2014-08-10 12:58
    pik33 wrote: »
    How to do this? This 150 MHz is my current experimental maximum, not something reported by the compiler.

    The smptom of lacking stability was losing connection with PC. So I tried to slower RCFAST clock (by 2) but this give no result. I also tried to set PLL:COG clocks as 1:1. Still ended about 150 MHz.

    You have to make a top.sdc file that has design constraints in it. It's a world unto itself.

    After compiling, click on the clock to open the timing analyzer. Learn as you go.
  • pik33pik33 Posts: 2,366
    edited 2014-08-20 05:46
    Recompiled my project for Cyclone V (DE1-SoC board). It is faster than Cyclone IV. Now it is running a vga driver demo @ 180 MHz. Tried to run @ 200 MHz with no success. The project uses about 1/4 of this FPGA (5CSEMA5F31C6)

    Edit: The Propeller can be detected @ 190 MHz, but the VGA demo cannot run.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-20 06:46
    DANG IT!

    I was already looking longingly at that board. Wifey will not be happy... but I feel my FPGA dev board collection may need to increase.
    pik33 wrote: »
    Recompiled my project for Cyclone V (DE1-SoC board). It is faster than Cyclone IV. Now it is running a vga driver demo @ 180 MHz. Tried to run @ 200 MHz with no success. The project uses about 1/4 of this FPGA (5CSEMA5F31C6)

    Edit: The Propeller can be detected @ 190 MHz, but the VGA demo cannot run.
  • pik33pik33 Posts: 2,366
    edited 2014-08-20 08:34
    This is a good part of hardware with not so good software. They published 4 versions of linux for it, every version is buggy, but they have bugs in different places so I think the best way is to mix these 4 bad distribution to make one good.

    The bad thing is the SD slot is on HPS side.

    About wife and money spent on this kind of toys... ..they are expensive here, DE2-115 costs more than my month salary... the salvage is that I work at the university, so they can buy them for me for my scientific research... and then I can do what I want with them if only I can publish some scientific papers :) These boards are easily available here. The Propeller is not. It is all exotic thing.
  • thoththoth Posts: 75
    edited 2014-08-20 10:14
    pik33 wrote: »
    This is a good part of hardware with not so good software. They published 4 versions of linux for it, every version is buggy, but they have bugs in different places so I think the best way is to mix these 4 bad distribution to make one good.

    The bad thing is the SD slot is on HPS side.

    Hi Pik,

    I was looking at the manual for this board and it looked like all the GPIO pins can be connected to the HPS ARM Processor. Can they all be assigned to the FPGA as well? You wouldn't be able to use it for a P1V if you couldn't make the pins connect to the FPGA so obviously at least some of them can be used that way. How is the assignment done? Configuration file?

    Are you planning to combine the four flaky Linux versions into one that works?

    The idea of a Linux OS connected to one or more P1Vs that, in turn, connect internally to other fabricated functions on the FPGA sounds like a system with a lot of capacity.
  • pik33pik33 Posts: 2,366
    edited 2014-08-20 10:32
    Distro #1: the simplest, without anything, communicating with PC via FTDI
    Distro #2: with qt installed, but without gcc
    Distro #3: X, lxde, buggy config, trying to upgrade gives a lot of 404 errors
    Distro #4: Ubuntu. With broken ethernet driver.

    The best seems to be #1. Ubuntu may be good too, if only the ethernet driver can be copied from #3. #2 would be good if only it has gcc.

    To make a linux powered Prop you have to use qsys, create a soc with HPS, add some parallel or serial ports, then connect the propeler to these ports. Then compile all of this, make a rbf file, put it on SD with the Linux system and boot.

    You can then access your Propeller via these ports. They are memory mapped.

    With not working programming tools you have to follow the manual and install the toolchain on a virtual machine on your PC. It took me 2 days. Then you have to write the QT application on the PC, cross-compile it for ARM, move (via Ethernet, scp command) to the SD on the board, then run. A very complex way to do the work.

    I got this board some weeks ago and then I left all of this because Parallax published the free propeller code. I will have to return to this, I need it for my work, but then I want to have the Propeller onboard, too. I think I will use this simplest Linux distro to get the access to the computing power of ARM and the access to the filesystem and 1 GB of its RAM

    All gpio pins are connected to fpga. You can access them with the ARM when you create a SOC with QSYS, create a parallel (or serial) port, and connect them to this port
  • thoththoth Posts: 75
    edited 2014-08-20 11:37
    pik33 wrote: »
    Distro #1: the simplest, without anything, communicating with PC via FTDI
    Distro #2: with qt installed, but without gcc
    Distro #3: X, lxde, buggy config, trying to upgrade gives a lot of 404 errors
    Distro #4: Ubuntu. With broken ethernet driver.

    The best seems to be #1. Ubuntu may be good too, if only the ethernet driver can be copied from #3. #2 would be good if only it has gcc.

    To make a linux powered Prop you have to use qsys, create a soc with HPS, add some parallel or serial ports, then connect the propeler to these ports. Then compile all of this, make a rbf file, put it on SD with the Linux system and boot.

    You can then access your Propeller via these ports. They are memory mapped.

    With not working programming tools you have to follow the manual and install the toolchain on a virtual machine on your PC. It took me 2 days. Then you have to write the QT application on the PC, cross-compile it for ARM, move (via Ethernet, scp command) to the SD on the board, then run. A very complex way to do the work.

    I got this board some weeks ago and then I left all of this because Parallax published the free propeller code. I will have to return to this, I need it for my work, but then I want to have the Propeller onboard, too. I think I will use this simplest Linux distro to get the access to the computing power of ARM and the access to the filesystem and 1 GB of its RAM

    All gpio pins are connected to fpga. You can access them with the ARM when you create a SOC with QSYS, create a parallel (or serial) port, and connect them to this port

    Hmmm. Sounds like a lot of not so fun work. I like that the SOC has two 40 pin dual GPIO headers vs: only one on the GX starter kit. But if the goal is to connect the P1V to FPGA widgets then that could be done easily enough with a virtual B port - no need to bring the pins out, right? Of course that begs the question of how those widgets connect to the board. The GX is provisioned to allow connecting Arduino shields so that provides some additional IO pins.

    Maybe the thing to do is create a custom design that contains a map to bring out only the required pins for the specific application. Some of the GPIO pins will connect directly to the P1V but others will be inputs to customized widgets on the FPGA that then connect to the P1V. I keep having to remind myself that I can configure the FPGA to be just the way I want it.

    Did you look at the GX starter kit and decide against it or did you have a particular need for the HPS of the DE1?
  • pik33pik33 Posts: 2,366
    edited 2014-08-20 12:19
    thoth wrote: »
    . But if the goal is to connect the P1V to FPGA widgets then that could be done easily enough with a virtual B port - no need to bring the pins out, right? Of course that begs the question of how those widgets connect to the board. The GX is provisioned to allow connecting Arduino shields so that provides some additional IO pins.

    Maybe the thing to do is create a custom design that contains a map to bring out only the required pins for the specific application. Some of the GPIO pins will connect directly to the P1V but others will be inputs to customized widgets on the FPGA that then connect to the P1V. I keep having to remind myself that I can configure the FPGA to be just the way I want it.

    Did you look at the GX starter kit and decide against it or did you have a particular need for the HPS of the DE1?

    DE1-soc has a real gpio

    http://forums.parallax.com/showthread.php/156954-A-DE2-115-Propeller-demo-board-project-now-programmable-with-the-Propplug

    Here I am connecting p1v to some other things on the board. Now SD, VGA, keyboard and sound are running on DE2-115
  • thoththoth Posts: 75
    edited 2014-08-20 13:29
    pik33 wrote: »
    DE1-soc has a real gpio

    http://forums.parallax.com/showthread.php/156954-A-DE2-115-Propeller-demo-board-project-now-programmable-with-the-Propplug

    Here I am connecting p1v to some other things on the board. Now SD, VGA, keyboard and sound are running on DE2-115

    You're right. I went back and read the GX docs a little better and the GPIO on it leaves a lot to be desired. Many of the lines are shared between the GPIO, LEDs and Arduino. And Digikey has just raised the price of the GX from $180 to $200. It's certainly worth $11 more for real IO pins and the knowledge that it can run P1Vs at 180mhz.

    Your referenced project above won't open under Quartus 13.0 so I'll have to try it with Quartus 14 using W7/64. It will be interesting to see how you've connected to the FPGA.
  • pik33pik33 Posts: 2,366
    edited 2014-09-29 05:15
    All of my oc results were illusions.While the P1V starts @ 140 MHz on DE2-115 it can make random errors when run at these speeds. The symptoms are audible pops in the player, not mounted SD card and bad pixels on my vga screen. All of this needs investigation, but the timing alalyzer said the max divide[12].q - and it is a cog clock - is something above 60 (???? - :( ) MHz.
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-09-29 18:16
    The SD problem may depend on the actual driver used. At least one version uses the input clock and varies according to the clock speed (ie it is not independent of the input clock).
Sign In or Register to comment.