Introduction
Microsoft Office tools, and in most cases Visio, are ubiquitous in the Windows environment. So, it is not surprising that tools such as Excel, Word, PowerPoint, Outlook, and Internet Explorer have found their way into the RTL design process. Design teams have crafted an EDA infrastructure to support their RTL design flow (Fig 1).
Here at Mentor Graphics, we work with thousands of customers, all of whom have a design flow that gets products out the door. We have studied these environments and technology issues in order to bring useful tools to market to accelerate design production. Remember, the A in EDA stands for automation and automation leads to efficiency. During these studies, we have noted the use of Office tools within the design flow for:
- Structural RTL Design
- Design Documentation
- Design Reviews
This article presents a general overview of how typical design teams employ Office tools to fortify their design environment in these areas.

1. Design infrastructure with Office tools.
(Click this image to view a larger, more detailed version)
Structural RTL design
Some designers construct the high-level structure of designs using Excel. Each design block is placed into a column and each signal into a row. A connection matrix is formed between the signals and the block I/O (Fig 2).

2. Using Excel for RTL structural design.
(Click this image to view a larger, more detailed version)
Typically, a script is used to save the Excel spreadsheet in a Comma-Separated Values (CSV) file, parse the input, and generate a VHDL or Verilog netlist. The designer can then flesh out this netlist by writing behavioral code or link in existing code blocks. Often the script calls other tools for parsing and checking the generated code.
Beware: Typical issues for using Excel as an entry tool for structural RTL coding include:
- Language complexities such as bus splitting, generate frames, and expressions can be difficult to enter in rows and columns. Moreover, these constructs can make the code generation script difficult to create.
- The scripting process needs to provide checking to ensure that the netlist is properly formed. However, to do this checking correctly requires creating or linking to a parser and optionally, a linting tool. If those tools do not exist in the design flow, they must be acquired.
- It is very easy to make a single incorrect signal connection that generates perfectly legal code but makes the design function improperly. This mistake is often not caught until simulation.
Design Documentation
Designers typically examine RTL code or the structural spreadsheet and then manually draw what they see in Visio (Fig 3). Those drawings are then used in Word to create specifications, manuals, and reports. These documents can then be converted to HTML from Word and used in Internet Explorer, if necessary. These drawings are often augmented with text entered by the designer or lifted from code comments and headers. Some teams write scripts to extract comments from code to make this process easier. However, this approach requires strict adherence to a comment writing policy established within the team.

3. Creating drawings from code.
(Click this image to view a larger, more detailed version)
The designer can use object linking and embedding (OLE) to dynamically link a drawing file in Word. This linking allows the drawing within the document to change as it is edited, ensuring that the document is always up to date. However, a dynamic document must be frozen at an agreed upon time before publishing and reviews.
Alternatively, the design team can store documents and supporting drawings under a version management system. If any associated code changes, the drawing can be flagged as being out of date. A designer would then need to visually inspect the drawing and the code and make any necessary adjustments.
Another form of documentation comes in the form of results from the RTL design tools, such as reports and simulation waveforms. These items are used to augment the design documentation and can be automatically gathered up via a script.
Beware: Problems associated with using this methodology are:
- It can be conceptually difficult to map RTL code to graphics by hand.
- Mistakes are easily made and difficult to catch.
- Updating graphics for synchronization with the latest code is a maintenance nightmare.
|