Hi Jack,

I don't think you are incorrect here. That may be the case for the older
version of JASPER, but I was refering to the latest castro (CASPER/Astron)
backend version, which is the one I have been working on since Feb 2016.
That definitely still needs to have ROACH2 support added - at some point.
It should be pointed out that ROACH2 utilises a Virtex 6, which Vivado does
not support.

@CASPER: The new castro JASPER updates will eventually allow Altera
backends to be targeted, as well as, the usual Xilinx backends, which will
increase the number of hardware platforms open to the CASPER community.
MathWorks is an expensive tool, so the idea is to also make provision for
other frontends besides Simulink - more will be revealed in the JAI CASPER
paper to be published in August 2016.

Kind Regards,

Adam



On Wed, Jun 22, 2016 at 5:40 PM, Jack Hickish <jackhick...@gmail.com> wrote:

>
>
> On Wed, 22 Jun 2016, 03:53 Adam Isaacson, <aisaac...@ska.ac.za> wrote:
>
>> Hi Jack and Andrea,
>>
>> I have tested the JASPER tool flow (matlab/python hybrid) on SNAP (no
>> hardware, just compiling) and we are in the process of testing on skarab.
>> We still have a lot more testing to do, so there may be bugs - you have
>> been warned. There is currently no support for ROACH2 or rather, this still
>> needs to be added at some point, as far as I am aware. The current CASPER
>> toolflow (matlab only and no python) supports ROACH2.
>>
>
> H'interesting - thanks for the setting me straight, Adam. There was a
> point, quite a long time ago, when jasper could at least compile tutorial 2
> (ten gig Ethernet) for roach2. I thought this had been developed further -
> guess not! Mea culpa.
>
> J
>
>
>
>> @Andrea: Just so you know. We have are working with Optinum Solutions
>> here in South Africa and one of the tasks is to target the ROACH2 using
>> MathWorks HDL-Coder i.e. the HDL code will get generated from the MathWorks
>> environment. The problem with the MathWorks tools are that they are very
>> expensive and it is not always a viable option. If you are from an academic
>> institution then they offer really good deals. It may be worthwhile looking
>> at this. We hope to have ROACH2 targeted by the end of the year. The idea
>> is to compare HDL-Coder's code generation efficiency with our current
>> toolflow.
>>
>> @Andrea: A lot of effort has been spent on developing the CASPER and
>> JASPER toolflow. It really is a one-click toolflow, which when complete
>> generates the project files and programming files. These project files can
>> then be opened using the Vivado or ISE GUI just the same way as if you had
>> created the VHDL or verilog source yourself.
>>
>> Good luck!
>>
>>
>> Kind Regards,
>>
>> Adam
>>
>> On Tue, Jun 21, 2016 at 11:47 PM, Jack Hickish <jackhick...@gmail.com>
>> wrote:
>>
>>> Hi Andrea, cc-ing maillist, since I don't think you're the only one to
>>> do (or want to do) this,
>>>
>>> What you are suggesting is absolutely technically possible, though (as
>>> much as I dislike simulink), I'd think really hard before going through
>>> with it. Note also, if you don't use the toolflow, you become completely
>>> responsible for managing the FPGA's memory-mapped devices, and will have to
>>> manually build a boffile if you want to use the katcp/borphserver
>>> programming environment. That said, others may already have done all the
>>> legwork for you.
>>>
>>> Anyway, with that cautionary note....
>>>
>>> The VHDL (or verilog) for the various CASPER blocks is available as part
>>> of the various pcores of the roach2 base package --
>>> https://github.com/casper-astro/mlib_devel/tree/master/xps_base/XPS_ROACH2_base/pcores
>>> .
>>>
>>> The instantiation of these interface blocks is performed by the toolflow
>>> at compile time, which generates a Xilinx EDK spec system.mhs top level
>>> file. If you want to find out how to instantiate these blocks yourself,
>>> using the toolflow as a guide, here is where you climb into the CASPER
>>> rabbit hole.
>>>
>>> There is an EDK template for a compile in the base package: for ROACH2
>>> --
>>> https://github.com/casper-astro/mlib_devel/blob/master/xps_base/XPS_ROACH2_base/system.mhs
>>>  .
>>> In theory, if you strip out the #IF#s in this file, you'll have a top-level
>>> model description you can add stuff to -- but it still won't be in VHDL,
>>> even if the instantiated modules are. Constraints are in
>>> https://github.com/casper-astro/mlib_devel/blob/master/xps_base/XPS_ROACH2_base/data/system.ucf
>>>
>>> The toolflow adds to this template in a variety of ways --
>>> * individual yellow blocks can add code via the MATLAB object-oriented
>>> infrastructure via the gen_mhs_ip and gen_ucf methods of the xps class --
>>> eg.
>>> https://github.com/casper-astro/mlib_devel/tree/master/xps_library/%40xps_adc5g
>>> * or via an overridden gen_mhs_ip or gen_ucf -- eg.
>>> https://github.com/casper-astro/mlib_devel/blob/master/xps_library/%40xps_bram/gen_mhs_ip.m
>>> * or via all the #IF# statements in the base package
>>> system.mhs/system.ucf
>>>
>>> If (#IF#?) you want to dig through the matlab block classes, and
>>> system.mhs looking for what a particular yellow block *does* when it is
>>> instantiated, you probably could. But it will still be an EDK file, not
>>> vhdl.
>>> You could also fire up simulink, compile a design with appropriate
>>> yellow blocks in and then grab the system.mhs it generates and use that as
>>> a template.
>>> You could also look in an old ROACH2 testing repository where firmware
>>> was tested prior to being casperized --
>>> https://github.com/ska-sa/roach2_test_gateware/blob/master/modules/toplevel/hdl/toplevel.v
>>>  which
>>> is all VHDL/Verilog, but probably doesn't have all the modules you need.
>>>
>>> You might find the yellow block casper tutorial is useful in figuring
>>> out where various aspects of the interface code is instantiated.
>>>
>>> As a final note -- the latest version of the Vivado-based CASPER
>>> toolflow (aka, JASPER), includes (thanks, Adam & Wes in SA!) the ability to
>>> generate an ISE-spec project (i.e., a ucf file and a top level verilog
>>> file) from a simulink model. I don't know which yellow blocks are currently
>>> supported for ROACH2, but if the ones you need work, this is probably the
>>> easiest route to generating a template ISE project. If this is the way you
>>> want to go, we should talk more somewhere. But you should be aware that
>>> you'll be placing yourself on the bleeding edge, where things are, well,
>>> bloody.
>>>
>>> Cheers,
>>>
>>> Jack
>>>
>>> On Tue, 21 Jun 2016 at 06:06 Andrea Melis <andrme...@gmail.com> wrote:
>>>
>>>> Hi Jack,
>>>>
>>>> how are you doing?
>>>>
>>>> I would ask you a question, I am interested in developing projects
>>>> fully in VHDL into the ROACH2 (equipped with ADC 5GS and mezzanine cards
>>>> SFP+), is available the VHDL code for the various blocks of the CASPER
>>>> library? Is the code generated after the compiling?
>>>>
>>>> In particular I would need a “template” VHDL containing especially the
>>>> I/O parts like the ADCs and the 10 Gbe outputs blocks, in order to have a
>>>> VHDL skeleton as a starting point for whatever digital signal processing
>>>> on-chip.
>>>>
>>>> Please let me know whether it already exists or whether it can be
>>>> technically done, I thank you in advance
>>>>
>>>> Cheers
>>>>
>>>>
>>>> Andrea
>>>>
>>>
>>
>>
>> --
>>
>> Adam Isaacson
>>
>> DBE: FPGA Engineer
>>
>> SKA-SA
>>
>> 3rd Floor
>>
>> The Park
>>
>> Park Road
>>
>> Pinelands
>>
>> 7405
>>
>>
>> Tel: +27215067300 (W)
>>
>> Fax: +27215067375 (W)
>>
>> Cell: +27825639602
>>
>


-- 

Adam Isaacson

DBE: FPGA Engineer

SKA-SA

3rd Floor

The Park

Park Road

Pinelands

7405


Tel: +27215067300 (W)

Fax: +27215067375 (W)

Cell: +27825639602

Reply via email to