<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VHDL語(yǔ)言中信號的不同形式設置

VHDL語(yǔ)言中信號的不同形式設置

作者: 時(shí)間:2011-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:通過(guò)一個(gè)偶同位產(chǎn)生器邏輯功能的實(shí)現過(guò)程,介紹了方 式及注意事項,并給出了完整的程序代碼。

本文引用地址:http://dyxdggzs.com/article/150123.htm

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

1概述

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

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

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

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

熟練而靈活地使用上述兩類(lèi)命令,可以節省大 量的工作量,使程序簡(jiǎn)單直觀(guān)、可讀性增強而且有利于提高程序的編譯執行效率。

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

2編程舉例

例:試設計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í)現的是一個(gè)由三個(gè)數據位、一個(gè)同位位組成的偶同位產(chǎn)生器功 能。不難得出各位之間的簡(jiǎn)單邏輯關(guān)系:P=S0S1S2 。但是本文的主要目的在于通過(guò)此例闡述如何靈活運用的基本表達式設置信號,因此 某些可能更加簡(jiǎn)單的方法以及比較高級一點(diǎn)語(yǔ)句本文不予詳細討論。

解:(注:VHDL語(yǔ)言中使用“--”作為注釋符號)

library ieee; ①

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.

all;

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

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

end hf; --應該保證電路單元名稱(chēng)與存盤(pán)的文件名一致,否則編譯時(shí) 出錯;

ARCHITECTURE a OF hf IS

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

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

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

z=‘0’when (s=000) else --此語(yǔ)句只能將s的各個(gè)值分開(kāi)寫(xiě),而不能寫(xiě)成如下

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:使用With -Select -When表達方式:

With s Select

z=‘0’ when 000, --注意:除了最后一句的語(yǔ)句結束標志是分號外,其余各句均是逗號;

‘0’ when 011,

‘0’ when 110,

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

--解法3:使用“If-Else”表達方式:

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

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

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

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

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

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

Begin

case s is

when 000|011|110|111 =>

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

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

z=‘1’;
end case;


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 形式 設置 不同 信號 語(yǔ)言 VHDL

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>