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

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

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

  標識符命名規范

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

  1.1 標識符習慣命名規則

  1.1.1 標識符定義命名規定

  標識符第一個字符必須是字母,最后一個字符不能是下劃線,同時不允許出現連續兩個下劃線。基本標識符只能由字母、數字和下劃線組成,標識符兩詞之間須用下劃線連接,如 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亚洲国产精品_日韩亚洲一区二区
欧美激情一区二区三区全黄| 国产乱人伦精品一区二区| 午夜精品美女自拍福到在线 | 这里只有精品在线播放| 91久久精品国产91久久| 性久久久久久久久| 亚洲午夜精品一区二区三区他趣| 亚洲靠逼com| 日韩视频亚洲视频| 亚洲老司机av| 亚洲毛片一区| 日韩午夜激情av| 一区二区三区日韩精品视频| 亚洲精品美女在线观看| 亚洲精品久久久久久久久久久久久| 亚洲国产成人久久| 亚洲国产乱码最新视频| 亚洲激情欧美激情| 日韩亚洲成人av在线| 中日韩视频在线观看| 亚洲美女在线国产| 一本色道久久综合亚洲91| 一区二区三区视频观看| 亚洲视频一区在线| 夜夜嗨av一区二区三区四季av| 亚洲最新视频在线| 亚洲毛片播放| 亚洲午夜一区二区| 午夜精品影院在线观看| 欧美在线网站| 久久婷婷国产综合尤物精品 | 国产亚洲电影| 一区二区三区我不卡| 亚洲国产高清自拍| 亚洲经典一区| 一区二区欧美视频| 亚洲综合精品自拍| 亚洲电影天堂av| 一区二区三区精品国产| 亚洲一二三级电影| 欧美亚洲三区| 久热re这里精品视频在线6| 欧美激情免费在线| 国产精品乱码一区二三区小蝌蚪| 国产欧美日韩免费看aⅴ视频| 国产在线一区二区三区四区| 一区二区三区在线视频播放 | 亚洲欧洲精品成人久久奇米网| 亚洲精品中文字幕有码专区| 亚洲午夜在线观看视频在线| 香蕉亚洲视频| 美玉足脚交一区二区三区图片| 欧美欧美午夜aⅴ在线观看| 国产精品亚洲成人| 精品91免费| 99精品视频免费观看视频| 午夜精品福利电影| 亚洲三级免费观看| 亚洲欧美另类久久久精品2019| 久久久伊人欧美| 欧美精品在线一区二区三区| 国产精品私人影院| 亚洲国产精品一区| 亚洲欧美视频在线观看| 亚洲美女在线观看| 欧美在线免费观看| 欧美精品久久久久久久免费观看| 国产精品无人区| 亚洲激情欧美| 篠田优中文在线播放第一区| 一本久久青青| 另类尿喷潮videofree | 亚洲网友自拍| 亚洲精品国产精品国自产在线| 亚洲一区精品电影| 欧美成人激情视频免费观看| 国产精品亚洲一区| 亚洲欧洲精品一区| 欧美在线电影| 亚洲欧美成aⅴ人在线观看| 免费的成人av| 国产亚洲成精品久久| 一本色道久久精品| 最近中文字幕日韩精品| 欧美伊人影院| 欧美体内she精视频在线观看| 红桃视频一区| 亚洲欧美制服另类日韩| 在线视频欧美精品| 欧美华人在线视频| 激情欧美一区二区三区| 午夜精品国产精品大乳美女| 在线视频精品| 欧美激情成人在线视频| 国产在线拍揄自揄视频不卡99| 亚洲午夜激情网站| 亚洲视频免费看| 欧美男人的天堂| 最新热久久免费视频| 91久久香蕉国产日韩欧美9色| 久久久www成人免费毛片麻豆| 国产精品日本精品| 一本色道久久综合一区| 日韩一区二区精品视频| 免费成人在线视频网站| 韩日午夜在线资源一区二区| 亚洲欧美综合国产精品一区| 亚洲性色视频| 欧美日韩午夜视频在线观看| 91久久线看在观草草青青| 亚洲激情偷拍| 免费在线欧美黄色| 一区二区三区自拍| 亚洲第一二三四五区| 久久久噜噜噜久久狠狠50岁| 国产日韩在线一区| 亚洲欧美日产图| 欧美一区网站| 国产一区二区三区久久久| 亚洲欧美日韩另类| 久久精品国产第一区二区三区| 国产欧美午夜| 性做久久久久久久免费看| 久久激情视频久久| 国产亚洲美州欧州综合国| 欧美一区二区三区视频在线| 欧美在线观看一区| 国内一区二区在线视频观看| 亚洲福利视频网| 欧美成人国产一区二区| 亚洲激情一区| 中文日韩欧美| 国产精品美女www爽爽爽| 亚洲在线观看免费视频| 欧美一区二区三区男人的天堂| 国产乱码精品一区二区三区不卡| 亚洲欧美日韩另类| 久久噜噜噜精品国产亚洲综合| 激情久久久久| 亚洲精一区二区三区| 欧美日韩性生活视频| 亚洲视频播放| 久久精品道一区二区三区| 黄色日韩网站| 亚洲乱码视频| 欧美亚洲成人精品| 欧美亚洲视频| 久久综合五月| 亚洲美女免费精品视频在线观看| 亚洲一区二区日本| 国产网站欧美日韩免费精品在线观看 | 国产精品免费视频观看| 午夜在线精品偷拍| 麻豆成人av| 日韩一区二区精品葵司在线| 午夜国产精品影院在线观看| 国产在线国偷精品产拍免费yy| 亚洲三级性片| 国产精品每日更新| 亚洲国产精品第一区二区| 欧美福利一区| 亚洲在线黄色| 亚洲一区视频在线观看视频| 国产欧美日韩在线视频| 亚洲精品久久视频| 国产精品久久久久永久免费观看| 欧美一区二区三区四区在线观看地址| 美女91精品| 亚洲天堂av综合网| 一二三四社区欧美黄| 国产九区一区在线| 亚洲国产精品免费| 欧美日韩亚洲一区二区三区在线| 午夜视频在线观看一区| 欧美大片在线看| 亚洲欧美韩国| 欧美精品亚洲精品| 亚洲女与黑人做爰| 欧美国产综合视频| 午夜亚洲性色福利视频| 欧美精品免费在线| 午夜精品99久久免费| 欧美激情bt| 欧美亚洲免费在线| 欧美日韩在线观看一区二区| 久久福利一区| 欧美性猛交xxxx乱大交退制版| 亚洲国产精品va在线观看黑人| 国产精品高潮呻吟视频| 亚洲欧洲在线看| 国产欧美亚洲一区| 亚洲私人影院在线观看| 亚洲二区视频在线| 久久久国产精品亚洲一区| 在线视频日韩精品| 欧美伦理视频网站| 亚洲国产精品一区| 国产热re99久久6国产精品| 一区二区三区日韩精品| 亚洲国产成人在线|