fc2ブログ

[NEEK]NiosII SBT経由ModelSimコンパイル時の`includeフォルダ

元々VEEKでLCD用SGDMAディスクリプタチェーン作成が上手くいかず、
NEEKの成功例を参考にするため、再度NEEKで作業してるのだが、
いろいろ大ハマリ。

NEEKでは、ディスクリプタチェーンは成功して、LCDには何かしら出てるが、
問題点としては、

 ・外部SSRAM I/Fタイミングをミスってるらしく、SSRAMをNiosIIの
  プログラムメモリにするとチェーン作成も成功しない。LCDチカチカもしない。

 ・SSRAMの代わりに、DDRをプログラムメモリとして、チェーン作成は成功してる。
  ちなみにプログラムメモリを内蔵SRAMにするのは容量オーバー。
  チェーン作成はしてるけど、SSRAMをVRAMにしてるため、SSRAM to SGDMA to FIFO
  の転送が遅いと思われ、1Frame分塗り潰そうとしても、動きが変。
  画面の左上から右下まで順に塗り潰されるのが正常動作。
  しかし実際には、画面左上から塗り潰すと同時に、画面を横に3分割程したうち、
  上から2/3くらいのラインからなぜか同時に塗り潰されて行く。

という感じ。

んで、題名のとおり時間はかかるがModelSimで確かめてみようかと起動したら、

# ** Error: C:/user/work/neek/qsys_tutorial/sysid_debug/sysid_debug_qsys/testbench/sysid_debug_qsys_tb/simulation/submodules/avalonif_lcd_seg.v(7): Cannot open `include file "cq_vga2_define.v".
# -- Compiling module avalonif_lcd_seg
# C:/altera/11.1sp1/modelsim_ase/win32aloem/vlog failed.

というエラー。
無いと言われてる"cq_vga2_define.v"をどのフォルダに置くべきか調べたら、

C:\user\work\neek\qsys_tutorial\sysid_debug\software\sysid_debug\obj\default\runtime\sim\mentor\


ここに置いたら読み込み成功した。

(2012/5/26追記)
またinclude場所のエラーが出たので、前調べた場所に置いたけどエラー消えない。

# ** Error: C:/user/work/neek/CG_2D_lcd_seg_ok/CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodules/avalonif_lcd_seg.v(9): Cannot open `include file "lcd_seg/cq_vga2_define.v".


/cygdrive/c/user/work/neek/CG_2D_lcd_seg_ok/software/CG_2D_lcd_seg_ok/obj/default/runtime/sim/mentor



よく見たら、回路ソース内のincludeが、lcd_segフォルダ内になってるから、上記にlcd_segフォルダを
作って、そこに入れたらエラー消えた。
けど、また次のエラー。

# ** Error: (vsim-3389) C:/user/work/neek/CG_2D_lcd_seg_ok/CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodules/CG_2D_qsys.v(1028): Port 'avalonst_sink_empty' not found in the connected module (7th connection).
# Region: /CG_2D_qsys_tb/cg_2d_qsys_inst/pixel_fifo
# ** Error: (vsim-3389) C:/user/work/neek/CG_2D_lcd_seg_ok/CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodules/CG_2D_qsys.v(1028): Port 'avalonst_source_empty' not found in the connected module (13th connection).
# Region: /CG_2D_qsys_tb/cg_2d_qsys_inst/pixel_fifo
# ** Fatal: (vsim-3365) C:/user/work/neek/CG_2D_lcd_seg_ok/CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodules/CG_2D_qsys.v(1028): Too many port connections. Expected 12, found 14.
# Time: 0 ps Iteration: 0 Instance: /CG_2D_qsys_tb/cg_2d_qsys_inst/pixel_fifo File: C:/user/work/neek/CG_2D_lcd_seg_ok/CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodules/CG_2D_qsys_pixel_fifo.v
# FATAL ERROR while loading design




下に原因の箇所書いてみた。pixel_fifo回路のポートに不一致があるってこと。
なんで呼び出し側(CG_2D_qsys.v)にはavalonst_sink_emptyがあるのに、
module側には無いんだ?

<CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodule/CG_2D_qsys.v>

CG_2D_qsys_pixel_fifo pixel_fifo (
.wrclock (altpll_c0_clk), // clk_in.clk
.reset_n (~rst_controller_reset_out_reset), // reset_in.reset_n
.avalonst_sink_valid (pixel_fifo_in_valid), // in.valid
.avalonst_sink_data (pixel_fifo_in_data), // .data
.avalonst_sink_startofpacket (pixel_fifo_in_startofpacket), // .startofpacket
.avalonst_sink_endofpacket (pixel_fifo_in_endofpacket), // .endofpacket
.avalonst_sink_empty (pixel_fifo_in_empty), // .empty
.avalonst_sink_ready (pixel_fifo_in_ready), // .ready
.avalonst_source_valid (pixel_fifo_out_valid), // out.valid
.avalonst_source_data (pixel_fifo_out_data), // .data
.avalonst_source_startofpacket (pixel_fifo_out_startofpacket), // .startofpacket
.avalonst_source_endofpacket (pixel_fifo_out_endofpacket), // .endofpacket
.avalonst_source_empty (pixel_fifo_out_empty), // .empty
.avalonst_source_ready (pixel_fifo_out_ready) // .ready
);



<CG_2D_qsys/testbench/CG_2D_qsys_tb/simulation/submodule/CG_2D_qsys_pixel_fifo.v>

module CG_2D_qsys_pixel_fifo (
// inputs:
avalonst_sink_data,
avalonst_sink_endofpacket,
avalonst_sink_startofpacket,
avalonst_sink_valid,
avalonst_source_ready,
reset_n,
wrclock,

// outputs:
avalonst_sink_ready,
avalonst_source_data,
avalonst_source_endofpacket,
avalonst_source_startofpacket,
avalonst_source_valid
)
;



ぐぐってみたら、既知のエラーとして情報あった。自分でポート削除しろって。
http://www.altera.com/support/kdb/solutions/rd12242011_577.html

Due to a problem in the Quartus® II software version 11.0 and later, you may see this error during synthesis if your design includes a Qsys system with an On-Chip FIFO Memory component that uses an Avalon® Streaming interface.

Workaround / Fix

To work around this problem, edit the Verilog HDL file for the top-level design created by Qsys containing the On-Chip FIFO Memory. Remove or comment out the connection for the avalonst_sink_empty port. For example, remove or comment out the following port connection on the On-Chip FIFO Memory instance:

.avalonst_sink_empty(...),

This issue is scheduled to be fixed in a future version of the Quartus II software.



スポンサーサイト



カレンダー
02 | 2012/03 | 04
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード