PROCESSOR statement

Top  Previous  Next

processor statement  = "PROCESSOR", new identifier,

                       type specification, processor attributes;

processor attributes = "{" {processor attribute} "}"   |

                       {processor attribute};

type specification   = ["TYPE", "="], processor type;

processor attribute  = "ROOT"                          |

                       "ATTACH",   "=", parent         |

                       "CLOCK",    "=", constant       | 

                       "CACHE",    "=", cache value    |

                       "KERNEL",   "=", kernel file    |

                       "LOAD",     "=", load file      |

                       "BOOT",     "=", boot file      |

                       "AVOID",    "=", avoid spec     |

                       "BUFFERS",  "=", constant       |

                       "UNCACHED", "=", cache range    |

                       "L1D",      "=", cache size     |

                       "P1D",      "=", cache size     |

                       "FIXED";

processor type       = CPU processor type |

                       FPGA processor type;

parent               = identifier;

CPU processor type   = identifier;

FPGA processor type  = identifier;

cache value          = "ON" | "OFF" | constant;

cache range          = cache address |

                       cache address, ":", cache address;

cache address        = constant;

kernel file          = string constant;

load file            = string constant;

boot file            = string constant;

physical area        = identifier;

avoid spec           = avoid address, ":", avoid size;

avoid address        = constant;

avoid size           = constant;

cache size           = constant;

 

The PROCESSOR statement declares a physical processor. If we need to refer to a processor later in the file, it must be declared with a processor statement first. Note that you need one processor statement for each processor in the system, even if the processors are physically clustered together in some way. The PROCESSOR (and WIRE) statements must correspond to the real hardware network on which the application will run. If this is not so, the application will probably fail to load.

Dragons003The order in which you declare processors is significant as it is used to determine which processors need to be grouped together when they can be attached to an FPGA. This is discussed under ATTACH attribute.