You are on page 1of 26

第二章

數位電路設計與 FPGA 簡介

由於數位電路具有精確度高、抗雜訊能力強、穩定性高等優點又伴隨著
微電子技術的快速發展,使得其在超大型積體電路中,漸漸的形成了趨勢。
近年來,數位電路已經慢慢的超越類比電路。所以全數位化的電子電路將是
未來發展的方向,另外在數位電路與類比訊號中的中界角色,將由 ADC(類
比對數位轉換器)及 DAC(數位對類比轉換器)為混合訊號電路中的重要
角色。可預期的,將來除了一些特殊類比電路設計的需求外,數位化的電子
電路是將來可發展的趨勢。[30][31]

2.1 數位積體電路設計

數位積體電路的優點在於設計與分析,均較類比電路簡單而明確,同時
數位電路也易於修改成系統化與模組的設計。而在這其中,最大的變革點,
即從傳統的閘階層設計( Gate Level)設計,改變成硬體描述語言( HDL,
Hardware Description Language)的設計方式,如此大大的簡化了數位電路之
設計輸入及模擬分析的時間;更特別的是,硬體描述語言的設計,使設計者
的設計更易於維護與更新,使設計資料庫累積的速度更為迅速,加快了產品
更迭之時間與設計之週期。
數位電路設計的過程,約可分為下列四個過程,如圖 2-1-1 所示。

(1) 設計輸入(Design Entry)


設計輸入主要是將設計觀念轉化成電腦可接受的方式,例如電路圖
(Schematics)、硬體描述語言(Hardware Description Language)…等。

(2) 邏輯模擬或預先模擬(Pre-Simulation)
依據所建立的邏輯模型,來驗證邏輯設計之時序的正確性(Timing
Analysis),如有不符合規格之情形,則回到設計輸入之階段,更改、修
正設計,以便使得設計輸入的數位電路,為符合規格需求之數位邏輯電路。

1
(3) 電路佈局(Layout)
完成邏輯模擬的驗證之後,則進行電路佈局的工作,在一般積體電路
設計公司,此項工作通常由專業部門的人員來完成,此乃因為積體電路佈
局的工作是非常專業之故。

(4) 實際模擬或佈局後模擬(Post-Simulation)
電路佈局之工作完成之後,將其物理參數,包括路徑延遲(Path
Delay)、元件延遲(Cell Delay) … 等,建立一個具有物理意義之模型,
再交由原 IC 設計公司,進行佈局後模擬(Pos-Layout Simulation)的工
作。直到所有的時序均驗證無誤後,才將所設計之電路製成積體電路光罩,
進 行 IC 的樣品試做。

設計輸入 依據產品規格,將產品觀念具體化成為電腦
(Design 可接受的資料規格。
Entry)
對所設計之電路作初步之邏輯驗證,亦可使
階成化之設計,分層先行驗證。

邏輯模擬
(Pre-Simulation)
將所採用的製程技術,及所對應的元件 Cel
進行 Place and Route。

進行實際電路之時序模擬驗證以保證所設
電路佈局 之電路的正確性
(IC Lay
out)

設計完成,Tape-out
圖 2-1-1 數位電路流程圖
實際模擬
(Post-Simulation)

2
2.2 數位邏輯晶片之分類與比較

數位邏輯元件,隨著積體電路之技術發展快速也有相當的改變。從 TTL
族 元 件 , 到 可 程 式 設 計 的 PAL ( Programmable Array Logic )、 PLD
(Programmable Logic Device)、FPGA(Field Programmable Gate Array)
等。邏輯晶片之分類可由圖 2-2-1 所示。可程式邏輯元件與 TTL 族元件,兩
者間
之比較如表 2-2-1 所示。

Logic

ASIC Stand
logic

PLD Gate Cell-Based


Array IC Full
Custom IC
Simple PLD FPGA

CPLD

PAL GAL Peel

圖 2-2-1 邏輯晶片之分類

3
表 2-2-1 TTL 族元件與可程式邏輯元件之比較
TTL 族 元 件 可 程 式 邏 輯 元 件
使 用 布 林 代 數 及 卡 諾 圖 簡 使用邏輯描述語言,電路
設 計 輸 入 化、無自動化設計之工具 之合成與最 佳 化由 自動
化工具完成
電路板(PCB)成本 高 低
功 率 消 耗 高 低
設 計 週 期 Debug 時間長設計變更困難Debug 時間短設計變更
容易
電路之保密安全性 低 高
可程式邏輯能力 無 有
電路延遲大,Fan-out,Fan-in 電路延遲小,性能容易掌
電 路 性 能 之設計複雜 控 Fan-out 及 Fan-in 問題

常見的可編程邏輯元件有 PAL、PLD、CPLD、FPGA 等,各項邏輯元


件簡介如下。
(1) PAL 邏輯元件
其結構基本上是由一些 AND 閘及一些 OR 閘,再由可編成的連線結構
所組成,結構圖如下圖 2-2-2 所示。

邏輯元件 可編程邏輯

B
C Y Y

A B C

A B C D
A
B

Z Z

C
D

A B C D

圖 2-2-2 PAL 之基本結構圖說明

4
(2)PLD 邏輯元件
PLD 邏輯元件主要是由一些可變的積項( Product Term)及 Macro-Cell
所組成,以 22V10 為例其 Macro-Cell 之結構圖如下圖 2-2-3 所示。

AR 輸出多
D SET Q 工器

CP CLR
Q S1 S0
SP
輸入 / 回授多工器

S1
C1
C2
圖 2-2-3 Macro-Cell 之架構示意圖

上圖之 C0 及 C1 的狀態表,如表 2-2-1 所示。

表 2-2-1C0 與 C1 的狀態表
C0 C1 狀 態 描 述
0 0 暫存器架構/Active Low
0 1 暫存器架構/Active High
1 0 組合邏輯/ Active Low
1 1 組合邏輯/ Active High

(3) CPLD 邏輯元件


CPLD 是 Complex PLD 的簡稱,其係一種較 PLD 為複雜的邏輯元件。
基本上是由許多個邏輯方塊(Logic Blocks)所組合而成的。而每個邏輯
方塊均相似於一個簡單的 PLD 元件。其具有整合性高,故有性能提升,
可靠度增加,PCB 面積減少及成本降低等優點。其架構之方塊圖如下圖 2-2-
4 所示,邏輯方塊(Logic Block)內部之架構圖如圖 2-2-5 所示。

5
Logic Block Logic
可編程連線架構 Block
輸出或 輸入 輸出或 輸入

Logic Block Logic Block

Logic Block Logic Block

圖 2-2-4 CPLD 之架構方塊圖

邏輯方 塊

可 MCell
編程連線架構 輸出入單位
積項陣列 和項分配
Macro- Cell

圖 2-2-5 邏輯方塊(Logic Block)內部之架構圖

6
(4) FPGA 邏輯元件
FPGA 的全名為 File Programmable Gate Array,它是由許多個邏輯元件
(Logic Cell)經由垂直通道(Vertical Channel)及水平通道(Horizontal
Channel)的連線所構成。一般來說, FPGA 中的 Logic Cell 之邏輯功能要
比 CPLD 中的 Macro-Cell 來的小一些,但 FPGA 中的 Logic Cell 相 當
多, 可經由 Logic Cell 的互相串、並聯的方式,構成複雜的邏輯函數。其
基本架構圖如下圖 2-2-6 所示。


直 水
通 平
道 通

Logic Cell

圖 2-2-6 FPGA 之基本架構圖

7
2.3 VHDL 電路設計語言

在數位電路的設計方法上,近些年來也有了革命性的變革,在早期,由
於電路較為簡單,且電路合成的工具較不完整,早期都是使用電路圖的方
式,使用圖形的介面,就所需的邏輯閘、正反器(Flip-Plops),一個一個
畫在電路上。但是使用此設計方法有以下缺點:

(1) 使用 Gate-Level Design,曠日廢時,需要花費相當多的時間在設計輸


入(Design Entry)上。

(2) 由於邏輯閘相當多,會增加出錯的機會及將來維護上的困難。

為了解決上述的問題,於是,整個設計的趨勢轉向使用語言的設計方
式,讓電腦依所寫的硬體描述語言,來自動合成其所對應的功能電路,並做
電路的最佳化合成,如此可將設計的時程大幅縮短,並大大增加了系統設計
的可維護性。此類可合成電路描述的語言,一般稱為「高階硬體描述語言」。
目前業界常使用的有 VHDL、Verilog 等硬體描述語言。而本論文所使用的
為 VHDL 電路設計語言,其全名為 Very High Speed ICs Hardware Description
Language。

2.3.1 VHDL 設計之優點


VHDL 所能提供的高階電路描述語言的方式,使得複雜的電路可以透過
VHDL 編譯器的電路合成方式,輕易且快速地達成設計的規格,因此原本需
要數個月才能完成的電路圖設計方式能在短短的數天中完成。在今天時間就
是利潤的市場驅使下,VHDL 可謂是非常地迎合市場的需求,其有以下讓業
界選用的優點:

(1) 功能強大
VHDL 電路設計語言的功能強大,它包含了電路描述、電路合成與電
路模擬等功能。就垂直整合而言,其自 ASIC 設計到電路板設計甚或大型
系統之設計,均能派上用場。

8
(2) 設計靈活
VHDL 電路設計語言,將電子電路的設計方式,改成以行為化描述的
方式來設計,因此具有設計快速、更改及維護容易、犯錯機率降低及除錯
容易等優點。此外,其亦具有可流通性之優點,故設計的內容,亦容易地
為其他使用者所了解採用,而使得 VHDL 的設計整合性極佳。加之以模
組化電路設計的趨勢,許多由 VHDL 所設計的電路,更易於做從新組合
的動作,使得設計的快速性產生了加成的效果。VHDL 的靈活性可由下圖
2-3-1 表示。

VHDL 原始設計程式

編譯器 D 編譯器 C 編譯器 B 編譯器 A 各種不同的


VHDL 編譯

邏 輯 元 件製 程 技 術

PLD CPLD Gate Array


各種不同的
FPGA PLA Standard Cell 邏輯元件
或製程技術

Cell Base Array

圖 2-3-1VHDL 程式語言設計靈活性之說明圖

(3) 各種不同的電路設計描述風格
VHDL 電路設計語言,提供許多不同的描述風格,來適應各種大小、
複雜性不同的電路設計。下表 2-3-1 所示為一個 2 位元的比較器,分別以
連線關係、順序性敘述、共時性敘述及布林方程式四種不同的電路描述方
式來表示。

9
表 2-3-1 利用不同 VHDL 描述風格描述一個 2 位元之比較器
描 述 風 格 VHDL 程式語言寫法
If a=b then
c <= ’1’;
順 序 性 敘 述 else
c <= ‘0’;
end if;
共 時 性 敘 述 c <= ‘1’ when a=b else ‘0’;
布 林 方 程 式 c <= (a(0) xor b(0)) nor (a(1) xor b(1))
U1: xor2 port map(a(0),b(0),x(0));
連 線 關 係 描 述 U2: xor2 port map(a(1),b(1),x(1));
U0:nor2 port map(x(0),x(1),c);

(4) 可流通性或可攜性
因 為 VHDL 為 IEEE 的一種標準語言,也是在業界被廣泛使用的一種
標準語言,其所提供的可攜性能力,可以讓使用者的設計能夠利用不同的
編譯軟體來編譯,利用不同的模擬器來模擬及適用於任何不同種類的邏輯
元件與半導體製程技術。

2.3.2 VHDL 電路設計語言之設計觀念


在使用 VHDL 電路設計語言之前,使用者必須先對 VHDL 中一些的詞
彙有一個程度的了解,在了解了以下的各項所代表的意義之後,便可以很
快、很容易地對 VHDL 電路設計有一個整體的觀念,可以輕易地閱讀程式
及具備撰寫 VHDL 程式的基本能力。

(1) 單體(Entity)
單體是一個 VHDL 程式語言設計中最基本的,也是不可缺少的一部
分,在單體的這一部份中,通常描述電路中的輸出、輸入訊號的宣告。

(2) 架構(Architecture)
在 VHDL 程式語言中,架構是描述電路行為特性的主要部分。如以
電路圖的設計方法比較之,其相當於電路圖設計中的 Schematics,用來描
述各個元件間的相互連線情形。

10
(3) 套件(Package)
在 VHDL 的 程 式 語 言 設 計 中 , 使 用 者 可 以 將 一 些 次 程 式
(Subprograms )、程序( Procedure)及一些常用的次資料型態,放在一
個套件中。如此套件即形成了一個工具箱,如果在程式設計有應用到套件
中的程式時,只要將此套件寫在程式最開頭部份,則在程式中每一個角
落裏,均可以使用此套件中所定義的物件或次程式。

(4) 屬性(Attribute)
在 VHDL 程式語言中,用來描述各種資料物件(Data Object)的
特性,就稱為該資物件的屬性,例如陣列的位元數、訊號的變化…等。

(5) Generic
在 VHDL 程式語言的語法上,用來傳遞一些特性參數給單體電路使
用。例如我們可以將 NOR 閘的上升時間(Rise Time)及下降時間(Fall
Time)宣告為 NOR 單體的 Generic,如此當我們在使用 NOR 這一個模組
時,即可以隨時來設定它的上升及下降時間。

(6) 資料型別(Data Type)


在 VHDL 程式語言中所使用的任何資料物件,如常數、變數、訊號
等,均要定義其資料型別,並且所定義的各個資料型別也必須相容,如此
才能合乎 VHDL 程式語言中的語法,所設計的程式也才可以使用。

(7) 程式(Sub-programs)
在 VHDL 程式語言中,共有兩種次程式來使主程式的結構更加簡潔
清楚,一為函式( Functions)另一為程序(Procedures),其中函式的使
用是在當程式中只有一個輸出變數時,而程序則無此限制。

(8) 過程(Process)
Process 是 VHDL 程式語言中,用來描述行為化描述的最基本的單
元,必須注意的是在 Process 中所寫的 VHDL 程式,是有先後程序之關係
的。

11
(9) 構形(Configuration)
在 VHDL 程式語言中,容許一個單體電路內,可以同時存在一個以
上之架構,而程式設計者可以使用 CONFIGURATION 指令,來說明此單
體電路的構造情形。

下圖 2-3-2 為 VHDL 之程式架構。

宣告使用
哪些零件庫
宣告使用哪些
自訂零件庫
1﹑USE 宣 告 區

2﹑PACKAGE 宣 告 區

3﹑ENTITY 宣 告 區 描述電路單體
內部的功能,說
宣告電路單體 明電路執行什麼
4﹑ARCHITECTURE 宣 告 區
的 外 觀 ; I/O 動作或功能
介面的規格

Component 宣告區

訊號宣告

Behavior Process 描述 Data Flow 描述 Structure 描述


5﹑CONFIGURATION 宣 告 區

決定哪一個
architecture 被
使用

圖 2-3-2 VHDL 程式架構圖

12
2.3.3 電路的架構描述及選定
在 VHDL 程式語言中的電路架構描述部份,其設計的方式共可歸納為
三種形式。一為結構性描述( Structure Description);二為資料流型式(
Data Flow);三為行為性描述(Behavior Description)。以下將針對此三種
架構描述分別做一個簡介。

(1) 結構性描述
此種描述的 VHDL 電路架構,主要是透過元件的宣告(Component
Declaration)與元件的叫用( Component Intantiation)等方式,來構成電路
中各元件間的連線關係,此相當於是在描述電路中各個元件之間的相互連
線關係,故此種描述之電路架構又可稱之為連線關係描述風格(Netlist
Description Style)。

(2) 資料流型式
資料流型式的 VHDL 電路描述方式,主要是使用 VHDL 程式語言中所
內建的標準布林運算函數為主軸,將各個訊號之間的布林代數關係,以布
林方程式來表示之。另外,此種架構之描述,亦有使用共時性的訊號敘述
(Concurrent Signal Assignment),來完成電路中資料與訊號的流動關係。

(3) 行為性描述
在 VHDL 程式設計中,較為複雜的電路部份,通常是使用電路特性的
行為性描述來設計,再透過電腦之合成及最佳化,便可大大縮短產品的設
計週期,並且使得所設計的電路,很容易於維護。

13
下表 2-3-2 所示即為上述三種電路描述架構之優缺點比較。

表 2-3-2 各種架構之優缺點比較
架 構 風 格 優 點 缺 點 適 用 場 合
1. 連 線 關 係 清 析 明 1. 較不易理解所設 電 路 之 階 成 化 設
結 構 性 描 述 瞭 計之電路 計、PCB 設計
2.電路模組化清楚 2. 繁瑣、複雜
1. 布 林 函 數 定 義 明 小閘數之電路設
資 料 流 型 式 白 不易描述複雜電路 計、電路中各模組
2.設計快速 間的分散邏輯
1. 電 路 特 性 之 行 為 電路合成的結果較 大型而複雜的電路
行 為 化 描 述 性描述 難控制 模組設計
2.易於維護

如 前 所 述 在 VHDL 電路設計的描述語言中,在一個單體內可以同時存
在一個以上之電路架構,因此使用者可以根據上表所述三種電路架構之優、
缺點,在各種不同的電路設計場合下選用適當的電路架構。

14
2.4 FPGA 簡介

2.4.1 FPGA 之內部架構


除了 2.2 節中介紹的 FPGA 之基本結構外,FPGA 的架構與半導體製
程中的 Gate Array 方式相似,所不同點只有兩個:
(一)Gate Array 所使用的元件為電晶體,而 FPGA 所使用的元件為邏輯元
件。

(二)Gate Array 中各電晶體之間的連線關係是由數層光罩來構成,而


FPGA 則是由可編成的方式來達成。

此外,依 FPGA 的物理架構形成,可以分成兩類:


(一) SRAM 類型
優 點:可重複程式化,即可重複燒錄。
缺 點:需借助外部電源維持資料,一旦電源消失,則整個電路架
構亦將隨之消失,單價較貴。
使用時機:適合用來實做邏輯設計之功能性驗證。
供應廠商:Altera、AT&T、Atmel、Xilinx 等。

(二) Anti-fuse 類型
優 點:閘數的可用性較高,應用電路較為簡單,單價較便宜。
缺 點:無法重複燒錄使用。
使用時機:適宜用來在產品需求量小及業務尚未開展出來時的小量生
產,待產品大量之後,可開成 ASIC 以降低單顆 IC 之成
本。
供應廠商:Actel、Cypress、Quicklogic、Xilinx 等。

下表 2-4-1 中所列為 Altera 公司所生產之各系列 FPGA 性能和特性。

15
表 2-4-1 Altera 公司所出產之 FPGA 系列特性
製造技術 Anti-fuse Anti-fuse SRAM Anti-fuse SRAM
產品系列 MAX5000 MAX7000 FLEX8000 MAX9000 FLEX 10K
閘 個 數 60∼3750 60∼5K 2.5K∼16K 6K∼12K 10K∼250K
速 度 125MHZ 178.6MHZ 125MHZ 125MHZ 70MHZ
延遲時間 10ns 5.0ns 8ns 8ns
邏輯元件 16∼192 32∼256 208∼1296 320∼560 576∼4992
暫存器數 16∼192 32∼256 282∼1500 484∼772 720∼53920
Pin 腳數 84 164 84∼208 168∼216 150∼406
包 裝 DIP/FLCC/ PLCC/PQPF PLCC/QPF PLCC/QFP/ PLCC/PQPF
QFP/PGA /PGA /PGA PGA /TQPF/PGA

由於本論文中所使用的 FPGA 是 Atera 的 FLEX 系列,故在此介紹架


構時將以此系列之架構為主。所謂 FLEX 系列其所指之意思,即為非常有彈
性之邏輯元件陣列(Flexible Logic Element Matrix),這是因為它具備了
FPGA 高數量暫存器的特性,及 CPLD 快速連接繞線之特性組合而成的緣故。
下列圖 2-4-1 所示為 FLEX 6000 系列之方塊結構圖。

16
IO 元 IO 元 IO 元 IO 元 水平快速追蹤
連接線

IO 元 IO 元

IO 元 IO 元

邏輯陣列方塊 邏輯元件
LAB LE 垂直快速追蹤連接線

IO 元 IO 元 IO 元 IO 元

圖 2-4-1 FLEX 6000 系列之方塊結構圖

17
其圖中:
(1)LE:
邏輯元件,其為 FLEX6000 系列之 FPGA 晶片中之最小的邏輯單元,
每一個 LE 元件都含有四個輸入式的 LUT,一個可規劃的正反器,以及一
個進位鍊和串接鍊,其架構如圖 2-4-2 所示。

進位輸入 串位輸入

data1
data2 LOOK- Casca
data3 Car
data4 UP ry LE 輸出
Tab Cha PRN
D
labctrl1 Q
labctrl2
晶片重置 CLR
Clear/
Prest
labctrl3
labctrl4



進位輸出 串位輸出

圖 2-4-2 LE 邏輯元件之系統架構圖

(2) LAB:
邏輯陣列方塊,其是由十個邏輯元件 LEs、與 LE 元件連結的進位鍊和
串位鍊、LAB 本身之控制訊號和 LAB 本身互接線等組合而成。由於 LAB
為較大之架構,因此可以有效的繞線,也就是說可以在較高階的裝置中應
用與執行。其架構圖如下所示。

18
水平連接線

去或來自
相鄰的 LAB 或 IO 元

區域連接
LEs

垂直連接線

圖 2-4-3 LAB 邏輯陣列方塊之系統架構圖

19
2.4.2 FPGA 使用之優點
FPGA 為因應市場需求而產生的產品,其在使用上主要有底下幾項優
點:

(一) 降低產品研發設計之風險
FPGA 具備有原型設計的特性,因此設計人員可以不斷的、輕易的修
改設計,不需實際的去變更硬體元件,因此而降底成本。在產品尚未製成
ASIC 前,可隨時因應市場需求,增加或修正其功能,或甚經由評估之後
停止量產計畫等,此對於經營決策者而言,可降低新產品開發的風險。
(二) 具處理高速且複雜性的功能
由於新產品均不斷地以更快的速度、更多的功能為開發的重點,且必
須同時整合多個模組,因而使得產品在研發設計上需要先進的工具來輔助
開發,而 FPGA 搭配上適當的開發軟體之後,即可提供一個整體且完善的
開發環境。

(三) 具 TIME-TO-MARKET 之優點


由於市場上新產品推出的速度極為迅速,產品更迭的週期變短,因
此, 研發設計人員如何跟上如此快速的腳步, FPGA 便是其所使用的一
項利器,若以 Gate Array 與 FPGA 兩者之開發時間來做比較,則通常使用
FPGA 開發所需的時間大約可降低三分之一的時間,而也就是業界喜歡
使用 FPGA 做設計之原因。

(四) 可重新配置的彈性設計
新產品的設計不僅需符合多種標準,亦必須能夠彈性配置,以便因應
新的協定或標準。如果開發工具,不具備有重新配置的功能,則所設計之
產品將難以符合各地之要求,而 FPGA 即具被了此項功能。

2.4.3 Altera FLEX 10K 介紹


在本論文中,我們所採用的是 Altera FLEX 系 列 中 的 FLEX 10K100 型
的 FPGA,圖 2-4-4 即為此型之方塊架構圖,由圖中我們可以看出,FLEX
10K 與 FLEX 6000 兩者之間最大的不同點為,FLEX 10K 其內部含有記憶體
RAM 元件,此記憶體元件稱之為嵌入式陣列方塊結構( Embeded Array
Block)其結構如圖 2-4-5 所示,FLEX 10K 因為有此種特殊獨立的 EAB 區
塊,因此其 除了可以和傳統的邏輯元件 連接外,亦可以獨立組成記憶體
RAM 或暫存器使用。

20
IO 元件 IO 元件

IO 元件 IO 元件

IO IO IO IO IO IO IO IO IO IO IO IO
元 元 元 元 元 元 元 元 元 元 元 元
垂直繞線 件 件 件 件 件 件 件 件 件 件 件 件 LAB

水平繞線

IO 元件 IO 元件

IO 元件 IO 元件

邏輯陣列

EAB
LE

IOIOIOIOIOIOIOIOIOIOIOIO
元元元元元元元元元元元元件件件件件件件件件件件件

嵌入陣列

圖 2-4-4 Atlera FLEX 10K 系列之架構方塊圖

21
專 用 輸 入 晶片
& 全域信號 重置 水平連接線

2 , 4 , 8 , 16
( 1) 6

Data D SET Q
out 24
Data in
8 , 4 , 2 , 1D SET Q Q
CLR

CLR
Q

2 , 4 , 8 , 16

8, 9,
Address
10 , 11 D SET Q

RAM/ROM
Q
CLR 256*8
512*4
1024*2
2048*1

D SET Q
WE 垂直連接線

CLR
Q

EAB 區域連接線

圖 2-4-5 EBA 嵌入陣列方塊之結構圖

22
2.5 FPGA 之設計流程

科技時代的來臨,使得產品更迭的速度越來越快,科技產品的生命週期
極短,有時甚至數個月就是一個產品週期,尤其是資訊產品,可為這方面產
業之代表,由於產品更新的時間越來越快,因此設計的腳步也必須越來越
快。一般,ASIC 從設計完成到量產通常必須花費非常長的時間,因為從設
計、模擬完成,送去晶圓廠製作、封裝,取回再做測試驗證,若有錯誤發生
則必須再回到設計、模擬階段除錯,然後再送回晶圓廠重新製作、封裝,這
樣來來回回通常就要耗掉好幾個月的時間,在時效就是利潤的市場競爭下,
FPGA 的引進,大大的縮短了整個設計的時程,也降低了設計成本。

架構設計
設計評估

設計 、 模擬

計修正
設 設 設計修正 邏輯合成
計 計修正
修 、模擬

電路 佈局
、模擬

IC 製作、封裝

測試、除錯

原型製作
圖 2-5-1 數位 ASIC 設計程序流程圖
產品、量產

23
設計評估

架構設計
設計、模擬
設計修正
設計修正

計 邏輯合成
修 、模擬
較 ASIC 製作 少了送晶圓廠 製作、封裝、取回後測試

等程序

電路佈局
、模擬

圖 原型製作
2-5-2 FPGA 設計程序流程圖

由圖 2-5-1 及圖 2-5-2,我們可以發現,FPGA 之設計流程較 ASIC 之設


產品、量產
計流程少了送至晶圓廠製作、封裝、取回之後的測試、除錯等程序,FPGA
設計也就因此而節省了許多設計的時間及成本。因為 FPGA 其本身就是一顆
未經規劃的 IC,以其來模擬 IC,具有高時效性,及容許錯誤嚐試之特性,
當所設計的電路經由 VHDL 硬體描述語言設計、編譯、測試完成後,再經
由下載電路將所產生之電路架構編譯檔下載至 FPGA 去做規劃連線,如此便
是一顆完整的 IC。
Altera 公司在 FPGA 晶片之開發設計上提供了 Max-plusⅡ 這一套電腦
輔助設計軟體,由於其功能不斷更新、操作簡單且軟體之取得容易,只要
至 Atera 公司所屬網站下載即可,因此越來越受學術界及業界歡迎、使用,
在此套軟體中提供了電路輸入功能(硬體描述語言設計、電路圖設計)、元件
資料庫、邏輯和時序功能模擬以及電路規劃實現等功能。搭配此套軟體操
作,我們可將上述 FPGA 設計流程簡化如下圖 2-5-3,並詳述如下:

24
設計評估

電路設計與合成

設 設 設
計 計 計
修 修 修
正 正 正 電路模擬

時序分析模擬

FPGA 晶片規劃

完成

圖 2-5-3 化簡之 FPGA 設計流程圖

(1) 設計評估
評估所欲設計系統整個架構所需及參考 Altera 公司所提供之各系列
FPGA 規格及特性,選擇適用之 FPGA,然後再根據系統之動作函數功能,
選用適當之設計方法。

(2) 電路設計與合成
將整個系統依各部位功能,規劃設計並分割成數各區塊,依照設計之
流程分別設計,此種模組化之設計,將具有可易於維護、除錯等優點。在
Max-plusⅡ 中提供了電路設計及硬體描述語言設計兩種方法,前者適用於
小型簡單之電路設計,而後著適用於大型複雜之電路設計,當設計完成之
後再經由編譯(Compiler)功能去完成電路檔。

25
(3) 電路模擬
當組譯完成之後,必須去驗證所設計之電路功能正確與否,而 Max-puls
Ⅱ 提供兩種測試平台,一種為 HDL 測試平台,一種為波形輸入法,一般
而言,後者較常被設計者所使用。依據所設計系統之函數,只要在波形輸
入編輯器上直接設計輸入波形,啟動模擬器,便可觀察並驗證所設計之電
路輸出波形是否正確。

(4) 時序分析及模擬
時序分析主要是分析電路中傳輸時間、安定時間以及保持時間,分析
之目的,主要是要觀察所設計電路之時序是否符合規格。在時序的分析上
對整個電路設計可謂是非常重要的,因為若時序不正確或是不同路徑間之
時序不相搭配,則整個執行結果將產生錯誤。

(5) FPGA 晶片規化


FPGA 晶片規化主要是當上述所有步驟皆完成之後,依據系統設計,
選取適當之 FPGA 晶片,並進行腳位安排及進行再組譯的動作,然後透過
ByteBlaster 電路,將所設計之電路,燒錄至 FPGA 晶片中,完成整個
FPGA 晶片設計。

26

You might also like