@inbook{10.1145/3379337.3415860, author = {Lin, Richard and Ramesh, Rohit and Chi, Connie and Jain, Nikhil and Nuqui, Ryan and Dutta, Prabal and Hartmann, Bj\"{o}rn}, title = {Polymorphic Blocks: Unifying High-Level Specification and Low-Level Control for Circuit Board Design}, year = {2020}, isbn = {9781450375146}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3379337.3415860}, abstract = {Mainstream board-level circuit design tools work at the lowest level of design --- schematics and individual components. While novel tools experiment with higher levels of design, abstraction often comes at the expense of the fine-grained control afforded by low-level tools. In this work, we propose a hardware description language (HDL) approach that supports users at multiple levels of abstraction from broad system architecture to subcircuits and component selection. We extend the familiar hierarchical block diagram with polymorphism to include abstract-typed blocks (e.g., generic resistor supertype) and electronics modeling (i.e., currents and voltages). Such an approach brings the advantages of reusability and encapsulation from object-oriented programming, while addressing the unique needs of electronics designers such as physical correctness verification. We discuss the system design, including fundamental abstractions, the block diagram construction HDL, and user interfaces to inspect and fine-tune the design; demonstrate example designs built with our system; and present feedback from intermediate-level engineers who have worked with our system.}, booktitle = {Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology}, pages = {529–540}, numpages = {12} }