Ching-Tsun Chou
Web: http://home.pacbell.net/ctchou
Cell: (650)
283-4894
chingtsun_chou@yahoo.com
Work: (408)
765-5468
ching-tsun.chou@intel.com
Summary
Dr
Ching-Tsun Chou brings an uncommon combination of experiences. First and foremost, he has hands-on
experience with all aspects of applying formal methods to real-world
verification problems in industry. In
terms of application areas, he has worked on RTL designs, complex hardware and
distributed protocols, software algorithms, architectural specifications, and
even the search for deadlock-free wormhole routing. In terms of techniques, he has extensive
experience in model checking, mechanical theorem proving, and symbolic
trajectory evaluation and has published on some aspects of these topics in
respected journals and conferences.
Second, his experience is by no means limited to formal methods. Among other things, he has participated in
the design and specification of complex cache coherence protocols and error
recovery protocols, performed hardware verification using traditional
simulation-based techniques, implemented nontrivial verification tool chains,
analyzed the error-control performance of error detection and correction codes,
and investigated the automatic generation of hardware from synchronous
languages. Third, having worked in
hardware design teams, he has intimate and personal knowledge of the enormous
complexities of industrial hardware designs, of the kind of time and resource
pressures under which design teams operate, and of the team-oriented
collaborative nature of such endeavors.
Last but not least, he enjoys programming very much and would not let go
any opportunities where his programming skills can be put to good use.
Education
University of California, Los Angeles
- Los Angeles, CA
Ph.D. in Computer Science -1995
University of California, Los Angeles
- Los Angeles, CA
M.S. in Computer Science - 1986
National
Taiwan University - Taipei,
Taiwan
B.S. in Electrical
Engineering - 1983
Industry Experience
Senior Platform Architect and Verification Engineer
Intel Corporation - Santa Clara, CA. August 1999 to Present.
·
Technical lead of the verification of several
protocols for distributed shared memory systems, including directory-based
cache coherence protocols, shared bus protocols, link layer protocols, and
error recovery protocols (see paper 3
below). Contributed significantly to the
design and specification of some of these protocols.
·
Designed and implemented a verification tool
chain that automatically generates both formal and simulation models from
table-based specifications, including translators from SMV and Murphi to C
reference models.
·
Worked closely with design teams to implement
the protocols. Helped to integrate C
reference models into RTL validation environment. Reviewed RTL code and advised and helped with
verification efforts.
·
Reviewed and participated in the design of
cyclic redundancy checks (CRC) and error correction codes (ECC).
·
Managed academic relations with faculties at Stanford University
and University of
Utah (see paper 2
and paper 4
below).
Senior Verification Engineer
Intel Corporation - Santa Clara, CA. March 1997 to August 1999.
·
Did both formal and simulation-based
verification of RTL design from the Itanium™ microprocessor, with special
emphasis on memory subsystem and system bus interface. Found numerous bugs. Did extensive script coding to automate many
tasks.
·
Wrote a well-regarded paper on the mathematical foundation
of symbolic trajectory evaluation (see paper 5
below).
VLSI CAD Researcher
Fujitsu Laboratories of America - Sunnyvale, CA. October 1995 to March 1997.
·
Designed an Esterel-like synchronous programming
language for use in hardware design (see paper 7
below).
·
Investigated the feasibility of doing
synchronous programming in Verilog HDL (see paper 16
below).
Postgraduate Researcher
AT&T (later Lucent) Bell Laboratories
- Murray Hill, NJ.
June 1995 to October 1995.
·
Did formal verification by mechanical theorem
proving of a partial-order reduction technique for model checking (see paper 6
below).
Summer Intern
IBM T.J. Watson Research Center - Yorktown Heights, NY. June 1986 to October 1986.
·
Designed and analyzed distributed algorithms for
a high-performance voice/data integrated network
architecture (see paper 13
and paper 14
below).
Summer Intern
IBM T.J. Watson Research Center - Yorktown Heights, NY. June 1985 to October 1985.
·
Designed a procedure call mechanism for an
expert system language.
Summer Intern
Silogic, Inc. - Los Angeles,
CA. June 1984 to October 1984.
·
Did extensive Prolog programming.
Teaching Experience
Part-Time Faculty
Loyola Marymount University - Los Angeles, CA. Fall 1993.
·
Taught courses on automata, formal languages,
and computability theory at both undergraduate and graduate level.
Teaching Assistant
University of California, Los Angeles - Los Angeles, CA. Spring 1987.
·
Prepared homework problems, conducted discussion
sessions, and graded students’ answers for a graduate course on
probability and queuing theories.
Programming Experience
- Some programming projects
undertaken (in no particular order):
- Machine-assisted
checking of mathematical theories (e.g., see paper 6
below for substantial sample code).
- Language processing
(e.g., SMV®C
and Murphi®C
translations, sophisticated abstract syntax tree manipulation, Prolog
type inference).
- Automation scripts
(e.g., wrapper file generation for linking HDL units, extraction and
manipulation of signal traces from trace files, extraction and flattening
of tables from HTML).
- Numerical programs
(e.g., learning algorithms for neural networks and classification trees,
soft k-means clustering, sequence alignments by dynamic
programming, heuristic progressive multiple sequence alignments, profile
hidden Markov models).
- Run-time interfacing
of different languages (e.g., driving a protocol simulator in C from Caml
and using the garbage collector of the latter to manage the data
structures used by the former).
- Some programming languages
used: C, Fortran, Lisp, Prolog,
Caml (http://caml.inria.fr/), Java,
Perl, Verilog, VHDL.
Selected Publications (for a more complete list, see: http://dblp.uni-trier.de/db/indices/a-tree/c/Chou@Ching=Tsun.html)
- Ching-Tsun
Chou, Phanindra K. Mannava, and Seungjoon
Park, “A Simple Method for Parameterized Verification of Cache
Coherence Protocols”, Formal
Methods in Computer-Aided Design (FMCAD’04), Austin,
Texas, 14-17 November 2004.
- Ganesh
Gopalakrishnan and Ching-Tsun
Chou, “The Post-Silicon Verification Problem: Designing Limited
Observability Checkers for Shared Memory Processors”, Designing Correct Circuits
(DCC’04), Barcelona,
Spain,
27-28 March 2004.
- Mani Azimi, Ching-Tsun Chou, Akhilesh
Kumar, Victor
W. Lee,
Phanindra K. Mannava, and Seungjoon Park,
“Experience
with Applying Formal Methods to Protocol Specification and System
Architecture”,
Formal
Methods in System Design,
Vol. 22, pp. 109-116, 2003.
- Kanna
Shimizu, David L. Dill, and Ching-Tsun Chou, “A Specification Methodology by a
Collection of Compact Properties as Applied to the Intel Itanium Processor
Bus Protocol”, Proceedings of Conference on Correct Hardware Design and Verification
Methods (CHARME’01), Livingston,
Scotland,
4-7 September 2001.
- Ching-Tsun
Chou, "The Mathematical Foundation of Symbolic
Trajectory Evaluation", pp. 196-207 of Lecture Notes in Computer Science
1633: Proceedings of 11th Int. Conf. on
Computer-Aided Verification (CAV'99), Trento, Italy, July
1999.
- Ching-Tsun
Chou and Doron Peled, "Formal Verification of a Partial-Order Reduction Technique
for Model Checking", Journal
of Automated Reasoning, 23(3-4):265-298, 1999.
- Ching-Tsun
Chou, Jiun-Lang Huang, and Masahiro Fujita, "A High-Level Language for Programming Complex Temporal
Behaviors and Its Translation into Synchronous Circuits", pp. 74-76 of Proceedings of IFIP
Conf. on Hardware Description Languages and Their Applications (CHDL'97), Toledo, Spain, April 1997.
- Ching-Tsun Chou, "Simple Proof Techniques
for Property Preservation via Simulation", Information Processing
Letters, Vol. 60, pp. 129-134, 1996.
- Ching-Tsun Chou, "Mechanical Verification of
Distributed Algorithms in Higher-Order Logic", The Computer Journal,
Vol. 38, No. 2, pp. 152-161, 1995.
- Ching-Tsun Chou, "A Formal Theory of
Undirected Graphs in Higher-Order Logic", pp. 144-157 of Lecture
Notes in Computer Science 859: 7th Int. Workshop on Higher Order
Logic Theorem Proving and Its Applications (HOL'94), Valletta, Malta, September
1994.
- Ching-Tsun Chou, "A Note on Interactive
Theorem Proving with Theorem Continuation Functions", pp. 59-70
of 5th Int. Workshop on Higher Order Logic Theorem Proving and Its
Applications (HOL'92), Leuven, Belgium, September 1992.
- Ching-Tsun Chou, "A Sequent Formulation of
a Logic of Predicates in HOL", pp. 71-80 of 5th Int. Workshop
on Higher Order Logic Theorem Proving and Its Applications (HOL'92), Leuven, Belgium, September 1992.
- Ching-Tsun
Chou, Israel Cidon, Inder S. Gopal, and Shmuel
Zaks, "Synchronizing Asynchronous
Bounded Delay Networks", IEEE Trans. on Communications, Vol. 38, No. 2, pp. 144-147, February 1990.
- Ching-Tsun
Chou and Inder S. Gopal, "Linear Broadcast Routing", Journal of Algorithms, Vol.
10, No. 4, pp. 490-517, December 1989.
- Ching-Tsun Chou and Eli Gafni, "Understanding and
Verifying Distributed Algorithms Using Stratified Decomposition",
7th ACM Symp. on Principles of Distributed Computing (PODC'88),
pp. 44--65, August 1988.
Unpublished
Manuscripts
- Ching-Tsun
Chou, "Synchronous Verilog: A Proposal", 1997.
- Ching-Tsun Chou, "Using Operational Intuition
about Events and Causality in Assertional Proofs", 1995.
- Ching-Tsun Chou, "A Bug in the
Distributed Minimum Spanning Tree Algorithms of Gallager, Humblet, and
Spira", 1988.
Invited Talks
- Ching-Tsun
Chou, Steven German, and Ganesh Gopalakrishnan, “Specification
and Verification of Shared Memory Protocols and Consistency Models”,Formal Methods in Computer-Aided Design
(FMCAD’04), Austin,
Texas, 14-17 November 2004.
- Ching-Tsun Chou, “A Taste of Formal
Verification and Its Industrial Applications”, Santa Clara University,
20 February 2003.
- Ching-Tsun
Chou, “Formal
Verification of an Industrial Cache Coherence Protocol”, San Jose State University,
14 November 2002.
Member
of Conference Program
Committees
Member
of Professional Societies
Patents: One pending.
Miscellaneous
This page was last updated on 20 June
2005.