ChADD: An ADD Based Chisel Compiler with Reduced Syntactic Variance

The need for quick design space exploration and higher abstracted features required to design complex circuits has led designers to adopt High Level Synthesis languages (HLS) for hardware generation. Chisel is one such language, which offers majority of the abstraction facilities found in today's software languages and also guarantees synthesizability of the generated hardware. However, most of the HLS languages, including Chisel, suffer from syntactic variance and thus the hardware inferred by these languages are inconsistent and rely heavily on the description styles used by the designer. Thus semantically equivalent circuit descriptions with different syntax can lead to different hardware utilization. In this paper, we propose the use of ADDs (Assignment Decision Diagrams) as an intermediate representation between Chisel and the target net list representation. Following this path we have shown that for a given design, two different styles of Chisel implementations yield the same target net list, thereby ensuring syntactic invariance. For the same design implementations the conventional Chisel compiler reports significant syntactic variance. In addition, we show empirically that the net list generated by the proposed technique is equally competitive to the most optimal net list generated by the conventional compiler while targeting an FPGA, implying that different implementations leads to close to optimal solutions.

[1]  Michael S. Hsiao,et al.  Automatic design validation framework for HDL descriptions via RTL ATPG , 2003, 2003 Test Symposium.

[2]  Mark Horowitz,et al.  Rethinking Digital Design: Why Design Must Change , 2010, IEEE Micro.

[3]  Masahiro Fujita,et al.  Automatic test pattern generation for functional register-transferlevel circuits using assignment decision diagrams , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[4]  James Jennings,et al.  Verischemelog: Verilog embedded in Scheme , 1999, DSL '99.

[5]  Daniel D. Gajski,et al.  High ― Level Synthesis: Introduction to Chip and System Design , 1992 .

[6]  Viraphol Chaiyakul,et al.  High-Level Transformations for Minimizing Syntactic Variances , 1993, 30th ACM/IEEE Design Automation Conference.

[7]  Daniel D. Gajski,et al.  Assignment Decision Diagram for High-Level Synthesis , 1992 .

[8]  Rishiyur S. Nikhil,et al.  Bluespec System Verilog: efficient, correct RTL from high level specifications , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[9]  John Wawrzynek,et al.  Chisel: Constructing hardware in a Scala embedded language , 2012, DAC Design Automation Conference 2012.