P. A. Subrahmanyam

dblp:58/3701 · DBLP profile ↗
← Back
23ranked-venue papers
8as first author
0since 2021 · last 1998
—ORCID · none

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

Systems, architecture and hardware · 12 · 3 first-authorSoftware engineering, systems software and programming languages · 4 · 2 first-authorArtificial intelligence and machine learning · 3 · 1 first-authorTheory of computation · 3 · 2 first-authorDatabases, data management, data science and information retrieval · 2 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-author

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
5 papers
Electronic design automation · 78% Embedded and real-time systems · 16% Integrated circuit design · 6%
Software engineering, system software, and programming languages
5 papers
Programming languages and type systems · 77% Concurrent programming · 17% Program synthesis and code generation · 6%
Theoretical computer science
2 papers
Logic in computer science · 55% Automated reasoning and model checking · 30% Computational complexity · 15%

Topics — the 25 heaviest of 28, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Electronic design automation
hardware/software co-design
0.011998
Hardware/software partitioning for multifunction systems · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1998
Electronic design automation › hardware/software co-design
hardware/software partitioning
0.011998
Hardware/software partitioning for multifunction systems · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1998
Electronic design automation › hardware verification and test
formal verification
0.021995
Comparing layouts with HDL models: a formal verification technique · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1995
LCS - A Leaf Cell Synthesizer Employing Formal Deduction Techniques · DAC 1987
Electronic design automation › hardware verification and test › formal verification
equivalence checking
0.011995
Comparing layouts with HDL models: a formal verification technique · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1995
Electronic design automation
hardware verification and test
0.011995
Comparing layouts with HDL models: a formal verification technique · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1995
Integrated circuit design
asynchronous circuit design
0.011992
A Path-Oriented Approach for Reducing Hazards in Asynchronous Designs · DAC 1992
Electronic design automation
logic synthesis
0.021995
LCS - A Leaf Cell Synthesizer Employing Formal Deduction Techniques · DAC 1987
Comparing layouts with HDL models: a formal verification technique · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1995
Programming languages and type systems
logic programming
0.021986
Equational Logic Programming: An Extension to Equational Programming · POPL 1986
The "Software Engineering'' of Expert Systems: Is Prolog Appropriate? · IEEE Trans. Software Eng. 1985
Embedded and real-time systems
real-time scheduling
0.011998
Hardware/software partitioning for multifunction systems · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1998
Electronic design automation › physical design
floorplanning
0.011989
A Note on Clustering Modules for Floorplanning · DAC 1989
Electronic design automation › design methodology
hierarchical decomposition
0.011989
A Note on Clustering Modules for Floorplanning · DAC 1989
Electronic design automation › clustering
module clustering
0.011989
A Note on Clustering Modules for Floorplanning · DAC 1989
Electronic design automation
physical design
0.011989
A Note on Clustering Modules for Floorplanning · DAC 1989
Concurrent programming
concurrency theory
0.011987
Reasoning About Probabilistic Behavior in Concurrent Systems · IEEE Trans. Software Eng. 1987
Electronic design automation › hardware verification and test
hardware verification
0.011987
LCS - A Leaf Cell Synthesizer Employing Formal Deduction Techniques · DAC 1987
Electronic design automation › logic synthesis
sequential circuit synthesis
0.011995
Comparing layouts with HDL models: a formal verification technique · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 1995
Programming languages and type systems
language semantics
0.011986
Equational Logic Programming: An Extension to Equational Programming · POPL 1986
Automated reasoning and model checking
equational reasoning
0.011986
E-Unification Algorithms for a Class of Confluent Term Rewriting Systems · ICALP 1986
Logic in computer science › unification
e-unification
0.011986
E-Unification Algorithms for a Class of Confluent Term Rewriting Systems · ICALP 1986
Programming languages and type systems › logic programming
prolog
0.011985
The "Software Engineering'' of Expert Systems: Is Prolog Appropriate? · IEEE Trans. Software Eng. 1985
Programming languages and type systems › logic programming
functional logic programming
0.011984
Pattern Driven Lazy Reduction: A Unifying Evaluation Mechanism for Functional and Logic Programs · POPL 1984
Logic in computer science › algebraic specification
abstract data types
0.011981
Nondeterminism in Abstract Data Types · ICALP 1981
Computational complexity
nondeterminism
0.011981
Nondeterminism in Abstract Data Types · ICALP 1981
Logic in computer science
term rewriting
0.011986
E-Unification Algorithms for a Class of Confluent Term Rewriting Systems · ICALP 1986
Knowledge, reasoning and agents › Knowledge representation and reasoning
expert systems
0.011985
The "Software Engineering'' of Expert Systems: Is Prolog Appropriate? · IEEE Trans. Software Eng. 1985

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

dynamic programming · 0.0GCLP partitioning algorithm · 0.0state machine abstraction · 0.0binary decision diagram · 0.0path-oriented analysis · 0.0hierarchical clustering · 0.0comparative assessment · 0.0probabilistic modeling · 0.0formal reasoning · 0.0formal deduction · 0.0equational unification · 0.0algebraic calculus · 0.0unification · 0.0lazy evaluation · 0.0
YearPublicationVenuePosition
1998 Hardware/software partitioning for multifunction systems
abstract
We are interested in optimizing the design of multifunction embedded systems such as multistandard audio/video codecs and multisystem phones. Such systems run a prespecified set of applications, and any "one" of the applications is selected at a run time, depending on system parameters. Our goal is to develop a methodology for the efficient design of such systems. A key observation underlying our method is that it may not be efficient to design for each application separately. This is attributed to two factors. First, considering each application in isolation can lead to application-specific decisions that do not necessarily lead to the best overall system solution. Second, these applications typically tend to have several commonalities among them, and considering applications independently may lead to inconsistent mappings of common tasks in different applications. Our approach is to optimize jointly across the set of applications while ensuring that each application itself meets its timing constraints. Based on these guiding principles, we formulate, as a codesign problem, the design and synthesis of an efficient hardware-software implementation for a multifunction embedded system. The first step in our methodology is to identify nodes that represent similar functionality across different applications. Such "common" nodes are characterized by several metrics such as their repetitions, urgency, concurrency, and performance/area tradeoff. These metrics are quantified and used by a hardware/software partitioning tool to influence hardware/software mapping decisions. The idea behind this is to bias common tasks toward the same resource as far as possible while also considering preferences and timing constraints local to each application. Further, relative criticality of applications is also considered, and the mapping decisions in more critical applications are allowed to influence those in less critical applications. We demonstrate how this is achieved by modifying an existing partitioning algorithm (GCLP) used to partition single-function systems. Our modified algorithm considers global preferences across the application set as well as the preference of each individual application to generate an efficient overall solution while ensuring that timing constraints of each application are met. The overall result of the system-level partitioning process is 1) a hardware or software mapping and 2) a schedule for execution for each node within the application set. On an example set consisting of three video applications, we show that the solution obtained by the use of our method is 38% smaller than that obtained when each application is considered independently.
Asawaree Kalavade, P. A. Subrahmanyam
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
1997 Hardware/software partitioning for multi-function systems
abstract
We are interested in optimizing the design of multi-function embedded systems that run a pre-specified set of applications, such as multi-standard audio/video codecs and multi-system phones. Such systems usually have stringent performance constraints and tend to have mixed hardware-software implementations. The current stare of the art in the hardware/software codesign of such systems is to design for each application separately. This often leads to application-specific sub-optimal decisions and inconsistent mappings of common nodes in different applications. We use these as the guiding principles to formulate, as a codesign problem, the design and synthesis of an efficient hardware-software implementation for a multi-function embedded system. Our solution methodology is to first identify nodes that represent similar functionality across different applications. Such "common" nodes are characterized by several metrics. These metrics are quantified and used by a hardware/software partitioning tool to map common nodes to the same resource as far as possible. We demonstrate how this is achieved by modifying a traditional partitioning algorithm (GCLP) used to partition single applications. The overall result of the system-level partitioning process is (1) a hardware or software mapping and (2) a schedule for execution for each node within the application set. On an example set consisting of three video applications, we show that the solution obtained by the use of our method is 38% smaller than that obtained when each application is considered independently.
Asawaree Kalavade, P. A. Subrahmanyam
ICCAD2
1995 Extracting RTL models from transistor netlists
abstract
This paper addresses the problem of deriving a register-transfer level (RTL) model from a transistor-level circuit. Using existing techniques, the transistor-level circuit is converted into a relation that describes the evolution of the signals in the circuit with respect to the simulator clock. This simulation relation is then manipulated to derive the stable behavior of the circuit. Given this stable behavior and information about the clocking scheme, we determine if the circuit is combinational, asynchronous or synchronous. For combinational and synchronous circuits we derive an equivalent register-transfer level model. This development enables full-custom circuit designers to use tools that were till now available only to designers working at the gate-level. The algorithm has been successfully used to characterize several custom designs, as well as the entire AT&T standard-cell library.
K. J. Singh, P. A. Subrahmanyam
ICCAD2
1995 Comparing layouts with HDL models: a formal verification technique
abstract
This paper discusses a formal verification technique for comparing the functionality of a transistor netlist extracted from a layout with a design description in a hardware description language (HDL). Using novel techniques based on binary decision diagrams (BDD's), a state machine is first abstracted from a transistor netlist, given information relating to clock signals and clock models. The resulting state machine behavior is then compared with another that is derived from the HDL description. The basic ingredients of the technique used can be directly applied (or, in other cases, extended) to various related contexts of interest. In particular, the abstracted machine(s) can be represented as BDD relations or as synchronous sequential networks, both of which are common starting points for sequential synthesis and verification tools.>
Timothy Kam, P. A. Subrahmanyam
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
1993 Specification and Synthesis of Mixed-Mode Systems: Experiments in a VHDL Environment
abstract
Discusses the specification and automated synthesis of mixed synchronous/asynchronous systems in the context of a VHDL-based design environment. We propose a flexible paradigm for describing asynchronous behavior in VHDL that supports (1) the description of behavior as a signal transition graph (STG), (2) its expression in the form of an initializable edge-triggered finite state machine, and (3) the specification of a level-sensitive asynchronous finite state machine. An important feature is that free-running signals such as clocks can be included in the asynchronous specifications. The input specification, consisting of timing diagrams and/or the behavior and interface specifications for a set of interacting processes, is mapped into an appropriate combination of hazard-free asynchronous circuits and synchronous circuits.>
P. A. Subrahmanyam, Josep M. Espinalt, Meng-Lin Yu
ICCD1
1992 A Path-Oriented Approach for Reducing Hazards in Asynchronous Designs
Meng-Lin Yu, P. A. Subrahmanyam
DAC2
1992 Comparing Layouts with HDL Models: A Formal Verification Technique
abstract
The authors discuss a formal verification technique using binary decision diagrams (BDDs) for comparing the functionality of a transistor netlist extracted from a layout with a design description in a hardware description language (HDL). A state machine is first abstracted from a transistor netlist, given information relating to clock signals and clock models. The resulting state machine behavior is then compared with another that is derived from the HDL description. The basic ingredients of the technique used can be directly applied (or, in other cases, extended) to various related contexts of interest.>
Timothy Kam, P. A. Subrahmanyam
ICCD2
1989 A Note on Clustering Modules for Floorplanning
abstract
Many VLSI floorplanners work by recursively decomposing rectangular modules into lower-level rectangular modules until the leaf-level modules are reached[5]. Good layouts require good floorplans. The quality of a floorplan depends (among other things) on how the leaf-level modules are clustered into the various levels of the hierarchy. Some of the factors that determine the suitability of a decomposition are the geometry of the modules, the connectivity among modules, and timing constraints. Our experience with the mechanization of a VLSI design manager[1] has shown that the initial structural hierarchy that arises during synthesis from behavioral specifications is not always suitable for floorplanning. We describe hierarchical-clustering-based algorithms that lead to a small number of superior candidate hierarchies.
John D. Gabbe, P. A. Subrahmanyam
DAC2
1989 Automated synthesis of systems with interacting asynchronous (self-timed) and synchronous components
abstract
Techniques for the specification and automated synthesis of systems containing a mixture of synchronous and asynchronous (self-timed) subsystems are discussed. The input to the system consists of the behavior and performance specifications for a set of processes that interact by communicating over channels connecting typed ports; a graphical perspective on temporal constraints is provided via a timing diagram editor. Factors that influence the decomposition of the overall system into subprocesses and the choice of implementation styles include external interface constraints, system performance requirements, and system design complexity. Syntax-directed transformations are applied to the initial specification to generate a hierarchical structural description. Existing logic optimization and physical layout tools are then used to produce either standard cell or custom CMOS layouts. Fragments of the design of a processor interface board are used to illustrate various concepts.>
P. A. Subrahmanyam
ICCD1
1989 Mechanical Certification of Systolic Algorithms
S. Purushothaman Iyer, P. A. Subrahmanyam
J. Autom. Reason.2
1988 Reasoning about Systolic Algorithms
S. Purushothaman Iyer, P. A. Subrahmanyam
J. Parallel Distributed Comput.2
1987 LCS - A Leaf Cell Synthesizer Employing Formal Deduction Techniques
abstract
This paper discusses the use of formal reasoning techniques to aid in the automated structural design of leaf cells, in the more global context of VLSI circuit design. The technique supports an encapsulation of the technology-dependent aspects of a design by using appropriate formal models, and guarantees the consistency of the designs produced with respect to the functional specification and the technology model employed. The approach is illustrated by its use in the design of some leaf cells in CMOS. The role of the techniques when used in an interactive mode and in the verification of existing designs is also discussed.
P. A. Subrahmanyam
DAC1
1987 An object-based representation for the evolution of VLSI designs
John D. Gabbe, P. A. Subrahmanyam
Artif. Intell. Eng.2
1987 Reasoning About Probabilistic Behavior in Concurrent Systems
abstract
Certain aspects of the behavior of concurrent systems are intrinsically probabilistic in nature, e.g., the behavior of imperfect communication media used in network protocols. We address the problem of expressing such behavior in an algebraic calculus for communicating systems. The introduction of probabilistic information in the calculus alleviates the problem of proving liveness, as proving liveness now amounts to proving that its probability is 1. A methodology for proving both safety and liveness is developed and used in proving the correctness of the Alternating Bit Protocol.
S. Purushothaman Iyer, P. A. Subrahmanyam
IEEE Trans. Software Eng.2
1986 E-Unification Algorithms for a Class of Confluent Term Rewriting Systems
Jia-Huai You, P. A. Subrahmanyam
ICALP2
1986 Equational Logic Programming: An Extension to Equational Programming
abstract
The paradigm of equational programming potentially possesses all the features provided by Prolog-like languages. In addition, the ability to reason about equations, which is not provided by Prolog, can be accommodated by equational languages. In this paper, we propose an extended equational programming paradigm, and describe an equational logic programming language which is an extension of the equational language defined in [Hoff82]. Semantic foundations for the extension are discussed. The extended language is a powerful logic programming language in the sense of Prolog and thus enjoys the programming features that Prolog possesses. Furthermore, it provides an ability to solve equations, which captures the essential power of equational programming.
Jia-Huai You, P. A. Subrahmanyam
POPL2
1986 A Class of Confluent Term Rewriting Systems and Unification
Jia-Huai You, P. A. Subrahmanyam
J. Autom. Reason.2
1985 Formal semantics for a symbolic IC design technique: Examples and applications
Sanjay V. Rajopadhye, P. A. Subrahmanyam
Integr.2
1985 The "Software Engineering'' of Expert Systems: Is Prolog Appropriate?
abstract
This paper is a preliminary assessment of the viability of Prolog as a basis for the design of expert systems, where the major competition is assumed to be from Lisp and Lisp-based systems. We critically examine the basic features of Prolog from various perspectives to see to what extent they support (or hinder) expert system development. Our conclusion is that while Prolog has significant assets along several dimensions, Prolog as it exists today needs to be modified and appropriately enhanced to make it competitive to extant Lisp-based systems; we suggest the nature of some of these modifications.
P. A. Subrahmanyam
IEEE Trans. Software Eng.1
1984 Pattern Driven Lazy Reduction: A Unifying Evaluation Mechanism for Functional and Logic Programs
abstract
A novel lazy evaluation mechanism, pattern-driven lazy reduction, is developed that serves as a unifying evaluation mechanism for both functional and logic programs. The reduction of a function call can be viewed as “semantically” unifying the function call with the left hand side of a defining equation, and applying the unifier to the right hand side. Lazy reduction is achieved by the pattern which the function call matches against. Function reductions are actually “driven” by patterns in this sense. It is shown that this evaluation mechanism works well for both functional programs and logic programs that involve “executable” functions. As a result, logic programs can be enhanced with (1) the availability of a functional computing environment where there is no notion of backtracking, thus alleviating the degree of control difficulties typically encountered in logic programs, and (2) the ability to terminate “infinite computations” without the introduction of complex control issues at the user-level. On the other hand, functional programs can be equipped with the power of logic programming languages, e.g., Prolog.
P. A. Subrahmanyam, Jia-Huai You
POPL1
1984 On Embedding Functions in Logic
P. A. Subrahmanyam, Jia-Huai You
Inf. Process. Lett.1
1981 Nondeterminism in Abstract Data Types
P. A. Subrahmanyam
ICALP1
1980 A Basis for a Theory of Program Synthesis
P. A. Subrahmanyam
AAAI1