HDLコード生成時のエラーに関しまして

15 次查看(过去 30 天)
Tomoya Wakasa
Tomoya Wakasa 2019-11-15
评论: Shoumei 2019-11-17
いつもお世話になっております。
早速ですが、現在研究にてFPGA実装するためにSimulink及びHDL Coderを利用して作成したモデルの書き換えを行っております。
作成したデルタシグマ変調器のHDLコード化を試みているのですが、「Quantizerブロック」及び「Discrete Transfer Fcnブロック」それぞれにて以下の様なエラーが発生しまいます。考え得る様々な事を試してみたのですが、対処法が未だに不明なのでご回答を頂けると幸いです。
【Quantizer】
・ブロックはHDLコード生成でサポートされていません。
【Discrete Transfer Fcn】
・HDLコード生成では、複素数データ型をブロックの1つ以上の出力でサポートしていません。
・HDLコード生成では、ブロックの1つ以上の入力での複素数データ型をサポートしていません。
現状、QuantizerブロックはData Type Conversionブロックにて挟んでいます。
また、本件関するスクリーンショットを添付しておりますが、変調器後半部でQuantizerブロックとSignumブロックを配置・接続しなければ正しい変調結果は得られません。
ご回答、宜しくお願い申し上げます。
<添付画像>
Modulator1.png…変調器全体像
Modulator1_Ex…変調器後半部拡大
  1 个评论
Tomoya Wakasa
Tomoya Wakasa 2019-11-15
作成したデルタシグマ変調器については、サブシステム化を行っております。

请先登录,再进行评论。

采纳的回答

Shoumei
Shoumei 2019-11-15
QuantizerブロックはHDL生成できません。代わりにData Type Conversionブロックを使って固定小数点化すると良いと思います。Fixed-Point Designerのドキュメントに詳細は書いてあると思います。
HDL Coderのドキュメントにもコード生成に対応しているブロックと制約事項が書いてあるので、それを確認してからモデルを作ったほうが良いと思います。
  2 个评论
Tomoya Wakasa
Tomoya Wakasa 2019-11-17
ご回答ありがとうございます。
QuantizerブロックがHDL Coderに対応していないことはMathworks社のHPより存じていたのですが、ルックアップテーブルオプティマイザーで該当ブロック及びData Type Conversionブロックを1つのブロックへ変換できるのはMath Operationsブロック群だけなのでしょうか?
Shoumei
Shoumei 2019-11-17
ルックアップテーブルオプティマイザーでは、Math Operations意外にも任意の演算をルックアップテーブル(LUT)に置換できます。
ただ、QuantizerブロックはそもそもLUTに置き換えるようなものではありません。そこがピンと来ないようでしたら、Simulinkにおける固定小数点演算のやり方をFixed-Point Designerのドキュメントをご覧になって理解された方が良いように思います。
また、モデルを拝見したところ、doubleデータ型のままのようですので、データ型を固定小数点化する必要があります。HDL CoderのドキュメントのExampleページに、様々な例があるので、まずはそれらを参考にしてモデルを組み立てて行った方が、エラーで右往左往するより近道だと思います。
初心者にはこの資料も役立つと思います。
HDL Coderの使い方資料

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!