(原創) Quartus II安裝新觀念:如何將Quartus II安裝在VirtualBox內? (SOC) (Quartus II) (VirtualBox)
Abstract
VM並不是什麼新的觀念,透過VM我們可以在一個OS去執行其他OS,若我們將Quartus II也裝在VM中,將可解決一些長久以來Quartus II使用上所遇到的問題。
Introduction
使用環境:Windows XP SP3 + VirtualBox 4.1.2 + Quartus II 11.0 + DE2-70
在使用Quartus II的過程中,你是否也像我一樣遇到過以下的問題:
1.公司或實驗室只購買一套Quartus II license,或者只購買Altera某個IP的一套license,因此該license已經綁死了某張網卡的Mac Address,但卻希望也能同時在多台電腦使用。
2.公司或實驗室購買了多套EDA tools,但各是用不同的Mac Address所註冊的license,每次都要到不同電腦使用很不方便,希望能將所有的EDA tools都能在同一台電腦使用。
3.我的project是使用某個Quartus II版本開發,因為工作交接將此project拿到其他同事或同學的電腦開啟時,卻因為Quartus II版本不同而無法開啟,或者儘管Quartus II版本相同,卻因為未知原因無法順利合成或者合成結果與原本不同。
4.手邊有多個project,各用不同Quartus II版本開發,因無法將多個Quartus II版本安裝在同一台電腦而困擾。
5.書中或網路下載的範例程式,是使用較舊的Quartus II版本,但在我的電腦是安裝最新的Quartus II版本,因此無法開啟,或者合成結果與預期不同,必須安裝範例程式所指定較舊的Quartus II版本才能解決。
6.想要在教室的多台電腦安裝Quartus II,但因為每台電腦環境的差異,導致有些電腦可能無法順利安裝Quartus II,而且每台電腦安裝Quartus II需要很久的時間,且要一台一台設定license也很麻煩。
7.在執行Nios II或者SOPC Builder時,有時會出現莫名其妙的Java exception...。
假如你也有以上的困惱,在此介紹一個Quartus II安裝新觀念:改將Quartus II裝在VM內,將可解以上所遇到的問題:
1.儘管license已經綁死某張網卡的Mac Address,但VM允許我們去改虛擬網卡的Mac address,因此可以騙過Quartus II而順利同時在多台電腦使用。
2.VM可以支援多張虛擬網卡,每張網卡都可以去自行修改Mac address,因此可以將不同Mac address license的EDA tools安裝在同一台電腦上。
3.當project交接時,不是只將整個project目錄下所有檔案交接,而是將整個project與Quartus II環境連同VM一起打包,這樣可以保證對方的環境與我的環境完全相同。
4.將不同的Quartus II裝在不同的VM下,這樣同一台電腦下安裝幾個版本的Quartus II都不是問題。
5.若同時要在多台電腦安裝Quartus II,只要將已將安裝好的Quartus II VM打包好匯出,然後複製到其他電腦再匯入即可,不用再一台一台去設定license。
6.Java exception通常都很難解,很可能是電腦中安裝了其他的軟體與Quartus II相衝,在VM中只安裝Quatus II,不再安裝其他軟體,因此不會有軟體相衝的問題。
將Quartus II裝在VM中雖然很好用,但有一些先決條件:
1.VM中一定會比較慢,所以需要更高檔的硬體環境來跑,無論是CPU或者是記憶體,建議是使用64位元的Windows 7,這樣才能將多安裝的記憶體完全抓到後給VM使用,不像32位元的Windows XP只能抓到3G的記憶體,使用起VM很吃緊。
2.VM的設定比較繁瑣,比直接安裝Quartus II難度高。
第一個問題只能花錢去解決,本文主要是分享將Quartus II安裝在VM中所需的設定與注意事項。我所用的VM是Oracle的VirtualBox [1],這是一個完全free的VM,沒有版權的問題,而且很穩定功能又多。
本文將討論以下主題:
1.如何安裝VirtualBox?
2.如何在VirtualBox內安裝Windows XP SP3?
3.如何在VirtualBox內安裝Quartus II?
4.如何在VirtualBox內設定Quartus II的license?
5.如何在VirtualBox安裝USB Blaster?
6.如何在VirtualBox內將已經安裝好的Quartus II匯出?
7.如何在VirtualBox內匯入已經安裝好的Quartus II?
1.如何安裝VirtualBox?
Step 1:下載VirtualBox
請到http://www.virtualbox.org/wiki/Downloads下載VirtualBox安裝檔與VirtualBox Extension Pack
Step 2:執行VirtualBox安裝檔
Step 3:Custom Setup
雖然VirtualBox有支援USB,但僅支援USB 1.0,而USB-Blaster用的是USB 2.0,這必須要裝VirtualBox Extension Pack才能解決。
Step 4:安裝虛擬硬體驅動程式
接下來VirtualBox會安裝好幾個虛擬硬體的驅動程式,可以放心的按『繼續安裝』繼續。
Step 5:安裝完成
Step 6:安裝VirtualBox Extension Pack
Step 7:同意VirtualBox 授權
Step 8:VirtualBox安裝成功
2.如何在VirtualBox內安裝Windows XP SP3?
Step 1:新增虛擬機器
Step 2:歡迎新增虛擬機器精靈
Step 3:設定虛擬機器名稱和作業系統類型
本文Guest OS使用Windows XP SP3為範例,若使用其他作業系統請自行選擇。
Step 4:設定記憶體
記憶體設定必須非常小心,必須看你Host OS有多少記憶體來設定,否則Guest OS很容易無故當機,以我的狀況而言,我Host OS為Windows XP SP3 (32 bit),有4G記憶體,Windows XP可實抓3GB左右,因此Guest OS設定1GB算是保守的設定,等待安裝成功後,可以再慢慢調適Guest OS該擁有多少記憶體,另外Guest OS記憶體越多,Quartus II在做Synthesis與P&R時速度也較快。
Step 5:設定虛擬硬碟
Step 6:設定虛擬磁碟類型
VDI是VitualBox自己定義的格式,VMDK是一種open的格式,VMware也用,VHD則是Microsoft定義的格式,Parallels則不太清楚,基本上選哪一種格式都可以,因為在VM匯入時目前只支援VMDK格式,所以在此也選擇VMDK。
Step 7:設定虛擬磁碟檔案配置方式
『固定大小』用起來會快些,但第一次建立時較久,而動態配置第一次不用建立所以很快,也不占空間,直到真正使用才建立,不過日後用起來會稍微慢些。在此選擇『動態配置』是為了省些空間。
Step 8:設定虛擬磁碟檔案位置和大小
由於Quartus II 11.0裝完,包含Quatus II 11 + all device + Nios II SBT + ModelSim Altera共14.2G,加上日後要simulation產生的dump file,所需的硬碟空間會相當可觀,請自行評估所需要的空間。在此設定虛擬硬碟容量為50GB。
Step 9:確認建立新的虛擬機器
Step 10:確認建立新的虛擬磁碟
Step 11:其他虛擬機器設定
Step 12:系統設定
維持原本設定即可。
Step 13:設定視訊記憶體
由於裝了VirtualBox Guest Additions(稍後會裝),可以不用開機動態改變解析度,建議設定視訊記憶體為128MB,以適合各種解析度的動態改變。
Step 14:設定Windows XP光碟ISO檔
由於目前空有虛擬機器,但卻沒有任何Guest OS,需要自己安裝Windows XP,所以將光碟設定為Windows XP安裝光碟的ISO檔。
Step 15:啟動虛擬機器
Step 16:鍵盤控制資訊
當Guest OS啟動後,由於同時執行了Host OS與Guest OS,鍵盤的輸入到底是歸Host OS還是Guest OS呢?VirtualBox預設鍵盤輸入歸Guest OS,若此時你想鍵盤輸入歸Host OS(如Alt + PrtSc)時,必須先按下Right Ctrl,取消VirtualBox對鍵盤擷取,此時Host OS才能收到Alt + PrtSc。
Step 17:滑鼠控制資訊
當Guest OS啟動後,只要滑鼠放在Guest OS內,VirtualBox會自動將滑鼠訊息送至Guest OS,稱為『滑鼠指標整合』,若某些應用程式在Guest OS對『滑鼠指標整合』出現異常,可自行停止此項功能。
Step 18:開始安裝Windows XP
至此開始安裝Windows XP,之後Windows XP的安裝過程就此省略。
Step 19:安裝Guest Additions
Guest Additions提供了一些額外有用的功能,如可以動態調整Guest OS解析度,可使Host OS與Guest OS共用剪貼簿…等。
Step 20:歡迎安裝Guest Additions
Step 21:設定Guest Additions安裝路徑
接受預設值即可。
Step 22:設定Guest Additions元件
接受預設值即可。
Step 23:Guest Additions安裝完成
3.如何在VirtualBox內安裝Quartus II?
Step 1:設定光碟為Quartus II 11.0的ISO檔
首先到ftp://ftp.altera.com/outgoing/release下載11.0_acds_windows.iso。
Step 2:Quartus II安裝畫面
Step 3:Introduction
Step 4:License Agreement
Step 5:設定安裝路徑
Step 6:選擇安裝工具
基本上Quartus II一定要選,Nios II EDS就看你要不要用到Nios II與SOPC,至於ModelSim,雖然說你原本可能習慣使用其他simulator,不過ModelSim與Nios II整合較好,可以省下很多整合上的問題,建議還是安裝ModelSim。
Step 7:安裝前最後summary
Step 8:安裝中
Step 9:是否啟動TalkBack
是否允許Altera將一些資訊透過網路送回Altera公司,我是不建議勾選,因為真的不確定Altera會送回什麼資訊。
Step 10:安裝成功
4.如何在VirtualBox內設定Quartus II的license?
Step 1:設定license
若還沒設定license,第一次執行Quartus II時,會出現以上畫面,要求你設定license。
Step 2:重新設定虛擬機器
Step 3:移除Quartus II 11.0的ISO檔
Step 4:設定網路卡
這裡是本文的第一個重點,更改虛擬網卡的Mac address為已註冊license的Mac address,如此將可騙過虛擬機器內的Quartus II。
另外必須將『啟用網路卡』打勾,這表示虛擬機器將安裝此張虛擬網路卡。
另外建議將『附加到』選擇『未附加』,且不要選擇『網路已連接』。
或許你會問,『這樣網路不就不通了嗎?』
是的,我就是要讓網路故意不通!!!
主要原因有以下幾個:
1.因為在虛擬機器內,安裝網路卡主要並不是為了網路連線,而是要騙Quartus II的license。
2.因為誰也不敢保證EDA tools有沒有安裝木馬程式,會不會透過網路暗中送什麼資料回EDA tools原廠,若是使用合法license還好,若是使用破解版,因而將使用破解版的資訊送回EDA tools原廠,那就嚴重了。
3.因為網路不通可以拒絕任何Windows的更新,有時候Windows的更新反而會造成EDA tools出問題,所以維持一個能穩定執行EDA tools的環境很重要,而不需要一直頻繁的更新OS。
而且這僅僅是Guest OS網路不通,但是Host OS網路仍然是通的,因此若需要網路相關的操作,請回到Host OS,Guest OS將只是一個單純的Quartus II環境。
本文第二個重點,因為VirtualBox允許你最多設定4張虛擬網卡,也就是4個不同的Mac address,因此我們可以原本四個不同Mac address license的EDA tools同時安裝在同一台虛擬機器上。
Step 5:設定共用資料夾
請自行設定Host OS與Guest OS能共用的目錄,以方便Host OS與Guest OS相互傳檔。除此之外,若你的Host OS從來沒安裝過Quartus II,將來也必須要靠此共用目錄來安裝Host OS的Altera USB Blaster驅動程式。
Step 6:設定license
重新啟動虛擬機器與Quartus II,再次出現要求設定license的視窗,選擇『If you have a valid license file, specify the location of your license file』
Step 7:指定license file
若license成功,將出現已經license的功能。
Step 8:執行Quartus II
執行Quartus II成功。
Step 9:執行Nios II SBT
執行Nios II SBT成功。
Step 10:執行ModelSim-Altera
ModelSim-Altera需要另外設定license,可以使用MGLS_LICENSE_FILE或者LM_LICENSE_FILE系統變數設定。
Step 11:設定MGLS_LICENSE_FILE系統變數
Step 12:重新啟動ModelSim-Altera
假如你是從桌面的捷徑去啟動ModelSim-Altera,在關閉ModelSim時,一定會遇到這個錯誤,而且怎麼關都關不掉,必須用工作管理員強制關閉才行。主要是因為TcL不認識ModelSim捷徑的中文『桌面』兩個字。
解決的方法是從『開始』去啟動ModelSim-Altera則正常,你也可自行將『開始』內的ModelSim-Altera捷徑重新複製到桌面。
執行ModelSim-Altera成功。
5.如何在VirtualBox安裝USB Blaster?
我們都知道為了使Quartus II透過USB與開發版溝通,必須安裝Altera USB Blaster這個driver才行,但若使用了VM之後,整體架構就更複雜了,如下圖所示:
安裝Host OS的Altera USB Blaster
(假如你之前曾經在Host OS安裝過任何版本的Quartus II,儘管你移除了該版本的Quartus II,也不會移除Host OS的Altera USB Blaster驅動程式,也就是說,你不必再重新安裝Host OS的Altera USB Blaster,假如你從來沒在Host OS安裝過Altera USB Blaster,就必須依照以下步驟安裝)
Step 1:插入DE2-70 USB Cable
將DE2-70的USB Cable插入USB後,Windows XP會出現以上視窗,表示偵測到新的硬體,選擇『不,現在不要』,按『下一步』繼續。
Step 2:從清單或特定位置安裝(進階)
選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。
Step 3:設定Altera USB Blaster驅動程式目錄
這一步是關鍵,由於我們在Host OS並沒有安裝Quartus II,所以在Host OS並沒有任何Altera USB Blaster驅動程式安裝目錄,所以必須將Guest OS的C:\altera\11.0\quartus\drivers\usb-blaster整個目錄複製到Host OS才行。
該怎麼從Guest OS複製到Host OS呢?在前面的4.如何在VirtualBox內設定Quartus II的license?的Step 5:設定共用資料夾,就是為了將Guest OS的Altera USB Blaster目錄複製到Host OS,讓Host OS得以安裝Altera USB Blaster。
複製完成後,將搜尋位置指向Host OS的該目錄,按『下一步』繼續。
Step 4:安裝Altera USB Blaster
按『繼續安裝』安裝Altera USB Blaster。
Step 5:完成安裝Altera USB Blaster
按『完成』結束安裝。
成功安裝後,在裝置管理員可以發現Altera USB Blaster。
安裝Host OS的VirtualBox USB
除了在Host OS與Guest OS都必須安裝Altera USB Blaster外,還必須安裝VirtualBox所提供的VirtualBox USB,作為Host OS與Guest OS之間的bridge,如此才能使Guest OS的Quartus II能夠存取Host OS的USB與DE2-70。
Step 1:設定Guest OS
Step 2:選取Altera USB Blaster
Step 3:Host OS搜尋到新的硬體
當Guest OS啟動後,由於剛剛設定Guest OS要使用Altera USB Blaster,此時Host OS會表示偵測到新的硬體,選擇『不,現在不要』,按『下一步』繼續。
Step 4:從清單或特定位置安裝(進階)
選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。
Step 5:設定VirtualBox USB驅動程式目錄
VirtualBox USB驅動程式安裝目錄在C:\Program Files\Oracle\VirtualBox\drivers\USB\device\,設定後按『下一步』繼續。
Step 6:安裝VirtualBox USB
按『繼續安裝』安裝VirtualBox USB。
Step 7:完成安裝VirtualBox USB
按『完成』結束安裝。
成功安裝後,在裝置管理員可以發現VirtualBox USB。
安裝Guest OS的Altera USB Blaster
在Host OS裝了Altera USB Blaster與VirtualBox USB之後,最後的步驟就是在Guest OS也裝上Altera USB Blaster,以下步驟與在Host OS安裝Altera USB Blaster完全一樣。
Step 1:Guest OS搜尋到新的硬體
當Host OS安裝了Altera USB Blaster與VirtualBox USB之後,Guest OS只要重新啟動就會搜尋到新的硬體。
Step 2:從清單或特定位置安裝(進階)
選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。
Step 3:設定Altera USB Blaster驅動程式目錄
由於已經在Guest OS內,只要直接指定安裝目錄為『C:\altera\11.0\quartus\drivers\usb-blaster』即可,按『下一步』繼續。
Step 4:完成安裝Altera USB Blaster
按『完成』結束安裝。
安裝完成後,可在Guest OS的裝置管理員發現Altera USB Blaster。
Step 5:執行Programmer測試
第一次啟動Programmer時,會發現沒有抓到USB Blaster,按『Hardware Setup』繼續。
在Hardware Setup已經找到了USB Blaster,選擇後按『Close』離開。
Programmer已經找到了USB Blaster。
實際將*.sof 寫入FPGA試試看,結果100%成功。
6.如何在VirtualBox內將已經安裝好的Quartus II匯出?
Step 1:匯出應用裝置
選擇你已經建立好的VM,執行『檔案』 –>『 匯出應用裝置』。
Step 2:歡迎使用應用裝置匯出精靈
確認是否為要匯出的VM,按『下一步』繼續。
Step 3:設定會出路徑
設定要匯出的路徑,按『下一步』繼續。
Step 4:設定匯出相關資料
可在此設定匯出的ova檔的相關資料,按『匯出』即正式開始匯出,需要等待一段時間。
7.如何在VirtualBox內匯入已經安裝好的Quartus II?
Step 1:匯入應用裝置
選擇『檔案』-> 『匯入應用裝置』。
Step 2:歡迎使用應用裝置匯入精靈
按『選擇』選擇要匯入的*.ova檔。
選擇好要匯入的*.ova檔後,按『下一步』繼續。
Step 3:設定VM存檔路徑
最後一步是要設定將匯入的VM存檔到哪裡,至於其他設定都可以等匯入成功後再設定,最後按『匯入』即正式開始匯入,需要等待一段時間。
Conclusion
1.可利用VM的虛擬網卡自行變更Mac address,因而達成一個Mac address的license可以給多台電腦使用。
2.VirtualBox最多可支援4張網卡,也就是說你可以將使用不同Mac address為license的tools安裝在同一台虛擬機器上。
3.Quartus II 11.0的ModelSim-Altera在桌面的捷徑有bug,會導致關閉ModelSim時Tcl執行失敗而無法結束,必須使用『開始』去啟動ModelSim-Altera。
4.為了使VM內的Quartus II也能透過USB與開發版溝通,必須在Host OS與Guest OS都安裝Altera USB Blaster,並在Host OS安裝VirtualBox USB當bridge。
5.將project連OS與Quartus II版本整個匯出成*.ova檔,可以保證到其他人的環境與原作者完全相同,減少因為OS與Quartus II版本而造成相容性的問題。
Reference
[1] Oracle VirtualBox
See Also
(原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
全文完。