0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

h1654155282.3538 ? 來源:網(wǎng)絡(luò)整理 ? 2018-05-17 10:44 ? 次閱讀

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

FPGA開發(fā)流程詳解

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

1) 系統(tǒng)功能設(shè)計(jì)

在系統(tǒng)設(shè)計(jì)之前,首先要進(jìn)行的是方案論證、系統(tǒng)設(shè)計(jì)和FPGA芯片選擇等準(zhǔn)備工作。

一般都采用自頂向下的設(shè)計(jì)方法,把系統(tǒng)分成若干個(gè)基本單元,然后再把每個(gè)基本單元?jiǎng)澐譃橄乱粚哟蔚幕締卧?/p>

2) RTL級HDL設(shè)計(jì)

RTL級(Register Transfer Level,寄存器傳輸級)指不關(guān)注寄存器和組合邏輯的細(xì)節(jié)(如使用了多少個(gè)邏輯門、邏輯門的連接拓?fù)浣Y(jié)構(gòu)等),通過描述數(shù)據(jù)在寄存器之間的流動(dòng)和如何處理、控制這些數(shù)據(jù)流動(dòng)的模型的HDL設(shè)計(jì)方法。

RTL級比門級更抽象,同時(shí)也更簡單和高效。RTL級的最大特點(diǎn)是可以直接用綜合工具將其綜合成為門級網(wǎng)表,其中RTL級設(shè)計(jì)直接決定著系統(tǒng)的功能和效率。

3) RTL級仿真

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

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

4) 綜合

所謂綜合就是將較高級抽象層次的描述轉(zhuǎn)化成較低層次的描述。綜合優(yōu)化根據(jù)目標(biāo)與要求優(yōu)化所生成的邏輯連接,使層次設(shè)計(jì)平面化,供FPGA布局布線軟件進(jìn)行實(shí)現(xiàn)。

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

真實(shí)具體的門級電路需要利用FPGA制造商的布局布線功能,根據(jù)綜合后生成的標(biāo)準(zhǔn)門級結(jié)構(gòu)網(wǎng)表來產(chǎn)生。

5) 門級仿真

也稱為綜合后仿真,綜合后仿真檢查綜合結(jié)果是否和原設(shè)計(jì)一致。

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

6) 布局布線

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

目前,F(xiàn)PGA的結(jié)構(gòu)非常復(fù)雜,特別是在有時(shí)序約束條件時(shí),需要利用時(shí)序驅(qū)動(dòng)的引擎進(jìn)行布局布線。布線結(jié)束后,軟件工具會(huì)自動(dòng)生成報(bào)告,提供有關(guān)設(shè)計(jì)中各部分資源的使用情況。由于只有FPGA芯片生產(chǎn)商對芯片結(jié)構(gòu)最為了解,所以布局布線必須選擇芯片開發(fā)商提供的工具。

7) 時(shí)序仿真

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

8) FPGA板級調(diào)試

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

VHDL基本語法詳解

1、引用庫

library IEEE; //表示打開IEEE庫,因?yàn)镮EEE庫不屬于VHDL的標(biāo)準(zhǔn)庫,所以使用庫的內(nèi)容要先聲明

use ieee.numeric_std.all; //USE和ALL是關(guān)鍵詞,表示允許使用IEEE庫中numeric_std程序包中的所有內(nèi)容,這個(gè)程序包主要是用來做數(shù)據(jù)類型轉(zhuǎn)換

use ieee.std_logic_unsigned.all;

use ieee.std_logic_misc.all;

use ieee.std_logic_1164.all;

library UNISIM; //UNISIM是xilinx的庫函數(shù),為了仿真使用。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開發(fā)流程及VHDL基本語法

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

2、實(shí)體entity

實(shí)體類似于原理圖中的一個(gè)部件符號(hào),它并不描述設(shè)計(jì)的具體功能,只是定義所需的全部輸入/輸出信號(hào)。

舉例:

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

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

3、結(jié)構(gòu)體architecture

所有能被仿真的實(shí)體都由結(jié)構(gòu)體(ARCHITECTURE)描述,即結(jié)構(gòu)體描述實(shí)體的結(jié)構(gòu)或行為,一個(gè)實(shí)體可以有多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體分別代表該實(shí)體功能的不同實(shí)現(xiàn)方案。

結(jié)構(gòu)體名是對本結(jié)構(gòu)體的命名,它是該結(jié)構(gòu)體的惟一名稱,雖然可以由設(shè)計(jì)人員自由命名,但一般都將命名和對實(shí)體的描述結(jié)合起來,結(jié)構(gòu)體對實(shí)體描述有三種方式(括號(hào)中為命名):

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

2) 結(jié)構(gòu)描述(STRUCT):反映一個(gè)設(shè)計(jì)硬件方面的特征,表達(dá)了內(nèi)部元件間連接關(guān)系,使用元件例化來描述;

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

舉例:

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

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

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

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

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

4、元件component

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    816

    瀏覽量

    128045
  • FPGA開發(fā)
    +關(guān)注

    關(guān)注

    1

    文章

    43

    瀏覽量

    14869
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA入門:Verilog/VHDL語法學(xué)習(xí)的經(jīng)驗(yàn)之談

    FPGA入門:Verilog/VHDL語法學(xué)習(xí)的經(jīng)驗(yàn)之談 本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA/CPLD邊練邊學(xué)——快速
    發(fā)表于 01-29 09:20

    FPGA入門:基本開發(fā)流程概述

    FPGA入門:基本開發(fā)流程概述 本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA/CPLD邊練邊學(xué)——快速入門
    發(fā)表于 02-09 20:14

    FPGA入門:基本開發(fā)流程概述

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

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載4:Verilog與VHDL

    VHDL說到FPGA,我們一定關(guān)心它的開發(fā)方式。FPGA開發(fā)本質(zhì)上就是一些邏輯電路的實(shí)現(xiàn)而已,因此早期的
    發(fā)表于 09-26 21:07

    FPGA基本開發(fā)流程概述

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

    VHDL語法入門

    VHDL語法入門
    發(fā)表于 05-11 09:24

    FPGA入門開發(fā)具體流程有哪些?求過程

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

    FPGAVHDL快速工程實(shí)踐從入門到提高

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

    VHDL語言在FPGA/CPLD開發(fā)中的應(yīng)用?

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

    VHDL/VerilogHD語言開發(fā)PLD/FPGA的完整流程

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

    FPGA開發(fā)流程

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

    基于VHDLFPGA和Nios_II實(shí)例精煉

    vhdl語法介紹FPGA設(shè)計(jì)實(shí)例nios ii設(shè)計(jì)實(shí)例北航版本
    發(fā)表于 07-14 17:34 ?74次下載

    關(guān)于FPGA它的開發(fā)流程是怎樣的

    FPGA的設(shè)計(jì)流程就是利用EDA開發(fā)軟件和編程工具對FPGA芯片進(jìn)行開發(fā)的過程。FPGA
    發(fā)表于 11-06 15:17 ?2443次閱讀

    FPGA入門FPGA 開發(fā)流程

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

    FPGA的詳細(xì)開發(fā)流程

    ??FPGA 的詳細(xì)開發(fā)流程就是利用 EDA 開發(fā)工具對 FPGA 芯片進(jìn)行開發(fā)的過程,所以
    的頭像 發(fā)表于 07-04 14:37 ?4872次閱讀
    <b class='flag-5'>FPGA</b>的詳細(xì)<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>