FSMでCSVファイルを使って、ユーザ定義コードを使用する方法

概要

FSMエディタを使ってステートマシンを作成していますが、手作業でステートマシンにコードを配置するのは困難です。ステートマシンが大きくなるにつれ、増々大きなコードを各ステートに追加します。何か間違っているでしょうか?簡単な方法がないでしょうか?

対応

デフォルトでは、エンコードデータは保存されステートダイアグラムドキュメント (*.asf)に格納されます。しかしステートダイアグラムエディタでは、外部のCSVファイル (*.csv)からエンコーディングデータを読み込んだり保存することが可能です。

CSVファイルはステートダイアグラムエディタから生成可能で、任意のテキストエディタで手動で作成することもできます。CSVファイルにはステート名、コード値、およびオプションの基数の詳細情報がカンマで区切られて含まれています。CSVファイルの1行のフォーマットは次の通りです。

<ステート名>,<コード値>[,<基数>]

ここで

<ステート名>はステートの名前を定義します。ステート名は Verilog プロジェクトの場合は大文字小文字の区別がありますが、VHDLをステートマシンのターゲットHDLに選択した場合は大文字小文字の区別がありません。

<コード値>はステートマシンがパラメータにより定義された状態に遷移する時に、ステートレジスタの値を決定します。コード値はバイナリ値または16進値で指定可能です。

<基数>はパラメータの基数を指定するオプションです。次の文字列が使用可能です。バイナリ、8進、10進および16進値。このパラメータにより、ステートレジスタの値の指定時に使用可能な文字列のサブセットが決まります。その他の文字は使用できません。

CSVファイルのフォーマットが正しくなかったり不正なパラメータを含んでいる場合には、ステートダイアグラムエディタは次のようなエラーかワーニングをコンソールウィンドウに通知します。

# Warning: Incorrect line : . Line omitted.

FSM コマンドメニューを使ってエンコーディングデータのインポートまたはエクスポートを選択する場合は、エンコーディングファイル (*.csv)を読み込んだり保存する前に、マシンリストボックスから任意のマシンを選択してください。

エンコーディングデータをファイルにエクスポートするには

  • FSM メニューから Save FSM Encoding オプションを選択します。

  • または Machine Properties ダイアログボックスの General タブで、Encoding 欄の Saveボタンをクリックします。

  • Save encoding file ウィンドウにてファイルの保存場所と名前を指定し、保存ボタンをクリックします。

ファイルからエンコーディングデータをインポートするには

  • FSM メニューから Load FSM Encoding オプションを選択します。

  • または Machine Properties ダイアログボックスの General タブで、Encoding 欄の Loadボタンをクリックします。

  • Open encoding file ウィンドウにて読み込むファイルの場所と名前を選択し、開くボタンをクリックします。

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.