27
University University University University University University University University of Zagreb of Zagreb of Zagreb of Zagreb of Zagreb of Zagreb of Zagreb of Zagreb Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing Faculty of Electrical Engineering and Computing vlado.sruk vlado.sruk @fer.hr @fer.hr E E ESTEC ESTEC - - ZG ZG Workshop Workshop Lecture Lecture 4: 4: Introduction to HW/SW Co Introduction to HW/SW Co - - Design using the NISC Technology Design using the NISC Technology Daniel Daniel Daniel Daniel Gajski Gajski Gajski Gajski, Vlado , Vlado , Vlado , Vlado Sruk Sruk Sruk Sruk, Roko , Roko , Roko , Roko Grubi Grubi Grubi Grubiš š ši i ć ć

EESTEC -ZG Workshop

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EESTEC -ZG Workshop

UniversityUniversityUniversityUniversityUniversityUniversityUniversityUniversity of Zagrebof Zagrebof Zagrebof Zagrebof Zagrebof Zagrebof Zagrebof Zagreb

Faculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and ComputingFaculty of Electrical Engineering and Computing�� [email protected]@fer.hr

EEESTECESTEC--ZGZG WorkshopWorkshop

LectureLecture 4:4:

Introduction to HW/SW CoIntroduction to HW/SW Co--Design using the NISC TechnologyDesign using the NISC Technology

DanielDanielDanielDaniel GajskiGajskiGajskiGajski, Vlado , Vlado , Vlado , Vlado SrukSrukSrukSruk, Roko , Roko , Roko , Roko GrubiGrubiGrubiGrubiššššiiiićććć

Page 2: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

22//2277

Lecture overviewLecture overview

�� RecapRecap

�� UKF projectUKF project

�� HW/SW CoHW/SW Co--DesignDesign

�� No Instruction Set No Instruction Set ComputerComputer

Page 3: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

33//2277

UnityUnity ThroughThrough KnowledgeKnowledge FundFund

�� Project: Project: ““ApplicationApplication--OrientedOriented EmbeddedEmbedded SystemSystem

TechnologyTechnology””

�� PricipalPricipal investigatorinvestigator: Prof. : Prof. DanielDaniel GajskiGajski

�� UniversityUniversity of of CaliforniaCalifornia IrvineIrvine

�� CenterCenter of of EmbeddedEmbedded ComputerComputer SystemsSystems

�� www.www.ukfukf.hr.hr

Page 4: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

44//2277

The complexity of embedded systemsThe complexity of embedded systems

�� Embedded systems are no longer used as simple control Embedded systems are no longer used as simple control devicesdevices

�� Complex tasks and algorithms and high performance Complex tasks and algorithms and high performance requirements require complex hardware platformsrequirements require complex hardware platforms

�� Multiprocessor SystemMultiprocessor System--OnOn--Chip (MPSoC)Chip (MPSoC)

�� System on Programmable Chips (SoPC)System on Programmable Chips (SoPC)

�� Heterogeneous multiprocessor systemsHeterogeneous multiprocessor systems

�� General purpose processorsGeneral purpose processors

�� Application specific coprocessorsApplication specific coprocessors

�� Bus architecturesBus architectures

�� Complex softwareComplex software

�� Complex hardware/software interfaceComplex hardware/software interface

Page 5: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

55//2277

ConstraintsConstraints

�� The need for rapid development of embedded systemsThe need for rapid development of embedded systems

�� Short timeShort time--toto--market (TTM)market (TTM)

�� Reliability?Reliability?

�� Stringent constraints Stringent constraints

�� SpeedSpeed

�� AreaArea

�� PowerPower

�� There is an evident need for new approaches to the There is an evident need for new approaches to the

design of embedded systems design of embedded systems

Page 6: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

66//2277

HW/SW CoHW/SW Co--DesignDesign

�� Hardware/software coHardware/software co--design means meeting systemdesign means meeting system--

level objectives by exploiting the synergism of hardware level objectives by exploiting the synergism of hardware

and software through their concurrent designand software through their concurrent design

�� Unlike traditional design approaches, coUnlike traditional design approaches, co--design views design views

the process of developing hardware and software as a the process of developing hardware and software as a

wholewhole

�� Tasks (parts of an algorithm) can migrate between Tasks (parts of an algorithm) can migrate between

software and hardwaresoftware and hardware

�� We evaluate the benefits and drawWe evaluate the benefits and draw--backs of software backs of software

and hardware implementations of a particular functionand hardware implementations of a particular function

�� Automatic generation of hardware?Automatic generation of hardware?

Page 7: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

77//2277

Different implementations of an algorithmDifferent implementations of an algorithm

�� Software implementationSoftware implementation

�� ProgrammingProgramming

�� Higher designer productivityHigher designer productivity

�� Shorter Time To MarketShorter Time To Market

�� Lower performanceLower performance

�� Hardware implementationHardware implementation

�� RTL modelingRTL modeling

�� Lower designer productivityLower designer productivity

�� Longer Time To MarketLonger Time To Market

�� Higher performanceHigher performance

Page 8: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

88//2277

The ideal system?The ideal system?

�� WeWe’’re looking for an optimal system to perform a re looking for an optimal system to perform a given taskgiven task

�� What is optimal depends on the constraintsWhat is optimal depends on the constraints

�� Design Space ExplorationDesign Space Exploration

�� Try to determine which part of the systemTry to determine which part of the system’’s task s task should be implemented in hardware and which in should be implemented in hardware and which in softwaresoftware

�� The key for enhancing the performance is The key for enhancing the performance is migrating the right part of an algorithm to migrating the right part of an algorithm to hardwarehardware

Page 9: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

99//2277

System designSystem design

�� General purpose processorsGeneral purpose processors

�� Application specific coprocessorsApplication specific coprocessors

�� Automatic generation?Automatic generation?

�� System integrationSystem integration

�� Standard bus architectures?Standard bus architectures?

Main processor

A general purpose processor

I/O

Coprocessor

Coprocessor

Coprocessor

Page 10: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1010//2277

Automatic generation of hardwareAutomatic generation of hardware

�� Raising the level of abstractionRaising the level of abstraction

�� Synthesize hardware from a highSynthesize hardware from a high--level description level description

and not from a RTL descriptionand not from a RTL description

�� HighHigh--Level Synthesis (HLS)Level Synthesis (HLS)

�� CC--toto--hardware toolshardware tools

�� Expanding existing processors with custom Expanding existing processors with custom

instructionsinstructions

�� ApplicationApplication--Specific Instruction set Processors (Specific Instruction set Processors (ASIPsASIPs))

Page 11: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1111//2277

Design productivityDesign productivity

Page 12: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1212//2277

NISC NISC –– No Instruction Set No Instruction Set ComputerComputer

�� A novel concept developed by Prof. Daniel D. A novel concept developed by Prof. Daniel D. GajskiGajski and and his team at University of California at Irvine (UCI)his team at University of California at Irvine (UCI)

�� The idea is to provide automatic generation of custom The idea is to provide automatic generation of custom processors (processors (IPsIPs) from high) from high--level description while level description while retaining the ability to predictably control the quality of retaining the ability to predictably control the quality of the final outcomethe final outcome

�� The main characteristic of the NISC approach is the The main characteristic of the NISC approach is the elimination of the instruction abstractionelimination of the instruction abstraction

�� The highThe high--level programming language code is complied level programming language code is complied directly to a datapath directly to a datapath

�� Horizontally microprogrammed control unitHorizontally microprogrammed control unit

Page 13: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1313//2277

CISC Vs. RISC Vs. NISCCISC Vs. RISC Vs. NISC

Page 14: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1414//2277

NISC StylesNISC Styles

Page 15: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1515//2277

NISC methodologyNISC methodology

1.1. Write an application in CWrite an application in C

2.2. Select a NISC architecture (manually or Select a NISC architecture (manually or

automatically)automatically)

3.3. Compile C for the selected architectureCompile C for the selected architecture

4.4. Simulate/debug/evaluate the resultSimulate/debug/evaluate the result

5.5. Repeat 1Repeat 1--4 if not satisfactory4 if not satisfactory

6.6. Generate RTL for FPGA/ASICGenerate RTL for FPGA/ASIC

Page 16: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1616//2277

NISC Technology Toolset (CNISC Technology Toolset (C--toto--RTL)RTL)

�� Datapath Generator / Selector Datapath Generator / Selector

�� Generates/Selects datapath for a given application Generates/Selects datapath for a given application

�� Converts C => GNR (Generic Netlist Representation of datapath) Converts C => GNR (Generic Netlist Representation of datapath)

�� NISC CycleNISC Cycle--accurate Compiler accurate Compiler

�� Compiles the application for a given datapath Compiles the application for a given datapath

�� Converts C => CW (Control Words stream controlling components inConverts C => CW (Control Words stream controlling components in each each clock cycle) clock cycle)

�� RTL Generator RTL Generator

�� Generates the RTL for input to FPGA or ASIC Generates the RTL for input to FPGA or ASIC

�� Converts GNR+CW => RTL Converts GNR+CW => RTL

�� Datapath Refinement Datapath Refinement

�� Refine datapath to improve quality Refine datapath to improve quality

�� Code Refinement Code Refinement

�� Refine application to improve quality Refine application to improve quality

Page 17: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1717//2277

NISC Technology Toolset (CNISC Technology Toolset (C--toto--RTL)RTL)

Page 18: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1818//2277

Generic Netlist RepresentationGeneric Netlist Representation

�� XMLXML--based based

Architecture Architecture

Description Description

Language Language

(ADL)(ADL)

Page 19: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

1919//2277

NISC Technology Design FlowNISC Technology Design Flow�� In NISC Technology, the designer can iteratively refine to get In NISC Technology, the designer can iteratively refine to get

satisfactory results.satisfactory results.

�� Architecture selection: Architecture selection: �� It can be selected from a set of preIt can be selected from a set of pre--designed templates optimized for a designed templates optimized for a

specific application domain. specific application domain.

�� A customized architecture can be generated for a specific applicA customized architecture can be generated for a specific application by ation by specifying netlist of components after profiling and analyzing tspecifying netlist of components after profiling and analyzing the he application. application.

�� Compilation: The compiler maps the input C code on the given Compilation: The compiler maps the input C code on the given architecture. architecture.

�� RTL generation: RTL generator translates the NISC netlist and thRTL generation: RTL generator translates the NISC netlist and the e output of compiler into synthesizable RTL. output of compiler into synthesizable RTL.

�� Synthesis: The final result can be simulated and synthesized forSynthesis: The final result can be simulated and synthesized forfinal implementation on FPGA or ASIC. final implementation on FPGA or ASIC.

�� Refinement: After analysis, application and/or architecture can Refinement: After analysis, application and/or architecture can be redefined until the desired results are achieved. be redefined until the desired results are achieved.

Page 20: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2020//2277

Code and datapath refinementCode and datapath refinement

Page 21: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2121//2277

NISC Technology StrengthNISC Technology Strength

�� Both topBoth top--down and bottomdown and bottom--up design flow up design flow

�� Standard behavioral synthesis (a.k.a. highStandard behavioral synthesis (a.k.a. high--level level

synthesis or HLS) tools provide only a topsynthesis or HLS) tools provide only a top--down down

design flow (from highdesign flow (from high--level C to lowlevel C to low--level RTL)level RTL)

�� ASIP approaches provide only a bottomASIP approaches provide only a bottom--up design up design

flow (from customflow (from custom--instructions up to using them in instructions up to using them in

the application)the application)

�� NISC provides both topNISC provides both top--down flow (by generating down flow (by generating

architecture from C) and bottomarchitecture from C) and bottom--up flow (by providing up flow (by providing

datapath as input)datapath as input)

Page 22: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2222//2277

NISC Technology StrengthNISC Technology Strength

�� Fast & Predictable path to implementation Fast & Predictable path to implementation

�� When using behavioral synthesis, a change in the application wilWhen using behavioral synthesis, a change in the application will result in l result in many changes in the generated RTL many changes in the generated RTL

�� There is no way to predict or correlate the application changes There is no way to predict or correlate the application changes to the changes to the changes in the resultsin the results

�� Therefore the only way to improve unsatisfactory results is by tTherefore the only way to improve unsatisfactory results is by tryry--andand--error and error and guessguess--workwork

�� When using ASIP, after adding a new custom instruction, the desiWhen using ASIP, after adding a new custom instruction, the designer gner should either use HLS to synthesis the datapath and controller should either use HLS to synthesis the datapath and controller (unpredictable results), or must do it manually (very time consu(unpredictable results), or must do it manually (very time consuming)ming)

�� NISC enables the designers to control every aspect of the designNISC enables the designers to control every aspect of the design

�� Designer can select the exact points for improvement and then doDesigner can select the exact points for improvement and then do it quicklyit quickly

�� For example, by directly changing the GNR description of architeFor example, by directly changing the GNR description of architecture, the cture, the designer can reduce a critical path delay or fix complex multipldesigner can reduce a critical path delay or fix complex multiplexers and exers and connections that costume too much power or make the layout connections that costume too much power or make the layout unroutableunroutable

Page 23: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2323//2277

NISC Technology StrengthNISC Technology Strength

�� DesignerDesigner--controled design space exploration controled design space exploration

�� Since other tools and techniques do not provide fast Since other tools and techniques do not provide fast

& predictable path to implementation, the designer & predictable path to implementation, the designer

can at best explore the design aspects that the tool can at best explore the design aspects that the tool

provides but not the ones the designer wants! provides but not the ones the designer wants!

�� Sine datapath can be an input in NISC Technology, Sine datapath can be an input in NISC Technology,

the designer can explore options for quality metrics the designer can explore options for quality metrics

selectivelyselectively

�� For example, designer can focus on dynamic power For example, designer can focus on dynamic power

minimization by modifying the connections or gating minimization by modifying the connections or gating

or latching them in the datapath description and or latching them in the datapath description and

quickly see the effect on the final resultsquickly see the effect on the final results

Page 24: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2424//2277

NISC Technology StrengthNISC Technology Strength

�� Right mixture of standard languages Right mixture of standard languages

�� Since ANSI C alone is not enough for designing a complete Since ANSI C alone is not enough for designing a complete system, all HLS tools provide their own extension of C as input system, all HLS tools provide their own extension of C as input language language

�� Such extensions require extra effort for learning. Additionally,Such extensions require extra effort for learning. Additionally,they prevent the use of unmodified C code and lock the they prevent the use of unmodified C code and lock the designer into a proprietary tool by making the developed designer into a proprietary tool by making the developed algorithms notalgorithms not--portable to other tools. portable to other tools.

�� NISC Technology only uses standard languages NISC Technology only uses standard languages

�� Designers do not need extra training and also can use their Designers do not need extra training and also can use their favorite development tools such as editors and debuggersfavorite development tools such as editors and debuggers

�� NISC provides a seamless way of combining standard C and NISC provides a seamless way of combining standard C and VerilogVerilog through prethrough pre--bound functions enable the inclusion of bound functions enable the inclusion of lowlow--level level VerilogVerilog code inside a C programcode inside a C program

Page 25: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2525//2277

NISC on WISHBONENISC on WISHBONE

App

Controller

Datapath

cmem

dmem

clkreset

halt

ExternalInput1

ExternalOutput

dmemmux

dmem external access

ExternalInput2

Basic NISCWISHBONE

Interface

NISC Data MemoryWISHBONE

Interface

NISC

Page 26: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2626//2277

NISC as NISC as coprocessorcoprocessor

Page 27: EESTEC -ZG Workshop

EESTEC Workshop EESTEC Workshop -- May,26May,26--30, 200830, 2008UniversityUniversity of Zagreb, of Zagreb, FacultyFaculty of of ElectrotechnicsElectrotechnics and and ComuptingComupting

2727//2277

References and further readingReferences and further reading

�� D. D. GajskiGajski, ", "NISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable ComponentNISC: The Ultimate Reconfigurable Component", ", Center for Embedded Computer Systems, TR 03Center for Embedded Computer Systems, TR 03--2828, October , October 2003.2003.

�� NISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & ToolsetNISC Technology & Toolset, URL: , URL: hhttp://www.ics.uci.edu/~niscttp://www.ics.uci.edu/~nisc//

�� M. M. ReshadiReshadi, D. , D. GajskiGajski, ", "A CycleA CycleA CycleA CycleA CycleA CycleA CycleA Cycle--------Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm Accurate Compilation Algorithm for Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapathsfor Custom Pipelined Datapaths", ", International Symposium on International Symposium on Hardware/Software Hardware/Software CodesignCodesign and System Synthesis and System Synthesis (CODES+ISSS)(CODES+ISSS), pp 21, pp 21--26, September 2005.26, September 2005.

�� B. B. GorjiaraGorjiara, M. , M. ReshadiReshadi, D. , D. GajskiGajski, ", "Generic Architecture Generic Architecture Generic Architecture Generic Architecture Generic Architecture Generic Architecture Generic Architecture Generic Architecture Description for Description for Description for Description for Description for Description for Description for Description for RetargetableRetargetableRetargetableRetargetableRetargetableRetargetableRetargetableRetargetable Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of Compilation and Synthesis of ApplicationApplicationApplicationApplicationApplicationApplicationApplicationApplication--------Specific Pipelined Specific Pipelined Specific Pipelined Specific Pipelined Specific Pipelined Specific Pipelined Specific Pipelined Specific Pipelined IPsIPsIPsIPsIPsIPsIPsIPs", ", International Conference on International Conference on Computer Design (ICCD)Computer Design (ICCD), October 2006., October 2006.