(原創) Qsys Generation Tab的Simulation設定的意義 (SOC) (Nios II) (Qsys)
Abstract
若要對含有Nios II的SOPC系統進行simulation,在Qsys的Generation Tab有新的設定,本文討論其設定的意義。
Introduction
使用環境:Windows XP SP3 + VirtualBox 4.1.2 + Quartus II 11.0
在Qsys的Generation tab的Simulation部分,有以下的設定:
根據[1] Quartus II Handbook 11.0 Volumn 1:Section II Chapter 5的P.5-12,對各選項的設定解釋如下:
我個人是對以上的解釋有看沒有懂,以下是我實驗後的總結:
Create simulation model:Qsys會產生simulation model與testbench,但不會產生命名為xxx_tb.sys的testbench Qsys system,這種就類似FPGA不使用SOPC時,在top module自己將所有module手動接起來一樣。
Create testbench Qsys system:Qsys會幫你產生命名為xxx_tb.sys的testbench Qsys system,而這個testbench Qsys system就相當於simulation的top module。值得注意的是:這個選項只會幫你建立1個testbench Qsys system,並不會建立testbench與simulation model。
Standard, BFMs for standard Avalon interfaces:所建立的testbench Qsys system會掛上所有的simulation model,包含各種記憶體與其他周邊,這是最完整的。
Simple, BFMs for clocks and resets:根據Altera的官方解釋,看起來所建立的testbench Qsys system只會掛上clocks與reset simulation model,事實上還會掛上所有記憶體的simulation model,其實這是合理的,因為Nios II要跑C code,一定要有記憶體才能跑,而且在Nios II SBT的Run As ModelSim時,會根據Linker Script的定義,產生要載入各種記憶體的*.hex或*.dat然後載入到各記憶體的simulation model。值得注意的是:這個選項不會掛上記憶體以外周邊的simulation model,所以Qsys在Generate時會快一些。
Create testbench simulation model:此選項會根據之前所產生的testbench Qsys system去產生testbench與simulation model。
Conclusion
實務上該如何設定這些選項呢?根據[2] Simulating Nios II Embedded Processor Designs,建議使用以下設定:
Create simulation model:None
Create testbench Qsys system:Standard, BFMs for standard Avalon interfaces
Create testbench simulation model:Verilog
理由是既然選擇使用testbench Qsys system,就不用再選擇使用『Create simulation model』,而且Standard, BFMs for standard Avalon interfaces可以產生最完整的testbench與simulation model,包含系統所有的記憶體與周邊。
Reference
[1] Quartus II Handbook 11.0 Volumn 1:Section II Chapter 5的P.5-12
[2] Simulating Nios II Embedded Processor Designs
全文完。