|
前言
可程式邏輯元件(Programmable Logic Device, PLD),是指一種可讓使用者組成邏輯功能的數位積體電路,這跟過去的TTL
/CMOS標準晶片只能提供固定電路功能大不同,其可協助邏輯IC設計與驗證,有效縮短產品開發時間;FPGA(Field
Programmable Gate Array)、CPLDs (Complex Programmable Logic Devices)即是大規模的PLD。在內部聯結方式上可分為連續式連結(continuous
interconnect),及片段式聯結(segment interconnect)。
PLD、FPGA、CPLD有何不同? (簡)
-- 學術上較正式的說法是:CPLD是由PLA
(AND/OR array ) block所組成,而FPGA是以Logic block組成,需要外部download
RAM,且FPGA容量比CPLD大許多
-- 維基百科對FPGA、CPLD的解釋,也跟筆者所整理的差不多,不過沒有圖示比較看不懂在說什麼
Altera產品簡介
Altera
Device
早期Altera稱呼其所有的可程式邏輯元件為CPLDs,並採用連續式之聯結方式以提供可預測之邏輯延遲時間、更快的操作速度及晶片效益。APEXTM
20K(Advanced Programmable
Element MatriX)系列,同時結合了FLEXTM系列Look-Up
Table logic、MAXTM系列Product-Term
logic的優點,並且內含Embedded
memory,即所謂MultiCore Architecture,硬體架構完全不同以往,因此必需搭配新的軟體QuartusTM使用。(MAX+PlusII只能支援FLEX、MAX
device)
目前Altera官網只有Stratix、Cyclone(FPGA)、MAX(CPLD)、HardCopy(ASIC)的訊息,拿掉了APEX與FLEX:Altera
Device Overview。(但QuartusII內的Device選項還是有APEX、FLEX)
-
High-End
FPGA:StratixIV、StratixIII、StratixII、Stratix
-
Midrange
FPGA:Arria
-
Low-Cost
FPGA:CycloneIII、CycloneII、Cyclone
-
Low-Cost
CPLD:MAXII、MAX
-
HardCopy
ASIC:HardCopyIV、HardCopyIII、HardCopyII、HardCopy
MAX、MAXII,後者多了8Kbit On-chip Flash memory,並且是TSMC
0.18um製程,比MAX low-power
從Stratix、StratixII、StratixIII到最新的StratixIV,FPGA容量分別是79K、179K、338K、681K
(LEs),呈等比級數增加。Altera還特別把StratixIV與對手Xilinx的Virtex-5做個比較,結論是35
percent higher performance、50
percent lower power,真是有夠嗆的。單就FPGA容量來看,StratixIII與Virtex-5同樣是330K(前者稱logic
elements,後者稱logic cells)。
LEs (Logic
Elements)與實際設計gate-count的換算,沒有精確的公式,但使用經驗上,LEs大約是gate-count數的1/5。以StratixIII
EP3SL200 (199K LEs)為例,大約可實現100萬 gate-count的設計。
ref. Why did Altera stop providing equivalent gate counts for its APEXII and newer devices?
Basic
Building Block of Logic
MAX、Cyclone系列device的邏輯基本單元是Logic
Element (LE),以Look-Up Table (LUT)為基礎。Stratix系列device的邏輯基本單元是Adaptive
Logic Module (ALM),對於有組合邏輯的設計有較好的performance。
命名原則
-
Device型號最尾端的數字,表示LEs數目;StratixII
EP2S180=179K
LEs、StratixIII EP3SL340=338K
LEs
-- 2S表示StratixII、3S表示StratixIII,3C表示CycloneIII,M表示MAX或MAXII
-- L表示balance logic, memory, and multiplier,E表示Enhanced
more memory and multipliers
-
字尾有加GX的,表示with clock data recovery、multigigabit
transceiver;如StratixII GX、StratixIII GX
Altera
Software
-- QuartusII
QuartusII
與 MAX+PlusII 都是Altera專為其產品(hardware device),所提供的EDA
Tool。它可以執行HDL的編輯(Editor and syntax check) -->模擬(Simulator)
-->合成(Synthesis) -->FPGA佈局 -->Netlist
download to CPLD / FPGA。
由於QuartusII
(MAX+PlusII) 的simulator只能接受自己所編輯的waveform作為觸發輸入(test
pattern),而不能接受一般HDL所撰寫的test-bench,所以筆者通常不用QuartusII的simulator來做模擬,而用ModelSim或Verilog-XL。此外,QuartusII的合成器對於一些HDL的語法也不支援,所以建議用Synopsys
Design-Analyzer合成完所產生的gate_level.v或是.edf (netlist
file),作為QuartusII的輸入,只由QuartusII執行
"FPGA佈局 -->Netlist
download to CPLD / FPGA" 這部份的工作就好。
Quartus不支援的合成語法:二維(含)以上的陣列memory宣告
...
一開始Quartus
~ QuartusII 1.0只能支援APEX系列,而不支援FLEX、MAX系列(需用MAX+PlusII軟體);與MAX+PlusII相較,Quartus在做繞線最佳化與時間分析,功能較強。QuartusII在Compiler時間比Quartus提升25~40%,fmax則好約20%。
截至2008.11為止,最新的版本為QuartusII
8.1,且官網建議MAX+PlusII只用來維護舊有產品。
可以網路下載QuartusII
Web Edition,而QuartusII Web Edition與QuartusII Subscription
Edition Software的比較請參閱此處。
本文主要針對QuartusII
8.0 的使用做介紹,也可善用"Help
\ Tutorial \ "官方所提供的互動式影音教學(Interactive
Tutorial)。
Quartus
基本操作
-
Main
Plane
-
Create a New Project & Settings
-
Compiler Settings
-
Timing
Analysis
QuartusII非常佔用PC系統資源,建議PC DRAM最少要有1G。
Quartus
進階功能
-
Incremental Compilation
-
Constraint
Entry
-
Planner
-
Viewer
-
Debug
Tool
-
SignalTap II
-- 以incremental
compilation避免影響原本的P&R,
不需要邏輯分析儀(LA)
-
SignalProbe
-- incremental routing, 不改變已有的P&R, 但需要邏輯分析儀
-
Logic
Analyzer Interface --
-
MegaWizard
Plug-In Manager
Altera最新消息
相關網站連結
後記
分享使用心得是希望能讓更多兩岸從事IC設計的工程師或使用Altera做研究的學生,在初次接觸這套軟體時,儘快熟悉。真正的know-how是無法寫成文件的,那是一種靈活運用的能力與其中內涵的創新特質,故我相信與其擔心分享技術經驗會樹立競爭對手,不如把心力放在持續不斷的前進。現在不是單打獨鬥或是強調英雄主義的時代,唯有以宏觀的視野與胸襟,才有機會創造更大的成就規模。
對外連結內容以另開視窗方式處理,原作者或單位保有完全之著作權益
本文最新內容載於網際星空_電子站,為
oldfriend
所有,轉載請經原作者同意
|