问题

异构设计要复用大量现成组件,每个组件都有自己的接口和握手协议。设计者的大量精力花在杂活上:写适配器、做数据类型转换、补控制逻辑把各部分接起来。现有的硬件语言要么定制成本高,要么为了简单牺牲质量。

思路

Twine 是一个 Chisel 扩展,为异构设计提供高层语义。它给每个组件统一的标准接口,支持无需手写控制的描述方式和灵活的数据类型转换,并自动生成控制和胶合逻辑。

Accelerator Astreaming handshakeAccelerator Bcustom valid/readyMemorybus interfaceTwine interfaceone standard port+ data-type conversionGenerated logiccontrol + glue,no hand wiring
组件保留各自的原生接口,Twine 统一接口并生成胶合逻辑。

结果

3×设计描述规模缩小
DATE 2022同行评审论文

Twine 在保持设计质量的同时提高了复用性、降低了设计复杂度,也成为我博士论文的第一部分。

我的工作

第一作者。负责语言扩展和代码生成的设计,以及实验评估。

论文: DATE 2022