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

VHDL中常用的數據對象

2017-03-06 23:46:29劉春梅高香梅
電子技術與軟件工程 2016年23期
關鍵詞:信號

劉春梅 高香梅

摘 要

簡要介紹了VHDL中數據對象的基本概念,從不同方面討論了常用的數據對象的區別與聯系,通過實例詳細比較了信號與變量的用法。

【關鍵詞】VHDL 變量 信號 常量

1 引言

VHDL是一種常用的高級描述語言,通常包含庫、程序包、實體、構造體和配置等部分。而數據對象根據不同情況可以定義在VHDL程序的這些部分中,尤其是信號和變量的使用易產生混淆。

2 數據對象的區別與聯系

在VHDL語言中,凡是可以賦予一個值的對象稱為客體也可叫做數據對象,能夠接受不同數據類型的賦值。常用的數據對象主要有常量、變量和信號三種。

從定義范圍來看,常量和信號是全局量,變量是局部量。常量可以在程序包、實體、進程中使用,一般在程序開始前對常量進行賦值。信號是電子電路內部硬件實體相互連接的抽象表示,可以在結構體、程序包和實體說明中使用,信號名不能沖突。變量僅在進程語句、過程語句、函數語句的結構中使用,不能將信息帶出對它作出定義的當前設計單元。其中,應用在不同范圍的變量名可以重復。

從延時特性來看,常量與變量的賦值是立即生效的,沒有延時。VHDL語言規則不支持變量附加延時語句,變量的賦值是一種理想化的數據傳輸,是立即發生。但是信號的代入賦值是允許延時的。比如,A0<=A1 AFTER 10 ns表示信號A0的值是由A1延時10ns所賦予的。

從賦值方式來看,常量與變量采用的是“:=”進行賦值,信號采用的是“<=”進行代入賦值,但是不論何種數據對象,初始化賦值均采用“:=”,其中,采用“:=”對信號賦初值時候不產生延時。常量的值在程序運行過程不能改變,但是信號與變量可以進行賦值。

常量、變量和信號所賦的值應該與定義的表達式數據類型一致,否則會出現錯誤。信號與變量也可相互賦值,賦值符號的選擇取決于被賦值的數據對象。由于變量只能在所定義進程內使用,若想將變量用于進程外,則可以賦值給同類型的信號。在VHDL中,如果需要對某一數據進行多次操作,則必須使用變量,因為對信號的多次賦值只有最后一次會生效。

3 變量與信號用法的實例分析

數據對象中,變量與信號的用法易混淆,以四選一數據選擇器為例,分別采用信號賦值語句和變量賦值語句來實現。A0,A1,A2,A3分別為選擇器的一位數據輸入端,選擇端為S1,S0,其中S1S0分別為00,01,10,11時,選擇A0,A1,A2,A3的值給輸出端口Q。采用信號賦值語句的結構體程序如下:

ARCHITECTURE one OF mux4 IS

SIGNAL xy:INTEGER RANGE 0 TO 3;

BEGIN

PROCESS(A0,A1,A2,A3,S0,S1)

BEGIN

xy<=0;

IF (S0='1') THEN xy<=xy+1;

END IF;

IF (S1='1') THEN xy<=xy+2;

END IF;

CASE xy IS

WHEN 0=>Q<=A0;

WHEN 1=>Q<=A1;

WHEN 2=>Q<=A2;

WHEN 3=>Q<=A3;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS;

END one;

該程序段內xy是全局量的信號,定義在結構體中,其值與S1S0的值一樣,當xy分別為0,1,2,3時,將A0,A1,A2,A3賦給Q。經過Quartus II9.0軟件程序編譯可以通過。仿真結果如圖1所示,其中,輸入A0設置為頻率較高的周期信號,A1為低電平,A2位頻率較低的周期信號,A3為高電平。

從圖1仿真結果看出,采用信號賦值語句的結果不正確,分析其原因主要是因為信號賦值是在進程結束時更新,啟動一次進程信號xy的值只能改變一次。

下面采用變量賦值語句來實現,對程序進行如下修改:

ARCHITECTURE one OF mux4 IS

BEGIN

PROCESS(A0,A1,A2,A3,S0,S1)

VARIABLE xy:INTEGER RANGE 0 TO 3;

BEGIN

xy:=0;

IF (S0='1') THEN xy:=xy+1;

END IF;

IF (S1='1') THEN xy:=xy+2;

END IF;

CASE xy IS

WHEN 0=>Q<=A0;

WHEN 1=>Q<=A1;

WHEN 2=>Q<=A2;

WHEN 3=>Q<=A3;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS;

END one;

該程序段中,作為局部量的變量定義在進程中,經過軟件編譯成功。圖2為采用變量賦值語句的仿真結果。

從圖2看出,當S1S0也就是xy的值為0時,Q輸出A0的值,S1S0為1時,Q輸出A1的值,S1S0為2時,Q輸出A2的值,S1S0為3時,Q輸出A3的值,所以采用變量賦值語句的結果實現了選擇器的功能,這是因為變量賦值是立即更新,啟動一次進程變量xy的值為所需要的最后結果。

4 結束語

在VHDL中,數據對象類似于一種容器,它接受不同數據類型的賦值。常量,變量和信號是常用的三種數據對象。其中,信號與變量的使用容易產生混淆,通過實例分析討論了信號與變量,如果使用不當,結果會產生錯誤,因此,在設計中要謹慎使用信號與變量。

參考文獻

[1]吳方,劉文娟.EDA技術[M].武漢:武漢大學出版社,2011.

[2]劉昌華.EDA技術與應用——基于Quartus II和VHDL[M].北京:北京航空航天大學出版社,2012.

[3]胥勛濤.EDA技術項目化教程[M].北京:電子工業出版社,2011.

作者單位

安徽農業大學經濟技術學院 安徽省合肥市 230011

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: h视频在线观看网站| 欧美一区二区自偷自拍视频| 99国产精品国产高清一区二区| 免费可以看的无遮挡av无码| 国产亚洲精久久久久久无码AV| 国产精品无码作爱| 国产原创自拍不卡第一页| 国产99视频精品免费观看9e| 欧美不卡二区| 色网站免费在线观看| 国产swag在线观看| 亚洲女人在线| 色婷婷天天综合在线| 波多野结衣一区二区三区88| 午夜精品国产自在| 国产白浆在线| 九九久久精品国产av片囯产区| 精品国产欧美精品v| 中文字幕人妻无码系列第三区| 日本草草视频在线观看| 热伊人99re久久精品最新地| 精品午夜国产福利观看| 香蕉蕉亚亚洲aav综合| 激情综合婷婷丁香五月尤物| 亚洲人成高清| 亚洲精品国产综合99| 国产欧美专区在线观看| 国外欧美一区另类中文字幕| 蜜桃视频一区二区| 中文字幕无码av专区久久| 国产亚洲第一页| 久久久久人妻精品一区三寸蜜桃| 天天综合网站| 一级一毛片a级毛片| www.亚洲色图.com| 亚洲中久无码永久在线观看软件| 99久久精品免费观看国产| 欧美特黄一免在线观看| 久久国产高清视频| 四虎永久免费网站| 狠狠色丁香婷婷综合| 亚洲精品波多野结衣| 嫩草在线视频| 午夜激情婷婷| 色网站在线免费观看| 这里只有精品在线播放| 欧美成人午夜在线全部免费| 少妇精品网站| 亚洲欧洲日韩久久狠狠爱 | 中文字幕在线视频免费| аv天堂最新中文在线| 国产综合色在线视频播放线视 | 久草网视频在线| A级毛片高清免费视频就| 国产青青草视频| 在线观看国产精美视频| 91亚洲精品第一| 中文毛片无遮挡播放免费| 美女内射视频WWW网站午夜| 高清不卡一区二区三区香蕉| 中文字幕一区二区人妻电影| 国产美女主播一级成人毛片| 午夜视频www| 国产成人无码综合亚洲日韩不卡| 国产精品久久久久鬼色| 久久婷婷六月| 欧美伦理一区| 高h视频在线| 国产精品亚洲片在线va| 狠狠干欧美| 中文字幕无码电影| 91网红精品在线观看| 麻豆AV网站免费进入| 成人福利视频网| 国产精品片在线观看手机版| 久青草国产高清在线视频| 国产成人亚洲精品无码电影| 91国内视频在线观看| 国产成人夜色91| 69综合网| 国产一级毛片yw| 精品国产成人a在线观看|