2009年3月10日 星期二

畫時序圖的免費工具 DrawTiming

DrawTiming 是『畫時序圖的免費工具, 可以從命令列產生時序圖, 不僅描述時序的文字檔語法非常直覺, 而且還能畫出時序的相依性
sample

.

Windows 也能使用 DrawTiming

原本 DrawTiming 要自己在 Linux 或 Cygwin 底下編譯成執行檔, 而且要搭配 Magick++ API 等 ..., 不過, 我改造出一版 只能產生 PS, EPS 格式的『免安裝版』, 請從 這裡下載 zip 檔
之後就可以 在 Windows 命令列執行 DrawTiming ...

  • 將 zip 檔解壓縮到任意目錄
  • 開啟命令列 ---- (附屬應用程式-命令提示字元, 或是 開始-執行-cmd),
  • 切換到那個目錄
  • 執行 sample-eps.bat
  • 或是手動執行 drawtiming  -o  sample.eps  sample.txt
    -o *.eps    => 指定輸出檔名
    *.txt         => 輸入檔名
  • 順利的話就可以產生如下幾個 *.eps 檔

.

  • 可以安裝 GhostView 來觀看 EPS 檔,
  • 可以將 EPS 檔插入 (或拖放) 到 Word, Excel, PowerPoint 等 MS-Office 軟體而成為向量圖檔
  • 繪圖軟體 (例如: PhotoShop), 看圖軟體 (例如: XnView) 也可以支援 EPS 檔,
    ---- 歡迎大家補充
  • 原始程式 EPS 檔頭缺了一個驚歎號, 已經一併修正
    => %!PS-Adobe-3.0 EPSF-3.0

 

sample.eps
sample_font.eps (和 sample.eps 一樣, 但文字變大)

guenter 
guenter

statement1

statement1

memory

memory

.

DrawTiming 使用技巧

DrawTiming描述時序的文字檔語法』非常直覺, 並且有『命令列參數』可以調整字體大小, 圖檔格式 ... 等, 這些在 官網上有詳細的說明, 就不再贅述。

如果急著上手, 也可以從 示範的輸出結果『看圖說故事』, 直接從圖形上找到想要的圖樣, 再回頭研究 *.txt 文字檔案的相關內容。

以下補充其他的注意事項 :

  • 善用 # 號開頭的整行註解, 讓檔案更具可讀性
  • 依照要顯示的順序列出所有的變數和它們的初始值, 不確定的值還是應該指定 Z (high Z) 或 X (don't care),
  • 不需要全部擠在同一行, 在句號之前都是表示同一個單位時間
  • 在兩個句號之間 (同一單位時間), 不需要特別注意順序, 但是除了下面這種例子 :

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

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

statement2

.

目前有下面的小問題, 不清楚是否有相關語法可以解決

  • 當有多個訊號而希望分成幾個群組時, 無法插入空白行, 暫時的解決方法是插入一個沒有變化的假訊號當作區隔

.

UML 與 TDML

在搜尋『畫時序圖』軟體的過程, 我用 Timing Diagram 當關鍵字, 發現另外兩個名詞

  • UML (Unified Modeling Language, 統一塑模語言)

    image軟體系統發展人員用以建造模型 ... 使得工作團隊能夠:將系統具象化、系統結構化、行為規格化、建構系統、以及記錄發展系統過程中之各項決策。...

    UML所涵蓋的內容是表示法而非程序,UML是與程序無關的,也就是說,無論以任何程序來開發軟體系統,都可以使用UML來建構軟體模型。 (淺談UML 資策會)

2005年, UML 2.0 增加 時間圖 (UML Timing Diagram) 的定義, 不過可惜的是找到幾種免費的 UML 軟體, StarUML, BOUML, umbrello, 看來都只有『循序圖』(Sequence diagram), 而沒有『時序圖』(Timing Diagram)

.

  • TDML (Timing Diagram Markup Language)

http://xml.coverpages.org/tdml.html 有 TDML 的說明, 也列出一些軟體, 不過我並沒有找到合用的軟體來畫『時序圖』。

付費版的可以參考 Timing designer

有一款免費線上使用的 TimingTool Lite, 看來需要 Java 1.5, 而且點下 "Demo" 之後會提示要註冊一個帳號, 所以我還沒使用過。

AndyTiming 是我同事找到的另一款免費的時序圖工具, 它比 DrawTiming 更簡單, 請見下面的說明

.

AndyTiming 另一款免費的時序圖工具

imageimage

AndyTiming (下載點) DrawTiming
在下半視窗直接輸入一串字元來代表波形 命令列工具
用字元『畫出』時序圖 從時序描述檔案轉換成圖形 (邏輯上較為嚴謹)
無法表示『時序的相依性』, 也不能標示『時間間隔』 可以標示『時序的相依性』與『時間間隔』

.

8 意見:

發表您的回應
  1. PigTail Leo 提到...

    吼,我也找過一段時間,都沒有好用的,看眾多國外廠家畫出來的圖又複雜又專業,真不知道他們怎麼用的。

    後來將就用TimingTool,註冊後,可以用java在線上版本工作,他會提供小小的WorkSpace,讓你存檔案在他們的伺服器上。然後所有的軟體功能都可以使用,只是輸出時會有logo。但那也好解決,用illustrator就可以輕易去除了。

    找時間再試試大大提到的這些軟體,讚!

  2. 匿名 提到...

    請問大大我已安裝完DrawTiming,且"將 EPS 檔插入 (或拖放) 到 Word, Excel, PowerPoint 等 MS-Office 軟體",但是我不懂"成為向量圖檔"的意思?所以請問大大要如何開始執行開始畫呢?

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

    在『命令提示字元』, 手動執行
    drawtiming -o 輸出檔名.eps 輸入檔名.txt
    所有的語法都寫在『輸入檔名.txt』裡面

  4. 提到...

    無法下載耶。會出現以下的字:
    This file is not plain text (only UTF-8 and Latin-1 text encodings are currently supported).

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

    @滄,
    謝謝告知, 請改從 http://code.google.com/p/eucaly61-tool/downloads/list 下載

  6. 小松鼠來報到 提到...
    作者已經移除這則留言。
  7. 提到...

    真的是太感謝您了。剛剛己經去試著下載了…可以下載。謝謝您!

  8. 匿名 提到...

    這個真的太好用了 感謝大大的提供
    網路上找很多timing diagram的工具大多都是要付費又複雜的
    但是大大的這個修改版的簡潔又方便
    非常謝謝你!

張貼留言