可編程邏輯器件的設(shè)計(jì)過程
可編程邏輯器件的設(shè)計(jì)流程如圖10-2所示,它主要包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、設(shè)計(jì)處理和器件編程四個(gè)步驟,同時(shí)包括相應(yīng)的功能仿真、時(shí)序仿真和器件測(cè)試三個(gè)設(shè)計(jì)驗(yàn)證過程。
1.設(shè)計(jì)準(zhǔn)備
采用有效的設(shè)計(jì)方案是PLD設(shè)計(jì)成功的關(guān)鍵,因此在設(shè)計(jì)輸入之前首先要考慮兩個(gè)問題:一是選擇系統(tǒng)方案,進(jìn)行抽象的邏輯設(shè)計(jì);二是選擇合適的器件,滿足設(shè)計(jì)的要求。
對(duì)于低密度PLD,一般可以進(jìn)行書面邏輯設(shè)計(jì),將電路的邏輯功能直接用邏輯方程、真值表狀態(tài)圖或原理圖等方式進(jìn)行描述,然后根據(jù)整個(gè)電路輸入、輸出端數(shù)以及所需要的資源(門、觸發(fā)器數(shù)目)選擇能滿足設(shè)計(jì)要求的器件系列和型號(hào)。器件的選擇除了應(yīng)考慮器件的引腳數(shù)、資源外,還要考慮其速度、功耗以及結(jié)構(gòu)特點(diǎn)。
對(duì)于高密度PLD,系統(tǒng)方案的選擇通常采用“自頂向下”的設(shè)計(jì)方法。首先在頂層進(jìn)行功能框圖的劃分和結(jié)構(gòu)設(shè)計(jì),然后再逐級(jí)設(shè)計(jì)低層的結(jié)構(gòu)。一般,描述系統(tǒng)總功能的模塊放在最上層,稱為頂層設(shè)計(jì);描述系統(tǒng)某一部分功能的模塊放在下層,稱為底層設(shè)計(jì)。底層模塊還可以再向下分層。這種“自頂向下”和分層次的設(shè)計(jì)方法使整個(gè)系統(tǒng)設(shè)計(jì)變得簡潔和方便,并且有利于提高設(shè)計(jì)的成功率。目前系統(tǒng)方案的設(shè)計(jì)工作和器件的選擇都可以在計(jì)算機(jī)上完成,設(shè)計(jì)者可以采用國際標(biāo)準(zhǔn)的兩種硬件描述語言-VHDL或Verilog-對(duì)系統(tǒng)級(jí)進(jìn)行功能描述,并選用各種不同的芯片進(jìn)行平衡、比較,選擇最佳結(jié)果。
2.設(shè)計(jì)輸入
設(shè)計(jì)者將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并送入計(jì)算機(jī)的過程,稱為設(shè)計(jì)輸入。它通常有原理圖輸入、硬件描述語言輸入及波形輸入等多種方式。
原理圖輸入是一種最直接的輸入方式,它大多數(shù)用于對(duì)系統(tǒng)或電路結(jié)構(gòu)很熟悉的場(chǎng)合。但系統(tǒng)較大時(shí),這種方法的相對(duì)輸入效率較低。
硬件描述語言是用文本方式描述設(shè)計(jì),它分為普通的硬件描述語言和行為描述語言。行為描述語言是指高層硬件描述語言VHDL和Verilog,它們有許多突出的優(yōu)點(diǎn):語言的公開可利用性、便于組織大規(guī)模系統(tǒng)的設(shè)計(jì)、具有很強(qiáng)的邏輯描述和仿真功能,而且輸入效率高、在不同的設(shè)計(jì)輸入庫之間轉(zhuǎn)換也非常方便。
普通硬件描述語言有ABEL-HDL、CUPL等,它們支持邏輯方程、真值表、狀態(tài)機(jī)等邏輯表達(dá)方式。
3.設(shè)計(jì)處理
從設(shè)計(jì)輸入完成以后到編程文件產(chǎn)生的整個(gè)編譯、適配過程,通常稱為設(shè)計(jì)處理或設(shè)計(jì)實(shí)現(xiàn)。它是器件設(shè)計(jì)中的核心環(huán)節(jié),是由計(jì)算機(jī)自動(dòng)完成的,設(shè)計(jì)者只能通過設(shè)置參數(shù)來控制其處理過程。在編譯過程中,編譯軟件對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡、綜合和優(yōu)化,并適當(dāng)?shù)剡x用一個(gè)或多個(gè)器件自動(dòng)進(jìn)行適配和布局、布線,最后產(chǎn)生編程用的編程文件。
編程文件是可供器件編程使用的數(shù)據(jù)文件。對(duì)于陣列型PLD來說,是產(chǎn)生熔絲圖文件(簡稱JED)文件,它是電子器件工程聯(lián)合會(huì)制定的標(biāo)準(zhǔn)格式;對(duì)于FPGA來說,是生成位流數(shù)據(jù)文件。
4.設(shè)計(jì)校驗(yàn)
設(shè)計(jì)校驗(yàn)過程包括功能仿真和時(shí)序仿真,這兩項(xiàng)工作是在設(shè)計(jì)輸入和設(shè)計(jì)處理過程中同時(shí)進(jìn)行的。功能仿真是在設(shè)計(jì)輸入完成以后的邏輯功能檢證,又稱前仿真,它沒有延時(shí)信息,對(duì)于初步功能檢測(cè)非常方便。時(shí)序仿真在選擇好器件并完成布局、布線之后進(jìn)行,又稱后仿真或定時(shí)仿真,它可以用來分析系統(tǒng)中各部分的時(shí)序關(guān)系以及仿真設(shè)計(jì)性能。
5.器件編程
編程是指將編程數(shù)據(jù)放到具體的PLD中去。對(duì)陣列型PLD來說,是將JED文件“下載”到PLD中去;對(duì)FPGA來說,是將位流數(shù)據(jù)文件“配置”到器件中去。
器件編程需要滿足一定的條件,如編程電壓、編程時(shí)序和編程算法等。普通的PLD和一次性編程的FPGA需要專用的編程器完成器件的編程工作;基于SRAM的FPGA可以由EPROM或微處理器進(jìn)行配置;ISP在系統(tǒng)編程器件則不需要專門的編程器,只要一根下載編程電纜就可以了。
更多資訊請(qǐng)關(guān)注:21ic模擬頻道