nitta-0.0.0.1: Tool for Hard Real-Time CGRA Processors
Copyright(c) Aleksandr Penskoi 2021
LicenseBSD3
Maintaineraleksandr.penskoi@gmail.com
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

NITTA.Synthesis

Description

TargetSynthesis is an entry point for synthesis process. TargetSynthesis flow shown on fig.

====================================================================================================================
                                                                                                             Prepare
NITTA.Synthesis:TargetSynthesis                                                                     NITTA.Project...
    # tName                                                                              NITTA.Frontends
    # tMicroArch -----------------------------
    # tSourceCode -+                          |     /--+-- mkModelWithOneNetwork
                   |                          |     |  |
                   *<-translate               |     |  |
                   |                          |     |  v      NITTA.Model:TargetSystem----------
    # tDFG +--------*-------- # mUnit         |             |    NITTA.Model...
        |                                        |                                |             |     /-----------
        |                                        v                                |             |     |  Target   |
        +----------------------------------------*-----------> # mDataFlowGraph   |             -----+  System   |
                                                                                  |                   | Imitation |
    # tReceivedValues                                                             |                   |   Model   |
    # tVerbose                                                                    |                   -----------/
    # tSynthesisMethod ----------------------------------                        |
                                                         |                        |
                                                         |                        |
===================================================================================================================
                                                         |                        |               Synthesis process
        NITTA.Synthesis.Types:Tree                       |                        |           NITTA.Synthesis.Types
            # sID                                        |                        |          NITTA.Synthesis.Method
            # sState <------------------------------------------------------------+
            # sDecision                                  |
                # option                                 |
                # decision                               *<-- search for best synthesis path
                # metrics                                |
                # score                                  v
            # sSubForestVar ------------------------->/ * / -----
                                                                   |
                                                                   v
                                                            NITTA.Synthesis.Types:Tree
                                                                # sState
                                                                    # sTarget
                                       /------------------------------- # mUnit
                                       |        /---------------------- # mDataFlowGraph
                                       |        |                   # ...
                                       |        |               # ...
                                       |        |
===================================================================================================================
                                       |        |                                         Target project generation
NITTA.Project.Types:Project            |        |                                                 NITTA.Project....
 |      # pName <--------- $tName      |        |
 |      # pLibPath                     |        +<----- $tReceivedValues
 |      # pTargetProjectPath           |        |
 |      # pModel<----------------------/        *<----- functional simulation (FIXME)
 |                                              |
 |      # pTestCntx <---------------------------/
 |
 |
 *<---------- $writeProject
 |                # TargetSystem
 |                    # hardware
 |                    # software
 |                # TestBench
 |                # Templates
 |
 ---> filesystem
Synopsis

Documentation

mkModelWithOneNetwork :: ProcessorUnit u v x t => u -> DataFlowGraph v x -> TargetSystem u tag v x t Source #

Make a model of NITTA process with one network and a specific algorithm. All functions are already bound to the network.

data TargetSynthesis tag v x t Source #

Description of synthesis task. Applicable for target system synthesis and testing purpose.

Constructors

TargetSynthesis 

Fields

Instances

Instances details
SynthesisMethodConstraints tag v x t => Default (TargetSynthesis tag v x t) Source # 
Instance details

Defined in NITTA.Synthesis

Methods

def :: TargetSynthesis tag v x t #

(UnitTag tag, VarValTime v x t) => ProcessorUnit (TargetSynthesis tag v x t) v x t Source # 
Instance details

Defined in NITTA.Synthesis

synthesizeTargetSystem :: (UnitTag tag, VarValTime v x t) => TargetSynthesis tag v x t -> IO (DefTree tag v x t, Either String (Project (BusNetwork tag v x t) v x)) Source #