Polymorphic Blocks: Unifying High-Level Specification and Low

Polymorphic Blocks: Unifying High-Level Specification and Low

Session 8A: Designing and Fabricating UIST '20, October 20–23, 2020, Virtual Event, USA Electronics on Surfaces Polymorphic Blocks: Unifying High-level Specifcation and Low-level Control for Circuit Board Design Richard Lin, Rohit Ramesh, Connie Chi, Nikhil Jain, Ryan Nuqui, Prabal Dutta, Bjrn Hartmann University of California, Berkeley {richard.lin, rkr, conniejchi, nikhil.jain, ryannuqui, prabal, bjoern}@berkeley.edu Reference Subcircuit Library User HDL Model Manual Process v=3.3V class MagicMcu: class Blinky: (community supplied) throughout flow Write i=20mA class Led: mcu = Block(MagicMcu) Solve HDL class Resistor: Write led = Block(Led) Export connect(mcu.io0, Automated Process class ChipResistor HDL led.io) extends Resistor: Elaborate connect(mcu.gnd, footprint(res0603) led.gnd) Chip Datasheets ... Resistor Interactive ChipCorp Idea This Work Refinement Magic MCU Mainstream Circuit Design Flow Mainstream Layout Flow System Architecture Schematic Netlist PCB Part Libraries Draw U1 USB Power U1 magicmcu Schematic R1 res0603 MCUsignal LED D1 Draw D1 led0603 R1 D1 Reference Draw R1 1k Export net R1.1, D1.2 Layout MagicMcu U1 throughout flow MagicMcu ... ... ... Draw Subcircuits Figure 1. In the Polymorphic Blocks approach (purple box), circuit designers start by writing their system architecture in a hardware description language (HDL), which is then elaborated into a hierarchy block graph model and expanded using community libraries. That graph is then refned through interactive choices in a GUI and automatically propagated parameters are checked to ensure system correctness. The result can be exported to a netlist fle, which can then be imported into a board design tool for layout. In contrast, mainstream tools (gray box) generally do not support system architecture level design, so such diagrams are often done with pen and paper. Furthermore, direct re-use of sub-circuit fles is diffcult and uncommon outside limited contexts, and schematics are typically manually entered from the bottom-up using reference circuit diagrams from datasheets. ABSTRACT dressing the unique needs of electronics designers such as Mainstream board-level circuit design tools work at the low- physical correctness verifcation. We discuss the system de- est level of design — schematics and individual components. sign, including fundamental abstractions, the block diagram While novel tools experiment with higher levels of design, construction HDL, and user interfaces to inspect and fne-tune abstraction often comes at the expense of the fne-grained con- the design; demonstrate example designs built with our sys- trol afforded by low-level tools. In this work, we propose a tem; and present feedback from intermediate-level engineers hardware description language (HDL) approach that supports who have worked with our system. users at multiple levels of abstraction from broad system ar- chitecture to subcircuits and component selection. We extend Author Keywords the familiar hierarchical block diagram with polymorphism printed circuit board (PCB) design; circuit design; hardware to include abstract-typed blocks (e.g., generic resistor super- description language (HDL). type) and electronics modeling (i.e., currents and voltages). Such an approach brings the advantages of reusability and CCS Concepts encapsulation from object-oriented programming, while ad- •Hardware ! PCB design and layout; •Software and its engineering ! Domain specifc languages; INTRODUCTION Permission to make digital or hard copies of part or all of this work for personal or Circuit design, especially at the printed circuit board (PCB) classroom use is granted without fee provided that copies are not made or distributed level, is an integral part of most electronic device design. for proft or commercial advantage and that copies bear this notice and the full citation A typical workfow starts with a high level system diagram on the frst page. Copyrights for third-party components of this work must be honored. ForThis allwork other is licensed uses, contactunder a Creativethe owner/author(s). Commons Attribution International 4.0 License. capturing all major functional blocks in a device (such as UIST ’20, October 20–23, 2020, Virtual Event, USA processing, power, or IO) without necessarily defning their © 2020 Copyright is held by the author/owner(s). ACM ISBN 978-1-4503-7514-6/20/10. implementation [19]. From there, designers iteratively refne http://dx.doi.org/10.1145/3379337.3415860 529 Session 8A: Designing and Fabricating UIST '20, October 20–23, 2020, Virtual Event, USA Electronics on Surfaces blocks to get the low-level circuit schematic necessary to con- choices. We then demonstrate our system’s capabilities by tinue to board layout. This step tends to require a signifcant building and testing two example embedded devices, and re- body of knowledge spanning many sub-domains such as ana- port on a remote study with three electrical engineers who log circuits, power systems, and digital logic. designed PCBs of their own choice with our system. Modern electronic design automation (EDA) tools largely RELATED WORK focus on schematic capture and layout – the data entry after Our work relates to recent HCI research in supporting the the actual system architecture and circuit design problem is broader electronics design lifecycle, and to specifc projects solved. They come into play too late in the design process to that reimagine PCB and chip design tools. provide more fundamental design assistance. In our work, we strive to build tools that can support board- Electronics and HCI level design from the frst high-level system diagram sketch, The HCI research community has recently seen a growth of all the way to a layout-ready circuit. In particular, we note that interest in tools for electronics that cover all phases of project hierarchy block diagrams naturally span multiple abstraction conceptualization, design, debugging, fabrication, and mass levels while being familiar to users due to their support in production. A number of projects have worked on augmented mainstream tools. We hypothesize that extending this basic breadboards that help with physical circuit construction [7, 34, model with the software concepts of polymorphism and gener- 33]. Other tools focus on introducing software programmable ators can raise the level of design and increase tool automation components, e.g. for designing analog circuits [29] or using without sacrifcing low-level control. augmented reality [16]. Other projects support constructing circuits through step-by-step tutorials [32] or debugging fabri- Much like interfaces, classes, and inheritance in object- cated PCBs [30]. While many tools focus on enabling novices, oriented programming, constructing electronics from blocks some projects also consider how to enable scaling from elec- allows a division of labor: system designers can focus on tronic prototypes to mass production [14]. Our research fts high-level architecture while experienced engineers can build into this larger landscape but focuses specifcally on the task reusable libraries of blocks. Writing these blocks as generators of translating ideas from system architecture diagrams into – executable code to translate high-level specifcations into an printed circuit boards. implementation, e.g. a LED-resistor subcircuit that calculates resistance from input voltage – separates interface from imple- PCB Design Tools mentation and enables relative novices to leverage the knowl- Our recent study on PCB design practices [19] revealed that edge of experts. Furthermore, block-level polymorphism – while the interesting hardware design tends to happen across refning blocks with compatible subtypes, e.g., substituting a levels of abstraction, mainstream PCB suites such as KiCad specifc buck converter in place of an abstract voltage converter [15] and higher-end commercial suites like Altium [1] and – balances high-level design with fne-grained control. Xpedition [23] operate mainly at the level of individual com- We foresee an open-source community of engineers and de- ponents. Much of the development of these tools seems to signers, similar to that in the software world, where open have focused on board layout, with features like interactive collaboration and communication lowers the threshold of en- and sketch auto-routing, and signal integrity and power analy- try into electronics design even further, while preserving a sis. Circuit verifcation is typically limited to Electrical Rules high ceiling of complex designs, and offering wide walls of Check (ERC) in the form of pin-type compatibility checks, rapid exploration of design alternatives [27]. but the coarse types (e.g., passive, input, output, power) limit usefulness. Although the circuit entry side has seen advances We implement this new model of circuit design in Polymorphic like hierarchical support, these are still frst and foremost Blocks, an end-to-end system for authoring block diagrams. schematic drawing tools, not circuit design tools. As summarized in Figure 1, users write designs in a hard- ware description language (HDL) with the aid of subcircuit While part libraries [18] are used in mainstream tools, these are generator libraries, then interactively explore refnements to less capable than subcircuit generator libraries. Organizations obtain a layout-ready circuit. An underlying electronics model may also re-use internal schematic fles [22], but re-use of checks designs using constraints such as operating voltages community schematic

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us