From the beginning of my work in GIM-TEISA, I’ve learned about SystemC as the most advanced systems specification language for MpSoCs. But there are older pioneer languages that are still being used and whose concepts have survived till SystemC. One of these old blokes is SpecC, developed at the Center for Embedded Computer Systems (CECS) in the University of California Irvine (UCI)
SpecC is both a system-level design language (SLDL) and a system-level design methodology. Using SpecC, one can follow a step-by-step process of taking a system design from specification down to an implementation. There is documentation where you can find the specifications of the language and SpecC-related Technical Reports, Papers, book chapters, etc. There is also a wealth of publications, dating back from 1997 until this year 2008.
You can download binary distributions, source code distribution and examples from the CECS/UCI. At least one example, the MP3 encoder is under GPL license. There is an open source version of the SpecC compiler called SCRC (SpecC Reference Compiler)
Finally I think it is worth while to pay a visit to the Embedded Systems Methodology Group (ESMG) directed by Dr. Daniel D. Gajski. They are interested in requirements and specifications of embedded systems and the design process that leads from an executable specification to the final manufacturable blueprint.
It is useful to compare SpecC and SystemC. There is a paper that do that and so it is worth reading:
Comparison of SpecC and SystemC Languages for System Design
by Lukai Cai, Shireesh Verma, Daniel D. Gajski
In course of system-level design, designers need an efficient system level design language (SLDL), which can serve as the design vehicle. The complexity of the design process at this level is determined upto an extent, by the semantics and syntax definition of the SLDL being used. This report first analyzes the system-level design flow in order to establish the requirements on an SLDL. It then compares SpecC and SystemC, the two popular SLDLs, in terms of the extent they meet these requirements. Finally, it provides the essential modeling guidelines for both the SpecC and SystemC users for the cases where the constructs or the features of the respective languages give rise to an ambiguous design.