As the need for efficient digital circuits is ever growing in the industry, the design of such systems remains daunting, requiring both expertise and time. In an attempt to close the gap between software development and hardware design, powerful features such as functional and object-oriented programming have been used to define new languages, known as Hardware Construction Languages. In this article, we investigate the usage of such languages - more precisely, of Chisel - in the context of Design Space Exploration, and propose a novel design methodology to build custom and adaptable design flows. We apply a functional approach to define flexible strategies for design space exploration, based on combinations of basic exploration steps, and provide a proof-of-concept framework along with a library of basic strategies. We demonstrate our methodology through several use cases, illustrating how various metrics of interest can be considered to build exploration processes - in particular, we provide a quality of service-driven exploration example. The methodology presented in this work makes use of designers' expertise to reduce the time required for hardware design, in particular for Design Space Exploration, and its application should ease digital design and enhance hardware developpers' productivity.
翻译:随着工业界对高效数字电路的需求不断增长,此类系统的设计仍然充满挑战,既需要专业知识又耗费时间。为缩小软件开发与硬件设计之间的鸿沟,函数式和面向对象编程等强大特性已被用于定义称为硬件构造语言的新语言。本文研究了此类语言(更确切地说,是Chisel)在设计空间探索中的应用,并提出了一种构建定制化、可适应设计流程的新型设计方法。我们采用函数式方法,基于基本探索步骤的组合,定义了灵活的设计空间探索策略,并提供了一个概念验证框架及基本策略库。通过多个用例展示了我们的方法,说明了如何考虑各种感兴趣的指标来构建探索过程——特别地,我们提供了一个服务质量驱动的探索示例。本文提出的方法利用设计师的专业知识来减少硬件设计所需的时间,尤其是在设计空间探索中,其应用应能简化数字设计并提高硬件开发者的生产率。