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. This provides a higher-level method for defining interfaces between components as opposed to existing bit- and byte-based interface specifications. In this thesis, an open-source intermediate representation (IR) is introduced 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, a grammar, parser, and query system have been created, and paired with a backend targeting VHDL.
翻译:Tydi 是数字电路数据流设计的一个开放式规格, 使设计者能够用清晰的、 以数据为中心的类型来表达合成和变长的数据结构是如何在流中传输的。 这提供了一种更高层次的方法, 用来定义各组成部分之间的界面, 而不是现有的基于位和字节的界面规格。 在此论文中, 引入了一个开放源代码中间表达( IR), 从而可以宣布 Tydi 的类型 。 IR 能够创建和连接 Tydi Streams 的界面, 称为 Streamlets 。 它还可以让合成和模拟的后端保留高层次的信息, 如文档。 类型和流可以很容易地在多个项目之间再利用, 并且可以使用 Tydi 的流和类型结构来定义界面合同, 帮助设计一个更大的系统。 IR 将Tydi 规格中建立的规则和属性进行编码, 并用来补充以数据为主的硬件设计工具。 为了支持不同的后端和目标, IR 侧重于表达界面的界面和图像界面, 以及由硬件描述输出的输出和格式的流程, 测试, 格式的版本的系统, 的版本, 的版本的版本的版本和格式的版本的流程, 显示, 显示, 和格式的版本的版本的版本的版本的版本的版本的版本的版本的版本的流程的流程的流程的流程的流程的流程的演算。