CGRA-ME
Macros | Functions | Variables
AdresArch.cpp File Reference
#include <CGRA/Exception.h>
#include <CGRA/user-inc/UserArchs.h>
#include <CGRA/user-inc/UserModules.h>
#include <climits>

Go to the source code of this file.

Macros

#define has_input_from_N(conn)   (conn & 0b00000001)
 
#define has_input_from_E(conn)   (conn & 0b00000010)
 
#define has_input_from_S(conn)   (conn & 0b00000100)
 
#define has_input_from_W(conn)   (conn & 0b00001000)
 
#define has_input_from_NW(conn)   (conn & 0b00010000)
 
#define has_input_from_NE(conn)   (conn & 0b00100000)
 
#define has_input_from_SE(conn)   (conn & 0b01000000)
 
#define has_input_from_SW(conn)   (conn & 0b10000000)
 
#define get_ones_in_8b(v)   (ones_in_4b[v & 0x0f] + ones_in_4b[v >> 4])
 
#define is_corner_pe(r, c, rows, cols)
 
#define is_side_pe(r, c, rows, cols)
 
#define is_top_leftmost_pe(r, c, rows, cols)   (r == 0 && c == 0)
 
#define is_top_rightmost_pe(r, c, rows, cols)   (r == 0 && c == cols-1)
 
#define is_bot_leftmost_pe(r, c, rows, cols)   (r == rows-1 && c == 0)
 
#define is_bot_rightmost_pe(r, c, rows, cols)   (r == rows-1 && c == cols-1)
 
#define is_top_pe(r, c, rows, cols)   (r == 0)
 
#define is_bot_pe(r, c, rows, cols)   (r == rows-1)
 
#define is_leftmost_pe(r, c, rows, cols)   (c == 0)
 
#define is_rightmost_pe(r, c, rows, cols)   (c == cols-1)
 
#define mask_top_leftmost_pe(conn)   (conn & 0b01000110)
 
#define mask_top_rightmost_pe(conn)   (conn & 0b10001100)
 
#define mask_bot_leftmost_pe(conn)   (conn & 0b00100011)
 
#define mask_bot_rightmost_pe(conn)   (conn & 0b00011001)
 
#define mask_top_pe(conn)   (conn & 0b11001110)
 
#define mask_bot_pe(conn)   (conn & 0b00111011)
 
#define mask_leftmost_pe(conn)   (conn & 0b01100111)
 
#define mask_rightmost_pe(conn)   (conn & 0b10011101)
 

Functions

unsigned char get_inter_pe_input_counts (unsigned char conn, int r, int c, int rows, int cols, bool toroid)
 

Variables

const unsigned char ones_in_4b [] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}
 

Macro Definition Documentation

◆ get_ones_in_8b

#define get_ones_in_8b (   v)    (ones_in_4b[v & 0x0f] + ones_in_4b[v >> 4])

Definition at line 35 of file AdresArch.cpp.

◆ has_input_from_E

#define has_input_from_E (   conn)    (conn & 0b00000010)

Definition at line 25 of file AdresArch.cpp.

◆ has_input_from_N

#define has_input_from_N (   conn)    (conn & 0b00000001)

This is adres arch for mapping. All of the archs wont produce accurate RTL. Currently there are no configuration cells in this designs.

Definition at line 24 of file AdresArch.cpp.

◆ has_input_from_NE

#define has_input_from_NE (   conn)    (conn & 0b00100000)

Definition at line 29 of file AdresArch.cpp.

◆ has_input_from_NW

#define has_input_from_NW (   conn)    (conn & 0b00010000)

Definition at line 28 of file AdresArch.cpp.

◆ has_input_from_S

#define has_input_from_S (   conn)    (conn & 0b00000100)

Definition at line 26 of file AdresArch.cpp.

◆ has_input_from_SE

#define has_input_from_SE (   conn)    (conn & 0b01000000)

Definition at line 30 of file AdresArch.cpp.

◆ has_input_from_SW

#define has_input_from_SW (   conn)    (conn & 0b10000000)

Definition at line 31 of file AdresArch.cpp.

◆ has_input_from_W

#define has_input_from_W (   conn)    (conn & 0b00001000)

Definition at line 27 of file AdresArch.cpp.

◆ is_bot_leftmost_pe

#define is_bot_leftmost_pe (   r,
  c,
  rows,
  cols 
)    (r == rows-1 && c == 0)

Definition at line 52 of file AdresArch.cpp.

◆ is_bot_pe

#define is_bot_pe (   r,
  c,
  rows,
  cols 
)    (r == rows-1)

Definition at line 55 of file AdresArch.cpp.

◆ is_bot_rightmost_pe

#define is_bot_rightmost_pe (   r,
  c,
  rows,
  cols 
)    (r == rows-1 && c == cols-1)

Definition at line 53 of file AdresArch.cpp.

◆ is_corner_pe

#define is_corner_pe (   r,
  c,
  rows,
  cols 
)
Value:
(\
(r == 0 && c == 0) ||\
(r == 0 && c == cols-1) ||\
(r == rows-1 && c == 0) ||\
(r == rows-1 && c == cols-1)\
)

Definition at line 38 of file AdresArch.cpp.

◆ is_leftmost_pe

#define is_leftmost_pe (   r,
  c,
  rows,
  cols 
)    (c == 0)

Definition at line 56 of file AdresArch.cpp.

◆ is_rightmost_pe

#define is_rightmost_pe (   r,
  c,
  rows,
  cols 
)    (c == cols-1)

Definition at line 57 of file AdresArch.cpp.

◆ is_side_pe

#define is_side_pe (   r,
  c,
  rows,
  cols 
)
Value:
(\
(r == 0) ||\
(c == 0) ||\
(r == rows-1) ||\
(c == cols-1)\
)

Definition at line 44 of file AdresArch.cpp.

◆ is_top_leftmost_pe

#define is_top_leftmost_pe (   r,
  c,
  rows,
  cols 
)    (r == 0 && c == 0)

Definition at line 50 of file AdresArch.cpp.

◆ is_top_pe

#define is_top_pe (   r,
  c,
  rows,
  cols 
)    (r == 0)

Definition at line 54 of file AdresArch.cpp.

◆ is_top_rightmost_pe

#define is_top_rightmost_pe (   r,
  c,
  rows,
  cols 
)    (r == 0 && c == cols-1)

Definition at line 51 of file AdresArch.cpp.

◆ mask_bot_leftmost_pe

#define mask_bot_leftmost_pe (   conn)    (conn & 0b00100011)

Definition at line 62 of file AdresArch.cpp.

◆ mask_bot_pe

#define mask_bot_pe (   conn)    (conn & 0b00111011)

Definition at line 65 of file AdresArch.cpp.

◆ mask_bot_rightmost_pe

#define mask_bot_rightmost_pe (   conn)    (conn & 0b00011001)

Definition at line 63 of file AdresArch.cpp.

◆ mask_leftmost_pe

#define mask_leftmost_pe (   conn)    (conn & 0b01100111)

Definition at line 66 of file AdresArch.cpp.

◆ mask_rightmost_pe

#define mask_rightmost_pe (   conn)    (conn & 0b10011101)

Definition at line 67 of file AdresArch.cpp.

◆ mask_top_leftmost_pe

#define mask_top_leftmost_pe (   conn)    (conn & 0b01000110)

Definition at line 60 of file AdresArch.cpp.

◆ mask_top_pe

#define mask_top_pe (   conn)    (conn & 0b11001110)

Definition at line 64 of file AdresArch.cpp.

◆ mask_top_rightmost_pe

#define mask_top_rightmost_pe (   conn)    (conn & 0b10001100)

Definition at line 61 of file AdresArch.cpp.

Function Documentation

◆ get_inter_pe_input_counts()

unsigned char get_inter_pe_input_counts ( unsigned char  conn,
int  r,
int  c,
int  rows,
int  cols,
bool  toroid 
)

Definition at line 72 of file AdresArch.cpp.

Variable Documentation

◆ ones_in_4b

const unsigned char ones_in_4b[] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}

Definition at line 34 of file AdresArch.cpp.