版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符
一個相對完整的VHDL程序稱為設(shè)計(jì)實(shí)體,通常都具有比較固定的結(jié)構(gòu)。由實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、庫(Library)和程序包(Package)等構(gòu)成,如圖2.4所示。VHDL程序結(jié)構(gòu)圖2.4VHDL程序結(jié)構(gòu)模型圖項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符
實(shí)體用來描述設(shè)計(jì)實(shí)體的對外端口信息,實(shí)體有輸入端口和輸出端口的說明,也可以有一些參數(shù)化的數(shù)值說明。實(shí)體說明部分基本格式如下:1.實(shí)體entity實(shí)體名is[generic(類屬參數(shù)說明)];port(端口表);end[entity]實(shí)體名;實(shí)體說明部分基本格式解釋:(1)一個基本單元的實(shí)體說明以“entity實(shí)體名is”開始,以“end[entity]實(shí)體名”結(jié)束。[]表示其中的部分是可選項(xiàng)。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)實(shí)體名。一個設(shè)計(jì)實(shí)體,在實(shí)體中定義的實(shí)體名即為這個設(shè)計(jì)實(shí)體的名稱。實(shí)體名是標(biāo)識符,標(biāo)識符具體取名由設(shè)計(jì)者自定,一般將VHDL程序的文件名作為此設(shè)計(jì)實(shí)體名。(3)類屬參數(shù)說明。類屬參數(shù)說明必須放在端口說明之前,用來指定端口中矢量的位數(shù)、器件的延遲時間參數(shù)等。類屬參數(shù)說明書寫格式如下:
generic([constant]常量名稱:[in]數(shù)據(jù)類型[:=設(shè)定值];…);項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符(4)端口表。端口表是對端口的說明,用于描述設(shè)計(jì)實(shí)體的輸入/輸出信號,是對輸入/輸出引腳信號的名稱、數(shù)據(jù)類型和輸入/輸出方向的描述。端口說明的一般書寫格式如下:port(端口名{,端口名}:端口模式
數(shù)據(jù)類型[:=設(shè)定值];……
端口名{,端口名}:端口模式
數(shù)據(jù)類型[:=設(shè)定值]);其中花括號“{}”中的內(nèi)容可以沒有,也可以有多項(xiàng)。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符端口表各項(xiàng)內(nèi)容說明如下:①端口名。端口名是賦予每個外部引腳的名稱,即該端口的標(biāo)識符。②端口模式。端口模式用來定義外部引腳的信號流向。端口模式共有in、out、inout和buffer四種。in:輸入模式僅允許數(shù)據(jù)由外部流向?qū)嶓w輸入端口。out:輸出模式僅允許數(shù)據(jù)從實(shí)體內(nèi)部流向?qū)嶓w輸出端口,不能用于反饋。inout:雙向模式允許數(shù)據(jù)流入或流出實(shí)體,雙向模式允許用于內(nèi)部反饋。buffer:緩沖模式通常用于內(nèi)部有反饋需求的信號描述。緩沖模式與輸出模式類似,只是緩沖模式允許用于內(nèi)部反饋,而輸出模式不行。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符③數(shù)據(jù)類型。描述端口的數(shù)據(jù)類型通常有bit、bit_vector、std_logic、std_logic_vector。Bit(位):信號值是一個1位的二進(jìn)制值,取值只能是0或1。bit_vector(位矢量):信號值是一組二進(jìn)制數(shù)。std_logic(標(biāo)準(zhǔn)邏輯位):取值有9種,分別是:0(信號0)、1(信號1)、H(弱信號1)、L(弱信號0)、Z(高阻)、X(不定)、W(弱信號不定)、U(初始值)和—(不可能情況)等。std_logic_vector(標(biāo)準(zhǔn)邏輯矢量):它是標(biāo)準(zhǔn)邏輯的集合,基本元素是std_logic類型。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符【例】二進(jìn)制計(jì)數(shù)器VHDL程序的實(shí)體libraryieee;useieee.std_logic_1164.all;entitybinary_counterisgeneric(MIN_COUNT:natural:=0;MAX_COUNT:natural:=255);port(clk:instd_logic;reset:instd_logic;enable:instd_logic;q:outintegerrangeMIN_COUNTtoMAX_COUNT);endentity;architecturertlofbinary_counterisbeginprocess(clk)variablecnt:integerrangeMIN_COUNTtoMAX_COUNT:=0;beginif(rising_edge(clk))thenifreset='1'thencnt:=0;elsifenable='1'thencnt:=cnt+1;endif;endif;q<=cnt;endprocess;endrtl;entity實(shí)體名is語句引導(dǎo)本實(shí)體的實(shí)體名為binary_counter類屬參數(shù)說明語句:定義常量MIN_CUNT為自然數(shù),賦0值;定義常量MAX_CUNT為自然數(shù),賦255值。端口說明語句:定義clk為輸入端口,數(shù)據(jù)類型標(biāo)準(zhǔn)邏輯位;定義reset為輸入端口,數(shù)據(jù)類型標(biāo)準(zhǔn)邏輯位;定義enable為輸入端口,標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型;定義q為輸出端口,整數(shù)數(shù)據(jù)類型,限定范圍MIN_CUNT到MAX_CUNT,即0-255。實(shí)體說明部分項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符2.結(jié)構(gòu)體結(jié)構(gòu)體描述了該設(shè)計(jì)實(shí)體單元電路的邏輯功能。結(jié)構(gòu)體附屬于實(shí)體,是對實(shí)體的說明。結(jié)構(gòu)體描述格式如下:architecture結(jié)構(gòu)體名of實(shí)體名is [說明語句];begin
功能描述語句;end[architecture]結(jié)構(gòu)體名;
項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符結(jié)構(gòu)體描述格式解釋:(1)實(shí)體名必須是所在設(shè)計(jì)實(shí)體的實(shí)體名字,而結(jié)構(gòu)體名可以自由選擇,當(dāng)一個設(shè)計(jì)實(shí)體有多個結(jié)構(gòu)體時,結(jié)構(gòu)體不能同名。(2)結(jié)構(gòu)體必須以“end[architecture]結(jié)構(gòu)體名+;”作為結(jié)束語句。(3)結(jié)構(gòu)體說明語句必須放在關(guān)鍵字“architecture”和“begin”之間。結(jié)構(gòu)體說明語句用于對結(jié)構(gòu)體內(nèi)部所用到的信號(signal)、數(shù)據(jù)類型(type)、常量(constant)、元件(component)、函數(shù)(function)和過程(procedure)等進(jìn)行說明。在結(jié)構(gòu)體中說明和定義的數(shù)據(jù)類型、常量、函數(shù)和過程,作用范圍局限于其所在的結(jié)構(gòu)體。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符(4)功能描述語句。功能描述語句包括5種不同類型的并行方式工作的語句結(jié)構(gòu),如圖2.5所示。5種語句結(jié)構(gòu)本身是并行方式工作,但它們內(nèi)部不一定是并行語句。圖2.5結(jié)構(gòu)體構(gòu)造圖項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符功能描述語句解釋:①信號賦值語句:將設(shè)計(jì)實(shí)體內(nèi)的處理結(jié)果向定義的信號或輸出端口進(jìn)行賦值。圖2.5結(jié)構(gòu)體構(gòu)造圖②進(jìn)程語句:一個進(jìn)程相當(dāng)與一個功能模塊,在一個結(jié)構(gòu)體內(nèi)可以包含多個進(jìn)程,每個進(jìn)程都是同步執(zhí)行的,但是進(jìn)程內(nèi)部的語句是順序執(zhí)行。進(jìn)程語句的描述格式為:[進(jìn)程名:]process[(敏感信號表)]
[進(jìn)程說明部分];
begin
順序描述語句部分;endprocess[進(jìn)程名];項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符進(jìn)程語句的描述解釋:a.進(jìn)程名是進(jìn)程語句的標(biāo)識符,它是一個可選項(xiàng)。b.敏感信號表是用來激勵進(jìn)程啟動的量,當(dāng)敏感信號表中有一個信號或多個信號發(fā)生變化時,該進(jìn)程啟動,否則該進(jìn)程處于掛起狀態(tài)。c.進(jìn)程說明語句定義該進(jìn)程所需要的局部量,可包括數(shù)據(jù)類型、常量、變量、屬性、子程序等,但不允許定義信號和共享變量。d.順序描述語句用于描述該進(jìn)程的功能。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符功能描述語句解釋:③元件例化語句:對其他的設(shè)計(jì)實(shí)體作元件調(diào)用說明,并將此元件的端口與其他元件、信號或高層次實(shí)體的界面端口進(jìn)行連接。④子程序調(diào)用語句:用以調(diào)用過程或函數(shù),并將獲得的結(jié)果賦值于信號。⑤塊語句:由一系列并行執(zhí)行語句構(gòu)成的組合體,其功能是將結(jié)構(gòu)體中的并行語句組成一個或多個子模塊。圖2.5結(jié)構(gòu)體構(gòu)造圖項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符【例】1位二進(jìn)制數(shù)半加器仿真測試VHDL程序結(jié)構(gòu)體說明libraryieee;useieee.std_logic_1164.all;entityh_adder_vhd_tstisendh_adder_vhd_tst;architectureh_adder_archofh_adder_vhd_tstissignala:std_logic;signalb:std_logic;signalc:std_logic;signals:std_logic;componenth_adderport(a:instd_logic;b:instd_logic;c:outstd_logic;s:outstd_logic);endcomponent;begini1:h_adderportmap(a=>a,b=>b,c
=>c,s=>s);init:processbegina<='0';b<='0';waitfor20us;a<='1';b<='0';waitfor20us;a<='0';b<='1';waitfor20us;a<='1';b<='1';waitfor20us;endprocessinit;endh_adder_arch;architecture結(jié)構(gòu)體名of實(shí)體名is語句引導(dǎo)本結(jié)構(gòu)體名為h_adder_arch,實(shí)體名為h_adder_vhd_tst結(jié)構(gòu)體描述部分結(jié)構(gòu)體描述begin分隔end結(jié)構(gòu)體名+;結(jié)束結(jié)構(gòu)體描述對結(jié)構(gòu)體內(nèi)用到的信號a、b、c、s的說明對結(jié)構(gòu)體內(nèi)用到的元件h_adder的說明元件例化語句:對結(jié)構(gòu)體調(diào)用的元件h_adder的描述說明語句功能描述語句進(jìn)程語句:對進(jìn)程init的描述項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符3.庫庫是經(jīng)過編譯后的數(shù)據(jù)集合,其目的是為了使設(shè)計(jì)遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,同時便于利用已有的設(shè)計(jì)成果,以提高設(shè)計(jì)效率。(1)庫的分類。VHDL程序中常用的庫有IEEE庫、SID庫、WORK庫、ASIC庫和用戶自定義庫等。①IEEE庫。IEEE庫是VHDL程序中最為常用的庫,它包含了IEEE標(biāo)準(zhǔn)的程序包和一些支持工業(yè)標(biāo)準(zhǔn)的程序包,使用時需要按照格式進(jìn)行說明。②SID庫。STD庫是VHDL程序的標(biāo)準(zhǔn)庫,包含standard程序包,里面定義了VHDL程序標(biāo)準(zhǔn)數(shù)據(jù)、邏輯關(guān)系及函數(shù)等,使用standard包中定義的量可以不加聲明。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符③WORK庫。WORK庫是VHDL程序的工作庫,用戶在工程設(shè)計(jì)中設(shè)計(jì)成功、正在驗(yàn)證、未仿真的中間部件等都堆放在WORK工作庫,使用時不需要進(jìn)行說明調(diào)用。④ASIC庫。在VHDL程序中,為了進(jìn)行門級仿真,各公司提供面向ASIC的邏輯門庫。在各庫中存放著與邏輯門一一對應(yīng)的實(shí)體。使用ASIC庫,需要按照格式進(jìn)行說明。⑤用戶自定義庫。用戶自定義庫是用戶根據(jù)自己的需要,將開發(fā)的共用程序包和實(shí)體等匯集在一起,定義成一個庫。在使用用戶自定義庫時,需要按照格式進(jìn)行說明。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)庫的說明。在VHDL程序中,庫的說明通常放在實(shí)體描述的最前面。多數(shù)情況下,對庫進(jìn)行說明后,設(shè)計(jì)者才能使用庫集合中定義的數(shù)據(jù)。庫說明語句格式如下:library庫名;(3)庫的使用。庫說明語句與use語句一般同時使用,庫說明語句指明所使用的庫名,use語句指明使用庫中的程序包。說明了庫和程序包,整個設(shè)計(jì)實(shí)體就可以進(jìn)入訪問或調(diào)用,但其作用范圍僅限于所說明的設(shè)計(jì)實(shí)體。庫的調(diào)用格式:
library庫名;use庫名.程序包名.all;(或use庫名.程序包名.項(xiàng)目名;)項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符4.程序包為了使已定義的數(shù)據(jù)類型、數(shù)據(jù)對象等被更多的其它設(shè)計(jì)實(shí)體共享,可以將它們收集在一個VHDL程序包中,這樣可以提高設(shè)計(jì)的效率和程序的可讀性。常用的預(yù)定義程序包說明如下:(1)std_logic_1164程序包。std_logic_1164程序包是IEEE的標(biāo)準(zhǔn)程序包,其中用得最多的是滿足工業(yè)標(biāo)準(zhǔn)的兩個數(shù)據(jù)類型std_logic和std_logic_vector。該數(shù)據(jù)類型除具有“0”和“1”邏輯量以外,還有其他的邏輯量,如高阻態(tài)“z”、不定態(tài)“x”等,更能滿足實(shí)際數(shù)字系統(tǒng)設(shè)計(jì)仿真的需求。項(xiàng)目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)std_logic_arith程序包。std_logic_arith程序包,擴(kuò)展了3個數(shù)據(jù)類型,即unsigned、signed和small_int,并為其定義了相關(guān)的算術(shù)運(yùn)算符和轉(zhuǎn)換函數(shù)。unsigned數(shù)據(jù)類型不包含符號位,無法參與有符號的運(yùn)算;signed數(shù)據(jù)類型包含符號位,可以參與有符號的運(yùn)算。(3)std_logic_unsigned和std_loglc_signed程序包。std_logic_unsigned和std_logic_signed程序包定義了可用于integer型、std_logic型和std_logic_vector型混合運(yùn)算的運(yùn)算符,并定義了由std_logic_vector型到integer型的轉(zhuǎn)換函數(shù)。其中:std_logic_signed中定義的運(yùn)算符考慮到了符號,是有符號數(shù)的運(yùn)算;std_logic_unsigned程序包定義的運(yùn)算符沒有符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版交通設(shè)施地形圖保密及規(guī)劃合同3篇
- 二零二五版建筑工程施工圖紙審查招標(biāo)投標(biāo)合同書3篇
- 二零二五年度花展工程花卉品種研發(fā)與專利申請合同3篇
- 二零二五年度綠色建筑項(xiàng)目采購合同3篇
- 二零二五版XX個人商業(yè)秘密保護(hù)合同樣本3篇
- 二零二五年度私人墓地購置與墓園墓碑雕刻人才培養(yǎng)合同3篇
- 二零二五年度金融機(jī)構(gòu)貸款擔(dān)保與信用管理合同3篇
- 二零二五版家庭水電維修與改造兼職合同3篇
- 二零二五版廢舊電線電纜回收與資源化利用合同3篇
- 二零二五年度食品行業(yè)環(huán)境保護(hù)設(shè)施租賃合同2篇
- DISC性格與能力測試題及答案解析
- 年產(chǎn)12萬噸裝配式智能鋼結(jié)構(gòu)項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- TB 10106-2023鐵路工程地基處理技術(shù)規(guī)程
- 三年級下冊綜合實(shí)踐活動教學(xué)設(shè)計(jì)- 嶺南水果|粵教版 52張
- 滬教版數(shù)學(xué)六年級(上)第二章分?jǐn)?shù)課課練和單元練習(xí)卷及參考答案
- 承包意向書2024年
- 小學(xué)心理健康教師資格考試面試2024年下半年試題與參考答案
- (正式版)QC∕T 1206.2-2024 電動汽車動力蓄電池?zé)峁芾硐到y(tǒng) 第2部分:液冷系統(tǒng)
- (正式版)CB∕T 4550-2024 船舶行業(yè)企業(yè)安全設(shè)備設(shè)施管理規(guī)定
- 完整版肺癌護(hù)理查房課件
- 正規(guī)光伏屋頂租賃合同
評論
0/150
提交評論