由於 Quartus® II 軟體版本 13.0 及更新版本的問題,包含 AXI 預設從屬但沒有 AXI Slave 的 Qsys 系統無法正確編譯和模擬。模擬期間會報告下列錯誤:
Modelsim:** 錯誤 _mm_interconnect_0_addr_router.sv (196):(vlog-2730) 未定義變數:「write_transaction」
Synopsys VCS :「 錯誤-[IND] 識別碼未宣告_interconnect_0_addr_router.sv,196
「write_transaction」識別碼尚未宣告。如果預期不會出現此錯誤,請檢查您的設定是否包含「altpcietb_bfm_vc_intf_ast_common.v」
--------------------------------------
為了解決這個問題,您必須執行下列步驟:
1. 移除 altpcietb_bfm_ep_example_chaining_pipen1b.vo 中也定義的sim_filelist中的下列備援檔案:
altpcierd_cdma_ecrc_check_128.v
altpcierd_cdma_ecrc_check_64.v
altpcierd_cdma_ecrc_gen.v
altpcierd_cdma_ecrc_gen_calc.v
altpcierd_cdma_ecrc_gen_ctl_128.v
altpcierd_cdma_ecrc_gen_ctl_64.v
altpcierd_cdma_ecrc_gen_datapath.v
altpcierd_rx_ecrc_128.vo
altpcierd_rx_ecrc_64.vo
altpcierd_tl_cfg_sample.v
altpcierd_tx_ecrc_128.vo
altpcierd_tx_ecrc_64.vo
altpcierd_tx_ecrc_ctl_fifo.v
altpcierd_tx_ecrc_data_fifo.v
altpcierd_tx_ecrc_fifo.v
altpcierd_pcie_reconfig.v
2. 在/_examples/一般/testbench 目錄下開啟 altpcietb_bfm_ep_example_chaining_pipen1b.vo」
3. 將「_altcrc」附錄到以下列線路上的原始名稱,以重新命名第二個模組的宣告
- 第 23425 行將altpcierd_rx_ecrc_128變更為altpcierd_rx_ecrc_128_altcrc
- 29557 行將altpcierd_rx_ecrc_64變更為altpcierd_rx_ecrc_64_altcrc
- 第 33081 行將altpcierd_tx_ecrc_128變更為altpcierd_tx_ecrc_128_altcrc
- 第 39787 行將altpcierd_tx_ecrc_64變更為 altpcierd_tx_ecrc_64_altcrc
4. 修改下列runtb_vcs.sh
- 變更QUARTUS_ROOTDIR,以指向目前的 Quartus 安裝目錄
- 在「vcs」之後,在命令列中新增「–cla」選項
- 新增 「.。/「 在「incdir」之後,將目錄納入測試臺上方,讓腳本找到altpcietb_bfm_vc_intf_ast_common.v
新的命令將看起來像下列內容:
vcs -lca -ntb_opts檢查 -R vcs lic 等待錯誤 100 v2k incdir ../ ../../common/testbench/ ../../一般/incremental_compile_module -f sim_filelist.f -l 成績單
這個問題將在未來的 Quartus II 軟體版本中解決。