惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
C
Cisco Blogs
L
Lohrmann on Cybersecurity
宝玉的分享
宝玉的分享
I
Intezer
aimingoo的专栏
aimingoo的专栏
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
GbyAI
GbyAI
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
U
Unit 42
Cyberwarzone
Cyberwarzone
爱范儿
爱范儿
I
InfoQ
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
P
Palo Alto Networks Blog
Microsoft Azure Blog
Microsoft Azure Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
NISL@THU
NISL@THU
T
Threatpost
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Schneier on Security
Security Latest
Security Latest
Martin Fowler
Martin Fowler
H
Help Net Security
小众软件
小众软件
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
IT之家
IT之家
WordPress大学
WordPress大学
S
Securelist

博客园 - 真 OO无双

(轉貼) Bit Twiddling Hacks (SOC) (Verilog) (C) (筆記) 如何移除VirtualBox所遺留下的驅動程式? (SOC) (VirtualBox) (筆記) always block內省略else所代表的電路 (SOC) (Verilog) (原創) 如何在Qsys Subsystem使用Interrupt? (SOC) (Nios II) (Qsys) (原創) Qsys或RTL做修改後,Nios II SBT該如何面對新的硬體? (SOC) (Nios II) (Qsys) (原創) 如何解決目錄改變時,Nios II project無法編譯的問題? (SOC) (Nios II) (DE2-70) (原創) Qsys Generation Tab的Simulation設定的意義 (SOC) (Nios II) (Qsys) (筆記) 如何寫入binary file某個byte連續n byte的值? (C/C++) (C) (筆記) 如何寫入binary file某個byte的值? (C/C++) (C) (筆記) 如何讀取binary file某個byte連續n byte的值? (C/C++) (C) (筆記) 如何讀取binary file某個byte的值? (C/C++) (C) (原創) Altera Technology Roadshow 2011 Taipei (SOC) (Quartus II) (Nios II) (Qsys) (原創) 如何在安裝SELinux的環境執行Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (筆記) 如何得知Quartus II最新版到底修改了哪些東西? (SOC) (Quartus II) (Nios II) (SOPC Builder) (Qsys) (筆記) Qsys resource整理 (SOC) (Nios II) (Qsys) (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox) (筆記) 如何在RedHat Linux安裝VirtualBox Guest Additions? (SOC) (Linux) (RedHat) (VirtualBox) (筆記) 常用設定暫存器值的編程技巧 (SOC) (C/C++) (C) (Verilog) (筆記) $dispaly()、$strobe()、$monitor() 、$fwrite()與blocking / nonblocking的關係 (SOC) (Verilog) (Debussy) (Verdi)
(原創) Quartus II安裝新觀念:如何將Quartus II安裝在VirtualBox內? (SOC) (Quartus II) (VirtualBox)
真 OO无双 · 2011-08-20 · via 博客园 - 真 OO无双

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)

全文完。