Skip to main content

previous disabled Page of 2
and
  1. No Access

    Chapter and Conference Paper

    Further Experiences Teaching an FPGA-Based Embedded Systems Class

    I describe thirteen years of teaching an embedded systems class at Columbia University that spans three “board eras.” Students now develop Linux systems with custom FPGA-based peripherals.

    Stephen A. Edwards in Cyber Physical Systems. Model-Based Design (2019)

  2. No Access

    Chapter

    On Determinism

    The notion of deterministic execution of concurrent systems has appeared in many guises throughout Edward A. Lee’s œuvre, but few really grasp how powerful, important, subtle, and flexible the concept really i...

    Stephen A. Edwards in Principles of Modeling (2018)

  3. No Access

    Chapter and Conference Paper

    Computation vs. Memory Systems: Pinning Down Accelerator Bottlenecks

    The world needs special-purpose accelerators to meet future constraints on computation and power consumption. Choosing appropriate accelerator architectures is a key challenge. In this work, we present a pinto...

    Martha A. Kim, Stephen A. Edwards in Computer Architecture (2012)

  4. No Access

    Chapter

    Compiling SHIM

    Embedded systems demand concurrency for supporting simultaneous actions in their environment and parallel hardware. Although most concurrent programming formalisms are prone to races and non-determinism, some,...

    Stephen A Edwards, Nalini Vasudevan in Synthesis of Embedded Software (2010)

  5. Chapter and Conference Paper

    Compile-Time Analysis and Specialization of Clocks in Concurrent Programs

    Clocks are a mechanism for providing synchronization barriers in concurrent programming languages. They are usually implemented using primitive communication mechanisms and thus spare the programmer from reaso...

    Nalini Vasudevan, Olivier Tardieu, Julian Dolby in Compiler Construction (2009)

  6. Chapter and Conference Paper

    Concurrency and Communication: Lessons from the SHIM Project

    Describing parallel hardware and software is difficult, especially in an embedded setting. Five years ago, we started the shim project to address this challenge by develo** a programming language for hardware/s...

    Stephen A. Edwards in Software Technologies for Embedded and Ubiquitous Systems (2009)

  7. Article

    Open Access

    Code Generation in the Columbia Esterel Compiler

    The synchronous language Esterel provides deterministic concurrency by adopting a semantics in which threads march in step with a global clock and communicate in a very disciplined way. Its expressive power co...

    Stephen A Edwards, Jia Zeng in EURASIP Journal on Embedded Systems (2007)

  8. No Access

    Book

  9. No Access

    Chapter and Conference Paper

    A Processor Extension for Cycle-Accurate Real-Time Software

    Certain hard real-time tasks demand precise timing of events, but the usual software solution of periodic interrupts driving a scheduler only provides precision in the millisecond range. NOP-insertion can prov...

    Nicholas Jun Hao Ip, Stephen A. Edwards in Embedded and Ubiquitous Computing (2006)

  10. No Access

    Chapter and Conference Paper

    Approximate Reachability for Dead Code Elimination in Esterel ⋆ 

    Esterel is an imperative synchronous programming language for the design of reactive systems. Esterel ⋆  extends Esterel with a non-instantaneous jump instruction (compatible with concurrency, preemption, etc.) s...

    Olivier Tardieu, Stephen A. Edwards in Automated Technology for Verification and Analysis (2005)

  11. Chapter and Conference Paper

    Incremental Algorithms for Inter-procedural Analysis of Safety Properties

    Automaton-based static program analysis has proved to be an effective tool for bug finding. Current tools generally re-analyze a program from scratch in response to a change in the code, which can result in mu...

    Christopher L. Conway, Kedar S. Namjoshi, Dennis Dams in Computer Aided Verification (2005)

  12. No Access

    Chapter and Conference Paper

    Separate Compilation for Synchronous Modules

    Synchronous models are useful for designing real-time embedded systems because they provide timing control and deterministic concurrency. However, the semantics of such models usually require an entire system ...

    Jia Zeng, Stephen A. Edwards in Embedded Software and Systems (2005)

  13. No Access

    Chapter

    Porting a Network Cryptographic Service to the RMC2000

    This chapter describes our experience porting a transport-layer cryptography service to an embedded microcontroller. We describe some key development issues and techniques involved in porting networked softwar...

    Stephen Jan, Paolo de Dios, Stephen A. Edwards in Embedded Software for SoC (2003)

  14. No Access

    Book

  15. No Access

    Chapter

    CoCentric System Studio

    CoCentric System Studio (once cailed El Greco—see Buck and Vaid-yanathan [17]) is a graphical design environment for systems built with a combination of dataflow diagrams and hierarchically-nested finite-state...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

  16. No Access

    Chapter

    Language Basics

    Using a language is like operating a marionette. You may not touch the puppet; instead you make it move by manipulating a handle connected to the puppet through strings. Just as a good puppeteer understands ho...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

  17. No Access

    Chapter

    Verilog

    Verilog began life in 1984 as an input language for an event-driven simulator and has since become a key language in chip design because it is succinct, expressive, simulates quickly, and much of it can be aut...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

  18. No Access

    Chapter

    Software Basics

    Software languages describe instructions that will be executed in sequence by a processor. These instructions perform arithmetic on vallies in the processor’s memory or make a decision based on the results. Co...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

  19. No Access

    Chapter

    Operating Systems

    An operating system (os) is a program that provides an environment for executing other programs, often providing facilities for I/O, a filesystem, networking, virtual memory, and multitasking: a way to run mul...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

  20. No Access

    Chapter

    Java

    Sun’s Java programming language is a newer language based on C++, but incompatible with it. Like C++, Java is an object-oriented language that provides classes and inheritance. It is a higher-level language th...

    Stephen A. Edwards in Languages for Digital Embedded Systems (2000)

previous disabled Page of 2