顯示具有 第0章 標籤的文章。 顯示所有文章
顯示具有 第0章 標籤的文章。 顯示所有文章

2011年2月13日 星期日

SOP - 標準作業流程

為了讓各位在安裝 Linux EDA 工具有一致的規格可遵循,在此筆者定義了安裝 Linux EDA 的標準化作業流程 (SOP - Standard Operation Procedure),基本上來說,安裝 Linux EDA 的 SOP 如下圖所示。根據下圖所定義的規範,我們將安裝 Linux EDA 分為 6 大步驟,分別是:
  • 下載 - 至 CIC 下載我們所要安裝之 EDA 工具
  • 解壓縮 - 解壓縮我們所要安裝之 EDA 工具
  • 安裝 - 安裝我們所要安裝之 EDA 工具
  • 設定環境 - 設定我們所要安裝之 EDA 工具操作環境
  • 測試 - 測試我們所要安裝之 EDA 工具是否能正常動作
  • 故障排除 - 如果安裝有問題的話,我們要設法將問題排除


在這本書中之其它章節,我們將全部以此 SOP 為操作流程進行 Linux EDA 工具之安裝與架設。未來各位將可依據自己的需求,照著上述的 SOP 來新增你要的 Linux EDA 工具。

BASH 或是 CSH,今晚你要選那一道 ?

在我開始講 Shell 的選擇之前,如果到現在為止你還不懂得什麼叫 Shell 的話,孩子,這本書不是為你準備的。請關上這本書,換上一本「快快樂樂裝 Linux」、「輕輕鬆鬆管理伺服器」之類的書,一直到你知道什麼叫 Shell 之後,再回來看這本書吧。

只要你會安裝 Linux 的話,你就會發現幾乎所有的 Linux Distribution 例如 Red Hat Enterprise Linux、Fedora、Debian 等全部都使用 BASH 來作為內定的 Shell。是的,就我個人的看法,BASH 已經是目前地表上功能最強的 Shell 環境了,如果你還回頭使用其它 Shell 如 CSH 的話,那我只能說聲祝福你。

不幸的是,幾乎我知道所有 CIC 提供的 EDA 工具設計設定檔全都是 CSH 環境底下的,這造成了許多同學在安裝架設上的困擾,因為他們不曉得如何將 CSH 的設定轉換至 BASH 底下。在這種情況下,他們不由自主的被迫使用 CSH,於是無緣得見 BASH 的美好。

這本書的內容是以 BASH 為主,我完全不會講解如何將 CIC 所給我們的 CSH 設定檔拿來使用,因為那是 CIC 的智慧財產,我不能拿來騙錢。更何況就我個人的使用習慣,CSH 實在頗為難用。因此在本書中的所有設定完全是以 BASH 為主,請各位要注意。

目錄的迷思

如果你一直看到這邊都還沒有被嚇跑,那筆者要恭喜你,順便跟你說:沒有,我們還沒有要到下一章,現在我們要來討論一下 EDA 工具應該要安裝到那個目錄。有許多人安裝 CIC 所提供的 EDA 工具時,將 CIC 所寫的安裝說明當成聖經,而裡面的資料與設定更是連一個字都不敢動,深怕一不小心檔案就會裝錯、軟體就無法使用,結果各位就無法從各位的指導教授手下順利的畢業,這真是慘絕人寰呀..各位回去可以在實驗室的主機上寫個「慘」字..orz...

事實上,CIC 所提供的檔案與安裝流程均是其工程師為了簡化各位的安裝流程所重新包裝過的檔案,其設定檔亦是 CIC 的工程師所整理出來的。在此必須強調的是:CIC 的設定方式不一定符合每間實驗室的使用習慣,特別是使用 C Shell 就讓我覺得十分難用。此外,其目錄設定亦不一定適合 Linux 底下的套件管理。

個人的安裝習慣反而是喜歡將所有的 EDA 工具安裝到 /opt 目錄底下,我之所以這麼作的理由原因很簡單,由於 Linux 有許多版本,為了防止不同版本間的不相容造成軟體開發人員的困擾,因此 Linux 的發展是依循著 Linux Standard Base (LSB)的定義,而 LSB 中之檔案系統階層標準是由 Filesystem Hierarchy Standard (FHS)所定義出來的,這是 Linux 所要遵循的規格。根據 FHS 的規範,沒有所謂的 /usr/cad 這個目錄,但是 /opt 這個目錄就沒有那麼多的限制。在 FHS 2.3 的規格中我們可以發現 /opt 的定義如下:

/opt is reserved for the installation of add-on software packages.
/opt 是保留來安裝外加之軟體套件。

因此到底要將 EDA 工具安裝到那個目錄底下這件事情,怎麼作比較符合 LSB 的規範應該十分清楚了。在此要告訴各位的是:大家不一定要照 CIC 的安裝流程來玩(當然前提是你要知道你在幹什麼),只要符合你管伺服器的習慣,軟體能方便安裝、管理的話都是可接受的安裝方式。不過,就我個人的意見是:還是符合 FHS 的規範比較好,畢竟那是一個公開的標準。

接下來,我們統一將本書中將會安裝的軟體之安裝目錄與 CIC 預設的安裝目錄作完整列表如下表,以供讀者比較。

EDA 軟體目錄比較列表
軟體名稱/版本
CIC 預設安裝目錄
本書規畫之安裝目錄
Cadence icfb Custom IC Design tools/5.1.41USR6
/usr/cad/cadence/IC
/opt/EDA/IC
Synopsys Hspice /2009.09
/usr/cad/synopsys/hspice
/opt/EDA/hspice
Synopsys Cosmosscope/2007.03-sp1
/usr/cad/synopsys/cosmos_scope
/opt/EDA/cosmos_scope
SpringSoft Laker/32v4p2
/usr/cad/spring_soft/laker
/opt/EDA/laker
SpringSoft ADP/21v4p2
/usr/cad/spring_soft/adp
/opt/EDA/adp
Mentor Calibre/2009.2_36.21
/usr/cad/mentor
/opt/EDA/calibre

從上面的表格你會發現,我們將所有的 EDA 工具存放在 /opt/EDA 目錄下,未來將會讓我們的管理、升級等工作較為輕鬆而且符合 FHS 規範。

在你往下一章看之前,要注意的事項

  • 如果你是學校的教授,那麼你必須向財團法人國家實驗研究院國家晶片系統設計中心(以下簡稱 CIC) 申請軟體授權,如此一來你才能至 CIC 的網站下載軟體並申請 License 來使用,有關如何申請 CIC 的部份,請直接參閱 CIC 的申請須知,如果你沒有完成申請的話,接下來的流程你通通都不能作,因此不必看下一章。
  • 如果你是被指派安裝 EDA 工具的研究生或是大學部學生,不管你是那一種我都必須稱讚你能力很強或者特別帶塞才會被指派來裝 EDA 工具。不過請你不用擔心,以前我學習如何裝 EDA 工具時我也不會覺得我特別帶塞,搞不好你覺得我這本書寫得不好也可以自己出一本「快樂輕鬆安裝 EDA」的書來拯救世人。OK,我又扯遠了,要是你只是學生身份的話你必須請你的指導教授完成 CIC 申請流程並下載軟體,之後你才可以開始安裝這些軟體。
  • 除了 EDA 使用必須向 CIC 申請,製程檔也要向 CIC 申請,而且是透過 CIC 向台積電或是聯電申請,因此要特別小心。這裡各位要注意的是智慧財產權管控的問題,如果你申請的是台積電 0.35 um 以上的製程,你必須在申請的一年內至少下線一顆晶片才行,否則台積電或是聯電在下一年將不會允許你再申請同樣的製程。而且所有使用到這些製程的學生全部都要填寫相關的智慧財產權切結書,如果你不照遊戲規則玩的話下一年度再次申請台積電或是聯電的製程恐怕就有點困難。反過來說,要是你只是純粹教學上的用途(也就是不想下線),你可以申請 CIC 所提供的 0.18 um 虛擬製程,這是 CIC 所特別提供給學校教師進行教學用途所作的製程檔。詳細的申請流程在此不多加說明,請各位(當然你必須是學校教師才能申請)自行連接到 CIC 網站,並點選製程服務如下圖所示。

  •  當你申請好 EDA 設計軟體及製程檔之前,請你對你要安裝 EDA 軟體的電腦再看一眼,你確定這就是你要裝的伺服器主機嗎 ? 對我來說,EDA 伺服器至少要有以下特性:
    • CPU 愈快愈好,最好是雙核心以上的 CPU,對於 CPU 核心的數量,我個人的建議是:雙核不嫌少,八核不嫌多。
    • 記憶體容量愈大愈好,我們目前最高一台裝了 12 GB(我沒寫錯) 的 RAM 來當開發平台,俗話說:沒圖沒真相,所以以下是真相:
                     total       used            free     shared    buffers     cached
Mem:         12169      11665           503          0        443      10058
-/+ buffers/cache:        1163       11005
Swap:          9538             7          9531

        我們可以看到 total Mem 共有 12169 MB == 12 GB,不過要在 Linux底下驅動 12 GB 的 RAM 有時得自己編核心,如此一來效能比較好。

    • 硬碟愈大愈好,我們目前使用的伺服器上面裝了 2 TB X 2 加 160 GB 的硬碟以供全系師生使用。當然,我假設你已經了解如何在Linux 底下驅動 RAID 卡以外接 8 顆硬碟。萬一你只是在實驗室內部使用,那麼 在不需安裝 RAID 卡的情況下安裝 1 TB X 3 顆硬碟 (SATA 或是 E-IDE 介面都行) + 一台光碟機來放 Linux 安裝光碟的配置也勉勉強強夠用了。如果你不希望在未來為了硬碟空間不足搞得雞飛狗跳,學弟與學長為了儲存空間不足而大打出手,最終引來指導教授的惡言相向的話,先裝大一點的硬碟能確保你在未來數年都不必面臨硬碟容量不足的問題。在此要說明筆者安裝硬碟的哲學:在 IC 設計的流程中,硬碟成本可以視為 == 0 元,重要的是裡面的資料 !!
    • 你要安裝的主機一定要有實體 IP,也就是不能架設在使用虛擬 IP 的主機上,同時必須確定你的主機可以通過 IP 的正反查,否則十分有可能在執行 EDA 工具檢查 License 時出現問題。如果你看不懂這段我在寫什麼的話,那麼..孩子,這本書不是為你準備的,請先看網路相關的書籍等你了解什麼叫 IP 正反查再回頭來看這本書。
    • 不必購買 3D 功能很強的繪圖卡,也不必驅動你的音效卡,這對執行 EDA 工具沒有太大幫助。不過對於 Starcraft 2代(星海爭霸 2)及 Crysis (末日之戰) 倒是十分必要,如果你買高速 3D 加速卡是為了執行這些程式,當心不能畢業 !!

2011年2月10日 星期四

我們所使用的 Linux Distribution

所謂的 Linux Distribution 是指 Linux 發行套件,目前最常見的 Linux
發行套件有:Red Hat Enterprise Linux (RHEL)UbuntuDebian .. 等。有別於 CIC 或是其它 EDA 廠商所建議的以 Red Hat Linux 為預設之 Linux Distribution,我們選擇 Debian Linux 作為我們的 EDA 伺服器平台,理由如下:

價格
Debian Linux 可以自由下載及更新,較某些 Distribution 要花錢註冊來得更為方便,因此是我們的首選。

安全性
Debian Linux 有一個全球性的安全性更新網站:http://security.debian.org/,可以在軟體有安全漏洞的情況下第一時間的推出安全更新套件以提供使用者自行下載。重點是:這項服務不但速度快而且無需繳交任何費用。

穩定性
Debian Linux 最主要的發展哲學在於穩定,在 Debian 的發展層級底下分為三個不同的階層,分別是:穩定 (Stable)、測試 (Testing) 與不穩定 (Unstable)。其中穩定層級之軟體均是經過一再檢查確定其軟體安全性與穩定性均到達一定標準後才能編入穩定層級。而測試層級中的軟體版本則較穩定層級來得新,但是尚未經過完整的驗証,因此不列入穩定層級,必須經過一番時日的驗証後才能進入穩定層級。至於不穩定層級中的軟體則是最新版,但大部份尚未經過驗証,其穩定性亦較差,此層級僅供測試使用。由於 Debian 套件對於系統穩定性的要求極為嚴謹,因此重視系統穩定性的使用者可以確保其作業系統的穩定與安全性。

套件管理方便性
除了 Debian 本身的穩定性之外,其套件的升級方式亦值得一提:Debian 採用 APT 的機制來進行軟體安裝與管理,在 APT 的機制下使用者可以選擇網路上連線速度快的主機來進行軟體的更新與安裝、移除動作。在某些軟體發現有漏洞的情況下,亦可連接至 security.debian.org 網站來進行線上更新的動作。以上所描述之軟體安裝與更新、移除等動作完全不需向任何個人/公司繳交軟體費用。因此對於尚無經濟能力的學生而言,更是一大福音。

小結
綜合上面的結論,我們將以 Debain Linux 為我們伺服器的主要作業系統,我們會在隨後章節介紹如何建立一台 Debian Linux 伺服器,並以此為基礎,一步步的安裝本書要提及之 EDA 工具軟體。

本書所提及之設計流程軟體

本書將針對兩大 IC 設計流程之 Linux EDA 工具安裝進行教學,以下我們將簡介相關之軟體設計流程及其相對應之軟體。

全客戶設計流程 (Full Custom Design Flow)

有關全客戶 IC 設計流程及其相對應之軟體,我們整理在圖1中,根據此圖之內容,我們可以發現目前 CIC 所提供之 IC 設計軟體主要如下:
  • Cadence Custom IC Design Tools (Composer、Virtuoso、Analog Environment)
  • SpringSoft Laker
  • SpringSoft ADP
  • Synopsys Hspice
  • Synopsys Cosmos Scope
  • Mentor Calibre
這裡必須說明的是:上述的 IC 設計軟體並非一成不變的,舉例來說,在 0.35 um 製程前我們較常使用 PDracula 來進行 DRC/LVS 驗証。而先前在工作站上很常用的 Awaves 因為沒有 Linux 版,因此也被 Cosmos Scope 所取代。因此未來會有什麼新的工具會加入 CIC 的全客戶式 IC 設計流程中是很難想像的,搞不好再過幾年我們所用的工具會全部替換以適應更新的深次微米製程。
圖1. 全客戶設計流程及其相對應之軟體文字



標準元件設計流程 (Cell Based Design Flow)
(尚末完成)

前言

在開始說明 Linux EDA (Electronic Design Automation) 伺服器架設前,我們先討論一下各位的心態,各位為何要來學習如何架設 Linux EDA 伺服器。據筆者個人的理解,各位來學習如何架設 Linux EDA 伺服器的動機如下:

  • 指導教授叫各位架設 Linux EDA 工具,但是如何著手各位並無頭緒。
  • 你對架設 Linux EDA 工具很有興趣,但是 CIC 沒有這方面的課程。
  • 你是跟朋友來湊熱鬧的。
  • 你根本就是個跟我一樣可憐的菜鳥教授,學生逼你灌 EDA 工具給他們用,否則他們就無法學習/實作晶片下線。

雖然每個人學習架設 Linux EDA 伺服器的理由五花八門,但是不可否認的是:大多數人都沒有 Linux 的基礎,甚至連 ls、vi 等指令的用法都不知道。在此筆者要請問各位一個問題:

Are you ready ? 
(你準備好要管理 Linux 伺服器了嗎 ?)

也許各位覺得這沒什麼大不了的,不就是裝軟體嘛,照這份講義或是 CIC 的說明也能裝好。如果這樣的話,各位就小看 Linux EDA 安裝的複雜性了,以下筆者列了一些問題請各位看看會不會解決:

與 Linux 安裝有關的問題:
  • 你能不能發現你的硬碟出現壞軌 ? 沒有人會願意將資料存在一台有壞軌的硬碟上。
  • X Window 安裝完無法啟動時你能不能進行錯誤排除 ?
  • 網路不通時你知道錯誤點在哪嗎 ? 網路不通時是無法檢查 License 的。
  • 在文字模式下如何編輯文字檔 (提示:vi 的使用方式你熟悉嗎 ?)
  • 硬碟爆掉時你能夠馬上查出是誰佔據最多硬碟空間嗎 ? 有些惡劣的使用者會利用寶貴的硬碟空間亂塞檔案。
  • 你會不會新增硬碟到系統上 ? 我們總是有擴充硬碟空間的需求的。
  • 萬一系統跳電後,機器無法啟動,你會不會修理 ? 或者,最糟糕的情況是儘速安裝新系統,並將舊系統上的資料備份過去。
  • 使用者的程式當在機器裡,你會不會將這個程式砍掉 ?
  • 你知道如何完整的備份一個目錄嗎 ? (提示:tar 的用法你了解嗎 ?)
  • 你會不會使用 cd、cp、mv、rm 等檔案操作指令 ? 文字模式下可沒有檔案總管可以使用。
  • 你知不知道目前系統裡有多少人連進來 ? 或者,曾經有哪些人連進來你的系統。
  • 你會不會架設 ftp 伺服器 ? 有人希望使用 ftp 來下載他們的檔案。
  • 某位使用者忘記密碼了,你會不會幫他重新設定密碼 ?
  • 你會新增使用者帳號嗎 ? 你會移除使用者帳號嗎 ?
  • 萬一系統執行的速度很慢,你能否檢查是何原因 ?
  • 假設你的系統必需換 IP,你會修改嗎 ?
  • 你會不會補你系統的漏洞,以免被駭客攻擊。
  • 使用者要求你提供抓圖軟體以便他抓模擬波形圖或是電路圖,你怎麼辦 ?
  • 其它
與 EDA 管理有關的問題:
  • CIC 提供新版的 XXX 下載,你會不會將你原先的舊版升級成新版 ?
  • 承上,萬一升級失敗,你能不能儘速換回舊版,先擋兩天,以免學生無法畢業?
  • XXX 工具需要 OOO 函式庫才能執行,你會不會安裝這個函式庫 ?
  • AAA 軟體跟 BBB 軟體要整合才能執行,你會不會整合 ?
  • CCC 軟體的 License 設定有別的參數,你會不會設定 ?
  • 你能否檢查你系統是否能通過 License 伺服器的檢查 ?
  • icfb 開啟的速度很慢,你知不知道為什麼 ?
  • icfb 開啟元件時突然變成唯讀模式了,你能不能找出問題?
        筆者註:光是這個問題就有兩三種可能的發生原因,我來一一提示如下:
    • icfb 沒有 check 到正確的 license,因此是以唯讀模式開啟,怎麼解決呢 ?
    • 學生上次執行完 icfb 沒有正確關閉視窗,因此某些 cell view 有 lock 檔,導致這次學生重開 icfb 後也是以唯讀模式開啟,怎麼解決呢 ?
    • 學生根本就是小白,他在 A 電腦開啟 icfb 後沒關閉,再在 B 電腦又開一次,此時 A 電腦中的 icfb 鎖住 library 的編輯權限,因此在 B 電腦中只能以唯讀模式開啟,怎麼解決呢 ?
    • 其它不明原因導致以唯讀模式開啟,但是我們無法解決,怎麼解決呢 ?
       上述這幾個不同的問題,其「症狀」都是 icfb 只能以唯讀模式開啟,請問你會不會找出正確的「症狀」來對症下藥 ?
  • hspice 不能模擬,你知不知道為什麼 ? 
        筆者註:光是 hspice 不能模擬,也有好幾種可能的原因:
    • hspice 的 license 沒有設定正確,怎麼解決呢 ?
    • 在 virtuoso 中需要設定 include 檔,這個檔案的內容打錯了,或是沒有這個檔案,或是此檔內部路徑中的檔案不存在,怎麼解決呢 ?
    • 你的硬碟沒有空間了,當然 hspice 就不能跑,怎麼解決呢 ?
  • 同上,DDD EDA 工具執行有問題,你知不知道為什麼 ?
  • 使用者 A 能執行 EEE 軟體,但使用者 B 不行,你能不能解決 ?
  • 其它
    上面所提出的問題林林總總,只不過是筆者近年來管理 Linux EDA 伺服器所遇上的一部份問題。各位可以看看能否解決,如果不行的話,你要試著在網路上、書本裡尋找答案。當然,最好的方式是把你電腦中的 Windows 洗掉,只灌 Linux,每天開機來強迫自己學習 Linux 底下的解決方案。久而久之,上面的問題你都能找到解答。祝各位好運 !!

2011年2月9日 星期三

Are you ready?

這本書適用人士/不適用人士

這本書不是初學者使用手冊,不是快快樂樂學 Linux、輕輕鬆鬆玩 X 視窗之流的書,更不是讓你買來放在枕頭底下就能將 Linux EDA 工具安裝弄懂的。我不打算寫一本「舒舒服服學 Linux EDA 架設」之類的書,這本也不是 Linux 入門手冊。僅管我會盡可能的將實際的操作流程一步步的寫在這本書中,但是你仍必須俱備相當的 Linux 操作經驗才能順利吸收書中的內容。因此,我為各位準備了一下這本書的適用人士/不適用人士清單。

適用人士

這本書適用的人士如下:
  • 你必須了解 Linux 的操作使用,至少有三至五年的操作經驗,這裡所謂的「操作經驗」不是裝好 Linux 之後看一下「哦..原來 Gnome 桌面長這樣」然後又切回去用 XP 的那種人,而是你的的確確有實務操作的經驗。
  • 你對於如何架設 Linux EDA 伺服器有強烈的興趣,但礙於本身能力尚無法達到這方面的成果,或者是你「已經」會裝某些軟體,但另一些軟體的安裝仍有問題的。
  • 你對於什麼是全客戶式晶片設計流程或是標準元件設計流程有相當的了解,甚至已經下過教育性晶片或前瞻性晶片的。
不適用人士

這本書的不適用人士如下:

  • 你要問我什麼是 Linux
  • 你要問 Linux 可以作什麼事或是每天使用 Linux 的時間不超過三個小時
  • 你要問什麼是 vi、ls、tar、root、dns、ip 正反查 .. 等東西的
  • 你要問什麼是全客戶式晶片設計流程或是標準元件設計流程的
  • 你要問 ...,你要問的東西太多了,還是問天吧! (註:陳之藩 - 謝天中有一句話:「要感謝的人太多了,就感謝天罷」,同樣的:要問的東西太多了,還是問天吧。)

在這邊我要再次強調,這本書不是給初學者看的,伺服器架設是一項專業知識、專業技能,它結合了你對 Linux 的了解、你自己故障排除的能力(通常是長時間 Linux 實際操作經驗的累積)、你對 IC 設計流程的理解。當然最重要的是你個人的 EQ,我曾經為了某些執行上的小問題無法解決而苦思不已,特別是這方面的問題在 Google 上也查不到。如果不是特別有耐心的人能一直追蹤問題的來龍去脈,是無法解決這些問題的,而我個人也不保証你照我書上的流程一步步執行就能順利安裝成功。因此,你有足夠的 EQ 來面對問題、解決問題是最重要的。