Subsections


2 Main File Formats

The flow consists of many separate tools and information is exchanged with files. This chapter gives an overview of 8 file and database types manipulated by TCE applications and accessible to users of the toolset, architecture definition .adf and SW binary .tpef being the most important ones. Many files are XML so user can easily access them, if needed.

There a 3 kind of files:

  1. HW definitions: adf, hdb, and idf
  2. SW definitions: tpef, bem, opp, cc, opb
  3. Simulation and exploration data: dsdb, set of the files above


1 Architecture Definition File (ADF)

Filename extension: .adf

Architecture Definition File (ADF) is a file format for defining target processor architectures, e.g. which function units are used and how they are connected [CSJ04]. ADF can be created with ProDe manually or, e.g., by automated design space exploration tools. ADF is a specification of the target ``processor architecture'', meaning that only the information needed to generate valid programs for the processor is stored, but nothing else. This file is needed by many tools, such as tcecc, ttasim, and ProGe.

The XML snippet below gives an idea of ADF.

<adf version="1.7">

  <bus name="B1">
    <width>32</width>
    <guard>
      <always-true/>
    ...
  <socket name="alu_comp_i1">
    <reads-from>
      <bus>B1</bus>
    ...
  <function-unit name="alu_comp">
    <port name="in1t">
      <connects-to>alu_comp_i1</connects-to>
      <width>32</width>
      <triggers/>
    ...
    <operation>
      <name>add</name>
      <bind name="1">in1t</bind>
      ...
  <register-file name="RF">
    <type>normal</type>
    ...
  <address-space name="data">
    <width>8</width>
    ...


2 TTA Program Exchange Format (TPEF)

Filename extension: .tpef

TTA Program Exchange Format (TPEF) is a file format for storing compiled TTA programs which can be either unscheduled, partially scheduled, or scheduled [Cil04]. TPEF supports auxiliary sections for storing additional information related to the program, such as execution profiles, machine resource data, and target address space definitions. This file is needed, e.g. by ttasim and Pig.


3 Hardware Database (HDB)

Filename extension: .hdb

Hardware Database (HDB) is the main SQLite database used by the Processor Generator and the Cost Estimator. The data stored in HDB consist of hardware description language definitions (HDL) of TTA components (function units, register files, buses and sockets) and metadata that describe certain parameters used in implementations. In addition, HDB may include data of each implementation needed by the cost estimation algorithms.

TCE ships with an example HDB that includes implementations for several function units and register files in VHDL, and cost data for the default interpolating cost estimation plugin.


4 Implementation Definition File (IDF)

Filename extension: .idf

Describes which implementations to use for each component in the architecture. Hence, this links architectural components described in ADF files to implementation alternatives stored in HDB. Using this information it is possible to fetch correct hardware description language (HDL) files from the hardware block library for cost estimation and processor generation. This file is needed, by ProGe and PIG.

The XML snippet below gives an idea of IDF.

 <adf-implementation>
  ...
  <fu name="LSU">
    <hdb-file>asic_130nm_1.5V.hdb</hdb-file>
    <fu-id>62</fu-id>
  </fu>
  ...


5 Binary Encoding Map

Filename extension: .bem

Provides enough information to produce an executable uncompressed bit image from TPEF program data.


6 Operation Set Abstraction Layer (OSAL) Files

Filename extension: .opp, .cc, .opb

OSAL stores the simulation behavior and static properties of operations that can be added to the function units in the designed processors.

Simulation behavior of function unit operations is described by implementing simulation functions which can be plugged in to the simulator run time.

The .opp file is an XML file for defining the static properties of operations (for example, how many inputs and outputs an operation has). The .cc is the C++ source file that defines the behavior model for a set of operations. The .opb is the plugin module compiled from the .cc. OSAL is quite complex and further details are presented in Section 4.3.


7 Simulation Trace Database

Filename extension: .tracedb

Stores data collected from simulations and used by instruction scheduler (profiling data) and cost estimator (utilization statistics, etc.).


8 Exploration Result Database

Filename extension: .dsdb

Exploration Result Database (ExpResDB) contains the configurations that have been evaluated during exploration (manual or automatic) and a summary of their characteristics. Files that define each tested configuration (ADF and IDF) are stored in the database as well.


9 Summary of file types

Table 2.2 summarizes briefly the most common TCE file types.


Table 2.2: Summary of file types
Postfix Purpose Format
adf Architecture description XML
idf Implementation/microarchitecture description XML
hdb HW database SQLite
tpef TTA program exchange format bin
bem Binary encoding map XML
opp Operation properties XML
cc Simulation behavior of an operation C++
opb Compiled operation behavior bin
tracedb Database of simulation and cost estimation results SQLite
dsdb Database of exploration results and TTA configurations SQLite

Pekka Jääskeläinen 2018-03-12