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

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

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

VHDL語言

放人 ? 來源:電氣工程及其自動化學(xué)習(xí) ? 作者:電氣工程及其自動 ? 2022-11-09 13:32 ? 次閱讀

一個完整的VHDL程序包括實體(Entity),結(jié)構(gòu)體(Architecture),配置(Configuration),包集合(Package),庫(Library)5個部分。在VHDL程序中,實體和結(jié)構(gòu)體這兩個基本結(jié)構(gòu)是必須的,他們可以構(gòu)成最簡單的VHDL程序。實體用于描述電路器件的外部特性;結(jié)構(gòu)體用于描述電路器件的內(nèi)部邏輯功能或電路結(jié)構(gòu);包集合存放各設(shè)計模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等;配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計的不同版本;庫用于存放已經(jīng)編譯的實體、結(jié)構(gòu)體、包集合和配置。

e3a6088e-5fef-11ed-b468-dac502259ad0.jpg


一,實體

??實體是VHDL程序設(shè)計的基礎(chǔ)單元。實體聲明對設(shè)計實體與外部電路的端口描述,以及定義所有輸入和輸出端口的基本性質(zhì),是實體對外的一個通信界面。實體聲明以entity開始,由end entity 或 end 結(jié)束,關(guān)鍵詞不區(qū)分大小寫。實體聲明語句結(jié)構(gòu)如下:

??entity 實體名 is
????[generic (類屬參量) ;]
????[port (端口說明);]
??end entity 實體名;

1,實體名:一般由用戶定義,最好能體現(xiàn)功能;

2,類屬參量:是一個可選項;它是一種端口界面常數(shù),常用來規(guī)定端口的大小、實體中元件的數(shù)目及實體的定時特性等。類屬參量的值可由實體的外部提供,用戶可以從外面通過重新設(shè)定類屬參量來改變一個實體或一個元件內(nèi)部電路結(jié)構(gòu)和規(guī)模。

3,端口說明:端口為實體和其外部環(huán)境提供動態(tài)通信的通道,利用port語句可以描述設(shè)計電路的端口和端口模式。格式如下
??port(端口名:端口模式 數(shù)據(jù)類型;…)

(1)端口名:是用戶為實體的每個對外通道所取得名字,通常為英文字母加數(shù)字得形式。
(2)端口模式:可綜合得端口模式有四種,分別是:IN,OUT,INOUT,BUFFER.用于定義端口上數(shù)據(jù)得流動方向和方式。

e3cd1fdc-5fef-11ed-b468-dac502259ad0.jpg


二,結(jié)構(gòu)體

??結(jié)構(gòu)體描述了實體的結(jié)構(gòu)、行為、元件及內(nèi)部連接關(guān)系,即定義了設(shè)計實體的功能,規(guī)定了實體的數(shù)據(jù)流程,指定了實體內(nèi)部的數(shù)據(jù)連接關(guān)系。結(jié)構(gòu)體是對實體功能的具體描述,一定跟在實體的后面。
??結(jié)構(gòu)體一般分為兩個部分,第一部分是對數(shù)據(jù)類型,常量,信號,子程序和元件等因素進行說明;第二部分是描述實體的邏輯行為、以及各種不同的描述風(fēng)格的功能描述語句,包括各種順序語句和并行語句。結(jié)構(gòu)體聲明語句結(jié)構(gòu)如下:
??architecture 結(jié)構(gòu)體名 of 實體名 is
????[定義語句]
??begin
????[功能描述語句]
??end 結(jié)構(gòu)體名;

1,結(jié)構(gòu)體名:用戶自行定義,通常用dataflow(數(shù)據(jù)流),behavior(行為),structural(結(jié)構(gòu))
命名。體現(xiàn)了三種不同結(jié)構(gòu)體的描述方式。

2,結(jié)構(gòu)體信號定義語句
??結(jié)構(gòu)體信號定義語句必須放在關(guān)鍵詞architecture和 begin之間,用于對結(jié)構(gòu)體內(nèi)部將要使用的信號、常數(shù)、數(shù)據(jù)類型、元件函數(shù)和過程進行說明。結(jié)構(gòu)體定義的信號為該結(jié)構(gòu)體的內(nèi)部信號,只能用于這個結(jié)構(gòu)體中。結(jié)構(gòu)體中的信號定義和端口說明一樣,應(yīng)有信號名稱和數(shù)據(jù)類型定義。用于結(jié)構(gòu)體中的信號是內(nèi)部連接用的信號,因此不需要方向說明。

3,結(jié)構(gòu)體功能描述語句
??結(jié)構(gòu)體功能描述語句位于begin和end之間,具體的描述了結(jié)構(gòu)體的行為及其連接關(guān)系。結(jié)構(gòu)體功能描述語句可以含有5中不同類型的并行語句。語句結(jié)構(gòu)內(nèi)部可以使用并行語句,也可以使用順序語句。

e3fa536c-5fef-11ed-b468-dac502259ad0.jpg


三,庫

??庫用來存儲已經(jīng)完成的程序包等VHDL設(shè)計和數(shù)據(jù),包含各類包定義、實體、機構(gòu)體等。在VHDL庫中,庫的說明總是放在設(shè)計單元的最前面。這樣,設(shè)計單元內(nèi)的語句就可以使用庫中的數(shù)據(jù),便于用戶共享已經(jīng)編譯的設(shè)計結(jié)果。

1,庫的說明
庫的說明使用use語句,通常有以下兩種格式:
??use 庫名. 程序包名. 工程名;
??use 庫名. 程序包名.all;
??第一種格式的作用是向本設(shè)計實體開放指定庫中的特定程序包內(nèi)的選定工程。第二種格式的作用是向本設(shè)計實體開放指定庫中特定程序包內(nèi)的所有內(nèi)容。

2,常見庫
(1)IEEE庫
IEEE庫中包含以下四個包集合

STD_LOGIC_1164:標準邏輯類型和相應(yīng)函數(shù);
STD_LOGIC_ARITH:數(shù)學(xué)函數(shù);
STD_LOGIC_SIGNED:符號數(shù)學(xué)函數(shù);
STD_LOGIC_UNSIGNED:無符號數(shù)學(xué)函數(shù);

(2)STD庫
STD庫是符合VHDL標準的庫,使用時不需要顯示聲明;

(3)ASIC矢量庫
各個公司提供的ASIC邏輯門庫;

(4)WORK庫
WORK庫為現(xiàn)行行業(yè)庫,用于存放用戶的VHDL程序,使用戶自己的庫。

??VHDL語法比較規(guī)范,對任何一種數(shù)據(jù)對象(信號,變量,常數(shù)),必須嚴格限定其取值范圍,即明確界定對其傳輸或存儲的數(shù)據(jù)類型。在VHDL中,有多種預(yù)先定義好的數(shù)據(jù)類型,如,整數(shù)數(shù)據(jù)類型INTEGER,布爾數(shù)據(jù)類型BOOLEAN,標準邏輯位數(shù)據(jù)類型STD_LOGIC和為數(shù)據(jù)類型BIT等。
??VHDL要求賦值運算符“<=”兩邊的信號數(shù)據(jù)類型必須一致。VHDL共7中基本邏輯運算符,AND(與),OR(或),NAND(與非),NOR(或非),XOR(異或),XNOR(同或),NOT(取反)。邏輯運算符所要求的操作對象的數(shù)據(jù)類型有三種,即BIT,BOOLEAN,STD_LOGIC。

審核編輯 黃昊宇

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

    關(guān)注

    1

    文章

    113

    瀏覽量

    17974
收藏 人收藏

    評論

    相關(guān)推薦

    Verilog到VHDL轉(zhuǎn)換的經(jīng)驗與技巧總結(jié)

    Verilog與VHDL語法是互通且相互對應(yīng)的,如何查看二者對同一硬件結(jié)構(gòu)的描述,可以借助EDA工具,如Vivado,打開Vivado后它里面的語言模板后,也可以對比查看Verilog和VHDL之間的差異。
    的頭像 發(fā)表于 04-28 17:47 ?2113次閱讀
    Verilog到<b class='flag-5'>VHDL</b>轉(zhuǎn)換的經(jīng)驗與技巧總結(jié)

    fpga語言是什么?fpga語言與c語言的區(qū)別

    功能,從而實現(xiàn)對數(shù)字電路的高效定制。FPGA語言主要包括VHDL(VHSIC Hardware Description Language)和Verilog等,這些語言具有強大的描述能力,能夠精確地定義硬件的每一個細節(jié),從而實現(xiàn)復(fù)
    的頭像 發(fā)表于 03-15 14:50 ?880次閱讀

    fpga通用語言是什么

    FPGA(現(xiàn)場可編程門陣列)的通用語言主要是指用于描述FPGA內(nèi)部邏輯結(jié)構(gòu)和行為的硬件描述語言。目前,Verilog HDL和VHDL是兩種最為廣泛使用的FPGA編程語言
    的頭像 發(fā)表于 03-15 14:36 ?468次閱讀

    fpga三種編程語言

    FPGA(現(xiàn)場可編程門陣列)的編程涉及到三種主要的硬件描述語言(HDL):VHDL(VHSIC Hardware Description Language)、Verilog以及SystemVerilog。這些語言在FPGA設(shè)計和
    的頭像 發(fā)表于 03-15 14:36 ?977次閱讀

    fpga用什么語言編程

    FPGA(現(xiàn)場可編程門陣列)的編程主要使用硬件描述語言(HDL),其中最常用的是Verilog HDL和VHDL
    的頭像 發(fā)表于 03-14 18:17 ?2588次閱讀

    fpga用的是什么編程語言 fpga用什么語言開發(fā)

    fpga用的是什么編程語言 FPGA(現(xiàn)場可編程邏輯門陣列)主要使用的編程語言是硬件描述語言(HDL)。在眾多的HDL中,Verilog HDL和VHDL是最常用的兩種。 Verilo
    的頭像 發(fā)表于 03-14 17:09 ?3249次閱讀

    fpga芯片用什么編程語言

    FPGA芯片主要使用的編程語言包括Verilog HDL和VHDL。這兩種語言都是硬件描述語言,用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)和行為。
    的頭像 發(fā)表于 03-14 16:07 ?1425次閱讀

    基于VHDL的組合邏輯設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于VHDL的組合邏輯設(shè)計.ppt》資料免費下載
    發(fā)表于 03-11 09:23 ?2次下載

    VHDL語言快速入門指南

    HDL(VHSIC Hardware Description Language)是一種硬件描述語言,主要用于描述數(shù)字電路和系統(tǒng)的結(jié)構(gòu)、行為和功能。它是一種用于硬件設(shè)計的標準化語言,能夠幫助工程師們更好地描述和設(shè)計數(shù)字電路,并且廣泛應(yīng)用于FPGA和ASIC設(shè)計中。
    發(fā)表于 03-04 11:41 ?2601次閱讀
    <b class='flag-5'>VHDL</b><b class='flag-5'>語言</b>快速入門指南

    初識FPGA需要關(guān)注的注意事項!

    Verilog語言,VHDL語言語法規(guī)范嚴格,調(diào)試起來很慢,Verilog語言容易上手,而且,一般大型企業(yè)都是用Verilog語言。 2.
    發(fā)表于 02-22 10:57

    開源VHDL驗證方法 (OSVVM)

    電子發(fā)燒友網(wǎng)站提供《開源VHDL驗證方法 (OSVVM).docx》資料免費下載
    發(fā)表于 12-26 09:57 ?0次下載

    用CPLD接收AD7986數(shù)據(jù),轉(zhuǎn)換結(jié)果總是讀取不對怎么解決?

    小弟目前在調(diào)試使用CPLD接收AD7986數(shù)據(jù),轉(zhuǎn)換結(jié)果總是讀取不對。使用的VHDL語言,速率已經(jīng)降得很低了,還是讀不對。請大俠指點。
    發(fā)表于 12-22 08:09

    例說Verilog HDL和VHDL區(qū)別

    Verilog和VHDL之間的區(qū)別將在本文中通過示例進行詳細說明。對優(yōu)點和缺點的Verilog和VHDL進行了討論。
    的頭像 發(fā)表于 12-20 09:03 ?3041次閱讀
    例說Verilog HDL和<b class='flag-5'>VHDL</b>區(qū)別

    如何在Saber中使用C語言進行建模呢?

    Saber不僅支持MAST語言VHDL‐AMS語言建立模型,也支持C語言建立器件模型,這對熟悉C語言編程的用戶帶來了很大的方便和實用。采用
    的頭像 發(fā)表于 12-05 11:30 ?1067次閱讀
    如何在Saber中使用C<b class='flag-5'>語言</b>進行建模呢?

    FPGA-PC1500的數(shù)碼創(chuàng)新作品-數(shù)碼音樂和語音識別

    數(shù)據(jù)處理,并生成識別結(jié)果。 8. 將識別結(jié)果輸出到FPGA的外部接口(如顯示器或串口)或存儲在內(nèi)部存儲器中供后續(xù)處理使用。 在FPGA開發(fā)語音識別系統(tǒng)時,使用的語言是硬件描述語言,有VHDL(VHSIC
    發(fā)表于 12-01 14:15