Home News Latest Partial reconfiguration
Partial reconfiguration PDF Print E-mail
News - Latest
Thursday, 18 December 2008 11:12

Runtime partial reconfiguration

Runtime partial reconfiguration has been added to Mobius and XPSupdate.

The design flow is extremely simple:

  • First the user creates a template PlanAhead project with partial reconfigurable regions (PRR) that will later be filled with Mobius-generated partial reconfigurable modules (PRM).
  • Second the user creates Mobius source using the new keyword "region" to declare alternate PRM associated with a PRR (e.g. region PRMa,PRMb,PRMc:PRR1). A PRM is a procedure instance, and of course each PRM and PRR must have the same interface. An arbitrary number of PRRs are supported. Reconfiguration is simply an assignment statement (e.g. PRR1:=PRMb) allowing arbitrary user-specified reconfiguration strategies. For example, below is Mobius source that displays a counter value on 8 LEDs. Procedure PRMa displays using msb-first while PRMb displays using lsb-first.
    initial
    type uint5=uinteger(5);
    type uint8=uinteger(8);

    procedure PRMa(in c:chan of uint8; dataout oled:uint8);
    var v:uint8;
    while true do seq
    c ? v;
    oled:=v{7:-1:0} (* msb first *)
    end;

    procedure PRMb(in c:chan of uint8; dataout oled:uint8);
    var v:uint8;
    while true do seq
    c ? v;
    oled:=v{0:7} (* lsb first *)
    end;

    region PRMa,PRMb : PRR1(in c:chan of uint8; dataout oled:uint8);

    procedure static(datain buttons:uint5; out c:chan of uint8);
    var i:uinteger(32);
    while true do
    for i:=0:0x7fffffff do seq
    case buttons then
    1: PRR1:=PRMa;
    2: PRR1:=PRMb
    end;
    c ! i{30:-1:23} (* send topmost bits to prm to display *)
    end;

    procedure top(in buttons:uint5; out leds:uint8);
    var c:chan of uint8;
    par
    static(buttons,c);
    PRR1(c,leds)
    end;

  • Next the user generates a custom makefile, and then builds the hw/sw PR system, including building the initialization *.ace and partial *.bit files.
    mobius -make prdemo.mbs
    make -f prdemo.make all


    initial
  • Finally copy the generated image files to CompactFlash on a FPGA board that supports Xilinx SysAce.

The Mobius PR flow has been tested on Xilinx Virtex4 and Virtex5 platforms, and requires Xilinx ISE v9-10, Xilinx EDK v9-10, and Xilinx PlanAhead v10.

Coming soon to the next Mobius release!

Last Updated ( Saturday, 06 June 2009 13:51 )
 
Copyright © 2010 Codetronix LLC. All Rights Reserved.