版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
VHDL基礎第三章3.1硬件描述語言概述VHDL:VHSIC(VeryHighSpeedIntegratedCircuit)HDLHDL:HardwareDescribeLangaugeVHDL具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力;學習HDL的幾點重要提示1.了解HDL的可綜合性問題HDL可以用來系統(tǒng)仿真和硬件實現(xiàn)。如果程序只用于仿真,那么幾乎所有的語法和編程方法都可以使用。但如果我們的程序是用于硬件實現(xiàn)(例如:用于FPGA設計),那么我們就必須保證程序“可綜合”(程序的功能可以用硬件電路實現(xiàn))。
學習HDL的幾點重要提示2.用硬件電路設計思想來編寫HDL
學好HDL的關鍵是充分理解HDL語句和硬件電路的關系。編寫HDL,就是在描述一個電路,我們寫完一段程序以后,應當對生成的電路有一些大體上的了解,而不能用純軟件的設計思路來編寫硬件描述語言。學習HDL的幾點重要提示3.語法掌握貴在精30%的基本HDL語句就可以完成95%以上的電路設計,很多生僻的語句并不能被所有的綜合軟件所支持,在程序移植或者更換軟件平臺時,容易產(chǎn)生兼容性問題,也不利于其他人閱讀和修改。建議多用心鉆研常用語句,理解這些語句的硬件含義。3.1.1組合電路描述entity
mux21a
isport(a,b:
in
bit;
s:
in
bit;
y:
out
bit);end;architecture
one
of
mux21a
isbegin
y<=a
when
s='0'
else
b;end;3.1.2
VHDL結構實體:描述了電路器件的外部情況和各信號端口的基本性質(zhì)。entity
mux21a
isport(a,b:
in
bit;
s:
in
bit;
y:
out
bit);end;實體名實體名是標識符,可以由設計者自定,好的實體名應該體現(xiàn)器件的基本功能。3.1.2
VHDL結構端口語句:用來描述電路的端口及端口信號的性質(zhì)。port(
a,b
:
in
bit
;
s
:
in
bit
;
y
:
out
bit
);端口信號名可以自定義。端口信號名端口模式數(shù)據(jù)類型限定了數(shù)據(jù)對象的取值范圍和數(shù)值類型,即對其傳輸或存儲的數(shù)據(jù)做明確界定。數(shù)據(jù)類型端口模式用于定義端口上數(shù)據(jù)流動的方向。3.1.2
VHDL結構可綜合的端口模式有4種:(1)IN——輸入端口;(2)OUT——輸出端口;(3)INOUT——雙向端口;(4)BUFFER——緩沖端口;3.1.2
VHDL結構數(shù)據(jù)類型BIT:取值范圍是邏輯位‘1’和‘0’;可以參與邏輯運算或算數(shù)運算;bit_vector(1downto0);axmuxcbds23.1.2
VHDL結構結構體的一般表達式如下:architecture<結構體名>of<所對應實體名>is[說明語句]
begin功能描述語句end;3.1.2
VHDL結構architectureoneofmux21aisbegin y<=awhens='0'else b;end;賦值符號<=表示輸入端口a的數(shù)據(jù)向輸出端口y傳輸;數(shù)據(jù)比較符由“=”連接的表達式的數(shù)據(jù)類型是BOOLEAN類型,其取值分別為TRUE和FALSE。3.1.2
VHDL結構條件信號賦值語句:when_else賦值目標<=表達式when賦值條件
else
表達式when賦值條件
else
……
表達式;
y<=awhen(s=“00”)else bwhen(s=“01”)else cwhen(s=“10”)else d;aycbdsmux2注意
1、條件測試具有順序性;2、各賦值條件可以同時成立;3、至少有一個ELSE,即至少是兩分支;3.1.2
VHDL結構選擇信號賦值語句:with_select_whenwith 選擇表達式 select賦值目標<=表達式when 選擇值,
表達式when 選擇值,
……,
表達式when 選擇值;
with sselect y<=awhen “00”, bwhen “01”,
cwhen “10”, dwhen others;aymuxcbds2注意
1、條件測試不分先后;2、各賦值條件不能重復;3、不允許存在條件涵蓋不全的現(xiàn)象;上機練習:分別用when_else語句和with_select_when語句實現(xiàn)4選1數(shù)據(jù)選擇器,要求完成設計輸入、編譯和仿真。仿真時注意輸入信號波形編輯的原則是a、b、c、d有所不同,兩個選擇輸入端按00、01、10、11四種情況出現(xiàn)即可。請啟動Tools→RTLViewer觀察不同語句所對應電路結構有何不同;注意事項:1、新建文件時,選擇vhdlfile選項;2、保存文件時,文件名必須和實體名一致;with_select_whenwhen_else問題已經(jīng)學了哪兩個語句,其基本格式如何?有什么區(qū)別?實現(xiàn)四選一數(shù)據(jù)選擇器時硬件邏輯電路是否相同?3.1.3簡單信號賦值語句
賦值目標<=表達式;entity
mux21a
isport(a,b,s:
in
bit;
y:
out
bit);end;architecture
one
of
mux21a
issignald,e:bit;begin
d<=a
and(not
s);e<=bands; y<=dore;end;賦值符號兩側的數(shù)據(jù)類型必須一致!3.1.4邏輯操作符運算符功能AND與OR或NAND與非NOR或非XOR異或XNOR同或NOT非3.1.5if語句architecture
one
of
mux21a
isbegin
ifs=‘0’theny<=a;
elsey<=b;
end
if;
end;architecture
one
of
mux21a
isbegin
process(a,b,s) begin
ifs=‘0’theny<=a;
elsey<=b;
end
if;
endprocess;
end;3.1.5if語句If語句的結構(1):If條件句then順序語句;else順序語句;endif;這是一個兩分支結構,包含了所有可能的條件,是完整條件語句;3.1.5if語句If語句的結構(2):If條件句then順序語句;elsIf條件句then順序語句;elsIf條件句then順序語句;……else順序語句;endif;這是一個多分支結構,包含了所有可能的條件,是完整條件語句;3.1.6組合電路和完整條件語句賦值目標<=表達式when賦值條件
else
表達式when賦值條件
else
……
表達式;with選擇表達式 select賦值目標<=表達式when 選擇值
表達式when 選擇值
……
表達式when others;組合電路都是由完整條件語句構成的!3.1.7進程語句進程的基本格式:[進程標號:]PROCESS[(敏感信號表)][IS]
<說明區(qū)>
BEGIN
<順序語句>
ENDPROCESS[進程標號];敏感信號敏感信號是這樣的信號:它的變化可以啟動進程。通常要求將進程中的所有輸入信號都放入敏感信號表中。上機練習:If條件句then順序語句;elsIf條件句then順序語句;elsIf條件句then順序語句;……else順序語句;endif;用上面結構實現(xiàn)4選1數(shù)據(jù)選擇器,要求完成設計輸入、編譯和仿真,并思考該語句是不是完整條件語句。請啟動Tools→RTLViewer觀察對應電路結構的特點,跟以前的練習比較,與哪個語句實現(xiàn)的電路結構相同;3.2時序電路的描述時序電路是數(shù)字邏輯中必不可少的組成部分,下面以典型的時序元件D觸發(fā)器為例來說明時序電路的VHDL規(guī)則,從而得出時序電路描述的一般規(guī)律和設計方法。3.2.1
D觸發(fā)器實體描述:entity
dff1
isport(d:
in
bit;
clk:
in
bit;
q:
out
bit);end;3.2.1
D觸發(fā)器entity
dff1
isport(d:
in
std_logic;
clk:
in
std_logic;
q:
out
std_logic);end;libraryieee;useieee.std_logic_1164.all;entity
dff1
isport(d:
in
std_logic;
clk:
in
std_logic;
q:
out
std_logic);end;3.2.1
D觸發(fā)器標準邏輯位數(shù)據(jù)類型:STD_LOGICTYPEBITIS(‘0’,’1’);--只有兩種取值TYPESTD_LOGICIS(‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’);涉及庫和標準程序包LIBRARYWORK;LIBRARYSTD;USESTD.STANDARD.ALL;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;STD_LOGIC數(shù)據(jù)類型在數(shù)字器件中實現(xiàn)的只有其中的4~5種值,即’X’,’0’,’1’,’Z’,其他值通常不可綜合。3.2.1
D觸發(fā)器結構體描述:請敘述D觸發(fā)器的功能。當時鐘脈沖CLK的上升沿到來時,輸入端D的值賦給輸出端Q。上升沿的表達方法是:CLK’EVENTANDCLK=‘1’EVENT叫做信號屬性函數(shù),其用法是:<信號名>’ENENT含義是:信號的取值在一個極小時間段內(nèi)發(fā)生變化。3.2.1
D觸發(fā)器architecture
one
of
dff1
isbegin
if
clk'event
and
clk='1'
then
q<=d;
endif;
end;architecture
one
of
dff1
isbegin
process(d,clk)
begin
if
clk'event
and
clk='1'
then
q<=d;
endif;
endprocess;end;完整條件語句?3.2.1
D觸發(fā)器(圖)3.2.1
D觸發(fā)器architecture
one
of
dff1
issignalq1:std_logic;begin
process(d,clk)
begin
if
clk'event
and
clk='1'
then
q1<=d;
endif;
endprocess;q<=q1;end;3.2.1
D觸發(fā)器3.2.1
D觸發(fā)器信號定義和數(shù)據(jù)對象格式:signal
信號名:數(shù)據(jù)類型;內(nèi)部節(jié)點信號的定義位置: architecture
one
of
dff1
is signalq1:std_logic; begin
……定義q1的目的是為了在設計更大的電路時使用由此引入的節(jié)點。3.2.1
D觸發(fā)器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度瓦工裝修綠色施工認證合同3篇
- 二零二五版危化品公路運輸安全監(jiān)管服務合同2篇
- 二零二五版攪拌站輪胎專用備品備件供應合同3篇
- 二零二五版智能辦公樓深度清潔及保養(yǎng)服務合同2篇
- 二零二五版辦公室文員工作環(huán)境優(yōu)化合同3篇
- 二零二五年度高端房地產(chǎn)項目個人連帶責任保證擔保合同2篇
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)設施租賃合同3篇
- 2025年度中式烹飪技藝傳承與創(chuàng)新合同協(xié)議3篇
- 屋頂防水施工合同(2篇)
- 二零二五年救生員水上安全培訓與勞動合同3篇
- 廣東省惠州市2024-2025學年高一上學期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計劃(2篇)
- 環(huán)境保護應急管理制度執(zhí)行細則
- 2024-2030年中國通航飛行服務站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報告
- 機械制造企業(yè)風險分級管控手冊
- 地系梁工程施工方案
- 藏文基礎-教你輕輕松松學藏語(西藏大學)知到智慧樹章節(jié)答案
- 2024電子商務平臺用戶隱私保護協(xié)議3篇
- 安徽省蕪湖市2023-2024學年高一上學期期末考試 英語 含答案
- 醫(yī)學教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關系
評論
0/150
提交評論