ハードウェア記述言語(HDL)を対象にしたステートマシン図のモデリング

<< 目次を表示 >>

ページ位置:  ソースコードの生成と読み込み > 振る舞いモデルからのソースコード生成 >

ハードウェア記述言語(HDL)を対象にしたステートマシン図のモデリング

このページでは、ハードウェア記述言語(HDL)へのソースコード生成を対象にしたステートマシン図のモデリング方法について説明します。ハードウェア記述言語(HDL)はユニファイド版あるいはアルティメット版で利用できます。

 

HDLが対象のステートマシン図では、以下の内容を前提としています。:

 

項目

説明

対象のトリガが明示されること

  • 「変更」のトリガは、以下の2つの条件を満たす場合に、非同期のトリガと見なされます。
    • 子状態からの遷移で、該当のトリガに関連づけられたものが存在する
    • 遷移先の状態に、同じトリガで自己遷移する遷移が存在する

 

  • 非同期のトリガは、以下のパターンに沿うようにモデリングしなければなりません。
    • トリガの種類は「変更」でなければなりません。
    • アクティブな状態(状態マシン要素に含まれる状態)は、そのトリガと関連づけられた遷移を持つ必要があります。
    • その遷移の遷移先の状態は、同じトリガによって、自己遷移するような遷移を持つ必要があります。
       
  • クロック

種類が「時間」のトリガで、アクティブ状態への遷移を引き起こすトリガはクロックであると見なします。トリガの仕様の欄には対象の言語に応じた内容を記述する必要があります。

 

クロックトリガの仕様

トリガの種類

言語

記入する内容

ポジティブのトリガ

ネガティブのトリガ

時間

VHDL

rising_edge

falling_edge

Verilog

posedge

negedge

SystemC

positive

negative

ポートとトリガの割り当て

対象のコンポーネントのポートを定義した後は、ステートマシン図で利用するトリガとポートを関連づける必要があります。

 

次の図はその例です。

 

ポートとトリガの割り当ては、依存の関係を利用します。

アクティブ状態

上記の2つの条件は、ハードウェアコンポーネントの実装を可能にするために必要な準備です。

これらの準備が終わった後は、アクティブな状態 (状態マシン要素に含まれる状態)を作成し、ステートマシン図のモデリングを行います。

 

注意:

  • 振る舞いモデルからのコード生成を有効にするためには、対象の状態マシン要素が、モデルブラウザで生成対象となるクラス要素の直下に子要素として配置されていなければなりません。
  • 現在のコード生成機能は、1つのコンポーネントに対してクロックトリガを1つのみ利用できます。また、現在のコード生成機能では、トリガは生成するクラス要素配下にある必要があります。(クラス要素配下にないトリガを、他のクラスと共通的に利用した場合は、そのトリガについてソースコード生成できません。)

 

 

参照: