回答の内容が二転三転してしまい、申し訳ございません。
積分区間を7μ秒遅れとしておりますが、積分区間に合わせて波形メモリも7μ秒遅れでスタートさせなければならいことが判明いたしました。
add_rom についての正しいコードは、以下のようになると思います。
addr_rom <= symbol_cnt[3:0]*320 +(symbol_cnt-7*80)/16;
現状の公開ファイルですと、67μ秒以降は意図しない波形メモリの番地を読んでしまいます。しかしながら、67μ秒〜71μ秒にかけて積分処理は続いていますから、積分結果のIQ値に誤差を生じていまいます。
出稿直前に、積分区間の調整をしていたため積分区間と波形メモリのタイミングを揃えるのを、忘れてしまったのかと思います。
私のほうで、上記の誤りを実機で十分に確認した後、公開ファイルの訂正を予定しております。
ご質問くださった読者様には、取り急ぎ、誤りのお知らせをさせていただく次第です。
このたびは、誤りを見つけてくださったこと、大変に感謝申し上げます。
▼初心者さん:
>お返事ありがとうございます。
>
>>波形メモリは、周期波形がピッタリ収まるように入っていますので、終点から始点にジャンプしても、波形が連続的につながるようになっています。
>
>波形メモリは0〜5119番地まで入っていますので、58ページ図6.6のイメージで最後のアドレス5119番地の次はアドレス0番地になるのが正しいと理解してます。
>ですが、98ページに記載のaddr_romですと、アドレス5119番地の次が320番地になってまして0番地ではないですが、これは間違いではないでしょうか?
>
>symbol_cntが5359の場合、addr_rom = 15*320 + (5359-3*80)/16 = 5119
>symbol_cntが5360の場合、addr_rom = 0*320 + (5360-3*80)/16 = 320