音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

VHDL語言中的信號、變量與常量異同比較

作者:flanix 欄目:EDA技術(shù)
VHDL語言中的信號、變量與常量異同比較
VHDL語言中的信號、變量與常量異同比較
            桂林信通科技有限公司   劉福奇

在VHDL中,對象是指用來保持?jǐn)?shù)據(jù)的一些客體單元。VHDL中的對象主要有4種:常量(CONSTANT)、變量(VARIABLE)、信號(SIGNAL)和文件(FILE)。本文主要討論前面三種在實際應(yīng)用中的異同點.傳統(tǒng)的計算機(jī)高級語言(如C語言)也有常量與變量.在語法上它們有相似的地方.而對于信號卻是硬件描述語言(本文指的是VHDL)中特有的元素.
1.    信號、變量與常量的意義
1.1信號是指在設(shè)計實體中數(shù)據(jù)交換的一種手段,采用信號對象可以把設(shè)計實體連接在一起形成模塊。在硬件電路中代表一條硬件連線,有時信號會被綜合成一個寄存器。
1.2變量主要是對暫時數(shù)據(jù)進(jìn)行局部存儲,它是一個局部量。
1.3 常量就是一個定值,對某些特定類型數(shù)據(jù)賦予的數(shù)值。定義一個常數(shù)主要是為了使設(shè)計實體中的某些量易于閱讀和修改
2.    信號、變量與常量的聲明
信號、變量與常量三者在使用前都必需先聲明后使用,否則會產(chǎn)生編譯錯誤。
    2.1信號的聲明:SIGNAL 信號名 [,信號名……]:數(shù)據(jù)類型[:=表達(dá)式];
如:
SIGNAL clk:bit1;
SIGNAL reset:bit;
SIGNAL data_bus:bit_vector(7 DOWNTO 0);
在信號聲明中可以同時進(jìn)行賦初值,其賦值語法結(jié)構(gòu)為
SIGNAL clk:bit:=‘0’;
SIGNAL reset:bit=‘1’;
SIGNAL data_bus:bit_vector(7 DOWNTO 0):=‘01000101”;

2.1變量的聲明:VARIABLE 變量名 [,變量名……]:數(shù)據(jù)類型[:=表達(dá)式];
如:
VARIABLE i: interger RANGAE 0 TO 15:=0;
VARIABLE enable:bit;
                  在變量說明中可以同時進(jìn)行賦初值,其賦值語法結(jié)構(gòu)為:
                  如:
VARIABLE flag:bit:=‘1’;
VARIABLE data_buffer:bit_vector(7 DOWNTO 0):=‘01000101”;
2.1常量的聲明:    CONSTANT 常量名[,常量名……]:數(shù)據(jù)類型:=表達(dá)式;
如:
CONSTATNT VCC:real:=5.0;
CONSTANT delay_time:time:=10 ns;
3.    信號、變量與常量的使用范圍
3.1信號的使用范圍
信號可以在architecture、PACKAGE、entitiy中聲明,是全局量可以在全局使用。
3.2變量的使用范圍
變量可以在PROCESS、function、procedure中聲明,也只能在PROCESS、function、procedur中使用不是全局變量。
3.3常量的使用范圍
常量可以用于上面兩種場合。
4.信號、變量與常量的使用差別
4.1從硬件電路系統(tǒng)來看,常量相當(dāng)于電路中的恒定電平,如GND或VCC接口,而變量和信號則相當(dāng)于組合電路系統(tǒng)中門與門間的連接及其連線上的信號值。
4.2從行為仿真和VHDL語句功能上看,二者的區(qū)別主要表現(xiàn)在接受和保持信號的方式、信息保持與傳遞的區(qū)域大小上。例如信號可以設(shè)置延時量,而變量則不能;變量只能作為局部的信息載體,而信號則可作為模塊間的信息載體。變量的設(shè)置有時只是一種過渡,最后的信息傳輸和界面間的通信都靠信號來完成。
4.3從綜合后所對應(yīng)的硬件電路結(jié)構(gòu)來看,信號一般將對應(yīng)更多的硬件結(jié)構(gòu),但在許多情況下,信號和變量并沒有什么區(qū)別。例如在滿足一定條件的進(jìn)程中,綜合后它們都能引入寄存器。這時它們都具有能夠接受賦值這一重要的共性,而VHDL綜合器并不理會它們在接受賦值時存在的延時特性。
4.4雖然VHDL仿真器允許變量和信號設(shè)置初始值,但在實際運用中,VHDL綜合器并不會把這些信息綜合進(jìn)去。這是因為實際的FPGA/CPLD芯片在上電后,并不能確保其初始狀態(tài)的取向。因此,對于時序仿真來說,設(shè)置的初始值在綜合時是沒有實際意義的
4.5信號和變量是VHDL中重要的客體,他們之間的主要區(qū)別有:
•信號賦值至少要有δ延時;而變量賦值沒有。
•信號除當(dāng)前值外有許多相關(guān)的信息,如歷史信息和投影波形;而變量只有當(dāng)前值。
•進(jìn)程對信號敏感而不對變量敏感。
•信號可以是多個進(jìn)程的全局信號;而變量只在定義他們的順序域可見(共享變量除外)。
•信號是硬件中連線的抽象描述,他們的功能是保存變化的數(shù)據(jù)值和連接子元件,信號在元件的端口連接元件。變量在硬件中沒有類似的對應(yīng)關(guān)系,他們用于硬件特性的高層次建模所需要的計算中。


通過前面的討論,在使用VHDL設(shè)計FPGA/CPLD芯片時要靈活運用信號、變量與常量對象提高設(shè)計效率。



2樓: >>參與討論
oaipoaip
說得太復(fù)雜了不容易懂
 
3樓: >>參與討論
wzsoul
詳細(xì)
比較詳細(xì):)

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
VHDL 測試基準(zhǔn)里的時鐘大家都是怎么寫的,
小女子急求Quartus II下載程序問題
請教高手,MAXPLUS2中,邏輯單元和共享擴(kuò)展不夠用怎么辦?
有用過Vertex 4的朋友嗎?時鐘問題請教
Multisim  元件庫
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號