2009年3月11日 星期三

Timing Diagram Free Tool ---- DrawTiming

DrawTiming is a free command line tool, under GNU General Public License (GPL), to generate "timing diagrams" from ASCII input files. It reads a text file with an intuitive syntax, and outputs a timing diagram to an image file, ... including arrows indicating causal relationships between signal transitions.

sample

.

DrawTiming under Windows OS

As provided, DrawTiming has been tested on FreeBSD, Linux and Cygwin. You will need Magick++ API, ghostscript, ... as compile-time and run-time library. Detailed requirements are listed in "INSTALL" section of DrawTiming.

After some work, I found DrawTiming can work under Windows OS by below means:

  1. Follow "More info on Cygwin build" to install Cygwin and compile DrawTiming.  You will need 80MB disk space to download Cygwin, and another 300MB to install Cygwin environment.
  2. Copy the necessary supplement file from Cygwin together with drawtiming.exe to another PC (no need to install Cygwin). Because some dependency not figured out at this moment, this "portable mode DrawTiming" can only output PS or EPS. But you will needs only 10MB for such distribution.
  3.  Modify source code (listed here) to break the dependency from Magick++ API and ghostscript, and compile under Cygwin. This "lite EPS varient" can only output PS or EPS, and only need Cygwin1.dll and the drawtiming.exe itself ---- total 2MB.
  4. Compile the same source code as 3 with MSYS + MinGW. This "lite EPS varient" is a single binary file for only 1MB, without any dll requirement. You could download the zip archive.

The USAGE of DrawTiming explains command line switch and input file syntax. In addition to that, I would like to address some notes about the EPS output of DrawTiming.

  • Use GhostView to view EPS files.
  • The EPS files can also be inserted (or drag-drop) to MS-Office application (Word, Excel, PowerPoint, ...) to become a vector graphic object.
  • Other application, e.g. PhotoShop, XnView, can support EPS also.
  • Please check if there is a missing "exclamation" in the EPS file header 
    %!PS-Adobe-3.0 EPSF-3.0

.

Tips for DrawTiming

The input file syntax is well documented in USAGE section DrawTiming. While if you are eager to hands on, you could check the SAMPLES to find out what kind of timing diagram matches your need. Then, go back to the sample text input file (*.txt) to check the syntax.

Some additional tips as below:

  • Use # as whole-line remark to make the text input file more readable.
  • List all signals in the first time period, the order of signal names will define how they show up in timing diagram.
  • No need to put all statement in the same line, it is the same period until a period (.) appears.
  • In the same period, the statement order usually does not matter. But sometimes, the result might be different as show below.

token = "\"=\"". token = SYMBOL. token = "\".\"" => clock = "N+1" => deps.length = "0".

token = "\"=\"". token = SYMBOL. token => clock = "N+1" => deps.length = "0"; token = "\".\"".

statement2

.

UML & TDML

Please see below for some keywords related to Timing Diagram.

  • UML (Unified Modeling Language)

imageUML is a standardized general-purpose modeling language in the field of software engineering. ... UML is an open method used to specify, visualize, construct and document the artifacts of an object-oriented software-intensive system under development.

(wikipedia)

In year 2005, UML 2.0 add "Timing Diagram" as a new new artifacts. While, for those free UML software (StarUML, BOUML, umbrello), I found they support only Sequence diagram, but not Timing Diagram.

.

  • TDML (Timing Diagram Markup Language)

http://xml.coverpages.org/tdml.html lists many TDML related resources.

Timing designer is a pay-ware

The free online TimingTool Lite looks need Java 1.5, and after clicking "Demo" button you will be adviced to register an account. I did not give a further try.

AndyTiming is a also a free tool for timing diagram. It is more simple than DrawTiming.

.

AndyTiming ---- another timing diagram free tool

imageimage

AndyTiming (download link) DrawTiming
real-time convert the characters from the lower input dialog command line tool generate "timing diagrams" from ASCII input files
use special characters to "draw" the timing diagram convert the input statement to timing diagram (easier to maintain the logical relation)
cannot show causal relationships able to draw arrows to indicate causal relationships

.

2 意見:

發表您的回應
  1. 匿名 提到...

    大大 不好意思! 我想問你之前有發表一篇關於DIY NB散熱風扇的那一篇!
    我想問 人家說USB接口只支援5V的電源,所以風散要買5V或是12V可用5V啟動的!
    那如果我要裝兩個5V風扇的話,不就超過了嗎?
    另外,可否詳細告知買回來的風扇,應該和哪種電源線結合(不知道是不是這樣說) ?
    結合後,又該如何和USB結合?

  2. 水瓶尤加利 / Eucaly61 提到...

    @匿名

    回答在NB 散熱風扇DIY那篇,請參考。

張貼留言