VPR-7.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
logic_types.h
Go to the documentation of this file.
1 /*
2  Data types describing the logic (technology-mapped) models that the architecture can implement.
3  Logic models include LUT (.names), flipflop (.latch), inpad, outpad, memory slice, etc
4 
5  Date: February 19, 2009
6  Authors: Jason Luu and Kenneth Kent
7  */
8 
9 #ifndef LOGIC_TYPES_H
10 #define LOGIC_TYPES_H
11 
12 #include "util.h"
13 
14 /*
15  Logic model data types
16  A logic model is described by its I/O ports and function name
17  */
18 enum PORTS {
20 };
21 typedef struct s_model_ports {
22  enum PORTS dir; /* port direction */
23  char *name; /* name of this port */
24  int size; /* maximum number of pins */
25  int min_size; /* minimum number of pins */
26  boolean is_clock; /* clock? */
27  boolean is_non_clock_global; /* not a clock but is a special, global, control signal (eg global asynchronous reset, etc) */
28  struct s_model_ports *next; /* next port */
29 
30  int index; /* indexing for array look-up */
32 
33 typedef struct s_model {
34  char *name; /* name of this logic model */
35  t_model_ports *inputs; /* linked list of input/clock ports */
36  t_model_ports *outputs; /* linked list of output ports */
37  void *instances;
38  int used;
39  struct s_linked_vptr *pb_types; /* Physical block types that implement this model */
40  struct s_model *next; /* next model (linked list) */
41 
42  int index;
43 } t_model;
44 
45 #endif
46 
PORTS
Definition: logic_types.h:18
enum PORTS dir
Definition: logic_types.h:22
void * instances
Definition: logic_types.h:37
struct s_model_ports * next
Definition: logic_types.h:28
boolean is_clock
Definition: logic_types.h:26
struct s_model t_model
struct s_model * next
Definition: logic_types.h:40
int used
Definition: logic_types.h:38
t_model_ports * inputs
Definition: logic_types.h:35
t_model_ports * outputs
Definition: logic_types.h:36
struct s_linked_vptr * pb_types
Definition: logic_types.h:39
int index
Definition: logic_types.h:42
char * name
Definition: logic_types.h:34
struct s_model_ports t_model_ports
boolean is_non_clock_global
Definition: logic_types.h:27