FC2カウンター FPGAの部屋 Interface2011年2月号のNSLサンプルを試す3(インスタンス作成)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Interface2011年2月号のNSLサンプルを試す3(インスタンス作成)

Interface2011年2月号のNSLサンプルを試す2(メソッド作成)”の続き

今度はインスタンスを作成する。
右のUML LinksからAssociationを選択して、timer7seg クラスからcounter_0to9 クラスに線を引いて、インスタンスを作成した。
(注)何回も作り直したので、右はじのクラス名が間違っています。正しくはhex_to_7segoutです。
NSL_Sample_19_110106.png

PalletteからSelectをクリックし、インスタンス名をクリックしてName:とMulipliccity:(インスタンス数)を変更する。
NSL_Sample_20_110106.png

すべてのインスタンスを作成した。下図。
NSL_Sample_21_110106.png

これで書き終わったのだが、一番最初にCreate a new Class Diagram をするのを忘れてしまった。それで、今書き換えている。
それに、myUMLModel.uml を右クリックしてもUML to NSL generateの項目が出ないみたいなのだが、どうしてだろう?

そうだ。UML2NSLというのがあった。それでUMLからNSLに変換するんだ。Papyrusマニュアルは古いバージョンなのだろうか?
スタートメニューのIP Apach. IncからUMLtoNSLを起動して、作ったmyUMLModel.umlをUMLtoNSLにドラックアンドドロップした。
NSL_Sample_22_110109.png

Convertボタンをクリックすると、ダイアログが出て、NSLを生成する位置と名前を指定する。ここではSTOPWATCH.nslとした。保存ボタンをクリックすると、Convert Doneダイアログが出て、OKボタンをクリックした。
NSL_Sample_23_110109.png

NSLのスケルトンコードが生成できました。

// UML2NSL converter Ver. 2010-03-28 Copyright (c) 2009-2010 IP ARCH, Inc. All rights reserved.
// xmi  --- version 2.1 --- 



declare    timer7seg  {
    
    // -- timer7seg  --
    output    sig1_o[8];
    output    sig2_o[8];
    output    sig_figure[2];
    
}

declare    counter_0to9  {
    
    // -- counter_0to9  --
    output    seg0to5_o;
    output    seg0to9_o[8];
    
    // -- counter_0to9  --
    func_in    countup();
func_in    reset();

}

declare    counter_0to5  {
    
    // -- counter_0to5  --
    output    seg0to5_o[8];
    
    // -- counter_0to5  --
    func_in    countup();
func_in    reset();

}

declare    hex_to_7segout  {
    
    // -- hex_to_7segout  --
    input    hexdata[4];
    
    // -- hex_to_7segout  --
    func_in    output7seg(hexdata);

}
module    timer7seg {
    
    // -- timer7seg  --
    reg    cnt_1sec[32];
        reg    cnt_100Hz[19];
        reg    sig_figure_buffer[2];
        counter_0to9    u_counter_0to9;
    


    /* common operations */
    {
    
    }

    
}
module    counter_0to9 {
    
    // -- counter_0to9  --
    reg    counter[4];
        counter_0to5    counter_0to5;
    hex_to_7segout    u_hex_to_7segout;
    


    /* common operations */
    {
    
    }

    
    /* func_in countup() operation */
    function    countup {
    
    }
        
    /* func_in reset() operation */
    function    reset {
    
    }
        
}
module    counter_0to5 {
    
    // -- counter_0to5  --
    reg    counter[3];
        hex_to_7segout    u_hex_to_7seg;
    


    /* common operations */
    {
    
    }

    
    /* func_in countup() operation */
    function    countup {
    
    }
        
    /* func_in reset() operation */
    function    reset {
    
    }
        
}
module    hex_to_7segout {
    
    // -- hex_to_7segout  --
    wire    seg_value[8];
        


    /* common operations */
    {
    
    }

    
    /* func_in output7seg(hexdata) operation */
    function    output7seg {
    
    }
        
}


良かった。。。というか、Interface誌をもっと早く、読みなおせば良かった。何時かの時点でPapyrusからNSLを出力するのから、ツールでUMLからNSLを生成する方法に変わったのだろうか?
  1. 2011年01月08日 06:33 |
  2. NSL
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1685-3492c8c4
この記事にトラックバックする(FC2ブログユーザー)