4
\$\begingroup\$

TL;DR: Need good block diagram schematic drawing process.

Table of Contents

  1. Topicality and Relevance
  2. Question

Topicality and Relevance

Topicality: John F. Wakerly, in his book Digital Design: Principles and Practice, Fourth Edition, (Amazon, book site) devotes an entire section, 6.1, to "Documentation Standards." He says "Good documentation is essential for correct design and efficient maintenance of digital systems" (p342; emphasis is mine). He then outlines six major components of good documentation, of which block diagrams are the second.

The next section, 6.1.1, is devoted to block diagrams, their features and their use. For example, he lets us know that "important control signals and buses should have names, usually the same names that appear in the more detailed schematic." (p346) I will note that this is the only subsection devoted specifically to any of the six types of documentation he describes.

Relevance: Clearly, any large project will be composed of a number of components. These components are shown in a block diagram. There may be several levels of block diagrams, which in turn describe the higher level blocks using lower level blocks in a mostly hierarchial fashion. To keep a project comprehensible to both the creator (over time) and others, block diagrams are essential. Hence, good digital design includes the creation of these diagrams.

If the diagram takes more time and effort to create than other stages of the design process, it is more likely to be skipped, short-circuited, or otherwise not given the proper attention. I'm a new digital designer and I have spent one full week (of several hours an evening) creating a block diagram of my MIPS processor's data path. To me, this seems like an excessive amount of time to have spent creating a block diagram, especially when I could have created the same diagram in under an hour with paper and pencil.

There are many layers to digital design, from concept to diagram to schematic to HDL to synthesis or tape-out or whatever happens next (I'm a novice so I can't say for sure). The ability to create this block diagram form of documentation efficiently seems to be highly relevant to digital design. After all, the about site for this Stack Exchange states to ask about "an actual problem you have faced" that deals with "a specific electronics design problem."

Well, here's my problem: How do I efficiently create (and maintain) block diagrams? I would love to know about procedures, processes, tools, and the like, because what I am doing so far as a novice clearly is untenable.

Question

I'm working on building a full pipelined-architecture MIPS-style CPU in SystemVerilog, extending the concepts in Digital Design and Computer Architecture, 2e. This is being done with Quartus II running in BootCamp.

To keep things straight as it gets more complex, I want to keep the processor's block diagram up to date with my SV code. So far I have been using print outs of the diagrams in the book, generally starting from this one but sometimes using others from the published (odd) answer key (see book link for this and other PDF versions).

So, I recreated much of the diagram in Omnigraffle Pro 5, which I have used for years. (Edit: I have since completed the block diagram for the processor's datapath.) However, this incomplete result has so far taken me almost 10 hours, which is completely unacceptable, given that I could draw the whole thing in probably 20 minutes and modify the pre-generated diagrams (although with more messiness as complexity increases) in five. It's very difficult to label lines, to connect lines to other lines, make sure lines don't cross in bad locations, and even connect lines to objects in this program. I never noticed this in the past as I never had to do diagrams of such complexity.

I'm clearly in need of a better process, method and/or tools. I welcome suggestions. Thanks!

\$\endgroup\$
  • 2
    \$\begingroup\$ This question appears to be off-topic because it is about nothing related to EE \$\endgroup\$ – Andy aka Mar 1 '14 at 16:31
  • \$\begingroup\$ Look at HDL Designer from Mentor Graphics. But you might not like the price. \$\endgroup\$ – Brian Drummond Mar 1 '14 at 17:06
  • 3
    \$\begingroup\$ Andy - Given that almost all data sheets contain a block diagram for any circuit more complex than basic logic gates, I would think that the creation of block diagrams is most definitely EE-related. Brian - I will, but I will not get my hopes up. :) Thanks. \$\endgroup\$ – Software Engineer Mar 1 '14 at 17:40
  • \$\begingroup\$ Brian - I can't seem to find any pricing on the Mentor Graphics site, just evaluation links. Is this by design? Do they have a price list somewhere? Also HDL Author may do what I need, which seems to be a cut-down version of HDL Designer. \$\endgroup\$ – Software Engineer Mar 1 '14 at 18:43
  • 5
    \$\begingroup\$ Asking about software that directly aids in electronic design should be on-topic. All who voted to close: Why don't you save your closing votes for things that are obviously off-topic, and not for peripheral yet inside the EE-design set type of questions? \$\endgroup\$ – apalopohapa Mar 2 '14 at 11:42
2
\$\begingroup\$

I've been working professionally as an engineer for over 20 years now and can say that while there is no single dominant application for creating block diagrams, the one I see used more than any other is Visio. In addition to hardware engineering, the tool is also widely used by network engineers--to the point where companies like Cisco create stencils for it.

The caveat here is that Visio a windows only tool. Though being that you're BootCamp perhaps that's not a show-stopper.

\$\endgroup\$
  • \$\begingroup\$ Visio was available to me under my firm's "Microsoft Home Use Program" for a nominal fee, so I have picked it up (hence "was"). I will play with it and see how it compares to OmniGraffle. I have learned there are block diagramming tools built into Quartus II as well, so I will investigate those. \$\endgroup\$ – Software Engineer Mar 5 '14 at 16:53
2
\$\begingroup\$

Omni Graffle shouldn't take that long, there are tools in the software to overcome some of the issues you mentioned. http://techjournal.318.com//wp-content/uploads/2009/12/omnigraffle-tips-pub.pdf has some of them, and we built an applescript that counted up all of the elements of our drawing for easier planning. An example of the script that we wrote is at https://www.jtechcommunications.com/blog/blog-detail-12. Hope that helps.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.