[NEEK]NiosII SBT経由ModelSimコンパイル時の`includeフォルダ
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.