那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA入門筆記_FPGA開發流程及VHDL基本語法

h1654155282.3538 ? 來源:網絡整理 ? 2018-05-17 10:44 ? 次閱讀

FPGA即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。本文主要介紹的是FPGA開發流程及VHDL基本語法,具體的跟隨小編來了解一下。

FPGA開發流程詳解

FPGA入門筆記_FPGA開發流程及VHDL基本語法

1) 系統功能設計

在系統設計之前,首先要進行的是方案論證、系統設計和FPGA芯片選擇等準備工作。

一般都采用自頂向下的設計方法,把系統分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元。

2) RTL級HDL設計

RTL級(Register Transfer Level,寄存器傳輸級)指不關注寄存器和組合邏輯的細節(如使用了多少個邏輯門、邏輯門的連接拓撲結構等),通過描述數據在寄存器之間的流動和如何處理、控制這些數據流動的模型的HDL設計方法。

RTL級比門級更抽象,同時也更簡單和高效。RTL級的最大特點是可以直接用綜合工具將其綜合成為門級網表,其中RTL級設計直接決定著系統的功能和效率。

3) RTL級仿真

也稱為功能(行為)仿真,或是綜合前仿真,是在編譯之前對用戶所設計的電路進行邏輯功能驗證,此時的仿真沒有延遲信息,僅對初步的功能進行檢測

仿真前,要先利用波形編輯器和HDL等建立波形文件和測試向量(即將所關心的輸入信號組合成序列),仿真結果將會生成報告文件和輸出信號波形,從中觀察各個節點信號的變化。雖然仿真是非必需步驟,但卻是系統設計中最關鍵的一步。為了提高功能仿真的效率,需要建立測試平臺testbench,其測試激勵一般使用行為級HDL語言描述。

4) 綜合

所謂綜合就是將較高級抽象層次的描述轉化成較低層次的描述。綜合優化根據目標與要求優化所生成的邏輯連接,使層次設計平面化,供FPGA布局布線軟件進行實現。

就目前的層次來看,綜合優化(Synthesis)是指將設計輸入編譯成由與門、或門、非門、RAM、觸發器等基本邏輯單元組成的邏輯連接網表,而并非真實的門級電路。

真實具體的門級電路需要利用FPGA制造商的布局布線功能,根據綜合后生成的標準門級結構網表來產生。

5) 門級仿真

也稱為綜合后仿真,綜合后仿真檢查綜合結果是否和原設計一致。

在仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中去,可估計門延時帶來的影響。但這一步驟不能估計線延時,因此和布線后的實際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,對于一般的設計可以省略這一步,但如果在布局布線后發現電路結構和設計意圖不符,則需要回溯到綜合后仿真來確認問題之所在。

6) 布局布線

實現是將綜合生成的邏輯網表配置到具體的FPGA芯片上,將工程的邏輯和時序與器件的可用資源匹配。布局布線是其中最重要的過程,布局將邏輯網表中的硬件原語和底層單元合理地配置到芯片內部的固有硬件結構上,并且往往需要在速度最優和面積最優之間作出選擇。布線根據布局的拓撲結構,利用芯片內部的各種連線資源,合理正確地連接各個元件。也可以簡單地將布局布線理解為對FPGA內部查找表和寄存器資源的合理配置,布局可以被理解挑選可實現設計網表的最優的資源組合,而布線就是將這些查找表和寄存器資源以最優方式連接起來。

目前,FPGA的結構非常復雜,特別是在有時序約束條件時,需要利用時序驅動的引擎進行布局布線。布線結束后,軟件工具會自動生成報告,提供有關設計中各部分資源的使用情況。由于只有FPGA芯片生產商對芯片結構最為了解,所以布局布線必須選擇芯片開發商提供的工具。

7) 時序仿真

是指將布局布線的延時信息反標注到設計網表中來檢測有無時序違規(即不滿足時序約束條件或器件固有的時序規則,如建立時間、保持時間等)現象。時序仿真包含的延遲信息最全,也最精確,能較好地反映芯片的實際工作情況。由于不同芯片的內部延時不一樣,不同的布局布線方案也給延時帶來不同的影響。因此在布局布線后,通過對系統和各個模塊進行時序仿真,分析其時序關系,估計系統性能,以及檢查和消除競爭冒險是非常有必要的。

8) FPGA板級調試

通過編程器將布局布線后的配置文件下載至FPGA中,對其硬件進行編程。配置文件一般為.pof或.sof文件格式,下載的方式包括AS(主動)、PS(被動)、JTAG(邊界掃描)等方式。

VHDL基本語法詳解

1、引用庫

library IEEE; //表示打開IEEE庫,因為IEEE庫不屬于VHDL的標準庫,所以使用庫的內容要先聲明

use ieee.numeric_std.all; //USE和ALL是關鍵詞,表示允許使用IEEE庫中numeric_std程序包中的所有內容,這個程序包主要是用來做數據類型轉換

use ieee.std_logic_unsigned.all;

use ieee.std_logic_misc.all;

use ieee.std_logic_1164.all;

library UNISIM; //UNISIM是xilinx的庫函數,為了仿真使用。Using this declaration, the simulator references the functional models for all device primitives. In addition to this declaration, you must compile the library and map the library to the simulator.

use UNISIM.VCOMPONENTS.ALL;

FPGA入門筆記_FPGA開發流程及VHDL基本語法

程序包的使用都可以在EDIT-》language templates-》VHDL-》Common Constructs-》Convertion Functions中找到例子。

2、實體entity

實體類似于原理圖中的一個部件符號,它并不描述設計的具體功能,只是定義所需的全部輸入/輸出信號。

舉例:

FPGA入門筆記_FPGA開發流程及VHDL基本語法

套用EDIT-》language templates-》VHDL-》Common Constructs-》Architecture Components & entity的舉例

3、結構體architecture

所有能被仿真的實體都由結構體(ARCHITECTURE)描述,即結構體描述實體的結構或行為,一個實體可以有多個結構體,每個結構體分別代表該實體功能的不同實現方案。

結構體名是對本結構體的命名,它是該結構體的惟一名稱,雖然可以由設計人員自由命名,但一般都將命名和對實體的描述結合起來,結構體對實體描述有三種方式(括號中為命名):

1) 行為描述(BEHAVE):反映一個設計的功能和算法,一般使用進程PROCESS,用順序語句表達;(下例中的情況)

2) 結構描述(STRUCT):反映一個設計硬件方面的特征,表達了內部元件間連接關系,使用元件例化來描述;

3) 數據流描述(DATAFLOW):反映一個設計中數據從輸入到輸出的流向,使用并行語句描述

舉例:

FPGA入門筆記_FPGA開發流程及VHDL基本語法

FPGA入門筆記_FPGA開發流程及VHDL基本語法

FPGA入門筆記_FPGA開發流程及VHDL基本語法

套用EDIT-》language templates-》VHDL-》Common Constructs-》Architecture Components & entity的舉例

FPGA入門筆記_FPGA開發流程及VHDL基本語法

4、元件component

上面例子中有了component的例化,具體的:

FPGA入門筆記_FPGA開發流程及VHDL基本語法

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128335
  • FPGA開發
    +關注

    關注

    1

    文章

    43

    瀏覽量

    15039
收藏 人收藏

    評論

    相關推薦

    FPGA入門:Verilog/VHDL語法學習的經驗之談

    FPGA入門:Verilog/VHDL語法學習的經驗之談 本文節選自特權同學的圖書《FPGA/CPLD邊練邊學——快速
    發表于 01-29 09:20

    FPGA入門:基本開發流程概述

    FPGA入門:基本開發流程概述 本文節選自特權同學的圖書《FPGA/CPLD邊練邊學——快速入門
    發表于 02-09 20:14

    FPGA入門:基本開發流程概述

    在第一章中,已經給出了FPGA/CPLD的基本開發流程圖。這里不妨回顧一下,如圖5.15所示。這個流程圖是一個相對比較高等級的FPGA/CP
    發表于 03-03 14:31

    勇敢的芯伴你玩轉Altera FPGA連載4:Verilog與VHDL

    VHDL說到FPGA,我們一定關心它的開發方式。FPGA開發本質上就是一些邏輯電路的實現而已,因此早期的
    發表于 09-26 21:07

    FPGA基本開發流程概述

    FPGA入門:基本開發流程概述 在第一章中,已經給出了FPGA/CPLD的基本開發
    發表于 01-28 02:29

    VHDL語法入門

    VHDL語法入門
    發表于 05-11 09:24

    FPGA入門開發具體流程有哪些?求過程

    FPGA入門開發具體流程有哪些?求過程
    發表于 07-26 06:44

    FPGAVHDL快速工程實踐從入門到提高

    FPGA/VHDL技術是近年來計算機與電子技術領域的又一場革命。本書以AAltera公司的FPGA/CPLD為主詳細介紹了FPGA、CPLD為主詳細介紹了
    發表于 07-11 15:06 ?58次下載
    <b class='flag-5'>FPGA</b>與<b class='flag-5'>VHDL</b>快速工程實踐從<b class='flag-5'>入門</b>到提高

    VHDL語言在FPGA/CPLD開發中的應用?

    【摘 要】 通過設計實例詳細介紹了用VHDL(VHSIC Hardware DescriptionLanguage)語言開發FPGA/CPLD的方法,以及與電路圖輸入和其它HDL語言相比,使用
    發表于 05-10 19:47 ?1210次閱讀
    <b class='flag-5'>VHDL</b>語言在<b class='flag-5'>FPGA</b>/CPLD<b class='flag-5'>開發</b>中的應用?

    VHDL/VerilogHD語言開發PLD/FPGA的完整流程

    VHDL /VerilogHD語言開發PLD/ FPGA 的完整流程為: 1.文本編輯:用任何文本編輯器都可以進行,也可以用專用的HDL編輯環境。通常
    發表于 05-21 12:58 ?1322次閱讀

    FPGA開發流程

    FPGA開發流程,好東西,喜歡的朋友可以下載來學習。
    發表于 01-18 15:17 ?33次下載

    基于VHDLFPGA和Nios_II實例精煉

    vhdl語法介紹FPGA設計實例nios ii設計實例北航版本
    發表于 07-14 17:34 ?74次下載

    關于FPGA它的開發流程是怎樣的

    FPGA的設計流程就是利用EDA開發軟件和編程工具對FPGA芯片進行開發的過程。FPGA
    發表于 11-06 15:17 ?2495次閱讀

    FPGA入門FPGA 開發流程

    FPGA 的設計流程就是利用 EDA 開發軟件和編程工具對 FPGA 芯片進行開發的過程。原理圖和HDL(Hardware descript
    的頭像 發表于 03-21 10:26 ?3368次閱讀

    FPGA的詳細開發流程

    ??FPGA 的詳細開發流程就是利用 EDA 開發工具對 FPGA 芯片進行開發的過程,所以
    的頭像 發表于 07-04 14:37 ?5183次閱讀
    <b class='flag-5'>FPGA</b>的詳細<b class='flag-5'>開發</b><b class='flag-5'>流程</b>
    百家乐现场新全讯网| 香港六合彩结果| 至尊百家乐吕文婉| 百家乐电子路单谁| 百家乐电投网址| 百家乐怎么玩才会赢钱| 蓝盾百家乐的玩法技巧和规则 | 百家乐真人游戏网| 百家乐园鼎盛娱乐场| 百家乐博娱乐网赌百家乐| 博彩百家乐画谜网| 立即博百家乐现金网| 澳门百家乐网上赌| 百家乐任你博娱乐场开户注册| 百家乐网| 皇冠足球比分网| 88百家乐官网现金网| 真人百家乐官网赢钱| 机器百家乐官网心得| 百家乐怎么才赢| 百盛百家乐的玩法技巧和规则| 大发888 188| 凯旋国际娱乐| 百家乐官网看单技术| 百家乐官网转盘技巧| 跨国际百家乐官网的玩法技巧和规则 | 百家乐官网经验博彩正网| 百家乐官网稳赢秘笈| 百家乐官网怎样玩才会赢钱 | 百家乐怎么玩最保险| 波克城市棋牌中心| 百家乐官网技术交流群| 游戏百家乐官网押金| 百家乐官网在线娱乐可信吗 | 大发888娱乐平台| 视频百家乐| 金博士百家乐官网娱乐城 | 百家乐最稳妥的打法| 威尼斯人娱乐城注册| 冷水江市| 哪家百家乐官网从哪而来|