// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // package ComputerArchitecture.SystolicArrays.TransitiveClosure.KuLL87aSpiralSFG; macro N = 3; // ---------------------------------------------------------------- // The module below shows the spiral array that is constructed by // wiring NxN processing elements of the above kind. Note that // in case (j==0), we can use any value for c_in, since in this // case the PE uses t_in instead, and similarly, we can use any // value for r_in in case (i==0). // ---------------------------------------------------------------- module SpiralArraySFG([N][N]bool ?a, t) { event [N][N]bool c, r; for(i=0..(N-1)) do || for(j=0..(N-1)) do || PE(a,i,j, ((j==0)?false:c[i][abs ((-1+j)%N)]), ((i==0)?false:r[abs ((-1+i)%N)][j]), t[i][j], c[i][j], r[i][j], t[abs ((-1+i)%N)][abs ((-1+j)%N)]); }