MATLAB Answers

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

조회 수: 8(최근 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
Shoumei
Shoumei 2019년 11월 17일
ルックアップテーブルオプティマイザーでは、Math Operations意外にも任意の演算をルックアップテーブル(LUT)に置換できます。
ただ、QuantizerブロックはそもそもLUTに置き換えるようなものではありません。そこがピンと来ないようでしたら、Simulinkにおける固定小数点演算のやり方をFixed-Point Designerのドキュメントをご覧になって理解された方が良いように思います。
また、モデルを拝見したところ、doubleデータ型のままのようですので、データ型を固定小数点化する必要があります。HDL CoderのドキュメントのExampleページに、様々な例があるので、まずはそれらを参考にしてモデルを組み立てて行った方が、エラーで右往左往するより近道だと思います。
初心者にはこの資料も役立つと思います。
HDL Coderの使い方資料

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!