modelsim工具問題集

2021-08-10 06:26:37 字數 1112 閱讀 3049

1、modelsim 在編譯大工程時,有時候為了除錯方便,需要出很多不同的小版本。

一般新手用指令碼編譯檔案時喜歡用如下方式:

##vlog -sv -work work "../verilog/encode_frame_hw_mb2s.v"

##vlog -sv -work work "../verilog/encode_frame_hw_mb3s.v"

##vlog -sv -work work "../verilog/encode_frame_hw_mb4t.v"

##vlog -sv -work work "../verilog/encode_frame_hw_mb5t.v"

##vlog -sv -work work "../verilog/encode_frame_hw_mb6t.

上面方式容易出問題,假設verilog原始檔中包含有define命令,·ifndef ***  ·else   ·endif。 用vlog 編譯會將所有檔案當成乙個單獨的個體最後鏈結, 不會將其當成乙個統一的工程。也就是說,在某個.v 檔案只認自己當前檔案內是否有define,而不會考慮整體。這樣會造成想通過define 切很多版本,達不到想要的效果。

舉例說明 在 encode_frame_hw_mb4t.v" 檔案中假如有

·ifndef fpga_sim

assign       a  = b;

`else

assign    a =c ;

`endif

加入你在工程頂層 甚至在指令碼 vism 中新增「 define  fpga_sim" 但是你在encode_frame_hw_mb4t.v 中沒有新增,在用vlog 單個編譯檔案時,依然會認為沒有fpga_sim,而走上面的分支。

include "../verilog/encode_frame_hw_m0iy.v";

include "../verilog/encode_frame_hw_mb0s.v";

include "../verilog/encode_frame_hw_mb1s.v";

include "../verilog/encode_frame_hw_mb2s.v";

這樣在sim_inc的最前端新增乙個專用的define檔案,那麼會起到全域性作用。

後端工具集

判斷索引是否存在 param indexname return public boolean i istsindex string indexname actionget return response.i ists 重新建立索引 補救措施 如果索引誤刪 自動建立新的索引 postconstruct...

測試工具集

測試工具 spoon 可用於 android 不同機型裝置自動化測試,能將應用 apk 和測試 apk 執行在不同機器上並生成相應測試報告。tencent apt emmagee 網易開源的效能測試工具,包括 cpu 記憶體 網路流量 啟動時間 電池狀態等 android py uiautomato...

sqlite API 工具集 一

sqlite3是sqlite乙個全新的版本,它雖然是在sqlite 2.8.13的 基礎之上開發的,但是使用了和之前的版本不相容的資料庫格式和api.sqlite3是為了滿足以下的需求而開發的 因此為了支援這些特性我改變了資料庫的格式,建立了乙個與之前版本不相容的3.0版.至於其他的相容性的改變,例...