论文标题
Tydi-lang:一种用于流式流式硬件的语言 - 未来Tydi-lang编译器开发人员的手册
Tydi-lang: a language for typed streaming hardware -- A manual for future Tydi-lang compiler developers
论文作者
论文摘要
使用可变长度字段传输复合数据结构通常需要设计硬件设计之间不兼容的非平凡协议。当每个项目都设计自己的数据格式并协议可以在硬件开发人员之间进行协作的能力,这是一个问题,这是一个问题,尤其是在开源社区中。由于需要设计自定义协议时,协议的高级含义通常会在翻译为低级语言中丢失,因此需要额外的文档,该解释引入了错误的新机会。提出了TYDI规范(TYDI-SPEC),以通过类型中的复合和可变长度数据结构编码并提供标准协议来解决上述问题,并在硬件组件之间传输键入数据。 TYDI中间表示(Tydi-ir)通过在键入组件之间定义键入接口,键入组件和连接来扩展TYDI-SPEC。 在本文中,我们提出了用于流设计的高级硬件说明语言(HDL)的Tydi-lang。该语言结合了TYDI-SPEC来描述键入流,并提供了描述抽象可重复使用的组件的模板。我们还实施了从Tydi-Lang到Tydi-ir的开源编译器。我们利用TYDI-IR到VHDL编译器,还提供了模拟器蓝图来识别流瓶装。我们展示了几个Tydi-lang示例,以将高级SQL转换为VHDL,以证明Tydi-lang可以有效提高抽象水平并减少设计工作。
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.