Hi Andres

It is unclear to me what your goals are. Could you give a basic description of your design (sampling rate, number of channels, target board (ROACH or ROACH2) etc) and what speed you are targeting? Someone out there has probably built something close to what you are trying to do and may have advice.

Cheers
Andrew

Hey Andres,
Closing timing on an FPGA design is not easy. I'd help you but right now I'm a grad student and drowning in my own work. Sorry! I'll refer you to this (highly unprofessional) report I gave someone for closing timing on a ROACH2 design once. That's the best I can offer you now

https://dl.dropboxusercontent.com/u/2832602/roach2_timing.zip
--Ryan Monroe
626.773.0805
On 11/26/2013 09:04 AM, Andres Alvear wrote:
Thanks Ryan,
I have just generated my first .bof after re running the tools for EDK/ISE/Bitgen successfully but I have not been able to view any speed optimization so far as you may see in my results in the attached picture. After the compilation my design ran with a clock rate of 54MHz reaching 216MHz of Bandwidth on each spectrometer. The results obtained from the constraint generated in the floorplanning process were introduced in the "system.ucf' file that was located in the following folders:
/opt/workspace/spectrometer_dctrl_op/XPS_ROACH_base/data
/opt/workspace/spectrometer_dctrl_op/XPS_ROACH_base/implementation
In the "data" folder I removed system.ucf and system.ucf.bac and then just put my version (with the floorplan) of "system.ucf" in its place. Then, in the "implementation" folder I replaced the "system.ucf" file with my version. Finally, I opened the simulink design and then re-ran it with just EDK/ISE/Bitgen. I had a successful compilation with a new .bof file. This one is working in the ROACH 1. However, my timing constrains were not met. I'm going to attach my constrains to see if you have some idea the possible problems. Given my constrain file attached, what values would you put in the constrains so that the system run at 400MHz? What do you think about my Global Timing Constrains? Specifically what are your thoughts about my timing groups that were generated from casper_xps toolflow compilation? Are they all right?

Cheers

Andres Alvear




2013/11/22 Ryan Monroe <[email protected] <mailto:[email protected]>>

    Hey Andres, my strategy has generally been to use plan ahead to
generate a ucf file, which I then place in data/ system.ucf. then re run the tools for edk ise bitgen.

    Works consistently for me

    On Nov 22, 2013 11:31 AM, "Andres Alvear"
    <[email protected] <mailto:[email protected]>> wrote:

        Hi everyone,

        I'm working on Speed Optimization with PlanAhead, I've a
        Simulink design of a Spectrometer of 2048-channels and 2 ADCs
        ADC083000 to 1GSPS in interleaved mode, and I want to meet a
        time optimization increasing the bandwidth to 1GHz from the
        actual 500MHz and of course increase the numbers of channels
        at least to 4096, but with the conventional tool flow is
        impossible.

        First thing I told the system I wanted it to go to at 250
        MHz, but my actual clock rate is about 120MHz too low!!
        However the system is working stable until 125MHz, so I can
        setup the ADC clock rate to 500MHz to have 1GSPS getting a
        500MHz of bandwidth to each ADC.

        So I have been working on PlanAhead in a Floorplanning
        optimization the hardware implemented in the FPGA Virtex-5
        SX95T, but after make the floorplanning edit my constraint
        file like Ryan Monroe say in his last memo. I got a 23% of
        Speed optimization from 120MHz to 148MHz, but I need meet
        time at least to 200MHz. However I have problems generating
        functional borph executables, and I'm hoping someone can help
        me figure out why. Since I'm targeting high speeds. This one
        is the error from Borph when I try to run from a ssh session:

        root@roach:/boffiles# ./system_2.bof

        -bash: ./system_2.bof: Input/output error

        Then in a ipython 2.7 terminal to check if you managed to
        connect to your ROACH:

        In [9]: fpga.is_connected()

        Out[9]: True

        Let's set the bitstream running using the progdev() command:

        In [10]: fpga.progdev('system_2.bof') <-----------generated
        from mkbof

        Out[10]: 'ok'

        See the ROACH and the leds not blinking. I placed these ones
        to see the working of my design, but these both not blinking
        at all: led0_sync, led1_new_acc.



        Do you think that I am in the right the way? Does anyone know
        something about these problems?


        Cheers!

        Andres Alvear




Reply via email to