Three Differentiators of the Spectrum Language over Alternatives
- gregory41775
- Mar 5
- 2 min read
Updated: Aug 12
Spectrum is the only major hardware language that supports both algorithmic and process-level (RTL-like) behavior in the same language. Both levels of design are seamlessly integrated, allowing the user to decide which level of abstraction is appropriate for a given portion of the design.
Spectrum excels in control-dominated designs with an algorithm scheduler that maximizes performance. This makes it perfect for performance-constrained design specifications.
Spectrum is an object-oriented language that provides for:
Encapsulation – modules, channels, and domains can define methods instead of simply ports as found in other languages, most notably VHDL and SystemVerilog. With methods, interfaces to the modules and channels are restricted to prevent improper use of or confusion on how-to-use the components.
Abstraction – details of the workings of a module or channel are hidden from the user of those components.
Polymorphism – modules can use abstract channel ports that are later constrained to more specific uses. For example, generic COMM_READ and COMM_SEND channels can be used in a generic FIFO definition. If a FIFO that reads from and writes to a UART interface is desired, more specific UART_READ and UART_SEND channels are used when instantiating the FIFO. This allows the automatic customization of the FIFO for specific interfaces.
Strong Type Checking – data type checking is performed at compile-time to ensure the compatibility of the sources and sinks of data. Conversions between data types is accomplished with implicit and explicit conversion methods.
These features of Spectrum reduce the time to develop, code, and debug a design resulting in a faster time-to-market for the user’s products as well as an enjoyable experience developing them. Also, since fewer lines of code are required as compared to traditional languages, we believe the user could see a reduction in development time by up to 5x.

Comments