MAXPLUS教程 第2章CPLD和FPGA

2021-10-02 22:03:39 字數 4320 閱讀 4923

第2章cpld和fpga

2.1 pld介紹

可程式設計邏輯器件pld(programable logic device)是允許使用者程式設計(配置)實現所需邏輯功能的電路, 它與分立元件相比,具有速度快、容量大、功耗小和可靠性高等優點。由於整合度高,設計方法先進、現場可程式設計,可以設計各種數位電路,因此,在通訊、資料處理、網路、儀器、工業控制、軍事和航空航天等眾多領域內得到了廣泛應用。不久的將來將全部取代分立數字元件,目前一些數字積體電路生產廠商已經停止了分立數字積體電路的生產。因此應該學會pld的設計技術。

pld電路早期代表產品由xlinx公司推出的門陣列,稱為fpga(field programable gate array),隨後altera公司推出以並行走線的pld產品,稱為cpld(complex programable logic device),這些早期產品**高達萬元,其開發軟體**高達幾十萬元。但是隨著生產技術水平的提高,現在pld產品的**已大大降低,一片5000門、具有5k x 8的sram電路作配置、84腳封裝、速度達40—200mhz的pld的**已經下降到一百元以下。每一片這樣的pld可以設計成微控制器、或者是cpu等,並且可以在外部接線完成以後還可以重新進行設計多次。

目前在我國常見的pld生產廠家有xilinx、altera、actel、lattic、atmel、microchip和amd等等,其中xilinx和altera為兩個主要生產廠,xilinx的產品為fpga,altera的產品稱為cpld,各有優缺點,

但比較起來altera的產品略有長處:

1. 同樣具有eprom和sram的結構

2. 對於sram結構的產品,altera公司pld的輸出電流可達25ma,而xilinx的fpga只有16ma

3. altera公司的pld延時時間可**,彌補了fpga的缺點

4. xilinx公司的開發軟體foundation 功能全,但是不如altera公司的max+plus軟體使用簡單,特別是對於學校的學生學習vhdl語言和pld設計。

5. altera公司的產品**稍微便宜

6. altera公司新推出的flex 10k10e系列的產品具有更大的整合度

pld的結構分為兩類:

 邏輯單元陣列(lca),包括邏輯快、互連陣列和i/o塊

 復合pld結構,包括邏輯塊和互連矩陣開關

xlinix、actel公司的產品採用lca結構,而altera、amd的mach系列採用的是復合pld結構。

2.2 altera公司max7000系列

(1) 特點

 該系列是以第二代多陣列結構為基礎,高效能的cmos器件

 高密度,600—5000個可用門的epld系列

max7128e:提供5000個門,其中可用門數2500,128個巨集單元,最大i/o引腳104,

 引腳到引腳的時延6ns,計數器工作頻率151mhz

 可配置的擴充套件乘積項,允許向每個巨集單元提供52個乘積項

 44到208個引腳的各種封裝,引線塑料載體(plcc)、針柵陣列(pga)扁平封裝(qfp)

 3.3v 或5v的電源電壓

 可程式設計保密位

 altera max+plus軟體提供開發支援

該系列型號:epm7032,epm7032v,epm7064,epm7096,epm7128e,epm7160,epm7192,epm7256

(2)結構

max7000的結構圖2.1.1,其中i/o為輸入輸出模組,fb為邏輯陣列模組(lab),這些模組由可程式設計互連矩陣相互連線。

圖2.1.1
 專用輸入訊號

包含4個專用輸入訊號,它們能用作專用輸入或每乙個巨集單元和i/o引腳的全域性控制訊號: 時鐘,清除和輸出使能

 邏輯陣列塊(lab)

每個lab由16個巨集單元組成,多個lab通過可程式設計連線陣列互連,每乙個lab有來自pia的36個訊號、用於暫存器輔助功能的控制訊號和i/o引腳到暫存器的直接通道

 巨集單元

巨集單元可以單獨配置為組合邏輯和時序邏輯工作方式,它由三個功能塊組成:邏輯陣列、乘積項選擇矩陣和可程式設計觸發器

 擴充套件乘積項

擴充套件乘積項可以使乙個巨集單元實現更複雜的邏輯函式,而不使使用兩個巨集單元

 可程式設計連線陣列

該陣列將各個lab互連在一起,構成所需的邏輯功能

 i/o控制塊

允許每個i/o引腳可以單獨配置為輸入、輸出或是雙向工作方式

2.5 pld的配置

(1) max7000系列

由於max7000系列的配置程式是固化在晶元內的eeprom中,所以該器件不需要專用的配置儲存器,所有max7000系列產品都由altera公司提供的程式設計硬體和軟體進行程式設計。

程式設計硬體:程式設計卡、主程式設計部件(mpu—master programming unit)和配套的程式設計介面卡

程式設計軟體:max+plusⅱ

(2) flex8000系列和flex10k10系列

該系列產品的配置資訊是存放在晶元內的sram中,當掉電後,配置資訊將全部丟失,所以這些配置資訊需要存放在其它eprom中,altera公司提供了與該系列晶元配套使用的eprom。所以對晶元的程式設計就是對eprom的程式設計,

晶元開始工作時,進入命令狀態,在該狀態將配置資訊從eprom中讀到自己的sram中,然後進入使用者狀態,在使用者狀態器件就可以按照配置的功能進行工作,整個配置過程全部自動進行,也可以靠外部邏輯控制進行,時鐘可由器件自己提供,也可由外部時鐘控制。

所以整個器件只要更換eprom中的配置資訊就可以更換功能,其靈活性是不言而喻的。

該器件有如下配置方式:

 主動序列配置(as)

 主動並行公升址和降址配置(apu/apd)

 被動並行同步配置(pps)

 被動並行非同步配置(ppa)

 被動序列配置(ps)

1) 主動序列配置(as)

該配置使用altera公司提供的配置eprom(如epc1213)作為器件的配置資料來源,配置eprom以序列位流(bit-stream)方式向器件提供資料,見典型電路圖2.5.1.

圖2.5.1
在圖中,flex8000的nconfig 引腳接電源,使該器件有開機自動配置能力,

2)主動並行公升址和降址配置(apu/apd)

在該方式,flex8000提供驅動外部prom位址輸入的連續位址,prom則在資料引腳data[7。。。0]上送回相應的位元組資料,flex8000器件產生連續位址直至載入完成。對於apu方式,計數順序是上公升的(00000h到3ffffh)對於apd方式,計數順序是下降的。

使用並行eprom以apu或apd方式配置flex8000的一般電路圖2.5.2.

圖2.5.2

所有flex8000晶元通過自己的18條位址線向eprom提供位址。

3) 被動序列配置(ps)

被動序列配置方式採用外部控制器,通過序列位(bit)流來配置flex8000,flex8000以從裝置的方式通過5條線與外部控制器連線。

外部控制器有如下幾種:

 altera公司的pl-mpu程式設計部件和flex卸栽電纜(download cable)

 智慧型主機(微機或微控制器)

 altera公司的bit blaster電纜,該電纜與rs232介面相容

使用altera的flex卸栽電纜進行被動序列配置圖2.5.3.

圖2.5.3
flex的卸栽電纜一端接mpu主程式設計部件的eprom介面卡,另一端與要程式設計的目的板中待配置flex器件連線起來,向flex器件提供5個訊號,配置資料取自max+plusⅱ軟體編譯形成的sram目標檔案(*。sof)

5) max+plusⅱ配置與程式設計支援

該軟體可以產生4種不同的型別的程式設計檔案:

 sram檔案

該檔案(sram object file)(.sof)用於被動序列配置,可使用max+plusⅱ程式設計器、flex卸栽電纜和altera程式設計部件將資料直接裝入系統中的flex8000,利用該檔案可以生成pof、ttf和hex檔案

 程式設計目標檔案

該檔案(programer object file)(.pof)用於主動序列配置(as)altera的配置eprom,max+plusⅱ軟體為每乙個設計自動生成乙個pof檔案。

 十六進製制檔案(inter格式檔案)

該檔案(hexadecimal file)(.hex)是inter hex格式的ascⅱ檔案,使用 apu或apd方式配置flex8000時需使用標準的並行eprom,通用燒錄器可以完成此項工作,

 列表文字檔案

該檔案(tabular text file)(.ttf)是乙個**式的檔案,它提供的是逗號分割開的檔案,可以用於ppa、pps和一位寬的ps方式配置資料。

6) 配置過程

見max+plusⅱ軟體一章

第2章 查詢基礎 SQL基礎教程

select 列名 from 表名 select product id,product name,purchase price from product 查詢多列時,需要使用逗號進行分隔。查詢結果中列的順序和select 子句中的順序相同查詢全部的列 select from 表名 select fr...

Programming Pearls第2章思路總結

給定乙個最多包含40億個隨機排列的32位整數的順序檔案,找出乙個不在檔案中的32位整數。答案見 此部落格 總結 時刻想著利用二分搜尋來解決問題 思路一 若要旋轉k位,則每個字元向前 向後 移動k位。此方法只須n次操作,且僅需乙個元素的額外空間,但此方法實際沒比較慢,因為不能很好地利用cache。思路...

第 2 章 演算法

演算法 是解決待定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。指演算法在執行有限的步驟後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。演算法的每一步驟都具有確定的含義,不會出現二義性。演算法的每一步都必須是可行的,也就是說,每一步都能夠通過...