亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        摘要:VHDL語言是現(xiàn)代電子設(shè)計的重要工具。數(shù)據(jù)對象是其中的重要語言要素,通常由常量、變量與信號等組成,一般情況下,這些要素在經(jīng)過綜合后可以引入寄存器,這樣就能夠產(chǎn)生相同的邏輯電路,與初始值的功效基本相同。語言要素中的常量和變量可以從計算機語言中找到與其對應(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)新的標準要求。因此,必須要盡快提高設(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)定值,不可以被改變。

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

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

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

        變量賦值的一般表述為:目標變量名:=表達式;

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

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

        信號賦值語句表達式為:目標信號名〈=表達式;

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

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

        但也有相同之處,主要體現(xiàn)在兩方面:①在設(shè)計不準確、不完整的計算機條件語句中,變量與信號在經(jīng)綜合后一般均可以存入寄存器,這樣也可產(chǎn)生基本相同的邏輯電路。②初始值的功效相同。從技術(shù)角度來看,沒有必須明確要求變量和信號定義的初始值,如果對其進行改變或設(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是通道選通的控制信號。例一與例二的主要不同在于,例一中將標識符muxval定義為信號,而例二中將其定義為變量。結(jié)果綜合出了完全不同的電路。綜合后的電路圖如圖1和圖2所示。可以從電路圖中看出,圖1中含有時序電路,而圖2是純組合電路。

        例一中,信號muxval在進程中出現(xiàn)了三次賦值操作,即有三個賦值源:muxval<=0、muxval<=muxval+1和 muxval<=muxval+2,但根據(jù)進程中信號的賦值規(guī)則,前兩個賦值語句中的賦值目標信號muxval都不可能得到更新,只有最后的muxval<=muxval+2語句中的muxval的值得到了更新,所以傳輸符號右邊的muxval并未得到任何確定的初值,即并未執(zhí)行語句muxval<=0,結(jié)果只能被綜合成隨b和a變動的時序電路,導(dǎo)致左邊的muxval也是一個不確定的信號。結(jié)果在進程最后的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è)計中,要能夠熟練準確地使用信號或變量的系統(tǒng)默認值,盡可能地靈活實現(xiàn)設(shè)計的目標。

        參考文獻:

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

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

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

        [4]江國強編著.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.

        亚洲综合另类小说色区| av无码精品一区二区三区四区 | 午夜无码片在线观看影院y| av永久天堂一区二区三区蜜桃| 亚洲国产精品成人一区| 麻豆精品国产免费av影片| 中文字幕女同人妖熟女| 青青草骚视频在线观看| 国产又色又爽无遮挡免费软件| 337p日本欧洲亚洲大胆精品| 国产国拍精品av在线观看按摩| 中出内射颜射骚妇| 亚洲一区二区在线视频播放| 亚洲精品综合久久中文字幕| 国产老熟女精品一区二区| 人妻少妇被粗大爽.9797pw| 日本特黄特色特爽大片| 人妻无码中文人妻有码| 国产麻豆剧传媒精品国产av蜜桃| 国产自拍视频在线观看免费| 人妻体体内射精一区二区| 双乳被一左一右吃着动态图| 亚洲狼人社区av在线观看| 久久精品国产黄片一区| 五月丁香六月综合缴清无码| 激情亚洲一区国产精品| 日韩精品首页在线观看| 看女人毛茸茸下面视频 | 漂亮人妻被中出中文字幕久久| 国产一级毛片AV不卡尤物| 亚洲欧美日韩中文综合在线不卡| 偷拍一区二区三区在线观看| av黄色大片久久免费| 国产丝袜美女一区二区三区| 人妻av乱片av出轨| 久久国产成人午夜av影院| 手机av在线播放网站| 友田真希中文字幕亚洲| 国产69精品久久久久777| 国产乱人伦av在线a| 麻豆人妻无码性色AV专区|