391,451 research outputs found
An Intermediate Representation for Composable Typed Streaming Dataflow Designs
Tydi is an open specification for streaming dataflow designs in digital
circuits, allowing designers to express how composite and variable-length data
structures are transferred over streams using clear, data-centric types. These
data types are extensively used in a many application domains, such as big data
and SQL applications. This way, Tydi provides a higher-level method for
defining interfaces between components as opposed to existing bit and
byte-based interface specifications. In this paper, we introduce an open-source
intermediate representation (IR) which allows for the declaration of Tydi's
types. The IR enables creating and connecting components with Tydi Streams as
interfaces, called Streamlets. It also lets backends for synthesis and
simulation retain high-level information, such as documentation. Types and
Streamlets can be easily reused between multiple projects, and Tydi's streams
and type hierarchy can be used to define interface contracts, which aid
collaboration when designing a larger system. The IR codifies the rules and
properties established in the Tydi specification and serves to complement
computation-oriented hardware design tools with a data-centric view on
interfaces. To support different backends and targets, the IR is focused on
expressing interfaces, and complements behavior described by hardware
description languages and other IRs. Additionally, a testing syntax for the
verification of inputs and outputs against abstract streams of data, and for
substituting interdependent components, is presented which allows for the
specification of behavior. To demonstrate this IR, we have created a grammar,
parser, and query system, and paired these with a backend targeting VHDL.Comment: arXiv admin note: substantial text overlap with arXiv:2212.1200
Recommended from our members
BDEF : the behavioral design data exchange format
BDDB is a Behavioral Design Data Base that manages the design data produced and consumed by different behavioral synthesis tools. These different design tools retrieve design data from BDDB, manipulate the data, and then store the results back into the data base. BDDB thus needs to address the following two issues: (1) a design data exchange approach and (2) customized design data interfaces. To address the first issue, we have developed a textual description format for describing design data objects and relationships. This language, referred to as the Behavioral Design Data Exchange Format (BDEF), is used as common format for exchanging design data between BDDB and the design tools in the behavioral synthesis environment. To address the second issue, we have developed a behavioral object type description language (generally referred to as schema definition language) for describing the global data structures required by design tools as well as the desired design subviews of this global BDDB design information. One design view class, namely, BDEF, is the topic of this report.In this report we give a formal definition of the BDEF format. Then we describe a comprehensive example of applying BDEF to the behavioral synthesis domain. That is, we present the complete BDEF syntax for the Extended Control/Data Flow Graph Model (ECDFG), which is the design representation model used by most behavioral synthesis tools in the UCI CADLAB synthesis system. We also present several example descriptions of designs using this ECDFG model. A parser/graph compiler from BDEF into the generalized ECDFG design representation as well as a BDEF generator from the ECDFG data structures into the BDEF format have been implemented
Type-Directed Program Transformations for the Working Functional Programmer
We present preliminary research on Deuce+, a set of tools integrating plain text editing with structural manipulation that brings the power of expressive and extensible type-directed program transformations to everyday, working programmers without a background in computer science or mathematical theory. Deuce+ comprises three components: (i) a novel set of type-directed program transformations, (ii) support for syntax constraints for specifying "code style sheets" as a means of flexibly ensuring the consistency of both the concrete and abstract syntax of the output of program transformations, and (iii) a domain-specific language for specifying program transformations that can operate at a high level on the abstract (and/or concrete) syntax tree of a program and interface with syntax constraints to expose end-user options and alleviate tedious and potentially mutually inconsistent style choices. Currently, Deuce+ is in the design phase of development, and discovering the right usability choices for the system is of the highest priority
- …