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

2021-01-07 電子製作站

一、概述

本文以簡單的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】按鈕即可開始進行文件燒錄過程,燒錄順利後應如下圖所示:

相關焦點

  • Altera啟動全球 SoC FPGA開發者論壇
    這些開幕活動在矽谷、中國深圳和德國法蘭克福舉行,合作夥伴、開發者和工程師將匯聚一堂,他們共同關注使用基於ARM的SoC FPGA中的精細粒度異構計算技術,滿足下一代嵌入式計算應用需求。在ASDF提供的環境中,系統架構師、硬體工程師、軟體開發人員和固件工程師一起協作,討論概念和遇到的難題,學習最新的技術,了解Altera及其合作夥伴提供的SoC FPGA新產品。
  • Altera FPGA/CPLD設計 基礎篇+高級篇(附隨書光碟)
    在介紹FPGA/CPLD概念的基礎上,介紹了Altera主流FPGA/CPLD的結構與特點,並通過豐富的實例講解Quartus II與ModelSim、Synplify Pro等常用EDA工具的開發流程。
  • FPGA開發板快速教程(一)
    作為一個簡明的教程,主要宗旨是讓初學者快速地了解FPGA/SOPC(可編程片上系統)開發的流程。目前IT技術的發展可以說是一日千裡,以本人的觀點來講,如果希望在電子設計領域有所作為,則必須具備快速掌握新技術的能力。電子設計最重要的是實踐的積累,我們只要具備了一定的基礎,應當馬上投入實踐,否則很多概念都無法真正理解。
  • 《ANSYS ACT寶典》帶你快速上手仿真嚮導開發全流程
    因為仿真流程通常非常複雜,因此仿真使用往往會僅限於少數專家用戶,從而會降低工作流程的整體效率。通過ACT嚮導開發,就可以利用成熟的仿真流程以及最佳實踐,將特定的仿真流程壓縮為簡化、易於遵循的仿真步驟;這樣即使是非專業用戶可以使用嚮導逐步完成複雜的模擬,來快速生成所需的結果,提升整個企業的研發實力。今天我們文章內容會主要介紹ACT仿真嚮導的開發技術,另外兩種模式後續文章再做介紹。
  • 格拉斯哥卡利多尼安大學快速入門指南簡介
    如今,它已是一所蘇格蘭最具活力、創新和前瞻意識的大學之一。通過提供高質量的學習機會,以及與蘇格蘭乃至全世界的企業和社會更加緊密地合作,學校全心致力於對學生們的培養,使他們成為可以抓住世界各地新興的就業機會和商業機遇的創業型全球化公民,並利用知識和社會資本促進國際社會的經濟發展。下面南昌留學雲小編為大家介紹格拉斯哥卡利多尼安大學快速入門指南簡介!
  • 基於EDA的交通燈控制系統 (圖)
    環境下通過了編譯、仿真,並下載到cpld器件上進行編程製作,實現了交通燈系統的控制過程。因此,在設計中採用eda技術,應用目前廣泛應用的vhdl硬體電路描述語言,實現交通燈系統控制器的設計,利用maxplusⅱ集成開發環境進行綜合、仿真,並下載到cpld可編程邏輯器件中,完成系統的控制作用。  交通燈系統控制器設計要求---路口交通燈控制系統與其他控制系統一樣,劃分為控制器和受控電路兩部分。
  • 薦書 | Kotlin開發快速入門與實戰
    ;本書就是為這些人準備的學習與開發指南。最後一章介紹的項目案例不僅可以讓讀者在實際應用中更加熟練地掌握前面講到的知識點,更能讓讀者了解在Kotlin開發應用程式中從輪廓到細節的完整實現流程。本書分為7章,內容覆蓋Kotlin編程基礎知識和項目開發實戰。第1~4章系統介紹Kotlin語言,並且闡述應用程式開發必備的基礎知識。這些內容不僅適合新手學習,對有經驗的開發者同樣適用。
  • 基於CORDIC 2FSK調製器的FPGA設計
    但是DDS傳統的實現方式是基於查找表思想,即通過查找預先存儲的正餘弦表來產生需要的正餘弦值。當頻率、精度要求越高,需要存儲的值也就越多,考慮FPGA的RAM資源有限,傳統的DDS實現方式就有了應用瓶頸。因此導致開發成本過高,甚至無法實現,不適合現代通信系統的發展。
  • java快速開發框架工作流程引擎比較
    越來越多的企業和開發人員選擇java為了更好地幫助大家找到適合自己快速開發框架流程引擎, 快速地完成工作流引擎技術架構選型, 快速地完成項目交付。為了更好地幫助大家找到適合自己的流程引擎, 快速地完成流程引擎技術架構選型, 快速地完成項目交付。下面一起來看看java快速開發框架工作流引擎快速開發平臺。 希望您能從中找到適合您自己的流程引擎。
  • 基於MSP430單片機的冷媒中心控制系統的研製
    全自動冷媒加注控制系統採用16位單片機msp430f149為核心控制器,採用了atera公司新型cpld器件epf10k10a,並實現了外存數據加密,整機功能完備、可靠性高。 2 系統結構及控制流程 全自動冷媒加注系統結構主要由嵌入式控制系統、電子秤、真空泵、壓縮機、多個狀態檢測傳感器、執行開關和電磁閥等組成。如圖1所示。
  • CPLD對FPGA從並快速加載的解決方案
    FPGA是基於靜態隨機存儲器(SRAM)結構的,斷電後程序丟失後的每次上電都需要重新加載程序。且隨著FPGA規模的升級,加載程序的容量也越來越大,如Xilinx公司的Spartan - 6系列中的6SLX150T,其加載容量最大可以達到4.125 MB.
  • 009 | 快速入門Web前端開發的正確姿勢
    另外,有些人會推薦《JavaScript權威指南》,但這本書主要還是一本字典書,略顯晦澀,其實不適合入門。關於什麼是 Flux,可以參考阮一峰寫的一篇文章《Flux 架構入門教程》。vue-cli:vue-cli 是官方提供的命令行工具,用它可以快速創建 vue 項目。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • 基於JTAG接口實現ARM的FPGA在線配置
    本文介紹作者開發實現的一種基於ARM的嵌入式Linux下通過JTAG接口動態配置FPGA的方法。  系統使用三星公司基於ARM9的S3C2410處理器晶片,Altera公司CycloneII系列的EP2C70 FPGA晶片,ARM處理器上運行基於S3C2410裁剪後的嵌入式Linux系統,內核版本為2.4.18。
  • 高雲半導體FPGA系列面世 為國產FPGA注入活力
    本文引用地址:http://www.eepw.com.cn/article/264914.htm  三大系列產品詳細情況如下:  1.擁有完全自主智慧財產權的現場可編程門陣列(FPGA)朝雲™產品系列  朝雲™產品系列在目前FPGA市場上處於中密度範圍,邏輯單元從18K LUT到100K LUT。
  • 一種基於FPGA的視頻邊緣檢測系統設計
    摘要:對於視頻圖像檢測與識別的需要,提出了一種基於FPGA的視頻邊緣檢測系統設計方案,並完成系統的硬體設計。通過FPGA控制攝像頭進行視頻採集,雙埠SDRAM對圖像數據進行緩存,FPGA再對數據進行實時處理。
  • 通過點燈的邏輯體驗FPGA的編程流程以及Verilog語法基礎
    作為「寒假在家一起練」的第二次直播講座,我們今天就基於1個LED做了1個多小時的分享,從創建第一個FPGA項目、寫下第一句Verilog代碼,到調用FPGA的IP Cores,體驗了FPGA的設計流程以及Verilog的基本語法規範。
  • 基於FPGA的m序列信號發生器設計
    基於FPGA與Verilog硬體描述語言設計井實現了一種數據率按步進可調、低數據誤碼率、反饋多項式為本文引用地址:http://www.eepw.com.cn/article/263588.htm    1 m序列信號發生器的組成  基於FPGA的m序列信號發生器硬體結構極其簡單,僅需兩個獨立按鍵(一個是復位按鍵與另一個控制數據率切換按鍵)、一個48 MHz的用於提供系統時鐘有源晶振、系統電源、一塊配置晶片、幾個簡單的電阻與電容即可實現。
  • 針對 Quant 的 Python 快速入門指南
    作者:用Python的交易員最近有越來越多的朋友在知乎或者QQ上問我如何學習入門Python,就目前需求來看,我需要寫這麼一篇指南
  • 《料理模擬器》快速上手教程指南 怎麼快速入門?
    料理模擬器怎麼快速入門?想要自己經營好自己的小廚房,先要從基礎入門,有些萌新玩家還不知道怎麼操作,這裡給大家帶來了「獅子猿」提供的料理模擬器快速上手教程指南,一起來看下吧。 料理模擬器怎麼快速入門?