《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 其他 > VHDL語言編寫規范基礎:標識符命名/數據對象/信號、變量和常量

VHDL語言編寫規范基礎:標識符命名/數據對象/信號、變量和常量

2022-09-30
來源:Carlinx FPGA
關鍵詞: D觸發器 VHDL語言

  標識符命名規范

  標識符用于定義實體名、結構體名、信號和變量名等,選擇有意義的命名對設計是十分重要的。命名包含信號或變量諸如出處、有效狀態等基本含義,有利于提高代碼的可讀性。

  1.1 標識符習慣命名規則

  1.1.1 標識符定義命名規定

  標識符第一個字符必須是字母,最后一個字符不能是下劃線,同時不允許出現連續兩個下劃線?;緲俗R符只能由字母、數字和下劃線組成,標識符兩詞之間須用下劃線連接,如 Packet_addr, Data_in, Mem_wr, Mem_ce。標識符不得與保留字同名,VHDL規定的保留字見1.3。

  1.1.2 標識符大小寫規定

  通常情況下,常量、數據類型、實體名和結構體名采用全部大寫,變量采用小寫,信號僅第一個詞首字符采用大寫,保留字一律小寫。

  1.2 信號名習慣命名規則

  1.2.1 信號名縮寫規定

  信號名常采用縮寫形式以便書寫和理解,單詞縮寫中信號名的第一個單詞首字符通常大寫,例如Addr_in。采用縮寫時應保證同一信號在模塊中和不同層次內的一致性。

  部分常用的縮寫為:

  Addr address; Clk clock; Clr clear;

  Cnt counter; En enable; Inc increase;

  Lch latch; Mem memory; Pntr pointer;

  Pst preset; Rst reset; Reg register;

  Rd reader; Wr write;

  ROM; RAM; CPU; FIFO; ALU; CS; CE

  1.2.2 信號名命名建議

  信號名應當使用有意義而且有效的名字,能簡單包含該信號的全部或部分信息,如:Data_in(數據輸入)、Din(單根數據線輸入)、FIFO_out(FIFO數據總線輸出)、Cnt8_q(8位計數器輸出信號)。

  信號名采用明確且有意義的后綴 ,常用的后綴如下:

87.JPG

  說明:

  采用D觸發器對信號進行延遲、延遲信號的命名在原信號名之后加后綴_L,若是在流水線設計中有級延遲,再分別加后綴_L1、_L2……(L表示lock);模塊內的反饋信號,在原信號名之后加后綴_s(s表示same)。

  1.3 VHDL保留字

  VHDL的保留字匯總如下:

  absaccess after alias all and architecture array assert  attribute begin block buffer bus case component configuraTIon constant disconnect downto else elsif end enTIty exit file for funcTIon generate generic group guarded if impure in inerTIal inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process pure range record register reject rem report return rol ror select severity signal shared sla sll sra srl subtype then to transport type unaffected units until use variablewait when while with xnor xor

  02

  數據對象與類型

  2.1 數據對象與類型概述

  VHDL是很強的類型語言,其數據對象和類型匯總見下表:(其中紅色字體為不可綜合的數據對象和數據類型)

88.JPG

  不同基本類型的數據不能由另一類型賦值,不同類型間的賦值需使用運算符的重載,例如Cnt8_q為STD_LOGIC_VECTOR類型,若不調用相關庫(使用use IEEE.std_logic_arith.all 語句)對 '+' 運算符進行重載,則 Cnt8_q <= Cnt8_q + 1 語句在綜合中將報錯。

  通常情況常量名和數據類型菜用大寫標識符表示。

  2.2 數據類型使用建議與注意內容

  為改善代碼的可讀性,可把常用的常量和自定義的數據類型在程序包中定義;使用別名來標識一組數據類型有利于使代碼更清晰,如

  signal Addr STD_LOGIC_VECTOR(31 downto 0);

  alias Top_addr STD_LOGIC_VECTOR(3 downto 0) is Addr(31 downto 28) ;

  可枚舉類型的值為標識符或單個字母的字面量是區分大小寫的,如 Z 與z 是兩個不同的量。

  03

  信號、變量與常量

  3.1 信號、變量與常量的含義

  VHDL常用的數據類型主要有信號、變量與常量這三類,不同類型的數據有各自不同的含義:

  3.1.1 信號(signal)

  信號是VHDL語法中最重要、最常用的一種可賦值對象,一般對應電路中特定的物理連線或存儲單元。除在模塊內部聲明的signal數據外,VHDL模塊的port結構中in、out、buffer或者inout類型的端口也是signal類型的。

  3.1.2 變量(variable)

  變量在VHDL代碼中不具有特定的物理意義,對應關系也不太直接。作為一個局部量,變量通常只代表某些值暫存的載體。

  3.1.3 常量(constant)

  常量在VHDL具有特定的物理意義,通常對應數字電路中的電源或者地。常量能出現在所有信號和變量出現的場合,定義常量的主要目的是為了使設計實體中的某些量易于閱讀和修改。

  3.2 信號、變量與常量的聲明與賦值

  VHDL數據在調用前需要進行聲明與賦值操作,不同數據類型的數據聲明與賦值的位置和方式有所不同:

  ARCHITECTURE … OF … IS

  SIGNAL 信號1:數據類型;

  --信號聲明在這里,在ARCHITECTURE的BEGIN之前

  BEGIN

  PROCESS(…)

  VARIABLE 變量1:數據類型;

  --變量聲明在這里,在PROCESS的BEGIN之前。

  BEGIN

  END PROCESS;

  END;

  3.2.1 信號的聲明與賦值

  信號通常在結構體內部,進程、子程序及函數外部聲明;在進程中,信號賦值僅在進程結束時起作用,即不能夠為同一信號多次賦值。

  信號聲明:SIGNAL 信號名:數據類型 := 初值;

  信號賦值:信號名 <= 數值;

  3.2.2 變量的聲明與賦值

  變量通常只能在進程、子程序和函數內部聲明;變量的賦值是立即起作用的,即變量值在賦新值時立刻改變。

  變量聲明:VARIABLE 變量名:數據類型 := 初值;

  變量賦值:變量名 := 數值/表達式;

  3.2.3 常量的聲明與賦值

  常量可以在信號和變量出現的所有場合進行聲明,通常情況下,常量不能單獨賦值,僅能在聲明的同時被初始化賦值。

  常量聲明:CONSTANT 常量名:數據類型 := 表達式;

  3.3 使用建議與注意內容

  1. 信號通常情況下不允許賦初值:

  盡管當前主流FPGA均支持數據賦初值,但是為避免硬件可能出現的問題,通常不在信號聲明時賦初值,而是采用復位時賦值的方法來賦初值。

  2. 變量在可綜合模塊中不建議使用:

  變量主要用在高層次的模擬模型建模及用于運算的用途,由于變量的綜合較難定義,對于編寫可綜合的VHDL模塊,在沒有把握綜合結果情況下不建議使用。

  3. 信號在進程中賦值情況解釋:

  signal_assign: process(A,B,C)

  begin

  D <= A;----- ignored!!

  X <= C or D ;

  D <= B ;---- overrids !!

  Y <= C xor D ;

  end;

  上面代碼的實際運行結果是:B賦值給D,C or B的結果賦值給X,C xor B的結果賦值給Y。

  4. 變量在進程中賦值情況解釋:

  variable_assign:process(A,B,C)

  variable d:STD_LOGIC

  begin

  d := A;

  X <= C or d;

  d := B;

  Y <= C xor d ;

  end process;

  上面代碼的實際運行結果是:C or A賦值給X,C xor B賦值給Y。



更多信息可以來這里獲取==>>電子技術應用-AET<< 

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区.www| 最新国产精品拍自在线播放| 一区二区三区在线视频播放| 国产欧美日韩麻豆91| 欧美日韩一级视频| 欧美精品一区二区三区蜜臀| 欧美va天堂| 蜜桃久久精品一区二区| 久久久久久久久久久一区| 欧美一区二区三区久久精品茉莉花| 亚洲视频免费在线观看| 在线中文字幕不卡| 亚洲深夜影院| 亚洲色图自拍| 亚洲尤物视频网| 亚洲欧美日韩区| 在线成人免费视频| 久久久久国产精品一区| 久久精品国产91精品亚洲| 午夜精品影院在线观看| 亚洲中字黄色| 亚洲综合激情| 欧美一区二区大片| 久久激情一区| 久久久久久尹人网香蕉| 久久九九电影| 久久综合久久88| 美腿丝袜亚洲色图| 欧美成人精品不卡视频在线观看 | 久久婷婷色综合| 久久综合给合| 欧美精品色网| 欧美日韩蜜桃| 国产精品区二区三区日本| 国产精品爽黄69| 国产一区二区三区四区在线观看| 一区在线电影| 日韩视频不卡| 亚洲欧美日本伦理| 久久精品国产视频| 亚洲欧洲一区二区在线观看| 一本色道久久88精品综合| 亚洲午夜国产成人av电影男同| 亚洲欧美日韩天堂| 久久裸体艺术| 欧美日本一区二区三区| 国产精品久久久| 国产情人综合久久777777| 亚洲丶国产丶欧美一区二区三区 | 99视频国产精品免费观看| 亚洲午夜高清视频| 欧美在线观看视频一区二区| 最新国产乱人伦偷精品免费网站| 夜夜爽av福利精品导航 | 国产精品区一区| 黄色成人av网站| 亚洲精品自在在线观看| 午夜精品在线视频| 亚洲国产毛片完整版 | 99国产精品久久久久久久久久| 亚洲永久免费精品| 亚洲国产乱码最新视频| 亚洲一区区二区| 久久亚洲精品欧美| 欧美日韩综合| 国产一区二区剧情av在线| 亚洲欧洲在线看| 亚洲男同1069视频| 亚洲国产日韩一区二区| 午夜精品久久久久99热蜜桃导演| 另类春色校园亚洲| 国产精品久久久一本精品| 精品电影一区| 亚洲专区在线视频| 亚洲日本无吗高清不卡| 欧美一区二区精品久久911| 欧美国产日韩免费| 国产欧美91| 亚洲精品一区二区三| 欧美在线播放一区二区| 亚洲影视九九影院在线观看| 久久综合久色欧美综合狠狠| 国产精品每日更新| 亚洲国内欧美| 久久精品午夜| 欧美尤物一区| 欧美日韩亚洲另类| 亚洲电影第1页| 欧美一级网站| 亚洲综合色激情五月| 欧美国产在线观看| 国内激情久久| 亚洲欧美一区二区三区极速播放| 日韩小视频在线观看| 久久亚洲国产精品一区二区| 国产精品一国产精品k频道56| 亚洲精品女av网站| 亚洲人成网站影音先锋播放| 久久久久国色av免费看影院| 国产精品久久久久9999高清| 亚洲精品在线三区| 91久久国产综合久久| 久久精品91久久久久久再现| 国产精品视频九色porn| 99精品免费网| 一本一本久久a久久精品综合妖精| 免费成人你懂的| 黄色日韩精品| 久久不射中文字幕| 久久精品国产91精品亚洲| 国产日韩欧美a| 亚洲制服av| 香蕉成人久久| 国产精品久久久久久超碰| 一本久久a久久精品亚洲| 一本色道**综合亚洲精品蜜桃冫| 欧美激情亚洲自拍| 亚洲国产精品久久久| 亚洲欧洲精品一区| 嫩草国产精品入口| …久久精品99久久香蕉国产| 亚洲国产成人高清精品| 久久综合999| 樱桃国产成人精品视频| 亚洲二区在线观看| 久热成人在线视频| 狠狠色香婷婷久久亚洲精品| 久久精品视频亚洲| 欧美mv日韩mv国产网站| 亚洲欧洲精品一区二区三区不卡| 日韩视频免费在线观看| 欧美大片在线影院| 亚洲三级影院| 亚洲尤物在线视频观看| 国产精品久久久久久久久久久久久 | 亚洲桃花岛网站| 亚洲欧美成人网| 国产精品美女久久久免费| 亚洲视频导航| 欧美一级视频| 国产一区高清视频| 久久精品国产免费| 免费精品99久久国产综合精品| 亚洲国产欧美一区二区三区同亚洲| 亚洲另类一区二区| 欧美日韩美女在线| 亚洲一区三区电影在线观看| 欧美诱惑福利视频| 狠狠色综合一区二区| 亚洲人成亚洲人成在线观看| 欧美日韩午夜剧场| 亚洲综合久久久久| 久久久久se| 亚洲人成网在线播放| 亚洲一区二区不卡免费| 国产啪精品视频| 亚洲韩国日本中文字幕| 欧美日韩精品是欧美日韩精品| 亚洲一区二区三区高清| 久久精品国产亚洲一区二区三区| 一区二区在线免费观看| 中国成人亚色综合网站| 国产精品一区二区三区久久久| 久久精品一区二区国产| 欧美日韩成人在线| 亚洲欧美电影院| 美女网站久久| 一区二区三区久久久| 久久精品视频va| 亚洲黄色三级| 欧美一区深夜视频| 亚洲激情六月丁香| 小处雏高清一区二区三区| 伊人久久婷婷| 亚洲欧美日韩精品综合在线观看| 一区二区三区在线视频免费观看| 中文网丁香综合网| 国色天香一区二区| 亚洲一二三区视频在线观看| 国内综合精品午夜久久资源| 亚洲午夜激情免费视频| 伊人久久大香线蕉综合热线| 亚洲欧美经典视频| 亚洲观看高清完整版在线观看| 亚洲专区一区二区三区| 樱桃视频在线观看一区| 亚洲欧美精品中文字幕在线| 在线高清一区| 午夜精品视频在线| 亚洲人成人一区二区在线观看| 久久成年人视频| 亚洲每日更新| 久久综合久色欧美综合狠狠 | 91久久夜色精品国产九色| 国产精品裸体一区二区三区| 91久久综合| 国产日韩欧美在线视频观看| 99ri日韩精品视频| 今天的高清视频免费播放成人| 亚洲欧美中文日韩在线|