日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]VHDL語言中信號(hào)的不同形式設(shè)置

摘要:通過一個(gè)偶同位產(chǎn)生器邏輯功能的實(shí)現(xiàn)過程,介紹了VHDL語言信號(hào)設(shè)置的不同方 式及注意事項(xiàng),并給出了完整的程序代碼。

關(guān)鍵詞:VHDL;程序

1概述

VHDL是一種快速的電路設(shè)計(jì)工具,功能涵蓋 了電路描述、電路合成、電路仿真等三大電路設(shè)計(jì)工作。目前廣泛使用的軟件有Altera公司出品的MAX+PLUSII,Xinlinx公司的Foundation等。

VHDL語言中有兩種基本的語句命令:并行同 時(shí)語句命令以及順序語句命令。兩者之間最大的不同點(diǎn)是,并行同時(shí)語句命令就像是電路板的動(dòng)作方 式,不論幾個(gè)命令,是一次且同時(shí)執(zhí)行,產(chǎn)生結(jié)果;順序語句命令類似一般的程序語言,如BASIC等的執(zhí)行方式,是一次一個(gè)命令,且依書寫方式由上而下地執(zhí)行。

并行同時(shí)語句命令主要有以下幾種表達(dá)方式: 直接設(shè)置語句(使用<=運(yùn)算符)、條件式信號(hào)設(shè)置語句(When-Else)與選擇式信號(hào)設(shè)置語句(With-Select-When)等;

順序語句命令主要有以下幾種表達(dá)方式:Pro cess(過程)、If-Else(判斷比較)、Wait Until(等待)、Case-Is-When(描述選擇)等。

熟練而靈活地使用上述兩類命令,可以節(jié)省大 量的工作量,使程序簡單直觀、可讀性增強(qiáng)而且有利于提高程序的編譯執(zhí)行效率。

在數(shù)據(jù)通信過程中,同位器與同位檢查器常用 于數(shù)據(jù)糾錯(cuò)。本文就以一個(gè)簡單偶同位產(chǎn)生器(Even Parity Bit Generator)真值表功能的實(shí)現(xiàn)方法來探討上述表達(dá)方式選擇問題,以及編程 過程中的注意事項(xiàng)。

2編程舉例

例:試設(shè)計(jì)VHDL程序完成如表1偶同位器的 真值表功能:

輸入

輸出

S2

S1

S0

Z

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

1

1

1

0

1

1

1

1

0

0

1

1

1

0

 

分析:由真值表可以看出,所要實(shí)現(xiàn)的是一個(gè)由三個(gè)數(shù)據(jù)位、一個(gè)同位位組成的偶同位產(chǎn)生器功 能。不難得出各位之間的簡單邏輯關(guān)系:P=S0S1S2 。但是本文的主要目的在于通過此例闡述如何靈活運(yùn)用不同的基本表達(dá)式設(shè)置信號(hào),因此 某些可能更加簡單的方法以及比較高級(jí)一點(diǎn)語句本文不予詳細(xì)討論。

解:(注:VHDL語言中使用“--”作為注釋符號(hào))

library ieee; ①

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.

all;

ENTITY hf is --假設(shè)建立的芯片電路名稱以及保存后的文件名為“hf”;

Port(
s: in std_logic_vector(2 downto 0);
z: out std_logic  --最后一個(gè)管腳定義命令后面,不可加分號(hào);
);

end hf; --應(yīng)該保證電路單元名稱與存盤的文件名一致,否則編譯時(shí) 出錯(cuò);

ARCHITECTURE a OF hf IS

Begin --以上是本例題解答過程中的公共部分,其后分別接各解法語句。

--******************************

--解法1:使用“hen -Else”表達(dá)方式②

z<=‘0’when (s="000") else --此語句只能將s的各個(gè)值分開寫,而不能寫成如下形式:

0’ when (s="011") else -- z<=‘0’

when (s="000" or s="011" or s="110" or s="111")

0’ when (s="110") else -- else ‘1’;

‘0’ when (s="111") else

‘1’ when (s="001") else

‘1’ when (s="001") else

‘1’ when (s="001") else

‘1’;

End a;

--解法2:使用揥ith -Select -When表達(dá)方式:

With s Select

z<=‘0’ when "000", --注意:除了最后一句的語句結(jié)束標(biāo)志是分號(hào)外,其余各句均是逗號(hào);

‘0’ when "011",

‘0’ when "110",

‘0’ when "111", -- when后選擇信號(hào)的值也只能分別列出,不可寫成組合條件形式。
‘1’ when others;
End a;

--解法3:使用“If-Else”表達(dá)方式:

Process--If-Else語句必須要與process配合使用;

Begin --Process中此句必不可少,否則編譯時(shí)出錯(cuò);

if s="000" or s="011" or s="110" or s="111" then --If后若為組合條件可用括號(hào)也可不用;

z<=‘0’;
else
z<=‘1’;
end if;
end process;
End a;

--解法4:使用“Case-Is-When”表達(dá)方式:

Process --“Case-Is-When”也只能與“Process”配合使用;

Begin

case s is

when "000"|"011"|"110"|"111" =>

--此處不能將“|”改成“or”但可以像解法1或解法1或解法2那樣將不同信號(hào)值分開寫;

when others=> --When句末尾是“=>”而不是逗號(hào)或者分號(hào)。

z<=‘1’;
end case;[!--empirenews.page--]
end process;
End a;

備注:

(1) VHDL語言對(duì)所有字母的大小寫狀態(tài)不敏感,關(guān)鍵在于語句要正確規(guī)范。

(2) 在VHDL語言中,所使用的標(biāo)點(diǎn)符號(hào)均是英文標(biāo)點(diǎn)符號(hào)。凡是設(shè)置單個(gè)的信號(hào)值均需使用 單引號(hào),而設(shè)置序列信號(hào)值必須使用雙引號(hào)。

(3) 請(qǐng)參看相關(guān)資料。

3討論

3.1本例能否使用“Wait Until”表達(dá)方式

很遺憾,類似此例的情況不能使用這個(gè)語 句。起碼筆者經(jīng)過多次嘗試之后均沒有通過編譯檢查。但是在使用此語句時(shí)應(yīng)該注意以下事項(xiàng):

(1) Wait Until 后面緊接的語句中不能出現(xiàn)序列信號(hào)的值,例如不能寫成如下形式:

Wait Until s="000" 也不能寫成組合條件形式(無論是否使用括號(hào)):

Wait Until s="000" or s="011" or s="110" or s="111"

(2) 使用此表達(dá)方式編寫程序代碼時(shí),不能設(shè)定輸出引腳的初始值(通過第三方信號(hào)傳遞也不 行,但是在進(jìn)行仿真時(shí)可以設(shè)定初始輸出值),不能寫成如下形式:

……

s: in std_logic;

……

Architecture a of hf is

Begin

z<=0; --就算z的初、終值通過兩個(gè)常量信號(hào)(如c=‘0’,d=‘1 ’)傳遞

Process --也不行,因?yàn)閦不能規(guī)定兩個(gè)狀態(tài)。否則編譯時(shí)出錯(cuò);

Begin

wait until s=‘0’; --此處也不可以寫成序列信號(hào)形式,更不能使用邏輯運(yùn)算符將其

z<=1; --寫成組合條件形式。Wait Until語句不支持組合條件。

End process;
END a;

3.2更簡單的實(shí)現(xiàn)方法

順序語句除了前文所敘的幾種基本表達(dá)方式以 外,還有一種循環(huán)語句:For-Loop;而并行同時(shí)語句也還有方塊語句(Block)、組件定義(Component)與組件映像(Port Map)等多個(gè)模塊化語法。而使用“For-Loop”編寫此類有重復(fù)動(dòng)作需求的代碼無疑是最簡單直觀的:

……
Architecture a OF hf IS
Begin
Process(s)
Variable Tmp: Std_Logic;
Begin
Tmp:=‘0’;
For I In 0 to 2 Loop
Tmp:=Tmp XOR s(I);
End Loop;
Z<=s & Tmp;
End Process;
End a;

其他更加簡單的方法,限于篇幅與本文主 旨,在此就不予深究了。

4結(jié)束語

從以上不同解法可以看出,各種基本的表達(dá)

方式均有各自的特點(diǎn):采用“When -Else”表達(dá)式(解法1)與“When -Else-When”表達(dá)式(解法2)編寫編寫代碼的優(yōu)點(diǎn)是直觀,但是代碼很多,欲實(shí)現(xiàn)復(fù) 雜的功能時(shí)工作量將會(huì)很大;采用“IF-Else”表達(dá)式(解法4)編寫代碼的優(yōu)點(diǎn)是直觀與簡單并舉,尤其是允許使用由邏輯運(yùn)算符(And、Or等等)寫成的組合條件更是精簡了不少代碼。

另外,在編寫VHDL程序的過程中,不同的 表達(dá)式中,表示語句結(jié)束的符號(hào)是不同的,這一點(diǎn)在 我們學(xué)習(xí)和使用VHDL的過程中值得特別留意。

參考文獻(xiàn)

[1]盧毅、賴杰.VHDL與數(shù)字電路設(shè)計(jì).北京:科學(xué)出版社,2001-04

[2]李廣軍、孟憲元.可編程ASIC設(shè)計(jì)及應(yīng)用.成都:電子科技大學(xué)出版社.2000-10

[3]徐志軍等.大規(guī)模可編程邏輯器件及其應(yīng)用.成都:電子科技大學(xué)出版社.2000-11

何鋒 男,1979年出生,本科,研究方向?yàn)橛布枋稣Z言設(shè)計(jì),嵌入式系統(tǒng)開發(fā)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

完全無人化 —— 定義未來金標(biāo)標(biāo)準(zhǔn)的100%自動(dòng)化診斷系統(tǒng) CURECA? 將于7月28日至31日在芝加哥首次亮相。 實(shí)現(xiàn)全球診斷數(shù)據(jù)的統(tǒng) —— 設(shè)立大數(shù)據(jù)平臺(tái) S...

關(guān)鍵字: GEN 自動(dòng)化 無人值守 SE

廈門 2025年7月3日 /美通社/ -- 廈門市華師希平雙語學(xué)校在三年辦學(xué)歷程中取得積極進(jìn)展,教育教學(xué)工作呈現(xiàn)良好態(tài)勢。 教育教學(xué)穩(wěn)步推進(jìn) 中考表現(xiàn):2024年首屆中考總均分在全市表現(xiàn)良好;2025屆地...

關(guān)鍵字: BSP 人工智能 AI SE

傳感器是能感受規(guī)定的被測量并按照一定的規(guī)律轉(zhuǎn)換成可用輸出信號(hào)的器件或裝置。傳感器有許多種,在先進(jìn)測量技術(shù)這門課中提到了許多傳感器,在現(xiàn)代工業(yè)生產(chǎn)尤其是自動(dòng)化生產(chǎn)過程中,要用各種傳感器來監(jiān)視和控制生產(chǎn)過程中的各個(gè)參數(shù),使設(shè)...

關(guān)鍵字: 傳感器 信號(hào)

高功率脈沖發(fā)射機(jī)作為一種能夠產(chǎn)生高能量、短脈沖信號(hào)的設(shè)備,在眾多領(lǐng)域發(fā)揮著關(guān)鍵作用。在雷達(dá)系統(tǒng)中,它為目標(biāo)探測提供強(qiáng)大的發(fā)射功率,使得雷達(dá)能夠在遠(yuǎn)距離精確識(shí)別和跟蹤目標(biāo);在通信領(lǐng)域,可用于實(shí)現(xiàn)高速率、大容量的數(shù)據(jù)傳輸;在...

關(guān)鍵字: 高功率 脈沖發(fā)射機(jī) 信號(hào)

與英偉達(dá)的技術(shù)合作致力加速生產(chǎn)制造的數(shù)字化轉(zhuǎn)型 舍弗勒全球工廠將通過AI解決方案的應(yīng)用加速制造工藝的革新,并提升產(chǎn)品質(zhì)量 舍弗勒憑借數(shù)十年在制造領(lǐng)域的技術(shù)積累,推動(dòng)工業(yè)元宇宙持續(xù)發(fā)展 巴黎和赫...

關(guān)鍵字: 數(shù)字化 英偉達(dá) SE NI

巴黎和首爾 2025年6月12日 /美通社/ -- 全球AI內(nèi)容創(chuàng)作先鋒SKAI Intelligence今日宣布,將于2025年巴黎VivaTech科技盛會(huì)正式發(fā)布全球首個(gè)完全基于NVIDIA Omniverse構(gòu)建...

關(guān)鍵字: AI NVIDIA SE RS

在當(dāng)今數(shù)字化、智能化的時(shí)代,電子設(shè)備無處不在,從智能手機(jī)、智能家居到工業(yè)控制系統(tǒng),它們?cè)谔嵘钇焚|(zhì)與生產(chǎn)效率的同時(shí),也面臨著高頻干擾與兼容性問題的挑戰(zhàn)。高頻干擾會(huì)導(dǎo)致設(shè)備信號(hào)傳輸不穩(wěn)定、數(shù)據(jù)丟失,甚至系統(tǒng)崩潰;兼容性問...

關(guān)鍵字: 高頻干擾 兼容性 信號(hào)

在當(dāng)今電子技術(shù)飛速發(fā)展的時(shí)代,隨著電子產(chǎn)品不斷向小型化、高性能化邁進(jìn),印刷電路板(PCB)的設(shè)計(jì)變得愈發(fā)復(fù)雜和精密。過孔,作為 PCB 中連接不同層線路的關(guān)鍵元件,其對(duì)信號(hào)完整性的影響已成為電路設(shè)計(jì)中不可忽視的重要因素。...

關(guān)鍵字: 印刷電路板 電路設(shè)計(jì) 信號(hào)

在當(dāng)今高速發(fā)展的電子系統(tǒng)領(lǐng)域,信號(hào)完整性已然成為確保系統(tǒng)性能與可靠性的關(guān)鍵要素。從驅(qū)動(dòng)到連接器的信號(hào)傳輸路徑宛如一條信息高速公路,而接收端則如同這條公路的終點(diǎn)收費(fèi)站,其設(shè)置的合理性直接關(guān)乎信號(hào)能否準(zhǔn)確無誤地抵達(dá)目的地。若...

關(guān)鍵字: 信號(hào) 連接器 驅(qū)動(dòng)

上海 2025年5月28日 /美通社/ -- 2024年12月15日,DEKRA德凱溫州低壓實(shí)驗(yàn)室正式通過沙特電力公司(SEC)的全面評(píng)估,成功入選其認(rèn)可的獨(dú)立測試實(shí)驗(yàn)室名...

關(guān)鍵字: 電力 SE 低壓電器 電力系統(tǒng)
關(guān)閉