最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

一、概述

本文以簡單的26位分頻器工程實例為藍本,從頭至尾演示工程建立的所有細節及注意事項,以便新手用戶快速掌握QuartusII的入門操作知識

本文以ALTERA QuartusII11.0版本進行演示,雖然是針對CPLD EPM240T100開發平臺所做的入門指導書,但這些流程對於FPGA設計是完全通用的。另外,本文在行文時描述的QuartusII步驟操作,均使用菜單方式,事實上,大多數操作可以直接使用工具欄上的快捷按鈕,讀者可自行熟悉,執行的結果與菜單操作都是一致的

三、基本思路

工程實例建立的基本步驟如下:

(1)工程建立:建立與您的開發平臺相對應的工程,比如您的開發平臺是EPM3064,則後續的工程開發也應該基於該芯片進行

(2)邏輯設計:這裡包括很多設計手段,如AHDL、VHDL、Verilog HDL、原理圖等等 ,由於本文講的是QuartusII設計流程,不會過多關注此步驟

(3)邏輯綜合:邏輯綜合用於宏觀上您設計的邏輯判斷是否有錯,同時分析出邏輯設計中的IO引腳,以便後續進行IO引腳的分配

(4)引腳分配:將邏輯設計中的IO分配到實際器件中的IO引腳

(5)邏輯編譯:全編譯工程邏輯,並生成可用於下載的燒錄文件

(6)邏輯下載:將邏輯下載到實際的開發平臺中進行驗證或使用

四、工程建立

下面我們來詳細描述一個實際工程是如何建立的:

(1)打開QuartusII後,初始界面應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

(2)選擇菜單【File】→【New Project Wizard…】後,即可彈出如下圖所示的新工程嚮導對話框:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

設置工程目錄位於D:/demo,並將工程名命名為“demo”,同時軟件會自動將頂層設計模塊名填充為“demo”,因為QuartusII的工程名必須與頂層設計文件的模塊名一致,否則編譯將出錯

(3)選擇【Next >】後,即可進入如下圖所示的添加文件頁表。此頁表適用於源碼文件已經準備完好的情況,這樣直接添加源文件即可將其加入當前工程。本文為了更詳細展示設計流程,重新建立源碼文件,不進行添加操作。

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

(4)選擇【Next >】後,即可進入如下圖所示的器件選擇頁表項。您的開發平臺是什麼芯片型號,就在此頁表選擇相對應的器件型號,如果選擇的器件型號與您實際使用的芯片型號不一致,在邏輯下載步驟時將會出錯(如果你手頭沒有開發板,只是為了學習HDL語言或熟悉軟件,隨意選擇一個資源多點的就可以,防止因為HDL邏輯規模太大資源不夠用而出現編譯錯誤)。

由於ALTERA的器件非常多,因此QuartusII提供一些過濾選項,以協助我們快速找到對應的器件。本文的開發平臺芯片型號為“EPM240T100I5N”,該芯片為MAXII系列(Family),封裝(Package)為“TQFP”,引腳數量(Pin count)為“100”,速度等級(Speed grade)為“5”,如下圖所示:(對於EPM3032/3064或FPGA也是同樣的方法,如果您按照此對話框設置後,沒有找到您需要的器件型號,說明您可能沒有安裝該芯片對應的器件庫)

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

對於本工程實例,設置好器件型號後,就可以直接選擇【Finish】即可進入“第五節邏輯設計”即可,但如果您想了解其它頁表項,可繼續往下閱讀。

(5)選擇【Next >】後即可進入EDA工具設置頁表項。QuartusII支持很多第三方工具,比如綜合工具、仿真工具等等,第三工具通常在某一方面更為專業,特別是仿真工具,QuartusII已經不再提供仿真功能,只能用第三方仿真工具,如Modelsim來進行仿真。

由於我們的實例比較簡單,且僅注重開發流程,因此我們對此步驟不做調整(後續我們將詳述)

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

(6)選擇【Next >】後,即可進行進入如下圖所示的總結(Summary)頁表,這裡簡要顯示了您之前所做的所有設置,如果沒有問題的話,選擇【Finish】即可

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

五、邏輯設計

工程建立完成後,就可以開始著手進行邏輯的設計了

(1)選擇菜單【File】→【New…】即可彈出如下圖所示的新建(New)對話框,QuartusII支持很多的邏輯設計輸入方式,這裡我們選擇“Verilog HDL File”,表示我們將使用Verilog HDL語言作為本工程的邏輯設計輸入方式。

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

(2)選擇【OK】後,QuartusII將默認新建一個名為“Verilog1.v”的文件,我們將工程示例代碼拷貝進去,此時應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

注意:這個源代碼的模塊名demo是與左邊Project Navigator中工程名是一致的,而且是必須的

(2)選擇菜單【File】→【Save】後,將文件保存在工程目錄,並將其命名為“demo.v”即可,如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

注意:文件名不一定必須是“demo.v”,QuartusII只要求模塊名與工程名相同,不要求與文件名相同

完成後此時應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

六、邏輯綜合

邏輯設計完畢後,可以初步對邏輯進行綜合,以判斷是否有諸如語法錯誤、邏輯錯誤等異常,並可初步對IO引腳進行分析

(1)選擇菜單【Processing】→【Start】→【Start Analysis & Synthesis】後,即可開始進行邏輯設計的綜合過程,完成後應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

(2)菜單選擇【Tools】→【Netlist Viewers】→【RTL Viewer】後即可出現RTL(寄存器傳輸級)圖,通常,對於簡單的邏輯錯誤,使用RTL可以看出來。本文要實現的是26位分頻器,下圖表示,每到來一個時鐘,即使用Add0加法器將當前tmp寄存器中的值累加1,再通過一個clk_out~reg0將最高位輸出,這正好應證了我們的設計思路。

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

七、引腳分配

邏輯綜合如果順利的話,設計中的輸入輸出引腳信息已經被分析出來,我們要做的就是將邏輯中的引腳分配到實際器件的引腳

(1)選擇菜單【Assignments】→【Pin Planner】後,即可打開PinPlanner對話框。我們根據EPM240T100開發板規格書中的引腳說明(對於任何一塊開發板,都必將有一個開發板的原理圖或接口引腳號的說明書,用來描述開發板上主芯片與外圍的連接關係),將其引腳如下圖所示分配即可:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

八、邏輯編譯

引腳分配完成後,就可以對工程進行全編譯,這包括邏輯綜合、適配、時序分析等步驟,本文暫不關注這些細節

(1)選擇菜單【Processing】→【Start Compilation】後,即可開始全編譯過程,如果順利的話,將如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

在總結中顯示了當前工程編譯後所佔用的資源情況,本工程使用51個宏單元,佔用總設計資源的21%,使用了2個引腳(即clk與clk_out),佔用總引腳的3%

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

九、邏輯下載

邏輯全編譯後即可生成下載文件,對於CPLD開發平臺,通常是.pof文件,對於FPGA開發平臺,還可以是.sof、.jic等文件

(1)選擇菜單【Tools】 → 【Programmer】後,在彈出的對話框中勾選“Program/Configure”,表示我們將要進行燒錄操作,此時應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)

如果您沒有插上下載器或下載器有異常,上圖中USB-Blaster[USB-0]處將會顯示“NoHardware”,這時您應該看看驅動是否安裝,或下載器是否正常,如果確定都正常,可以點擊左側的Hardware Setup…按鈕,彈出的對話框中列表中將有Usb blaster項,點擊即可。

(2)將開發平臺按規格書所述供好電源,再正確插上USB-Blaster JTAG口,點擊【Start】按鈕即可開始進行文件燒錄過程,燒錄順利後應如下圖所示:

最詳細FPGA/CPLD開發流程快速入門指南-基於Altera QuartusII(1)


分享到:


相關文章: