ebook img

DTIC ADA451424: Reconfigurable Computing Application Frameworks PDF

11 Pages·0.09 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview DTIC ADA451424: Reconfigurable Computing Application Frameworks

Reconfigurable Computing Application Frameworks ∗ AnthonyL.Slade,BrentE.NelsonandBradL.Hutchings BrighamYoungUniversity ConfigurableComputingLaboratory Provo,UT84602,USA {aslade,nelson,hutch}@ee.byu.edu Abstract Additional Logic FPGA-based Configurable Computing Machines (e.g. DSPs, CODEC, RAMDAC, etc.) (CCMs) offer powerful and flexible general-purpose com- puting platforms. However, development for FPGA-based designs using modern CAD tools is geared mainly toward FPGA an ASIC-like process. This is inadequate for the needs ProcFePsGsiAng Memory of CCM application development. This paper discusses EPrleomcFePesGnstiAng Memory Processing Memory an application framework for developing CCM-based Element Element applications beyond just the hardware configuration. This frameworkleveragestheadvantagesofCCMs(availability, programmability, visibility, and controllability) to help create CCM-based applications throughout the entire Host Interface developmentprocess(i.e. design, debug, anddeploy). The (PCI, SCSI, etc.) framework itself is deployed with the final application, thuspermittingdynamiccircuitconfigurationsthatinclude data folding optimizations based on user input. The Figure 1. Configurable Computing Machine resulting system aids in creating applications that are (CCM)BlockDiagram. potentially more intuitive, easier to develop, and better performing. An example application demonstrates the use oftheapplicationframeworkandthepotentialbenefits. Because CCM computation and processing occurs in hardware,applicationstargetedtoCCMsmaybeabletorun 1 Application Acceleration Using FPGA- several times faster than if they were executed in software basedCCMs running on a microprocessor. In some cases, CCM-based applicationsmaybemorethananorderofmagnitudefaster Configurable computing machines (CCMs) are FPGA- than alternative implementations[13]. CCMs are also ca- basedprocessingandcomputingplatforms. Figure1shows pableofimprovingtheperformance-to-priceratioinmany thecomponentsofatypicalCCMarchitecture. CCMspro- applications[12]. videaversatileandpowerfulcomputingplatformthatmay Although CCMs do offer a number of potential advan- beintegratedwithahostsystem.TheFPGAsinaCCMcan tages, the cost of producing a full application for use on a be configured by the host system to perform virtually any CCMplatformcanstillbehigh. Onereasonisthemultiple type of computation or process. This makes CCMs attrac- types of design components found in a CCM-based appli- tivecomputingplatformswithflexibilitycomparabletothat cation. (SeeFigure2.) Theinterfacedriversareoftenpro- ofmicroprocessor-basedsystemsandperformancecompa- vided by the developers of the CCM hardware. However, rabletothatofASICdesigns. applicationdevelopersmuststilldealwiththelargetasksof ∗ThisworkissupportedbytheDefenseAdvancedResearchProjects developingthehardwareconfigurationandapplicationsoft- Agency(DARPA)andisfundedviaGrantNo.F33615-99-C-1502. ware. Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number. 1. REPORT DATE 3. DATES COVERED 2003 2. REPORT TYPE 00-00-2003 to 00-00-2003 4. TITLE AND SUBTITLE 5a. CONTRACT NUMBER Reconfigurable Computing Application Frameworks 5b. GRANT NUMBER 5c. PROGRAM ELEMENT NUMBER 6. AUTHOR(S) 5d. PROJECT NUMBER 5e. TASK NUMBER 5f. WORK UNIT NUMBER 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORGANIZATION Brigham Young University,Department of Electrical and Computer REPORT NUMBER Engineering,Provo,UT,84602 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR’S ACRONYM(S) 11. SPONSOR/MONITOR’S REPORT NUMBER(S) 12. DISTRIBUTION/AVAILABILITY STATEMENT Approved for public release; distribution unlimited 13. SUPPLEMENTARY NOTES The original document contains color images. 14. ABSTRACT see report 15. SUBJECT TERMS 16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF 18. NUMBER 19a. NAME OF ABSTRACT OF PAGES RESPONSIBLE PERSON a. REPORT b. ABSTRACT c. THIS PAGE 10 unclassified unclassified unclassified Standard Form 298 (Rev. 8-98) Prescribed by ANSI Std Z39-18 Hardware Hardware CCM−based Application Design Debug Deploy Software Software Hardware FPGA−Host Application Interface Design Debug Configuration Software Drivers Figure 3. Traditional stages of CCM applica- tionproduction. Figure 2. The hardware and software design componentsofaCCMapplication. Design Debug Deploy Figure 4. Combined stages of CCM applica- 2 Limitations of Current CAD Tools for tionproduction. CCMApplicationDevelopment Inordertoquicklygenerateanewmarketfortheirprod- facilitate the partitioning problem, it also has benefits that ucts,FPGAmanufacturershavereliedheavilyontheexist- simplify application development in general, and that may ing electronic design automation (EDA) and CAD tool in- resultinapplicationsthatperformsignificantlybetter. frastructure. ByofferinglibrariesforusewithmajorCAD tools, or information sufficient for others to create such li- braries,FPGAmanufacturershavealloweddesignerstouse 3 Leveraging Features of CCMs in Applica- their favorite EDA/CAD tools to create designs that tar- tionDevelopment get FPGA devices. While this strategy has allowed FPGA producers to successfully build up a large market for their DevelopmentofCCMapplicationsmaybeimprovedby products, it has also created a development system that is leveraging the features of FPGAs and FPGA-based CCM ASIC-oriented[8].ThisASIC-orientednatureofCADtools platforms. AsnotedbyHutchingsandNelson[7],threema- hasbeenadequateforcreatingFPGAdesignsthatserveas jorfeaturesofCCMsare: ASICprototypesorreplacements. However,focusingonly on hardware design and simulation limits development for • Availabilityofthehardwareatdesigntime CCMapplicationsbyignoringthebenefitsofCCMfeatures • Programmabilityandre-programmabilityofthehard- and by not supporting the software development, which is ware crucialtothefinalapplicationdeployment. The ASIC-orientation of EDA/CAD tools commonly • Visibilityintothehardware used for FPGA configuration design results in a split de- velopmentpathforthehardwareandsoftwarecomponents Tothislist,Graham[4]addsthefollowing: of the application as shown in Figure 3. The disjoint, of- • Controllabilityofthehardwarestate tensequential,developmentofthehardwaredesignandthe software design extends the time necessary to develop the • Systemexecutioncontrollability wholeCCMapplication. Acombineddevelopmentpath,as showninFigure4,streamlinesdevelopmentofthehardware Two major benefits come as a result of these features of andsoftwareandreducesthecomplexityofthedeployment CCM systems: a reduction in the need for simulation for stage. hardware design verification, and tighter integration of the At this point, it should be noted that this paper is not software and the hardware components of CCM applica- about the automated partitioning problem for hardware/- tions, particularly in the deploy stage of development and softwareco-design.Thatis,thispaperisnotaboutatoolfor beyond. systemspecification,co-design,andco-simulation. Rather, Traditional EDA/CAD tools have assumed that the de- this paper discusses methods of joining the hardware and sign may only be put into hardware form after extensively softwaredevelopmentenvironmentsinsuchawaythatex- simulating it in order to fully verify its functionality. Re- tendsthebenefitsprovidedbyanEDAtoolbeyondthede- lyingexclusivelyonsimulationtoverifyhardwaredesigns sign and debug stages of development. Although this new isresource-andtime-intensive, makingdesignverification integrated approach to developing CCM applications can abottleneckinthedevelopmentprocess. Whilesimulation does have its place in designing for FPGAs, making use general-purpose multipliers may be replaced by more ef- of the target CCM platform for in-hardware execution can ficientconstant-coefficientmultipliers;etc. Suchoptimiza- reduce reliance on simulation for circuit verification. Us- tions,knownasdatafolding[3]orconstantpropagation[14], ing target FPGA hardware as a replacement for full simu- can be used in applications such as FIR filters (by em- lationispossibleduetotheextraordinaryinternalvisibility bedding the filter coefficients in the multipliers) or pattern madeavailablebythehardware.1 Unfortunately,traditional matchingcircuits(bycreatingconstant-valuecomparators). EDA/CAD systems typically do not offer support for in- With high-performance CCM applications, when the hardwareexecutionanddebuggingofdesigns; rather, they data changes, so does the problem to be solved. That is, focusonlyonthehardwaredesign. when the end user has a new set of information to be pro- cessed by the application, CCM applications have the ca- pabilitytoadapttothatnewsetofdataforoptimalperfor- DesignandDebug mance. Suchadaptationmaycomeasaresultofregenerat- ingnetlistsandperformingplacementandroutingagain.Or In-hardwareexecutionistypicallyseveralordersofmag- the application may adapt by modifying FPGA configura- nitude faster than simulation[4]. Integrating the informa- tionbitstreamsorsomeintermediateformofthehardware tion from in-hardware execution of incremental and final configuration[4]. Thus,performanceimprovementsgained builds of the hardware design within the development en- from data folding may require significant portions of the vironment allows the designer to verify the design in less hardwaredesigntooltobeincludedinthefinalapplication. time[7]. Shorter design and debug cycles may then per- ThisdefinesanewroleforEDA/CADtools;thatis,certain mitfurtherdesignexploration,andthusimprovethedesign CCM applications may require the tools themselves to be overall. deployedalongwiththeapplications. Thebenefitsofhard- CCM features permit the hardware to be viewed as an warereconfigurationenabledbythetoolsmaythenremain extension of the application software. This gives a more withthefinalapplicationinthedeploystageandbeyond. useful view of the CCM application as a whole comput- ing system, rather than two separate pieces. This enables 4 Reconfigurable Computing Application further design exploration that helps to determine the op- Frameworks timalpartitionbetweenthehardwareandsoftwarecompo- nentsoftheapplication. Also,integratedapplicationdevel- ThetraditionalmonolithicEDA/CADtoolsystemisin- opment helps detect and eliminate design flaws that might sufficient to support the unique needs of CCM application not be evident in separated design flows. The integrated design,debug,anddeployment. Thissectionexplainshow development approach also allows developers to focus at- application frameworks offer a better alternative. Recon- tentionontheinterfacewithwhichthefinaluserinteracts. figurablecomputingapplicationframeworks(RCAFs)help Theresultisanapplicationthatnotonlysolvesaparticular designersuseCCMfeaturestoeasilydevelopacustomde- problem,butthatisalsointuitivetothetargetaudience. In signanddebugenvironmentthatisspecifictoagivenappli- summary,modernCADtoolslackintegratedhardwareand cation. UsinganRCAF,thepreparationsfordeploymentof softwaredevelopmentenvironmentstosupportthedeploy- aCCM-basedapplicationwilloccursimultaneouslyasthe mentofcompleteCCMapplications. whole application, including both the hardware and soft- warecomponents,isbuiltupinanintegratedfashion. Deploy Asgeneral-purposecomputingplatforms,CCMsmaybe used as the processing cores for a wide variety of applica- Perhapsoneofthegreatestbenefitsofanintegratedde- tions. Loading a new hardware configuration into the FP- sign process is the potential for improved application per- GAs of a CCM changes its functionality. Configuring the formance. When an ASIC design is fabricated, it usually FPGA hardware of a CCM is much like loading in a new mustworkwithawiderangeofdata. Suchgenericdesigns softwareprogramonamicroprocessor-basedmachine.And come with the tradeoffs of larger size and slower speeds. muchlikesoftwareloading,CCMconfigurationandrecon- There-programmabilityofCCMs,however,allowsforper- figurationcanbedynamicandinteractive. RCAFssupport formanceenhancementstobemadebyembeddingspecific thedynamic,software-likefeaturesandoperationofCCMs. datafromtheproblembeingsolvedbytheapplicationinto AsshowninFigure5,anRCAFimplementationisabridge thehardwaredesign. Forexample,complexcombinational betweentheCCMhardwareandtheCCMapplicationsoft- logic may be replaced by faster lookup tables; large, slow, ware running on the host system. The RCAF is integrated anddeployedwiththeCCMapplication. Thescalableand 1Forexample,XilinxFPGAsoffera“readback”capability,whichgives modular nature of the RCAF makes this possible; this is thecurrentstateofallregisterandmemoryelementsintheFPGAdevice. typicallynotfeasiblewithlarge,monolithicCADtools. 4.2 RCAFSupportfor(Dynamic)CircuitDesign CSCHuMpapr−doswrpt eaAcreiPfIic RCAF AppClCicMation TheRCAFisnotjustaninterfacelayerinaCCM-based application.Italsocontainstheresourcesnecessaryforcre- ating the hardware configuration for the CCM application. Thatis, theRCAFisalsoafull-featuredFPGAcircuitde- signtool. Thecircuitdesign,whichisbuiltupprogrammat- Figure 5. The RCAF interfaces between the ically through the RCAF, may be netlisted and then trans- CCMhardwareandapplicationsoftware lated by technology-specific tools into a configuration im- agefortheCCMhardware. BecausetheRCAFisapartofthedeployedapplication, the circuit design need not be static. The RCAF may dy- 4.1 RCAF Interface Between CCM Hardware namicallygenerateacustomversionoftheCCMhardware andCCMSoftware based on information provided by the application. As ex- plainedinSection3, thisenablesCCMapplicationstoop- timize the hardware configuration by folding in data pro- vided by the user. Whether by manipulating existing con- An RCAF offers simple and accessible interfaces to all figurationimagesorbyregeneratingnetlistsandperforming of the important features of targeted CCM platforms. The placement and routing, the RCAF can assist in providing RCAFtakescareofthelow-leveldetailsofconfiguringand dynamic,interactivecircuitcreationcapabilitiesinthefield operatingtheCCMhardware(i.e. FPGAconfiguration,re- tosignificantlyimproveapplicationperformance. set, clock starting, stopping, and stepping, querying hard- warestate,etc.). Ideally,anRCAFwillworkwithvirtually 5 A Reconfigurable Computing Application any CCM hardware platform. The same interface is avail- FrameworkImplementation abletotheapplicationdeveloper,nomatterwhatthetarget platformmaybe. The general architecture of a reconfigurable comput- Inthisway,theRCAFfunctionsmuchlikeconventional ingapplicationframeworkimplementedatBrighamYoung board-supportsoftwarepackagessuchasareprovidedwith University’s Configurable Computing Laboratory was pat- commerciallyavailableCCMplatforms(e.g. SLAACAPI, terned after the model-view-controller architecture shown Anapolis API, etc.). However, the RCAF actually works in Figure 6. The model is the fundamental data being ontopofsuchhardwaresupportpackagestoprovidemuch manipulated by the system or the computation being per- moreinitsapplicationprogramminginterfaces(APIs). The formed. Theviewisthesystemcomponentthatdetermines RCAFalsoincludesasystemthataidsintheinterpretation howdataispresentedtotheuser. Thecontrolleristhepor- of the hardware state as it relates to the original hardware tion of the system that receives user input and interprets it design. TheRCAFmaintainsareferencemappingbetween toperformsystemtasks. Thesetasksmayperformmanipu- the circuit design components and their corresponding cir- lationsofthedataortheymaychangethewayinwhichthe cuitelementsinhardware. Thatis,theRCAFtakescareof viewdisplaysinformationaboutthedata. Themodel-view- the overhead necessary to give the application developer a controllerarchitecturedividesthefunctionalityofasystem transparentviewofthecircuitstructureandstatewhilethe along boundaries that allow for simple system production, circuitisexecutinginhardware. maintenance,andscalability[11]. Italsoestablishesanatu- Because the hardware view of the circuit provided by ralcommunicationsnetworkbetweenthethreecomponents. theRCAFisthesameasthedesignview,circuitinteraction ThedescriptionoftheRCAFthatfollowsisdividedalong components(e.g. schematicviewers,circuitexecutioncon- theboundariesestablishedbythemodel-view-controllerar- trols, custom circuit visualization components, etc.) may chitecture. be consistent across the design, debug, and even deploy- mentstagesofapplicationdevelopment. Beyondeventhat, 5.1 TheRCAFModelComponent the RCAF contains APIs that aid in establishing a simple architecturethatcreatesacommunicationsnetworkthatal- TheunderlyingmodelfortheRCAFisimplementedby lows interactive components to send and receive messages JHDL. JHDL is a tool for designing and simulating digi- to and from other interactive components as well as the talcircuits,andisespeciallywell-suitedforreconfigurable hardwareexecutionandstatecontrollers. Thisarchitecture computingdesigns[1,6]. JHDLperformstheroleofmodel helps maintain a modular and scalable application system fortheRCAFbyrepresentingthestructureandstateofthe foreasymaintenanceandupdating. hardware design. Manipulations to the model come in the (cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)M(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)o(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)d(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)el(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:3)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:4)(cid:1)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4)(cid:4) (cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)V(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)i(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)e(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:0)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)(cid:2)(cid:1)w(cid:0)(cid:0)(cid:0)(cid:0)(cid:0)(cid:0)(cid:0)(cid:0)(cid:0)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2) tchueitdinestihgenCmCoMdehlatordwthaerier[c4o].unterparts in the physical cir- 3−LUT Controller Figure6.Themodel-view-controllerarchitec- tureforuserinterfaces[11]. Figure8.Mappingacircuitmodeltohardware oftenlosesintermediatelogicandwires. formofsteppingthecircuitclockandapplyingvaluestothe circuitinputs. Figure7showsthegeneralarchitectureofaJHDLdesign CircuitStateAPI as well as the types of APIs exposed to external systems. The circuit state API provides a means of determining the TheseAPIsareusedtomanipulatethemodelaswellasto values on wires and in memory devices. The same API is extract information about the model’s state. Each API is used whether the circuit is being simulated or is being ex- explainedseparatelybelow. ecuted in actual hardware. Both methods of circuit execu- tion require the presence of the JHDL simulator as part of JHDL Hardware System the circuit model. This is because the state of the hard- JHDL TestBench ware(obtained,forexample,viahardware“readback”fea- tures present in certain Xilinx FPGAs) usually only con- Execution Control tains state information from non-combinational logic ele- JHDL Circuit Design (Simuluation/In−hardware) ments. Therefore,forthecircuitdesignshowninFigure8, hardwarereadbackwouldonlyreturnthestateofthethree flip flops. The JHDL simulator then uses those values to interpolate the remaining three wire values, including the twothatweresubsumedintotheconfigurationoftheFPGA 3-LUT. Such information can be crucial when debugging Circuit Structure API Circuit State API Execution API CCM applications. This also means that the application mayprovidehardwarevisibilitywithoutrequiringthehard- wareconfigurationtocontainadditionallogicmeantonlyto routesignalstoexternalpins.Thus,JHDLmakesaddedcir- Figure 7. JHDL APIs offer access to circuit cuitinformationavailablewithoutaddedcircuitcomplexity informationandcontrol. orlatency. ExecutionAPI CircuitStructureAPI The execution API provides a means of controlling circuit The circuit structure API gives access to the components simulation and execution. Since the simulator is used in of a circuit design (cells and wires) and their relationships bothsimulation-onlyandin-hardwareexecutionofthecir- to each other. The structural view exposed by the JHDL cuitdesign,itistheagentthatperformsthedatamodelma- modelisthatoftheoriginalcircuitdesign. Thisdesignmay nipulationforbothmodesofexecution. Therefore, theex- differ from the physical circuit in hardware. For example, ecutionAPIisalsoconsistentacrossexecutionmodes. Be- thecircuitmodelontheleftinFigure8containstwowires sidesprovidingmethodsforsteppingandcyclingthesystem thatareabsentfromthephysicalFPGAhardwareconfigu- clock,theexecutionAPIalsoprovidesamechanismthatal- rationrepresentedontheright. However,theJHDLmodel lows components external to the JHDL design to receive maintains information that maps structural components of notification of the completion of circuit execution events, i.e. clocksteps,multi-stepruns,andcircuitresets. Applica- variouscontrollercomponentsworktogetheraswellashow tionviewersusethisportionoftheexecutionAPItoknow theyfitintotheoverallRCAFarchitecture. when the circuit has settled so that they may query circuit stateinformation. 5.3 TheRCAFViewComponent IntegratingExternalComponents RCAFviewersofferapplication-specificpresentationsof JHDLisbasedonageneral-purposeprogramminglanguage the circuit design. They also offer a portal through which (Java). ThisallowstheJHDLAPIstobeaccesseddirectly the user may apply inputs to be passed to the RCAF con- from other systems, giving JHDL an advantage over pro- troller. While a default RCAF configuration for general- prietarylanguagesandHDLs. ElementsofaJHDLdesign purposecircuitvisualizationincludesastandardsetofview- arerepresentedbyobjects.SomeexampleJHDLAPImeth- ers (e.g. schematic viewers, circuit hierarchy viewers, odsprovidedbytheseobjectsaredisplayedinTable1. The memory viewers, etc.) each unique CCM application may RCAFcontrollerandviewersareseamlesslyintegratedwith easily add to or remove from this default set of viewers as the JHDL model through these and other methods of the appropriatefortheapplication. Eachcustomviewermerely JHDLAPIs. needstofollowtheRCAFsystem’smethodforgenerating events. In the current implementation of the RCAF this is 5.2 TheRCAFControllerComponent donebygeneratingactioneventsasintheJavaSwinguser interfacemodel. Eachviewershouldalsoprovidealistener To receive and interpret user input and execute corre- interface, implementations of which may be used to trans- sponding system-wide tasks, the RCAF has a centralized late action events into commands for the command inter- controller. The principle RCAF controller is contained in preter. a class named Broker. The Broker class gets its name from its role as an intermediary between the other major components of the RCAF system. This class is the only 5.4 IntegratingtheRCAFModel,View,andCon- componentoftheRCAFthathasasystem-wideviewofall troller oftheothercomponents. Havingasingleclasswiththisin- formationinsteadofvariouscomponentswithanetworkof referencestoeachothermakestheRCAFsimpleandeasy Figure10showsanexampleinteractionbetweenthevar- tomaintain. Thisalsomakesthesystemmodularandscal- iouscomponentsoftheRCAFarchitecture.Inthisexample, able. Thatis,onlyoneclassneedstobemodifiedtochange the user double-clicks with a mouse pointer on a portion thesetoffeaturesandcomponentsincludedforagivenap- of the schematic viewer that displays a wire in the circuit plication. design. This generates an event that is picked up by the The Broker class contains all of the methods to per- GUIlistenerregisteredwiththeschematicviewer. Thislis- formsystem-widetasks. Theseincludecreatingapplication tenerthentranslatesthateventintoatextualcommandthat viewers,disposingunusedviewers,managingcommunica- is passed to the command interpreter. The interpreter then tion between system components, and controlling the exe- makes the appropriate method call in the Broker class. cutionofthehardware. TheBrokerknowsoftwootherviewersthatshouldbeaf- TheBrokerisaidedbyacommandinterpreter. Thein- fectedbythatcommandandtellsthemtoupdatetheirout- puttoincludethenewwire. Thoseviewersthenquerythe terpreteracceptstext-basedcommandsfromtheapplication necessary information from the circuit model and update user. The result is the invocation of corresponding meth- ods of the Broker class. These text commands may be theirdisplays. storedinahistorylogandexecutedagainlater,makingthe Ingeneral,theBrokerholdsthecentralpositioninthe RCAF system scriptable. This system of text commands RCAF system. Modifications to the Broker change the also helps to make the RCAF controller modular and ex- set of available RCAF viewers. Since the Broker knows tensible, as will be shown in the example in Section 6. In which viewers may exist in the system, and their relation- graphical environments, the Broker creates listeners that shipstoitselfandtoeachother,itknowshowtoconfigure translate low-level events from the viewers (e.g. button the command interpreter and the viewer listeners. Having presses,mouseclicks,andkeystrokes)intotextcommands justthisoneclasswithinformationthatmakesupasystem- to give to the command interpreter. This listener system wide view makes the RCAF easier to maintain and up- forinter-componentcommunicationisbasedonthelistener date. Thesinglesystemcontrollersimplifiesremovingand model commonly used in user interface architectures, no- adding viewers to the system and managing system com- tablyintheJavaSwingclasses. Figure9showshowthese munication. Table1.SomeJHDLmethodsforaccessingcircuitdesigninformationandcontrol JHDLClass MethodName(arguments) ReturnType HWSystem findNamed(String name) Returnsanarbitrarymemberofcircuitmodel. Cell getDescendants() Returns a list of the children cells and other descendants of the givencell Wire get() Returnsthecurrentvalueofthegivenwire HWSystem step (int numSteps) Stepsthecircuitclockforaspecifiednumberofclockedges Configurable JHDL Hardware System Computing Machine JHDL TestBench Viewer Execution Control JHDL Viewer Circuit Design Viewer Viewer Broker Listener Command Interpreter Figure9.TheRCAFsystemarchitecture. 6 BuildingaCCMApplication 6.1 EditDistanceApplicationModel The RCAF provides a basic architecture on which to The model for the edit distance application is a pa- build a full CCM-based application. The developer needs rameterizable JHDL circuit design. Figure 11 shows a onlyonlytocreateviewersappropriateforthegivenappli- portion of the code for the EditDistance class that cation and extend the capabilities of the Broker class to builds the circuit model. The parameters that determine interactwiththoseviewers.Thefollowingexampledemon- the circuit structure and function are the width of the out- strateshowthismaybedone. Thisexampleapplicationim- put wire distanceOut and the contents of the string plements an edit distance calculator.2 The circuit that cal- targetStr. The output wire is connected to a counter culates the edit distance in this application is built from a thattalliesthetotalnumberofoperationsneededtoconvert linearsystolicarray,asimplearchitectureeasilyoptimized the source string to the target string. Therefore, the width for FPGA hardware[10, 5, 2]. Each processor in the array of this wire determines the maximum edit distance value hasacharacterofthetargetstringembeddedintheconfig- thecircuitmaydetect. Theuserprovidesthedesiredtarget urationoftheFPGALUTsofwhichitismade. stringparameterwhenstartingtheapplication. Thismeans Thefollowingdescriptionofthisexampleapplicationis that the circuit will be optimized for the data at execution in terms of the model, view, and controller components of time, even if it changes from one use of the application to thesystem. Thisshowshowthevariousapplicationcompo- thenext. Althoughthisspecificexampleonlydemonstrates nents correspond with the architectural components of the the RCAF system in simulation mode, the deployment- RCAF. It also shows how the development of the applica- timeoptimizationsforin-hardwareexecutioncouldbeper- tionmaybesubdividedintoeasy-to-manageportions. Thus formedinavarietyofways. Thehardwaredesigncouldbe agroupofdesignersmayeasilydevelopvariouspartsofa usedtoproduceanetlistwhichcouldthenbeprocessedby significantapplicationconcurrently. placement, routing, andconfigurationbitstreamgeneration tools. Orapre-existing,low-level,FPGA-specificconfigu- 2Theeditdistancebetweentwostringsisthenumberofcharacterin- ration could be modified by a tool such as JBits to change sertions,deletions,andsubstitutions,whichmaybeweighteddifferently, thatittakestochangeasourcestringintoatargetstring. theembeddedconstants. PreviousworkatBrighamYoung Configurable JHDL Circuit Model Computing Machine User Input (mouse click) HWSystem.findNamed("Q") Waveform Viewer Wire Table Schematic Viewer Q Q out 1 Q Viewer Event: Viewer.addWire("Q") Viewer.addWire("Q") wire double−click "Q" "watchwire Q" Command Interpreter Listener Broker Broker.seeWire("Q") Figure10.ExamplecommunicationintheRCAFmodel-view-controllerarchitecture. University has also shown that such optimizations can be sourcestring,controltheexecutionofthecircuit,andview performedbydirectlymodifyingpre-bitstreamorbitstream the progress of the string as it cycles through the proces- configuration files[9]. The execution-time modifications sorsofthesystolicarray. Theinputsareintheformoftext couldtakeanywherefromsecondstoseveralminutes. The fields. The circuit visualization shows information about method of updating optimizations between execution runs eachprocessorinthecircuit. Onthetopoftheviewofeach could be determined by the RCAF or the application code processorisdisplayedthecharacterthatisembeddedinthat built on top of it, making the whole process transparent to processor.Belowthatisasymbolthatindicateswhetherthe theuser. current source character in that processor is equal or not. Belowthatisthecharacterfromthesourcestring. Finally, public class EditDistance onthebottomistheoutputvaluefromtheprocessor,which extends Logic { is passed down the array to the accumulator connected to public static CellInterface[] thecircuitoutput. cell_interface = { in("charIn",4), 5 out("distanceOut",PARAM_WIDTH), param("outputWidth",INTEGER), param("targetString",STRING), }; public EditDistance( 10 Node parent, Wire charIn, Wire distanceOut, String targetStr) { // constructor code ... 15 } } // end class EditDistance Figure 11. The EditDistance class creates Figure12.Thegraphicaluserinterfaceforthe the circuit model for the edit distance appli- editdistanceapplication. cation. Betweencyclesofthesystemclock,theviewerupdates the values displayed. The values are obtained by using 6.2 EditDistanceApplicationView methodsshowninTable1. Referencestothecircuitwires that contain the values of interest are obtained with the The view for the edit distance application (Figure 12) findNamedmethod. Theactualvaluesarethenobtained provides a simple interface that allows the user to input a throughthegetmethod. Each of the processor views in the edit distance appli- 6.4 CompletingtheEditDistanceApplication cationisaseparate, parameterizableGUIpanel. ThisGUI subpanelwasdevelopedalongwiththehardwaredesignfor TheeditdistanceapplicationisexecutedbyaJHDLtest- anindividualprocessor. Thiscustomviewofasinglepro- bench class. This class is the final deployment and execu- cessorwasusedtohelpdebugthehardwaredesign. When tionpointoftheapplication;inthisclass,thesystemcom- the processor design was verified, both the processor and ponents(thecircuitmodel,theviewers,andthecontroller) GUIsubpanelwereduplicatedinparameterizablearraysin are built and finally integrated into the complete CCM ap- the hardware design and complete custom viewer respec- plication. ThecodeforthisclassisshowninFigure14. It tively. Thusthedevelopmentofthecustomviewernotonly containsamainmethodthatreceivesuserdataonlines21 built up the final application interface, it also aided in the and 23. That information is then used to create the test- hardwaredesignanddebugfromthebeginningofapplica- bench, andhencethecircuitdesignitself, online26. This tiondevelopment. is the point at which the RCAF dynamic circuit genera- tionfeaturesareactivatedtocreatetheoptimalcircuitcon- 6.3 EditDistanceApplicationController figuration for the user. Finally, the application creates an EDBroker on line 32 to start up the interactive compo- Thecontrollerfortheeditdistanceapplicationisbuiltby nents(i.e. thecustomviewerandthecontrollerelements). extendingthefeaturesofthedefaultRCAFBrokerclass. Additional,customcommandsarealsoaddedtotheRCAF public class tbEditDistance command interpreter. The code for the custom Broker extends Logic implements TestBench { public tbEditDistance(Node parent, classisshowninFigure13. Acustomeditdistanceviewer int width, iscreatedintheEDBrokerconstructoronline6. Line13 String target) { 5 creates and registers an instance of the EDCLICommand super(parent); class. This class implements a command for the RCAF Wire charIn = wire(4,"charIn"); command interpreter (the CLInterpreter class). This Wire distance commandistiedtothetextinputfieldinthecustomviewer = wire(width,"distance"); 10 inFigure12. Enteringanewsourcestringinthetextfield new EditDistance(this, causesthecustomcommandtobegeneratedandsenttothe charIn, distance, commandinterpreter,andhencetheBroker. Thisresults target); inanupdateddatascheduleforthesourcestringinputval- Stimulator stim 15 uesthatarestreamedintothesystem. Thisexampleofcus- = new Stimulator(this); tominteractivecircuitinputandcontrolshowshowthede- stim.addWire(charIn); } ployed application can be built in such a way that is most public static void main( intuitivetothefinaluser,notjustthehardwaredesigner. String[] args) { 20 int width = Integer.parseInt(args[0]); public class EDBroker String target = args[1]; extends Broker { HWSystem system public EDBroker(HWSystem system, = new HWSystem(); 25 CLInterpreter interp) { new tbEditDistance( super(system,interp); 5 system, new EDFrame(system,interp); width, } target); protected void registerCLICommands( CLInterpreter interp 30 HWSystem system, = new CLInterpreter(); CLInterpreter interp) { 10 new EDBroker(system,interp); super.registerCLICommands(system, } interp); } // end class tbEditDistance EDCLICommand edc = new EDCLICommand(interp); } 15 Figure14.ThetbEditDistanceclassbuilds } // end class EDBroker andintegratestheapplicationcomponents. Figure 13. The EDBroker class extends the default RCAF controller for the edit distance Thisexampleapplicationdemonstrateshowsimpleitis application. to extend the existing RCAF to quickly build up a CCM application. The source code for this example application is only 1321 lines long, including the circuit design (696

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.