999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VHDL設(shè)計中信號與變量的使用研究

2014-04-29 00:00:00黃茜胡龍

摘要:VHDL語言是現(xiàn)代電子設(shè)計的重要工具。數(shù)據(jù)對象是其中的重要語言要素,通常由常量、變量與信號等組成,一般情況下,這些要素在經(jīng)過綜合后可以引入寄存器,這樣就能夠產(chǎn)生相同的邏輯電路,與初始值的功效基本相同。語言要素中的常量和變量可以從計算機(jī)語言中找到與其對應(yīng)的數(shù)據(jù)類型,并且這類常量和變量的語言行為與高級中的變量和常量基本相同。比較特殊的要素是信號,它的數(shù)據(jù)對象包含更多的硬件特征,這也是VHDL中最有特色的語言要素之一。本論文講述的是常量和變量的相似之處,還有變量和信號的相同與不同之處,主要表現(xiàn)為定義位置、適用范圍、延時行為特性等,并以實例加以驗證。

關(guān)鍵詞:VHDL 變量 信號

0 引言

電子電路技術(shù)更新?lián)Q代的周期很快,新技術(shù)的發(fā)明與應(yīng)用所需時間很短,集成電路技術(shù)也在發(fā)生著日新月異的變化,在這樣的背景下,傳統(tǒng)的芯片設(shè)計技術(shù)和系統(tǒng)集成技術(shù)已經(jīng)不能適應(yīng)新的標(biāo)準(zhǔn)要求。因此,必須要盡快提高設(shè)計效率,要想提高設(shè)計效率必須要降低設(shè)計難度,VHDL設(shè)計方法能夠在很大程度上降低芯片和系統(tǒng)集成的設(shè)計難度。電子設(shè)計自動化技術(shù)是現(xiàn)代電子設(shè)計的重要技術(shù),高速集成電路硬件描述語言是EDA的重要工具。

1 關(guān)于數(shù)據(jù)對象的簡介

在VHDL語言要素中,數(shù)據(jù)對象是比較重要的內(nèi)容,一般都包含如下三類:常量、變量和信號。

常量是一個全局量,它的定義和設(shè)置主要是為了使程序更容易閱讀和修改,在程序中,常量作為一個固定不變的穩(wěn)定值,不可以被改變。

變量相對于常量來說,算是一個局部量,變量主要是在局部程序的某個進(jìn)程或子程序中使用。變量一般不可以超出自身所在的程序結(jié)構(gòu),其信息的傳輸也離不開程序結(jié)構(gòu)對其所做的定義和賦值,在實際工作過程中,不會出現(xiàn)延時暫停的狀況,工作具有即發(fā)性。

信號是一種比較特殊的數(shù)據(jù)對象,作為在VHDL中的一個全局量,通常是在程序包說明、實體說明和結(jié)構(gòu)體描述中使用。信號與連接線比較類似,通過基本數(shù)據(jù)來描述硬件系統(tǒng),信號可以充當(dāng)并行語句模塊間的信息交流通道。

2 信號與變量的定義位置與賦值范圍

在VHDL中,定義變量的一般表述是:variable 變量名:數(shù)據(jù)類型:=初始值。變量限于自身的屬性,作為局部量,其能夠適用的范圍很小,通常情況下僅限于定義了變量的進(jìn)程或子程序的順序語句中。變量不能將信息帶出對它作出定義的當(dāng)前結(jié)構(gòu)中。在這些語句結(jié)構(gòu)中,同一變量的值將隨變量的賦值語句前后順序的運(yùn)算而改變。變量的賦值其實從技術(shù)角度來看,本身是一種十分理想的數(shù)據(jù)傳輸模式,這種工作時瞬間發(fā)生,不會有暫停或遲滯現(xiàn)象發(fā)生。

變量定義語句中的初始值可以是一個與變量具有相同數(shù)據(jù)類型的常數(shù)值,這個表達(dá)式的數(shù)據(jù)類型必須與所賦值的變量一致。

變量的主要作用是在進(jìn)程中作為臨時的數(shù)據(jù)存儲單元。

變量賦值的一般表述為:目標(biāo)變量名:=表達(dá)式;

信號定義的語句格式與變量相似,信號定義也可以設(shè)置初始值。

定義信號的一般表述是:Signal 信號名:數(shù)據(jù)類型:=初始值

信號賦值語句表達(dá)式為:目標(biāo)信號名〈=表達(dá)式;

賦值語句中的表達(dá)式可以是一個運(yùn)算表達(dá)式,也可以是數(shù)據(jù)對象(常量、變量、信號)。數(shù)據(jù)信息的傳入可以設(shè)置延時量。所以目標(biāo)信號獲得傳入的數(shù)據(jù)并不是即時的。即使不作任何的延時設(shè)置,也要經(jīng)歷一個特定的延時。因此,由于器件的延遲特性,符號“〈=”兩邊的數(shù)值并不是一致的。

所以,兩者賦值位置與范圍不同,主要體現(xiàn)在三個方面:①基本用法:信號用于作為電路中的信號連線;變量用于作為進(jìn)程中局部數(shù)據(jù)存儲單元。②適用范圍:信號適用于整個結(jié)構(gòu)體的任何地方;變量只能適用于所定義的進(jìn)程中。③行為特性:信號在進(jìn)程的最后才對信號賦值;變量是立即賦值的。

但也有相同之處,主要體現(xiàn)在兩方面:①在設(shè)計不準(zhǔn)確、不完整的計算機(jī)條件語句中,變量與信號在經(jīng)綜合后一般均可以存入寄存器,這樣也可產(chǎn)生基本相同的邏輯電路。②初始值的功效相同。從技術(shù)角度來看,沒有必須明確要求變量和信號定義的初始值,如果對其進(jìn)行改變或設(shè)置,可能會導(dǎo)致綜合后的硬件電路不支持。

3 實際案例分析

例1:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux4 IS

PORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;

q:OUT STD_LOGIC);

END mux4;

ARCHITECTURE BODY_mux4 OF mux4 IS

Signal muxval : integer range 7 downto 0;

BEGIN

PROCESS(i0,i1,i2,i3,a,b)

Begin

Muxval<=0;

If (a=’1’) thenmuxval<=muxval+1;end if;

If (b=’1’) thenmuxval<=muxval+2;end if;

Case muxval is

When 0=>q<=i0;

When 1=>q<=i1;

When 2=>q<=i2;

When 3=>q<=i3;

When others =>1;

End case;

End PROCESS;

End BODY_mux4;

綜合后的圖為圖1。

圖1

例二:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux4 IS

PORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;

q:OUT STD_LOGIC);

END mux4;

ARCHITECTURE BODY_mux4 OF mux4 IS

BEGIN

PROCESS(i0,i1,i2,i3,a,b)

Variable muxval :integer range 7 downto 0;

Begin

Muxval:=0;

If (a=’1’) thenmuxval:=muxval+1;end if;

If (b=’1’) thenmuxval:=muxval+2;end if;

Case muxval is

When 0=>q<=i0;

When 1=>q<=i1;

When 2=>q<=i2;

When 3=>q<=i3;

When others =>1;

End case;

End PROCESS;

End BODY_mux4;

綜合的結(jié)果為圖2。

從上面兩個例子的結(jié)構(gòu)可以看出,設(shè)計者的用意是想要設(shè)計一個4選1多路選擇器,對應(yīng)的電路理應(yīng)是一個純組合電路,其中的a和b是通道選通的控制信號。例一與例二的主要不同在于,例一中將標(biāo)識符muxval定義為信號,而例二中將其定義為變量。結(jié)果綜合出了完全不同的電路。綜合后的電路圖如圖1和圖2所示。可以從電路圖中看出,圖1中含有時序電路,而圖2是純組合電路。

例一中,信號muxval在進(jìn)程中出現(xiàn)了三次賦值操作,即有三個賦值源:muxval<=0、muxval<=muxval+1和 muxval<=muxval+2,但根據(jù)進(jìn)程中信號的賦值規(guī)則,前兩個賦值語句中的賦值目標(biāo)信號muxval都不可能得到更新,只有最后的muxval<=muxval+2語句中的muxval的值得到了更新,所以傳輸符號右邊的muxval并未得到任何確定的初值,即并未執(zhí)行語句muxval<=0,結(jié)果只能被綜合成隨b和a變動的時序電路,導(dǎo)致左邊的muxval也是一個不確定的信號。結(jié)果在進(jìn)程最后的CASE語句中,無法通過判斷muxval的值來確定選通輸入,及對q的賦值。

例一和例二就有所不同了,程序中首先將muxval定義為變量,根據(jù)變量順序賦值以及暫存數(shù)據(jù)的規(guī)則,首先執(zhí)行了語句muxval:=0,從而使兩個if語句中的muxval都能得到確定的初值。另一方面,當(dāng)if語句不滿足條件時,即當(dāng)a或b不等于1時,由于muxval已經(jīng)在第一條賦值語句中被更新為確定的值,即0了,所以盡管兩個if語句從表面上看都屬于不完整的條件語句,但都不可能被綜合成時序電路了,顯然從圖2可以看到一個純組合電路。

4 結(jié)論

本文首先通過描述和比較,總結(jié)了信號和變量在定義和賦值范圍上的不同與相同,然后經(jīng)過程序和綜合結(jié)果的比較,總結(jié)了變量與信號的其他區(qū)別,可以看出,若是信號和變量定義不夠精確和完整,很容易給設(shè)計結(jié)果造成損失,綜合的電路也會完全不同。因此,技術(shù)人員在用VHDL語言設(shè)計芯片或集成電路的程序時,要確保信號和變量的恰當(dāng)、正確使用,在VHDL語言設(shè)計中,要能夠熟練準(zhǔn)確地使用信號或變量的系統(tǒng)默認(rèn)值,盡可能地靈活實現(xiàn)設(shè)計的目標(biāo)。

參考文獻(xiàn):

[1]潘松,黃繼業(yè).EDA技術(shù)實用教程[M].北京:科學(xué)出版社,2005.

[2]曾繁泰.EDA工程的理論與實踐[M].北京:電子工業(yè)出版社,2004.

[3]徐惠民.數(shù)字邏輯設(shè)計與VHDL描述[M].北京:機(jī)械工業(yè)出版社,2004.

[4]江國強(qiáng)編著.EDA技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2004.

[5]姜立東等編著.VHDL語言程序設(shè)計及應(yīng)用 第二版[M].2004年06月.

[6]黃智偉.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程[M].北京:電子工業(yè)出版社,2005:241-242.

主站蜘蛛池模板: 日韩精品毛片| 美女被狂躁www在线观看| 国产一在线观看| 国产在线91在线电影| 69综合网| 国产网站一区二区三区| 在线人成精品免费视频| 亚洲第一视频免费在线| 午夜电影在线观看国产1区| 九色视频最新网址 | 国产亚洲精久久久久久久91| 亚洲男人在线天堂| 激情综合激情| a级毛片在线免费| 亚洲国产高清精品线久久| 精品国产免费观看一区| 欧美a在线视频| 国产成人在线小视频| 亚洲激情99| 国产情精品嫩草影院88av| 久久国产精品电影| 精品久久久久无码| 亚洲精品第五页| 日韩欧美综合在线制服| 国产精品午夜福利麻豆| 台湾AV国片精品女同性| 国产精品刺激对白在线| 亚洲一区二区成人| 国产精品亚洲αv天堂无码| 欧美亚洲一二三区| 国产综合亚洲欧洲区精品无码| 国产精品蜜臀| 97久久超碰极品视觉盛宴| 韩日无码在线不卡| 日韩在线视频网站| 亚洲成综合人影院在院播放| 好吊日免费视频| 九色国产在线| 欧美日韩在线国产| 成人另类稀缺在线观看| 高清大学生毛片一级| 日本AⅤ精品一区二区三区日| 欧美成人综合视频| 一级毛片中文字幕| 91综合色区亚洲熟妇p| 国产一级视频久久| 天天干伊人| 久久午夜夜伦鲁鲁片无码免费| 亚洲天堂精品在线观看| 国产在线观看成人91| 日韩欧美国产成人| 中文字幕乱码中文乱码51精品| 精品久久久久成人码免费动漫| 2021天堂在线亚洲精品专区| 久久激情影院| 六月婷婷精品视频在线观看| 成人日韩视频| 又黄又湿又爽的视频| 91无码视频在线观看| 欧美日韩精品在线播放| 色婷婷国产精品视频| 午夜免费视频网站| 99久久免费精品特色大片| 在线观看热码亚洲av每日更新| 精品无码国产自产野外拍在线| 精品国产香蕉伊思人在线| AV天堂资源福利在线观看| 99久久人妻精品免费二区| 亚洲成年人网| 国产精品亚洲天堂| 日韩精品欧美国产在线| 一级毛片网| 亚洲国产精品人久久电影| 一本综合久久| 国产最新无码专区在线| 久久男人视频| 欧美亚洲国产日韩电影在线| 欧美精品1区| 国产精品第一区在线观看| 谁有在线观看日韩亚洲最新视频| 91青草视频| 国产欧美另类|