Transferring composite data structures with variable-length fields often requires designing non-trivial protocols that are not compatible between hardware designs. When each project designs its own data format and protocols the ability to collaborate between hardware developers is diminished, which is an issue especially in the open-source community. Because the high-level meaning of a protocol is often lost in translation to low-level languages when a custom protocol needs to be designed, extra documentation is required, the interpretation of which introduces new opportunities for errors. The Tydi specification (Tydi-spec) was proposed to address the above issues by codifying the composite and variable-length data structures in a type and providing a standard protocol to transfer typed data among hardware components. The Tydi intermediate representation (Tydi-IR) extends the Tydi-spec by defining typed interfaces, typed components, and connections among typed components. In this thesis, we propose Tydi-lang, a high-level hardware description language (HDL) for streaming designs. The language incorporates Tydi-spec to describe typed streams and provides templates to describe abstract reusable components. We also implement an open-source compiler from Tydi-lang to Tydi-IR. We leverage a Tydi-IR to VHDL compiler, and also present a simulator blueprint to identify streaming bottlenecks. We show several Tydi-lang examples to translate high-level SQL to VHDL to demonstrate that Tydi-lang can efficiently raise the level of abstraction and reduce design effort.
翻译:以多长字段传输复合数据结构往往需要设计硬件设计之间不兼容的非三维协议。当每个项目设计自己的数据格式和协议时,硬件开发者之间协作的能力就会减弱,这在开放源码界尤为是一个问题。由于在需要设计定制协议时,协议在翻译到低级别语言时往往失去高层次意义,因此需要额外的文件,对协议的解释会引入新的错误机会。Tydi规格(Tydi-spec)是为了解决上述问题,办法是将复合和可变长数据结构编成一种类型,并提供在硬件组件之间传输类型数据的标准协议。Tydi中间代表(Tydi-IR)通过定义打印界面、打字组件和类型组件之间的连接来扩展Tydi-频谱。在这里,我们建议Tydi-lan,一种高层次的硬件描述语言(HDL)用于流设计。该语言包含Tydi-specreau 描述打印流和提供模板来描述抽象的可重复的版本数据。我们还实施了一个开放源码的Syli-Rli-li-lix-lix-ligal-lial-liver-liver-trad-Strading-trad-trading-trading-trading-ligle-trading-trading-ligle-traction-tracud-tradal-trad-trad-trad-trad-tradal-sal-traction-S-s-s-S-tradal-trading-tradal-tradal-tradal-trading-daldaldal-我们向一个从目前显示一个从一个从一个从目前到一个从一个高到一个向显示一个从一个高的版本到一个从S-S-trad-S-S-tradal-S-tradal-S-d-d-d-d-d-d-d-d-d-S-d-d-daldaldaldal-I-dal-d-d-d-d-S-I-d-d-d-d-d-S-I-S-I-I-S-S-I-S-I-I-I-S-S-D-D-D-I-I-I