Hardware designs must use latency-insensitive (LI) interfaces when timing is input-dependent. When timing is input-independent, designs should use latency-sensitive (LS) interfaces for maximum performance. However, designs commonly use LI interfaces to integrate with externally generated LS modules--from, e.g., IP generators, high-level synthesis, or domain specific languages. In every fully integrated design, such uses of LI represent pure overhead. The challenge is that generators can dramatically change timing interfaces of the modules to meet performance objectives, and LI interfaces act as a useful design abstraction and enable timing adaptation. We define latency-abstract (LA) interfaces, a new design abstraction, which provide the timing adaptability of LI interfaces at design-time and the efficient integration of LS interfaces. LA interfaces use output parameters, a novel compile-time mechanism for child modules to return values parent modules, to abstract and encapsulate timing behaviors at design time. During design elaboration, LA interfaces are compiled into efficient LS interfaces based on parameter values. While an attractive option, LA interfaces inherit the complexities of parameterized hardware design: the user must reason how parameters influence timing behaviors of modules and ensure that designs adapt to interface changes. To address this challenge and demonstrate the utility of LA interfaces, we design Lilac, a parameterized HDL that uses a type system track the influence of parameters on timing behaviors and formally guarantee that every parameterization of an LA design results in a circuit without structural hazards.
翻译:硬件设计在时序依赖于输入时必须使用时延不敏感接口。当时序与输入无关时,设计应采用时延敏感接口以实现最大性能。然而,设计通常通过LI接口与外部生成的LS模块(例如来自IP生成器、高层次综合或领域特定语言)进行集成。在完全集成的设计中,此类LI接口的使用会带来纯粹的性能开销。核心挑战在于:生成器为满足性能目标可能大幅改变模块的时序接口,而LI接口作为有效的设计抽象能够实现时序适配。本文定义时延抽象接口——一种新型设计抽象,其在设计阶段提供LI接口的时序适应性,同时实现LS接口的高效集成。LA接口采用输出参数(一种创新的编译时机制,使子模块能够向父模块返回值)来在设计时抽象和封装时序行为。在设计细化阶段,LA接口根据参数值被编译为高效的LS接口。尽管具有吸引力,LA接口继承了参数化硬件设计的复杂性:用户必须推理参数如何影响模块的时序行为,并确保设计能够适应接口变更。为应对这一挑战并展示LA接口的实用性,我们设计了Lilac——一种参数化硬件描述语言,其类型系统可追踪参数对时序行为的影响,并形式化保证LA设计的每个参数化实例均能生成无结构冲突的电路。