(原創) 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安裝檔

vb001

Step 3:Custom Setup

 vb002

雖然VirtualBox有支援USB,但僅支援USB 1.0,而USB-Blaster用的是USB 2.0,這必須要裝VirtualBox Extension Pack才能解決。

Step 4:安裝虛擬硬體驅動程式

vb003

接下來VirtualBox會安裝好幾個虛擬硬體的驅動程式,可以放心的按『繼續安裝』繼續。

Step 5:安裝完成

vb004

Step 6:安裝VirtualBox Extension Pack

vb005

Step 7:同意VirtualBox 授權

vb006

Step 8:VirtualBox安裝成功

vb007

2.如何在VirtualBox內安裝Windows XP SP3?

Step 1:新增虛擬機器

vb007-1

Step 2:歡迎新增虛擬機器精靈

vb008

Step 3:設定虛擬機器名稱和作業系統類型

vb009

本文Guest OS使用Windows XP SP3為範例,若使用其他作業系統請自行選擇。

Step 4:設定記憶體

vb010

記憶體設定必須非常小心,必須看你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:設定虛擬硬碟

vb011

Step 6:設定虛擬磁碟類型

vb012

VDI是VitualBox自己定義的格式,VMDK是一種open的格式,VMware也用,VHD則是Microsoft定義的格式,Parallels則不太清楚,基本上選哪一種格式都可以,因為在VM匯入時目前只支援VMDK格式,所以在此也選擇VMDK。

Step 7:設定虛擬磁碟檔案配置方式

vb013

『固定大小』用起來會快些,但第一次建立時較久,而動態配置第一次不用建立所以很快,也不占空間,直到真正使用才建立,不過日後用起來會稍微慢些。在此選擇『動態配置』是為了省些空間。

Step 8:設定虛擬磁碟檔案位置和大小

vb014

由於Quartus II 11.0裝完,包含Quatus II 11 + all device + Nios II SBT + ModelSim Altera共14.2G,加上日後要simulation產生的dump file,所需的硬碟空間會相當可觀,請自行評估所需要的空間。在此設定虛擬硬碟容量為50GB。

Step 9:確認建立新的虛擬機器

vb015

Step 10:確認建立新的虛擬磁碟

vb016

Step 11:其他虛擬機器設定

vb017

Step 12:系統設定

vb018

維持原本設定即可。

Step 13:設定視訊記憶體

vb019

由於裝了VirtualBox Guest Additions(稍後會裝),可以不用開機動態改變解析度,建議設定視訊記憶體為128MB,以適合各種解析度的動態改變。

Step 14:設定Windows XP光碟ISO檔

vb020

由於目前空有虛擬機器,但卻沒有任何Guest OS,需要自己安裝Windows XP,所以將光碟設定為Windows XP安裝光碟的ISO檔。

Step 15:啟動虛擬機器

 vb021

Step 16:鍵盤控制資訊

vb022

當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:滑鼠控制資訊

vb023 

當Guest OS啟動後,只要滑鼠放在Guest OS內,VirtualBox會自動將滑鼠訊息送至Guest OS,稱為『滑鼠指標整合』,若某些應用程式在Guest OS對『滑鼠指標整合』出現異常,可自行停止此項功能。

Step 18:開始安裝Windows XP

vb024

至此開始安裝Windows XP,之後Windows XP的安裝過程就此省略。

Step 19:安裝Guest Additions

vb025

Guest Additions提供了一些額外有用的功能,如可以動態調整Guest OS解析度,可使Host OS與Guest OS共用剪貼簿…等。

Step 20:歡迎安裝Guest Additions

vb026

Step 21:設定Guest Additions安裝路徑

vb027

接受預設值即可。

Step 22:設定Guest Additions元件

vb028

接受預設值即可。

Step 23:Guest Additions安裝完成

vb029

3.如何在VirtualBox內安裝Quartus II?

Step 1:設定光碟為Quartus II 11.0的ISO檔

首先到ftp://ftp.altera.com/outgoing/release下載11.0_acds_windows.iso

vb085

Step 2:Quartus II安裝畫面

vb031

Step 3:Introduction

vb032

Step 4:License Agreement

 vb033

Step 5:設定安裝路徑

vb034 

Step 6:選擇安裝工具

vb035

基本上Quartus II一定要選,Nios II EDS就看你要不要用到Nios II與SOPC,至於ModelSim,雖然說你原本可能習慣使用其他simulator,不過ModelSim與Nios II整合較好,可以省下很多整合上的問題,建議還是安裝ModelSim。

Step 7:安裝前最後summary

vb036

Step 8:安裝中

vb037

Step 9:是否啟動TalkBack

vb038

是否允許Altera將一些資訊透過網路送回Altera公司,我是不建議勾選,因為真的不確定Altera會送回什麼資訊。

Step 10:安裝成功

vb039

4.如何在VirtualBox內設定Quartus II的license?

Step 1:設定license

vb040

若還沒設定license,第一次執行Quartus II時,會出現以上畫面,要求你設定license。

Step 2:重新設定虛擬機器

vb041

Step 3:移除Quartus II 11.0的ISO檔

vb042-1

vb042-2 

Step 4:設定網路卡

vb043

這裡是本文的第一個重點更改虛擬網卡的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:設定共用資料夾

vb044

請自行設定Host OS與Guest OS能共用的目錄,以方便Host OS與Guest OS相互傳檔。除此之外,若你的Host OS從來沒安裝過Quartus II,將來也必須要靠此共用目錄來安裝Host OS的Altera USB Blaster驅動程式。

Step 6:設定license

vb046

重新啟動虛擬機器與Quartus II,再次出現要求設定license的視窗,選擇『If you have a valid license file, specify the location of your license file』

Step 7:指定license file

vb048

若license成功,將出現已經license的功能。

Step 8:執行Quartus II

vb049

執行Quartus II成功。

Step 9:執行Nios II SBT

vb050

vb051

vb052

執行Nios II SBT成功。

Step 10:執行ModelSim-Altera

vb053

ModelSim-Altera需要另外設定license,可以使用MGLS_LICENSE_FILE或者LM_LICENSE_FILE系統變數設定。

Step 11:設定MGLS_LICENSE_FILE系統變數

vb054

Step 12:重新啟動ModelSim-Altera

vb055

vb056

vb057

假如你是從桌面的捷徑去啟動ModelSim-Altera,在關閉ModelSim時,一定會遇到這個錯誤,而且怎麼關都關不掉,必須用工作管理員強制關閉才行。主要是因為TcL不認識ModelSim捷徑的中文『桌面』兩個字。

解決的方法是從『開始』去啟動ModelSim-Altera則正常,你也可自行將『開始』內的ModelSim-Altera捷徑重新複製到桌面。

vb058

vb059

執行ModelSim-Altera成功。

5.如何在VirtualBox安裝USB Blaster?

我們都知道為了使Quartus II透過USB與開發版溝通,必須安裝Altera USB Blaster這個driver才行,但若使用了VM之後,整體架構就更複雜了,如下圖所示:

vb059_1

安裝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

vb062

將DE2-70的USB Cable插入USB後,Windows XP會出現以上視窗,表示偵測到新的硬體,選擇『不,現在不要』,按『下一步』繼續。

Step 2:從清單或特定位置安裝(進階)

 Untitled-2

選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。

Step 3:設定Altera USB Blaster驅動程式目錄

Untitled-3

這一步是關鍵,由於我們在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

Untitled-4

按『繼續安裝』安裝Altera USB Blaster。

Step 5:完成安裝Altera USB Blaster

Untitled-5

按『完成』結束安裝。

Untitled-7

成功安裝後,在裝置管理員可以發現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

vb041

Step 2:選取Altera USB Blaster

 vb061-1

vb061-2

Step 3:Host OS搜尋到新的硬體

vb062

當Guest OS啟動後,由於剛剛設定Guest OS要使用Altera USB Blaster,此時Host OS會表示偵測到新的硬體,選擇『不,現在不要』,按『下一步』繼續。

Step 4:從清單或特定位置安裝(進階)

vb063

選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。

Step 5:設定VirtualBox USB驅動程式目錄

 vb064

VirtualBox USB驅動程式安裝目錄在C:\Program Files\Oracle\VirtualBox\drivers\USB\device\,設定後按『下一步』繼續。

Step 6:安裝VirtualBox USB

vb065

按『繼續安裝』安裝VirtualBox USB。

Step 7:完成安裝VirtualBox USB

vb066

按『完成』結束安裝。

vb067

成功安裝後,在裝置管理員可以發現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搜尋到新的硬體

 vb068

當Host OS安裝了Altera USB Blaster與VirtualBox USB之後,Guest OS只要重新啟動就會搜尋到新的硬體。

Step 2:從清單或特定位置安裝(進階)

vb069

選擇『從清單或特定位置安裝(進階)』,並按『下一步』繼續。

Step 3:設定Altera USB Blaster驅動程式目錄

vb070

由於已經在Guest OS內,只要直接指定安裝目錄為『C:\altera\11.0\quartus\drivers\usb-blaster』即可,按『下一步』繼續。

Step 4:完成安裝Altera USB Blaster

vb071

按『完成』結束安裝。

vb072

安裝完成後,可在Guest OS的裝置管理員發現Altera USB Blaster。

Step 5:執行Programmer測試

vb073

第一次啟動Programmer時,會發現沒有抓到USB Blaster,按『Hardware Setup』繼續。

vb074

在Hardware Setup已經找到了USB Blaster,選擇後按『Close』離開。

vb075

Programmer已經找到了USB Blaster。

vb076

實際將*.sof 寫入FPGA試試看,結果100%成功。

6.如何在VirtualBox內將已經安裝好的Quartus II匯出?

Step 1:匯出應用裝置

vb077

選擇你已經建立好的VM,執行『檔案』 –>『 匯出應用裝置』。

Step 2:歡迎使用應用裝置匯出精靈

vb078

確認是否為要匯出的VM,按『下一步』繼續。

Step 3:設定會出路徑

vb079

設定要匯出的路徑,按『下一步』繼續。

Step 4:設定匯出相關資料

vb080

可在此設定匯出的ova檔的相關資料,按『匯出』即正式開始匯出,需要等待一段時間。

7.如何在VirtualBox內匯入已經安裝好的Quartus II?

Step 1:匯入應用裝置

vb081

選擇『檔案』-> 『匯入應用裝置』。

Step 2:歡迎使用應用裝置匯入精靈

vb082

按『選擇』選擇要匯入的*.ova檔。

 vb083

選擇好要匯入的*.ova檔後,按『下一步』繼續。

Step 3:設定VM存檔路徑

vb084

最後一步是要設定將匯入的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)

全文完。

posted on 2011-08-20 21:12  真 OO无双  阅读(6579)  评论(2编辑  收藏  举报

导航