Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jonathan Bachrach

dblp:92/2089 · DBLP profile ↗
← Back
36ranked-venue papers
8as first author
2since 2021 · last 2023
0000-0002-0533-2712ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 20 · 4 first-author · 2 since 2021Artificial intelligence and machine learning · 8 · 3 first-authorSoftware engineering, systems software and programming languages · 7 · 1 first-author · 1 since 2021Computer networks · 2Theory of computation · 2Graphics, computer vision, multimedia, augmented reality and games · 1Human-computer interaction and ubiquitous computing · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
10 papers
Electronic design automation · 60% Reconfigurable computing and FPGAs · 13% Performance modeling and evaluation · 10%
Software engineering, system software, and programming languages
3 papers
Software testing · 77% Debugging and program repair · 15% Programming languages and type systems · 6%
Artificial intelligence
4 papers
Robot manipulation · 40% Multi-agent systems · 35% Motion planning and robot control · 23%

Topics — the 30 heaviest of 50, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Electronic design automation
hardware verification and test
1.022023
Simulator Independent Coverage for RTL Hardware Languages · ASPLOS (3) 2023
Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection · MICRO 2019
Reconfigurable computing and FPGAs
FPGA-accelerated simulation
0.942019
FASED: FPGA-Accelerated Simulation and Evaluation of DRAM · FPGA 2019
FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud · ISCA 2018
Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection · MICRO 2019
Electronic design automation
design space exploration
0.612022
Hammer: a modular and reusable physical design flow tool: invited · DAC 2022
Electronic design automation
physical design
0.612022
Hammer: a modular and reusable physical design flow tool: invited · DAC 2022
Electronic design automation
high-level synthesis
0.522018
ACED: a hardware library for generating DSP systems · DAC 2018
Chisel: constructing hardware in a Scala embedded language · DAC 2012
Performance modeling and evaluation
simulation
0.422019
FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud · ISCA 2018
FASED: FPGA-Accelerated Simulation and Evaluation of DRAM · FPGA 2019
Electronic design automation › system-level design › system design methodology
system-on-chip design flow
0.412020
Invited: Chipyard - An Integrated SoC Research and Implementation Environment · DAC 2020
Memory systems
DRAM
0.412019
FASED: FPGA-Accelerated Simulation and Evaluation of DRAM · FPGA 2019
Energy-efficient computing
power modeling
0.412019
Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection · MICRO 2019
Electronic design automation › power estimation
RTL power estimation
0.412019
Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection · MICRO 2019
Software testing
fuzzing
0.312018
Efficient sampling of SAT solutions for testing · ICSE 2018
Software testing › test generation › constraint-based test generation
SAT-based test generation
0.312018
Efficient sampling of SAT solutions for testing · ICSE 2018
Software testing
test input generation
0.312018
Efficient sampling of SAT solutions for testing · ICSE 2018
Electronic design automation
logic synthesis
0.312018
ACED: a hardware library for generating DSP systems · DAC 2018
Cloud and datacenter computing › datacenter architecture
warehouse-scale computer
0.312018
FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud · ISCA 2018
Electronic design automation › hardware verification and test
hardware verification
0.212016
Strober: Fast and Accurate Sample-Based Energy Simulation for Arbitrary RTL · ISCA 2016
Electronic design automation › hardware verification and test › hardware verification
RTL simulation
0.212016
Strober: Fast and Accurate Sample-Based Energy Simulation for Arbitrary RTL · ISCA 2016
Processor architecture and microarchitecture › instruction set architecture › RISC-V
RISC-V core design
0.212022
Hammer: a modular and reusable physical design flow tool: invited · DAC 2022
Reconfigurable computing and FPGAs
FPGA prototyping
0.112020
Invited: Chipyard - An Integrated SoC Research and Implementation Environment · DAC 2020
Robotics › Motion planning and robot control
motion planning
0.112011
Programmable Assembly With Universally Foldable Strings (Moteins) · IEEE Trans. Robotics 2011
Robotics › Robot manipulation
programmable matter
0.112011
Programmable Assembly With Universally Foldable Strings (Moteins) · IEEE Trans. Robotics 2011
Knowledge, reasoning and agents › Multi-agent systems › swarm robotics
self-assembly
0.112011
Programmable Assembly With Universally Foldable Strings (Moteins) · IEEE Trans. Robotics 2011
Robotics › Robot manipulation › modular robot
self-reconfigurable robots
0.112011
Programmable Assembly With Universally Foldable Strings (Moteins) · IEEE Trans. Robotics 2011
Electronic design automation › analog circuit design automation
analog layout synthesis
0.112019
Open-Source EDA Tools and IP, A View from the Trenches · DAC 2019
Performance modeling and evaluation › simulation › architectural simulation
full-system simulation
0.112019
FASED: FPGA-Accelerated Simulation and Evaluation of DRAM · FPGA 2019
Automated reasoning and model checking › satisfiability
SAT solving
0.112018
Efficient sampling of SAT solutions for testing · ICSE 2018
Knowledge, reasoning and agents › Multi-agent systems
swarm robotics
0.112009
Ad-hoc wireless network coverage with networked robots that cannot localize · ICRA 2009
Internet of things and sensor networks › iot networks › iot deployment
distributed deployment
0.112009
Ad-hoc wireless network coverage with networked robots that cannot localize · ICRA 2009
Systems and software security
vulnerability discovery
0.112009
Automatically patching errors in deployed software · SOSP 2009
Debugging and program repair
automated program repair
0.112009
Automatically patching errors in deployed software · SOSP 2009

Methods — techniques the papers use, named apart from their topics

chisel · 0.7sampling · 0.7coverage API · 0.7compiler pass · 0.7SAT solving · 0.7modular software architecture · 0.6flow step generators · 0.6generator-based design · 0.4agile hardware design · 0.4rocket chip · 0.4parameterized model generation · 0.4BAG · 0.4random walk · 0.2probabilistic macroscopic model · 0.2subdivision algorithms · 0.1dynamics simulation · 0.1bayesian filter · 0.1macro expansion · 0.0
YearPublicationVenuePosition
2023 Simulator Independent Coverage for RTL Hardware Languages
abstract
We demonstrate a new approach to implementing automated coverage metrics including line, toggle, and finite state machine coverage. Each metric is implemented through a compiler pass with a report generator. They are decoupled from the backend simulation, emulation, or formal verification tool through a simple API designed around a single new cover primitive. Our prototype for the Chisel hardware construction language demonstrates support across three software simulators, the FPGA-accelerated FireSim simulator and a formal tool. We demonstrate collecting line coverage while booting Linux with FireSim at a target frequency of 65MHz. By construction, coverage can be trivially merged across backends.
Kevin Laeufer, Vighnesh Iyer, David Biancolin, Jonathan Bachrach, Borivoje Nikolic, Koushik Sen
ASPLOS (3)4
2022 Hammer: a modular and reusable physical design flow tool: invited
abstract
Process technology scaling and hardware architecture specialization have vastly increased the need for chip design space exploration, while optimizing for power, performance, and area. Hammer is an open-source, reusable physical design (PD) flow generator that reduces design effort and increases portability by enforcing a separation among design-, tool-, and process technology-specific concerns with a modular software architecture. In this work, we outline Hammer's structure and highlight recent extensions that support both physical chip designers and hardware architects evaluating the merit and feasibility of their proposed designs. This is accomplished through the integration of more tools and process technologies---some open-source---and the designer-driven development of flow step generators. An evaluation of chip designs in process technologies ranging from 130nm down to 12nm across a series of RISC-V-based chips shows how Hammer-generated flows are reusable and enable efficient optimization for diverse applications.
Harrison Liew, Daniel Grubb, Colin Schmidt 0001, Nayiri Krzysztofowicz, Adam M. Izraelevitz, Krste Asanovic, Jonathan Bachrach, Borivoje Nikolic
DAC9
2020 Invited: Chipyard - An Integrated SoC Research and Implementation Environment
abstract
Continued improvement in computing efficiency requires functional specialization of hardware designs. We present an agile design flow for custom SoCs using the Chipyard framework, an integrated SoC research and implementation environment for custom systems. Chipyard includes configurable, composable, open-source, generator-based designs that can be used across multiple stages of the hardware development flow while maintaining design intent and integration consistency. Through cloud FPGA simulation and rapid ASIC implementation, we demonstrate an iterative agile hardware design cycle which enables continuous validation of physically-realizable customized systems.
Alon Amid, David Biancolin, Abraham Gonzalez, Daniel Grubb, Sagar Karandikar, Harrison Liew, Albert Magyar, Howard Mao, Albert J. Ou, Nathan Pemberton, Paul Rigge, Colin Schmidt 0001, John Charles Wright, Jerry Zhao, Jonathan Bachrach, Sophia Shao, Borivoje Nikolic, Krste Asanovic
DAC15
2019 Open-Source EDA Tools and IP, A View from the Trenches
abstract
We describe our experience developing and promoting a set of open-source tools and IP over the last 9 years, including the Chisel hardware construction language, the Rocket Chip SoC generator, and the BAG analog layout generator.
Elad Alon, Krste Asanovic, Jonathan Bachrach, Borivoje Nikolic
DAC3
2019 GUIDEDSAMPLER: Coverage-guided Sampling of SMT Solutions
abstract
The problem of sampling a large number of random solutions to SAT and SMT constraints is essential for constrained-random verification and testing. However, most current sampling techniques lack a problem-specific notion of coverage, considering only general goals such as uniform distribution. We have developed a new technique for coverage-guided sampling that allows the user to specify the desired coverage points in order to shape the distribution of solutions. Our tool GUIDEDSAMPLER can efficiently generate high-quality stimuli for constrained-random verification, by sampling solutions to a SMT constraint that also cover a large number of user-defined coverage classes.
Rafael Dutra, Jonathan Bachrach, Koushik Sen
FMCAD2
2019 FASED: FPGA-Accelerated Simulation and Evaluation of DRAM
abstract
Recent work in FPGA-accelerated simulation of ASICs has shown that much of a simulator can be automatically generated from ASIC RTL. Alas, these works rely on simple models of the outer cache hierarchy and DRAM, as mapping ASIC RTL for these components into an FPGA fabric is too complex and resource intensive. To improve FPGA simulation model accuracy, we present FASED, a parameterized generator of composable, high-fidelity, FPGA-hosted last-level-cache and DRAM models. FASED instances are highly performant, yet they maintain timing faithfulness independently of the behavior of the host-FPGA memory system. For a given scheduling policy, a single FASED instance can model nearly the entire space of realizable single-channel DDR3 memory organizations, without resynthesizing the simulator RTL. We demonstrate FASED by integrating it into a flow that automatically transforms RTL for multicore RISC-V processors into full-system simulators that execute at up to 150 target MHz on cloud-hosted FPGAs.
David Biancolin, Sagar Karandikar, Jack Koenig, Andrew Waterman, Jonathan Bachrach, Krste Asanovic
FPGA6
2019 Golden Gate: Bridging The Resource-Efficiency Gap Between ASICs and FPGA Prototypes
abstract
We present Golden Gate, an FPGA-based simulation tool that decouples the timing of an FPGA host platform from that of the target RTL design. In contrast to previous work in static time-multiplexing of FPGA resources, Golden Gate employs the Latency-Insensitive Bounded Dataflow Network (LI-BDN) formalism to decompose the simulator into subcomponents, each of which may be independently and automatically optimized. This structure allows Golden Gate to support a broad class of optimizations that improve resource utilization by implementing FPGA-hostile structures over multiple cycles, while the LI-BDN formalism ensures that the simulator still produces bit- and cycle-exact results. To verify that these optimizations are implemented correctly, we also present LIME, a model-checking tool that provides a push-button flow for checking whether optimized subcomponents adhere to an associated correctness specification, while also guaranteeing forward progress. Finally, we use Golden Gate to generate a cycle-exact simulator of a multi-core SoC, where we reduce LUT utilization by up to 26% by coercing multi-ported, combinationally read memories into simulation models backed by time-multiplexed block RAMs, enabling us to simulate 50% more cores on a single FPGA.
Albert Magyar, David Biancolin, John Koenig, Sanjit A. Seshia, Jonathan Bachrach, Krste Asanovic
ICCAD5
2019 Simmani: Runtime Power Modeling for Arbitrary RTL with Automatic Signal Selection
abstract
This paper presents a novel runtime power modeling methodology which automatically identifies key signals for power dissipation of any RTL design. The toggle-pattern matrix is constructed with the VCD dumps from a training set, where each signal is represented as a high-dimensional point. By clustering signals showing similar switching activities, a small number of signals are automatically selected, and then the design-specific but workload-independent activity-based power model is constructed using regression against cycle-accurate power traces obtained from industry-standard CAD tools. We can also automatically instrument an FPGA-accelerated RTL simulation with runtime activity counters to obtain power traces of realistic workloads at speed. Our methodology is demonstrated with a heterogeneous processor composed of an in-order core and a custom vector accelerator, running not only microbenchmarks but also real-world machine-learning applications.
Jerry Zhao, Jonathan Bachrach, Krste Asanovic
MICRO3
2018 ACED: a hardware library for generating DSP systems
abstract
Designers translate DSP algorithms into application-specific hardware via primitives composed in various ways for different architectural realizations. Despite sharing underlying algorithms and hardware constructs, designs are often difficult to reuse, leading to redeveloping/reverifying conceptually similar instances. Hardware generators are attractive solutions for effectively balancing fine-grained control of implementation details with simple, retargetable hardware descriptions. This work presents ACED, a hardware library for generating DSP systems. It extends the Chisel hardware construction language and FIRRTL compiler and operates on three principles: zero-cost abstraction, unobtrusive downstream optimization/specialization promoting generator reusability, and unified, portable systems modeling and verification.
Angie Wang, Paul Rigge, Adam M. Izraelevitz, Chick Markley, Jonathan Bachrach, Borivoje Nikolic
DAC5
2018 DESSERT: Debugging RTL Effectively with State Snapshotting for Error Replays across Trillions of Cycles
abstract
We present DESSERT, an FPGA-accelerated methodology for simulation-based RTL verification. The RTL design is automatically transformed and instrumented to allow deterministic simulation on the FPGA with initialization and state snapshot capture. Assert statements, which are present in RTL for error checking in software simulation, are automatically synthesized for quick hardware-based error checking. Print statements in the RTL design are also automatically transformed to generate logs from the FPGA, which are compared on the fly against a functional golden-model software simulator for more exhaustive error checking. To rapidly provide waveforms for debugging, two parallel deterministic FPGA-accelerated RTL simulations are run spaced apart in simulation time to support capture and replay of state snapshots immediately before an error. We demonstrate DESSERT, running on public-cloud FPGAs at extremely low cost, by catching bugs in a complex out-of-order processor hundreds of billions of cycles into SPEC2006int benchmarks running under Linux.
Christopher Celio, Sagar Karandikar, David Biancolin, Jonathan Bachrach, Krste Asanovic
FPL5
2018 SMTSampler: efficient stimulus generation from complex SMT constraints
abstract
Stimulus generation is an essential part of hardware verification, being at the core of widely applied constrained-random verification techniques. However, as verification problems get more and more complex, so do the constraints which must be satisfied. In this context, it is a challenge to efficiently generate random stimuli which can achieve a good coverage of the design space. We developed a new technique SMTSampler which can sample random solutions from Satisfiability Modulo Theories (SMT) formulas with bit-vectors, arrays, and uninterpreted functions. The technique uses a small number of calls to a constraint solver in order to generate up to millions of stimuli. Our evaluation on a large set of complex industrial SMT benchmarks shows that SMTSampler can handle a larger class of SMT problems, outperforming state-of-the-art constraint sampling techniques in the number of samples produced and the coverage of the constraint space.
Rafael Dutra, Jonathan Bachrach, Koushik Sen
ICCAD2
2018 RFUZZ: coverage-directed fuzz testing of RTL on FPGAs
abstract
Dynamic verification is widely used to increase confidence in the correctness of RTL circuits during the pre-silicon design phase. Despite numerous attempts over the last decades to automate the stimuli generation based on coverage feedback, Coverage Directed Test Generation (CDG) has not found the widespread adoption that one would expect. Based on new ideas from the software testing community around coverage-guided mutational fuzz testing, we propose a new approach to the CDG problem which requires minimal setup and takes advantage of FPGA-accelerated simulation for rapid testing. We provide test input and coverage definitions that allow fuzz testing to be applied to RTL circuit verification. In addition we propose and implement a series of transformation passes that make it feasible to reset arbitrary RTL designs quickly, a requirement for deterministic test execution. Alongside this paper we provide rfuzz, a fully featured implementation of our testing methodology which we make available as open-source software to the research community. An empirical evaluation of RFUZZ shows promising results on archiving coverage for a wide range of different RTL designs ranging from communication IPs to an industry scale 64-bit CPU.
Kevin Laeufer, Jack Koenig, Jonathan Bachrach, Koushik Sen
ICCAD4
2018 Efficient sampling of SAT solutions for testing
abstract
In software and hardware testing, generating multiple inputs which satisfy a given set of constraints is an important problem with applications in fuzz testing and stimulus generation. However, it is a challenge to perform the sampling efficiently, while generating a diverse set of inputs which satisfy the constraints. We developed a new algorithm QuickSampler which requires a small number of solver calls to produce millions of samples which satisfy the constraints with high probability. We evaluate QuickSampler on large real-world benchmarks and show that it can produce unique valid solutions orders of magnitude faster than other state-of-the-art sampling tools, with a distribution which is reasonably close to uniform in practice.
Rafael Dutra, Kevin Laeufer, Jonathan Bachrach, Koushik Sen
ICSE3
2018 FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud
abstract
We present FireSim, an open-source simulation platform that enables cycle-exact microarchitectural simulation of large scale-out clusters by combining FPGA-accelerated simulation of silicon-proven RTL designs with a scalable, distributed network simulation. Unlike prior FPGA-accelerated simulation tools, FireSim runs on Amazon EC2 F1, a public cloud FPGA platform, which greatly improves usability, provides elasticity, and lowers the cost of large-scale FPGA-based experiments. We describe the design and implementation of FireSim and show how it can provide sufficient performance to run modern applications at scale, to enable true hardware-software co-design. As an example, we demonstrate automatically generating and deploying a target cluster of 1,024 3.2 GHz quad-core server nodes, each with 16 GB of DRAM, interconnected by a 200 Gbit/s network with 2 microsecond latency, which simulates at a 3.4 MHz processor clock rate (less than 1,000x slowdown over real-time). In aggregate, this FireSim instantiation simulates 4,096 cores and 16 TB of memory, runs ~14 billion instructions per second, and harnesses 12.8 million dollars worth of FPGAs—at a total cost of only ~$100 per simulation hour to the user. We present several examples to show how FireSim can be used to explore various research directions in warehouse-scale machine design, including modeling networks with high-bandwidth and low-latency, integrating arbitrary RTL designs for a variety of commodity and specialized datacenter nodes, and modeling a variety of datacenter organizations, as well as reusing the scale-out FireSim infrastructure to enable fast, massively parallel cycle-exact single-node microarchitectural experimentation.
Sagar Karandikar, Howard Mao, David Biancolin, Alon Amid, Dayeol Lee, Nathan Pemberton, Emmanuel Amaro, Colin Schmidt 0001, Aditya Chopra, Qijing Huang 0001, Kyle Kovacs, Borivoje Nikolic, Randy H. Katz, Jonathan Bachrach, Krste Asanovic
ISCA15
2017 A Hardware Accelerator for Computing an Exact Dot Product
abstract
We study the implementation of a hardware accelerator that computes a dot product of IEEE-754 floating-point numbers exactly. The accelerator uses a wide (640 or 4288 bits for single or double-precision respectively) fixed-point representation into which intermediate floating-point products are accumulated. We designed the accelerator as a generator in Chisel, which can synthesize various configurations of the accelerator that make different area-performance trade-offs. We integrated eight different configurations into an SoC comprised of RISC-V in-order scalar core, split L1 instruction and data caches, and unified L2 cache. In a TSMC 45 nm technology, the accelerator area ranges from 0.05 mm2to 0.32 mm2, and all configurations could be clocked at frequencies in excess of 900MHz. The accelerator successfully saturates the SoC's memory system, achieving the same per-element efficiency (1 cycle-per-element) as Intel MKL running on an x86 machine with a similar cache configuration.
Jack Koenig, David Biancolin, Jonathan Bachrach, Krste Asanovic
ARITH3
2017 Cyclist: Accelerating hardware development
abstract
The end of Dennard scaling has led to an increase in demand for energy-efficient custom hardware accelerators, but current hardware design is slow and laborious, partly because each iteration of the compile-run-debug cycle can take hours or even days with existing simulation and emulation platforms. Cyclist is a new emulation platform designed specifically to shorten the total compile-run-debug cycle. The Cyclist toolflow converts a Chisel RTL design to a parallel dataflow graph, which is then mapped to the Cyclist hardware architecture, consisting of a tiled array of custom parallel emulation engines. Cyclist provides cycle-accurate/bit-accurate RTL emulation at speeds approaching FPGA emulation, but with compile time closer to software simulation. Cyclist provides full visibility and debuggability of the hardware design, including moving forwards and backwards in simulation time while searching for trigger events. The snapshot facility used for debugging is also used to provide a “pay-as-you-go” mapping strategy, which allows emulation to begin execution with a low-effort placement, while higher-quality emulation placements are optimized in the background and swapped in to a running emulation. The Cyclist ASIC design requires 0.069mm2per tile and runs at 2GHz in a 45nm CMOS process. Our evaluation demonstrate that Cyclist outperforms FPGA emulation, VCS, and C+,+, simulation on combined compile and run time for up to a billion cycles for a set of real-world hardware benchmarks.
Jonathan Bachrach, Albert Magyar, Daniel Palmer Dabbelt, Patrick Li, Richard Lin, Krste Asanovic
ICCAD1
2017 Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations
abstract
Enabled by modern languages and retargetable compilers, software development is in a virtual “Cambrian explosion” driven by a critical mass of powerfully parameterized libraries; but hardware development practices lag far behind. We hypothesize that existing hardware construction languages (HCLs) and novel hardware compiler frameworks (HCFs) can put hardware development on a similar evolutionary path by enabling new hardware libraries to be independent of underlying process technologies including FPGA mappings. We support this claim by (1) evaluating the degree with which Chisel, an existing HCL, can support powerfully parameterized libraries, and (2) introducing the concept and implementation of an HCF that uses an open-source hardware intermediate representation, FIRRTL (Flexible Intermediate Representation for RTL), to transform target-independent RTL into technology-specific RTL. Finally, we evaluate many hardware compiler transformations, including simplifying transformations, analyses, optimizations, instrumentations, and specializations, which demonstrate the power of a combined HCL and HCF approach.
Adam M. Izraelevitz, Jack Koenig, Patrick Li, Richard Lin, Angie Wang, Albert Magyar, Colin Schmidt 0001, Chick Markley, Jim Lawson, Jonathan Bachrach
ICCAD11
2016 A generator of memory-based, runtime-reconfigurable 2N3M5K FFT engines
abstract
Runtime-reconfigurable, mixed-radix FFT/IFFT engines are essential for modern wireless communication systems. To comply with varying standards requirements, these engines are customized for each modem. The Chisel hardware construction language has been used in this work to create a generator of runtime-reconfigurable 2n3m5k FFT engines targeting software-defined radios (SDR) for modern communications, but with flexibility to support a wide range of applications. The generator uses a conflict-free, in-place, multi-bank SRAM design, and exploits the duality of decimation-in-frequency (DIF) and decimation-in-time (DIT) FFTs to support continuous data flow with only 2N memory blocks. DFT decomposition using the prime-factor algorithm (PFA) followed by the Cooley-Tukey algorithm (CTA) reduces twiddle ROM sizes. A programmable Winograd's Fourier Transform (WFTA) butterfly supporting radix-2/3/4/5/7 operations reuses radix-7 hardware to support reconfigurability with minimal area penalty. The generated FFTs use 50% less memory than iterative FFTs from Spiral. The twiddle ROM size of the generated LTE/WiFi FFT engine is 16% smaller than that of a 2048-pt Spiral design.
Angie Wang, Jonathan Bachrach, Borivoje Nikolic
ICASSP2
2016 JITPCB
abstract
Commercialization of desktop milling machines has made rapid Printed Circuit Board (PCB) fabrication accessible. Unfortunately, PCB design for embedded and robotic systems is still a tedious and time consuming activity. In this paper, we present a technique, Just In Time Printed Circuit Board (JITPCB) for designing PCB systems at speeds commensurate with the capability of desktop PCB milling machines. We propose designing boards by writing software circuit generators that wire together and lay out circuit components in a hierarchical and reusable fashion. We have developed a declarative design mechanism allowing users to specify desired input and output peripherals and well as application code. Given this input, our system produces a complete working circuit board design, along with necessary initialization and networking code. Our system is an open framework that allows users to create a set of highly reusable parametric hardware/software modules. We demonstrate our approach by showing some common robotics applications designed with JITPCB to show its utility and generality.
Jonathan Bachrach, David Biancolin, Austin Buchan, Duncan W. Haldane, Richard Lin
IROS1
2016 Strober: Fast and Accurate Sample-Based Energy Simulation for Arbitrary RTL
abstract
This paper presents a sample-based energy simulation methodology that enables fast and accurate estimations of performance and average power for arbitrary RTL designs. Our approach uses an FPGA to simultaneously simulate the performance of an RTL design and to collect samples containing exact RTL state snapshots. Each snapshot is then replayed in gate-level simulation, resulting in a workload-specific average power estimate with confidence intervals. For arbitrary RTL and workloads, our methodology guarantees a minimum of four-orders-of-magnitude speedup over commercial CAD gate-level simulation tools and gives average energy estimates guaranteed to be within 5% of the true average energy with 99% confidence. We believe our open-source sample-based energy simulation tool Strober can not only rapidly provide ground truth for more abstract power models, but can enable productive design-space exploration early in the RTL design process.
Adam M. Izraelevitz, Christopher Celio, Hokeun Kim, Brian Zimmer, Yunsup Lee, Jonathan Bachrach, Krste Asanovic
ISCA7
2012 Chisel: constructing hardware in a Scala embedded language
abstract
In this paper we introduce Chisel, a new hardware construction language that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages. By embedding Chisel in the Scala programming language, we raise the level of hardware design abstraction by providing concepts including object orientation, functional programming, parameterized types, and type inference. Chisel can generate a high-speed C++-based cycle-accurate software simulator, or low-level Verilog designed to map to either FPGAs or to a standard ASIC flow for synthesis. This paper presents Chisel, its embedding in Scala, hardware examples, and results for C++ simulation, Verilog emulation and ASIC synthesis.
Jonathan Bachrach, Huy Vo, Brian C. Richards, Yunsup Lee, Andrew Waterman, Rimas Avizienis, John Wawrzynek, Krste Asanovic
DAC1
2012 Towards a minimal architecture for a printable, modular, and robust sensing skin
abstract
This work presents a low-complexity modular sensor grid architecture to provide a smart skin to non-convex shapes, such as a robot body and legs. To configure a sensing skin shaped by arbitrary cuts and rapid changes in designs, we use a wavefront planning approach to generate a minimum-depth spanning tree of an arbitrary topology of contiguous, regularly arranged modular sensing units on a flexible substrate wired network. A Finite State Machine protocol for extracting this topology and sensor information is shown that is robust to destructive sensor loss, device failure, and transmission noise. The architecture is designed to require as little state complexity at each node as possible to minimize the area and cost of such a network implemented in printable semiconductor technology. Simulation data show recovery from network failures and extension of the architecture to larger networks with arbitrary geometry, and a sample synthesis of the verified architecture logic is shown to have a very low state and combinational logic complexity. A proof-of-concept implementation of the architecture using microcontrollers and optical proximity sensors on a flexible substrate show integration with a Scaled Composite Manufacturing process used for Biomimetic Millirobots.
Austin Buchan, Jonathan Bachrach, Ronald S. Fearing
IROS2
2011 Programmable Assembly With Universally Foldable Strings (Moteins)
abstract
Understanding how linear strings fold into 2-D and 3-D shapes has been a long sought goal in many fields of both academia and industry. This paper presents a technique to design self-assembling and self-reconfigurable systems that are composed of strings of very simple robotic modules. We show that physical strings that are composed of a small set of discrete polygonal or polyhedral modules can be used to programmatically generate any continuous area or volumetric shape. These modules can have one or two degrees of freedom (DOFs) and simple actuators with only two or three states. We describe a subdivision algorithm to produce universal polygonal and polyhedral string folding schemas, and we prove the existence of a continuous motion to reach any such folding. This technique is validated with dynamics simulations as well as experiments with chains of modules that pack on a regular cubic lattice. We call robotic programmable universally foldable strings “moteins” as motorized proteins.
Kenneth C. Cheung, Erik D. Demaine, Jonathan Bachrach, Saul Griffith
IEEE Trans. Robotics3
2010 Composable continuous-space programs for robotic swarms
Jonathan Bachrach, Jacob Beal, James McLurkin
Neural Comput. Appl.1
2009 Fast Self-stabilization for Gradients
Jacob Beal, Jonathan Bachrach, Daniel Vickery, Mark M. Tobenkin
DCOSS2
2009 Ad-hoc wireless network coverage with networked robots that cannot localize
abstract
We study a fully distributed, reactive algorithm for deployment and maintenance of a mobile communication backbone that provides an area around a network gateway with wireless network access for higher-level agents. Possible applications of such a network are distributed sensor networks as well as communication support for disaster or military operations. The algorithm has minimalist requirements on the individual robotic node and does not require any localization. This makes the proposed solution suitable for deployment of large numbers of comparably cheap mobile communication nodes and as a backup solution for more capable systems in GPS-denied environments. Robots keep exploring the configuration space by random walk and stop only if their current location satisfies user-specified constraints on connectivity (number of neighbors). Resulting deployments are robust and convergence is analyzed using both kinematic simulation with a simplified collision and communication model as well as a probabilistic macroscopic model. The approach is validated on a team of 9 iRobot Create robots carrying wireless access points in an indoor environment.
Nikolaus Correll, Jonathan Bachrach, Daniel Vickery, Daniela Rus
ICRA2
2009 Automatically patching errors in deployed software
abstract
We present ClearView, a system for automatically patching errors in deployed software. ClearView works on stripped Windows x86 binaries without any need for source code, debugging information, or other external information, and without human intervention.
Jeff H. Perkins, Sunghun Kim 0001, Samuel Larsen, Saman P. Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou-Douskos, Gregory T. Sullivan, Weng-Fai Wong, Yoav Zibin, Michael D. Ernst, Martin C. Rinard
SOSP5
2008 Hardware Scripting in Gel
abstract
Gel is a hardware description language that enables quick scripting of high level designs and can be easily extended to new design patterns. It is expression oriented and extremely succinct. Modules are described as functions and composed through function calls. Types and bit widths are inferred automatically to guarantee correctness. Together these features reduce hardware development time, allowing complex designs to be scripted quickly. A simulator and logic analyzer are available to help in the development process. A compiler has been developed that translates Gel to Verilog, and a number of applications have been demonstrated. This paper introduces the core language, demonstrates its extensibility, and shows how design patterns can easily be created. Finally, we compare a few applications written in Gel against equivalents written in Verilog.
Jonathan Bachrach, Dany Qumsiyeh, Mark M. Tobenkin
FCCM1
2006 Simultaneous localization, calibration, and tracking in an ad hoc sensor network
abstract
We introduce Simultaneous Localization and Tracking, called SLAT, the problem of tracking a target in a sensor network while simultaneously localizing and calibrating the nodes of the network. Our proposed solution, LaSLAT, is a Bayesian filter that provides on-line probabilistic estimates of sensor locations and target tracks. It does not require globally accessible beacon signals or accurate ranging between the nodes. Real hardware experiments are presented for 2D and 3D, indoor and outdoor, and ultrasound and audible ranging-hardware-based deployments. Results demonstrate rapid convergence and high positioning accuracy.
Jonathan Bachrach, Howard E. Shrobe, Anthony Grue
IPSN3
2006 Cognitive Adaptive Radio Teams
abstract
Cognitive adaptive radio teams (CART) is a new platform developed by our group in support of collaborative mapping of complex communications-challenged environments, for example in support of search and rescue operations in environments lacking an adequate communications infrastructure. Experience during the 9/11 terrorist attacks, Asian tsunami, Kashmir earthquake, and post-Katrina Gulf Coast make it clear that rescue workers cannot count upon computer networks or even cell telephone support in the immediate aftermath of such events. Similarly, military urban warfare operations must also be conducted in locations lacking communication infrastructure. CART combines state-of-the-art ad-hoc networking technology with machine learning and prediction algorithms to offer new capabilities under these very difficult conditions
Richard Lau, Stephanie Demers, Yibei Ling, Bruce Siegell, Einar Vollset, Kenneth P. Birman, Robbert van Renesse, Howard E. Shrobe, Jonathan Bachrach, Lester Foster
SECON9
2004 I: move
abstract
I:move is a performance / installation series that explores how we perceive movement. It embeds daily activities into formal choreography and is being developed for public spaces that are bottlenecks of human motion. It has been shown at MIT's IM Pei archway and the DTW gallery space.Pedestrian traffic is tracked and transformed into 2-dimensional shadow play. Continuous motion trails occur like reliable yet unpredictable weather patterns. I:move captures and processes these daytime patterns, imbedding them into video projection. Pedestrians become performers. Live motion folds into the piece, revealing layers of text or motion streams that echo earlier daytime movements in the space. Through i:move, your motion reveals varying speeds, rhythms and dynamic patterns occurring at the site, over a 24-hour cycle. I:move encourages dancers and novices to explore their own movements, in relation to the routine, theater, and ritual of cycles in a public space.I:move considers human movements over multiple time scales, perspectives, and magnifications. Video processing is used to enhance contrast, reveal coincidences, and layer time-coded realities. Interactive video is used to engage viewers in playful experimentation. Audiences create and perform inside the motion projections. In this way, i:move celebrates the personal and collective movements of each day.The i:move series is rendered entirely by a stream processing lisp dialect called Gooze. Gooze is a concise, powerful, and efficient expression of time-oriented computing allowing highly profitable domain specific optimizations. It is a unique design, combining movementcentric parameters to extract the perceptual features of motion from video.
Jonathan Bachrach, Nell Breyer
Conference on Designing Interactive Systems1
2001 The Java Syntactic Extender
abstract
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to the Lisp family of languages to date. In this paper we introduce a macro facility, called the Java Syntactic Extender (JSE), with the superior power and ease of use of Lisp macro sytems, but for Java, a language with a more conventional algebraic syntax. The design is based on the Dylan macro system, but exploits Java's compilation model to offer a full procedural macro engine. In other words, syntax expanders may be implemented in, and so use all the facilities of, the full Java language
Jonathan Bachrach, Keith Playford
OOPSLA1
1991 SLUG: A Connectionist Architecture for Inferring the Structure of Finite-State Environments
Michael C. Mozer, Jonathan Bachrach
Mach. Learn.2
1990 A Connectionist Learning Control Architecture for Navigation
Jonathan Bachrach
NIPS1
1990 Discovering the Structure of a Reactive Environment by Exploration
abstract
Consider a robot wandering around an unfamiliar environment, performing actions and observing the consequences. The robot's task is to construct an internal model of its environment, a model that will allow it to predict the effects of its actions and to determine what sequences of actions to take to reach particular goal states. Rivest and Schapire (1987a,b; Schapire 1988) have studied this problem and have designed a symbolic algorithm to strategically explore and infer the structure of “finite state” environments. The heart of this algorithm is a clever representation of the environment called an update graph. We have developed a connectionist implementation of the update graph using a highly specialized network architecture. With backpropagation learning and a trivial exploration strategy — choosing random actions — the connectionist network can outperform the Rivest and Schapire algorithm on simple problems. Our approach has additional virtues, including the fact that the network can accommodate stochastic environments and that it suggests generalizations of the update graph representation that do not arise from a traditional, symbolic perspective.
Michael C. Mozer, Jonathan Bachrach
Neural Comput.2
1989 Discovering the Structure of a Reactive Environment by Exploration
Michael C. Mozer, Jonathan Bachrach
NIPS2