一、概述
本文以簡單的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後,初始界面應如下圖所示:
(2)選擇菜單【File】→【New Project Wizard…】後,即可彈出如下圖所示的新工程嚮導對話框:
設置工程目錄位於D:/demo,並將工程名命名為“demo”,同時軟件會自動將頂層設計模塊名填充為“demo”,因為QuartusII的工程名必須與頂層設計文件的模塊名一致,否則編譯將出錯
(3)選擇【Next >】後,即可進入如下圖所示的添加文件頁表。此頁表適用於源碼文件已經準備完好的情況,這樣直接添加源文件即可將其加入當前工程。本文為了更詳細展示設計流程,重新建立源碼文件,不進行添加操作。
(4)選擇【Next >】後,即可進入如下圖所示的器件選擇頁表項。您的開發平臺是什麼芯片型號,就在此頁表選擇相對應的器件型號,如果選擇的器件型號與您實際使用的芯片型號不一致,在邏輯下載步驟時將會出錯(如果你手頭沒有開發板,只是為了學習HDL語言或熟悉軟件,隨意選擇一個資源多點的就可以,防止因為HDL邏輯規模太大資源不夠用而出現編譯錯誤)。
由於ALTERA的器件非常多,因此QuartusII提供一些過濾選項,以協助我們快速找到對應的器件。本文的開發平臺芯片型號為“EPM240T100I5N”,該芯片為MAXII系列(Family),封裝(Package)為“TQFP”,引腳數量(Pin count)為“100”,速度等級(Speed grade)為“5”,如下圖所示:(對於EPM3032/3064或FPGA也是同樣的方法,如果您按照此對話框設置後,沒有找到您需要的器件型號,說明您可能沒有安裝該芯片對應的器件庫)
對於本工程實例,設置好器件型號後,就可以直接選擇【Finish】即可進入“第五節邏輯設計”即可,但如果您想了解其它頁表項,可繼續往下閱讀。
(5)選擇【Next >】後即可進入EDA工具設置頁表項。QuartusII支持很多第三方工具,比如綜合工具、仿真工具等等,第三工具通常在某一方面更為專業,特別是仿真工具,QuartusII已經不再提供仿真功能,只能用第三方仿真工具,如Modelsim來進行仿真。
由於我們的實例比較簡單,且僅注重開發流程,因此我們對此步驟不做調整(後續我們將詳述)
(6)選擇【Next >】後,即可進行進入如下圖所示的總結(Summary)頁表,這裡簡要顯示了您之前所做的所有設置,如果沒有問題的話,選擇【Finish】即可
五、邏輯設計
工程建立完成後,就可以開始著手進行邏輯的設計了
(1)選擇菜單【File】→【New…】即可彈出如下圖所示的新建(New)對話框,QuartusII支持很多的邏輯設計輸入方式,這裡我們選擇“Verilog HDL File”,表示我們將使用Verilog HDL語言作為本工程的邏輯設計輸入方式。
(2)選擇【OK】後,QuartusII將默認新建一個名為“Verilog1.v”的文件,我們將工程示例代碼拷貝進去,此時應如下圖所示:
注意:這個源代碼的模塊名demo是與左邊Project Navigator中工程名是一致的,而且是必須的
(2)選擇菜單【File】→【Save】後,將文件保存在工程目錄,並將其命名為“demo.v”即可,如下圖所示:
注意:文件名不一定必須是“demo.v”,QuartusII只要求模塊名與工程名相同,不要求與文件名相同
完成後此時應如下圖所示:
六、邏輯綜合
邏輯設計完畢後,可以初步對邏輯進行綜合,以判斷是否有諸如語法錯誤、邏輯錯誤等異常,並可初步對IO引腳進行分析
(1)選擇菜單【Processing】→【Start】→【Start Analysis & Synthesis】後,即可開始進行邏輯設計的綜合過程,完成後應如下圖所示:
(2)菜單選擇【Tools】→【Netlist Viewers】→【RTL Viewer】後即可出現RTL(寄存器傳輸級)圖,通常,對於簡單的邏輯錯誤,使用RTL可以看出來。本文要實現的是26位分頻器,下圖表示,每到來一個時鐘,即使用Add0加法器將當前tmp寄存器中的值累加1,再通過一個clk_out~reg0將最高位輸出,這正好應證了我們的設計思路。
七、引腳分配
邏輯綜合如果順利的話,設計中的輸入輸出引腳信息已經被分析出來,我們要做的就是將邏輯中的引腳分配到實際器件的引腳
(1)選擇菜單【Assignments】→【Pin Planner】後,即可打開PinPlanner對話框。我們根據EPM240T100開發板規格書中的引腳說明(對於任何一塊開發板,都必將有一個開發板的原理圖或接口引腳號的說明書,用來描述開發板上主芯片與外圍的連接關係),將其引腳如下圖所示分配即可:
八、邏輯編譯
引腳分配完成後,就可以對工程進行全編譯,這包括邏輯綜合、適配、時序分析等步驟,本文暫不關注這些細節
(1)選擇菜單【Processing】→【Start Compilation】後,即可開始全編譯過程,如果順利的話,將如下圖所示:
在總結中顯示了當前工程編譯後所佔用的資源情況,本工程使用51個宏單元,佔用總設計資源的21%,使用了2個引腳(即clk與clk_out),佔用總引腳的3%
九、邏輯下載
邏輯全編譯後即可生成下載文件,對於CPLD開發平臺,通常是.pof文件,對於FPGA開發平臺,還可以是.sof、.jic等文件
(1)選擇菜單【Tools】 → 【Programmer】後,在彈出的對話框中勾選“Program/Configure”,表示我們將要進行燒錄操作,此時應如下圖所示:
如果您沒有插上下載器或下載器有異常,上圖中USB-Blaster[USB-0]處將會顯示“NoHardware”,這時您應該看看驅動是否安裝,或下載器是否正常,如果確定都正常,可以點擊左側的Hardware Setup…按鈕,彈出的對話框中列表中將有Usb blaster項,點擊即可。
(2)將開發平臺按規格書所述供好電源,再正確插上USB-Blaster JTAG口,點擊【Start】按鈕即可開始進行文件燒錄過程,燒錄順利後應如下圖所示:
閱讀更多 電子製作站 的文章