-
- 素材大。
- 771 KB
- 素材授權(quán):
- 免費下載
- 素材格式:
- .ppt
- 素材上傳:
- ppt
- 上傳時間:
- 2016-06-08
- 素材編號:
- 52622
- 素材類別:
- 培訓(xùn)教程PPT
-
素材預(yù)覽
這是一個關(guān)于VHDL培訓(xùn)教程PPT(部分ppt內(nèi)容已做更新升級)課件,主要介紹了VHDL簡介及其結(jié)構(gòu)、VHDL中的對象、操作符、數(shù)據(jù)類型、VHDL中的控制語句及模塊、狀態(tài)機的設(shè)計等內(nèi)容。VHDL的發(fā)展歷史起源于八十年代,由美國國防部開發(fā)
兩個標(biāo)準(zhǔn): 1、1987年的 IEEE 1076(VHDL87);2、1993年進行了修正(VHDL93),歡迎點擊下載VHDL培訓(xùn)教程PPT(部分ppt內(nèi)容已做更新升級)課件哦。VHDL培訓(xùn)教程PPT課件是由紅軟PPT免費下載網(wǎng)推薦的一款培訓(xùn)教程PPT類型的PowerPoint.
VHDL培訓(xùn)教程
第一講、VHDL簡介及其結(jié)構(gòu)
第二講、VHDL中的對象、操作符、數(shù)據(jù)類型
第三講、VHDL中的控制語句及模塊
第四講、狀態(tài)機的設(shè)計
第一講、VHDL簡介及其結(jié)構(gòu)
通過本課的學(xué)習(xí)您可以了解以下幾點
1、VHDL 的基本概念
2、VHDL的基本結(jié)構(gòu)
3、VHDL的設(shè)計初步
什么是VHDL
VHDL-
VHSIC Hardware Decription Language
其中VHSIC-
Very High Speed Integrated Circuit
電子設(shè)計自動化的關(guān)鍵技術(shù)之一是要求用形式化
方法來描述硬件系統(tǒng)。VHDL適應(yīng)了這種要求。
VHDL和Verilog HDL
Verilog HDL:
另一種硬件描述語言,由Verilog 公司開發(fā),1995年成為IEEE標(biāo)準(zhǔn)。
優(yōu)點:簡單、易學(xué)易用
缺點:功能不如VHDL強大,仿真工具少
VHDL :
1987年成為IEEE標(biāo)準(zhǔn)
優(yōu)點:功能強大、通用性強。
缺點:難學(xué)
VHDL的發(fā)展歷史
起源于八十年代,由美國國防部開發(fā)
兩個標(biāo)準(zhǔn):
1、1987年的 IEEE 1076(VHDL87)
2、1993年進行了修正(VHDL93)
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
電子系統(tǒng)設(shè)計的描述等級
1、行為級
2、RTL級(Register transfer level)
3、邏輯門級
4、版圖級
用VHDL可以描述以上四個等級
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用
如何使用VHDL描述硬件實體
VHDL結(jié)構(gòu)要點
1、ENTITY(實體)
格式:
Entity 實體名 IS
[類屬參數(shù)說明]
[端口說明]
End Entity;
其中端口說明格式為:
PORT(端口名1,端口名N:方向:類型)
其中方向有: IN , OUT, INOUT, BUFFER, LINKAGE
VHDL結(jié)構(gòu)要點
注意
簡單地說
In 不可以出現(xiàn)在<= 或 : = 的左邊
out不可以出現(xiàn)在<= 或 : = 的右邊
buffer可以出現(xiàn)在<= 或 : = 的兩邊
VHDL結(jié)構(gòu)要點
例子 (HalfAdd)
VHDL結(jié)構(gòu)要點
2、Arcthitecture(構(gòu)造體)
格式:
Arcthitecture 構(gòu)造體名 of 實體名 is
[定義語句] 內(nèi)部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義
begin
[并行處理語句和block、process、function、procedure]
end 構(gòu)造體名;
VHDL結(jié)構(gòu)要點
例子(HalfAdd)
VHDL結(jié)構(gòu)要點
例子 (FullAdd) (學(xué)習(xí)如何調(diào)用現(xiàn)有模塊)
VHDL結(jié)構(gòu)要點
實例(FullAdd)-entity
VHDL結(jié)構(gòu)要點
實例(FullAdd)-architecture
VHDL中的設(shè)計單元
除了entity(實體)和architecture(構(gòu)造體)外還有
另外三個可以獨立進行編譯的設(shè)計單元
Package(包集合)屬于庫結(jié)構(gòu)的一個層次,存放信號定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義。
Package Body 具有獨立對端口(port)的package
configuration(配置)描述層與層之間的連接關(guān)系以及實體與構(gòu)造體之間關(guān)系。
VHDL中的設(shè)計單元
VHDL中的設(shè)計單元(可以獨立編譯)
Library 庫的概念
STD庫 --VHDL的標(biāo)準(zhǔn)庫
IEEE庫 -- VHDL的標(biāo)準(zhǔn)庫的擴展
面向ASIC的庫 --不同的工藝
不同公司自定義的庫
普通用戶自己的庫
Library 庫的概念
用戶自己的庫
當(dāng)您的VHDL文件被編譯后,編譯的結(jié)果儲存在特定的目錄下,這個目錄的邏輯名稱即Library,此目錄下的內(nèi)容亦即是這個Library的內(nèi)容。
Package 包的概念
Package(包)
VHDL中的結(jié)構(gòu)關(guān)系
VHDL簡介及其結(jié)構(gòu)
本講結(jié)束
下一講:
VHDL中的對象、操作符、數(shù)據(jù)類型
第二講、VHDL對象、操作符、數(shù)據(jù)類型
通過本課的學(xué)習(xí)您可以了解以下幾點
1、VHDL 的基本類型
2、如何在VHDL中定義類型
3、VHDL 的信號定義
4、如何在VHDL中對信號賦值
5、VHDL中的操作符
VHDL對象、操作符、數(shù)據(jù)類型
對象object
對客觀實體的抽象和概括
VHDL中的對象有:
1、Constant(常量)在程序中不可以被賦值
2、Variable(變量)在程序中可以被賦值(用“: =”),賦值后立即變化為新值。
3、Signal(信號)在程序中可以被賦值(用“<=”) ,但不立即更新,當(dāng)進程掛起后,才開始更新。
VHDL對象、操作符、數(shù)據(jù)類型
VHDL中的對象使用:
variable
x,y:integer;--定義了整數(shù)型的變量對象x,y
constant
Vcc:real;--定義了實數(shù)型的常量對象Vcc
signal
clk,reset:bit;--定義了位類型的信號對象clk,reset
VHDL中的對象使用
注意
1、variable只能定義在process和subprogram(包括function和procedure)中,不可定以在其外部。
2、signal不能定義在process和subprogram(包括function和procedure)中,只可定以在其外部。
VHDL對象、操作符、數(shù)據(jù)類型
對象的屬性
類似于其它面向?qū)ο蟮木幊陶Z言如VB、VC、DELPHI
用法格式:對象 ’ 屬性
例 子:clk’event --表明信號clk的event屬性
常用的屬性:
Signal 對象的常用屬性有:
event : 返回boolean值,信號發(fā)生變化時返回true
last_value:返回信號發(fā)生此次變化前的值
last_event:返回上一次信號發(fā)生變化到現(xiàn)在變化的間隔時間
VHDL對象、操作符、數(shù)據(jù)類型
Signal 對象的常用屬性有:接上頁
delayed[(時延值)]: 使信號產(chǎn)生固定時間的延時并返回
stable[(時延值)]: 返回boolean, 信號在規(guī)定時間內(nèi)沒有變化返回true
transaction: 返回bit類型,信號每發(fā)生一次變化,返回值翻轉(zhuǎn)一次
VHDL對象、操作符、數(shù)據(jù)類型
VHDL 的基本類型
1、bit(位): `0` 和`1`
2、bit-Vector(位矢量): 例如:``00110``
3、Boolean “ ture”和“false”
4、time 例如:1 us、100 ms,3 s
5、character 例如:‘a’、’n’、’1’、 ’0’
6、string 例如:“sdfsd”、”my design”
7、integer 32位例如:1、234、-2134234
8、real 范圍-1.0E38~+1.0E38
例如:1.0、2.834、3.14、0.0
VHDL 的基本類型
9、natural 自然數(shù) 和 positive 正整數(shù)
10、senverity level (常和assert語句配合使用)
包含有:note、warning、error、failure
以上十種類型是VHDL中的標(biāo)準(zhǔn)類型,在編程中可以直接使用。使用這十種以外的類型,需要自行定義或指明所引用的Library(庫)和Package(包)集合
VHDL 的基本類型
例子一
VHDL 的基本類型和賦值
例子二
VHDL 的基本類型和賦值
例子三
VHDL 的基本類型和賦值
例子四
VHDL 的基本類型和賦值
例子五
VHDL 的基本類型和賦值
連接操作符---使用&
VHDL 的基本類型和賦值
集合操作---使用()
VHDL 的基本類型和賦值
集合操作---采用序號
VHDL 的基本類型和賦值
集合操作--采用others
在VHDL中定義自己的類型
通用格式
TYPE 類型名 IS 數(shù)據(jù)類型定義
用戶可以定義的數(shù)據(jù)類型
枚舉類型enumberated、整數(shù)型integer、
實數(shù)型real、數(shù)組類型array、
紀(jì)錄類型record、時間類型time、
文件類型file、存取類型access
在VHDL中定義自己的類型
枚舉類型enumberated
格式
type 數(shù)據(jù)類型名 is (元素,元素…...);
例子
type week is (sun,mon,tue,thu,fri,sat);
type std_logic is (‘1’,’0’,’x’,’z’);
在VHDL中定義自己的類型
整數(shù)類integer和實數(shù)類real
格式
type 數(shù)據(jù)類型名 is 數(shù)據(jù)類型定義 約束范圍;
例子
type week is integer range 1 to 7;
type current is real range -1E4 to 1E4
在VHDL中定義自己的類型
數(shù)組類型array
格式
type 數(shù)據(jù)類型名 is array 范圍 of 元數(shù)據(jù)類型名
例子
type week is array (1 to 7) of integer;
type deweek is array (1 to 7) of week;
在VHDL中定義自己的類型
時間類型time
格式
type 數(shù)據(jù)類型名 is 范圍
units 基本單位;
單位;
end units
在VHDL中定義自己的類型
時間類型例子
type time is range -1E18 to 1E18
units
us;
ms=1000 us;
sec=1000 ms;
min=60 sec;
end units
在VHDL中定義自己的類型
紀(jì)錄類型record
格式
type 數(shù)據(jù)類型名 is recoerd
元素名:數(shù)據(jù)類型名;
元素名:數(shù)據(jù)類型名;
….
end record;
在VHDL中定義自己的類型
紀(jì)錄類型的例子
type order is record
id:integer;
date:string;
security:boolean;
end record;
引用:signal flag:boolean;
signal order1:order;
order1<=(3423,”1999/07/07”,true);
flag<=order1.security;
IEEE 1164中定義的類型
std_ulogic 是對位(bit)類型的擴展,只允許一個驅(qū)動源
IEEE 1164中定義的類型
Std_logic同std_ulogic 一樣有九個狀態(tài),允許一個或多個驅(qū)動源
IEEE 1164中定義的類型
Std_unlogic_vector和std_logic_vector
IEEE 1164中定義的類型
Std_unlogic、std_ulogic_vector
std_logic_vector和 std_unlogic_vector 類型
均定義在package(包) standard_logic_1164中
在使用這四種類形時應(yīng)加以說明,
例如:library ieee;
use ieee.std_logic_1164.all;
注: standard_logic_1164位于IEEE庫中
類型使用例子
例子一(聲明使用的庫和包)
類型使用例子
例子二 std_ulogic 和std_logic的區(qū)別
類型使用例子
練習(xí)一: 下面那一個是正確的
VHDL中的操作符
分類
1、邏輯操作符
2、關(guān)系操作符
3、數(shù)學(xué)運算符
VHDL中的操作符
1、邏輯操作符有:
VHDL中的操作符
邏輯操作符的應(yīng)用類型
VHDL中的操作符
邏輯操作符的應(yīng)用例子
VHDL中的操作符
2、關(guān)系運算符有
VHDL中的操作符
關(guān)系運算符的應(yīng)用
VHDL中的操作符
3、數(shù)學(xué)運算符
VHDL中的操作符
VHDL中的操作符應(yīng)用要點
1、VHDL屬于強類型,不同類型之間不能進行運算和賦值,可以進行數(shù)據(jù)類型轉(zhuǎn)換
2、vector不表示number
3、array 不表示number
VHDL中的操作符
本講結(jié)束
下一講:
VHDL中的控制語句及模塊
第三講VHDL中的控制語句及模塊
通過本講您將會學(xué)到
1、Block的編寫
2、Process的編寫
3、function 和 procedure的編寫
4、VHDL中的流程控制語句的書寫
VHDL中的控制語句及模塊
回顧第一講的內(nèi)容
VHDL中的控制語句及模塊
基本概念
1、并行處理(concurrent)
語句的執(zhí)行與書寫順序無關(guān),并行塊內(nèi)的語句時同時執(zhí)行的
2、順序處理(sequential)
語句的執(zhí)行按書寫的先后次序,從前到后順序執(zhí)行。這種方式和其他普通編程語言(如c,pascal)是一樣的。
VHDL中的控制語句及模塊
Architecture 中的語句及子模塊之間是并行處理的
子模塊block中的語句是并行處理的
子模塊process中的語句是順序處理的
子模塊subprogram中的function和procedure是順序處理的
VHDL中的architecture
Arcthitecture(構(gòu)造體)的格式為:(第一講)
Arcthitecture 構(gòu)造體名 of 實體名 is
[定義語句] 內(nèi)部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義
begin
[并行處理語句和block、process、function、procedure]
end 構(gòu)造體名;
Architecture中的Block
Block
格式
塊名:
BLOCK
[定義語句]
begin
[并行處理語句concurrent statement]
end block 塊名
Architecture中的Block
條件Block
格式
塊名:
BLOCK [(布爾表達式)]
[定義語句]
begin
[并行處理語句concurrent statement
[信號]<= guarded [信號,延時] ;
end block 塊名
Architecture中的Block
Block 例子
myblock1:
block(clk=‘1’)
signal:qin:bit:=‘0’;
begin
qout<= guarded qin ;
end block myblock1
Architecture中的process
Process
格式
[進程名:]
process [(觸發(fā)信號列表)]
[定義語句;]
begin
[串行處理語句sequential statement;]
end process
Architecture中的process
process例子
exp1:
process (clk,qin)
variable:qin:bit:=‘0’;
begin
qout<=qin;
end process
process例子-值的更新
Architecture中的process
Process中敏感信號列表的普遍原則是:
在process中,其值被引用的信號應(yīng)當(dāng)出現(xiàn)在敏感信號列表中
不符和設(shè)計要求
Architecture中的subprogram
Function(函數(shù))
格式:
function 函數(shù)名(參數(shù)1,參數(shù)2 …...)
[定義語句]
return 數(shù)據(jù)類型名 is [定義語句]
begin
[順序執(zhí)行語句]
return [返回變量名]
end 函數(shù)名
Architecture中的subprogram
Function 例子
function max(a,b:bit)
return boolean is variable :flag:boolean;
begin
if (a=b)then
flag<=true;
end if
return flag;
end max
procedure(過程)
格式:
procedure 過程名(參數(shù)1,參數(shù)2 …...)is
[定義語句]
begin
[順序執(zhí)行語句]
end 過程名
Architecture中的subprogram
Procedure例子
procedure max(a,b:in bit;
flag:out boolean)is
begin
if (a=b)then
flag<=true;
end if
end max;
順序執(zhí)行語句sequential statement
Wait語句
assert語句
If 語句
case語句
for loop語句
while 語句
順序執(zhí)行語句sequential statement
Wait語句
書寫格式
wait;--無限等待
wait on [信號列表] --等待信號變化
wait until [條件]; --等待條件滿足
wait for [時間值]; --等待時間到
功能
wait語句使系統(tǒng)暫時掛起 (等同于end process),此時,信號值開始更新。條件滿足后,系統(tǒng)將繼續(xù)運行 。
順序執(zhí)行語句sequential statement
Wait語句例子
process(a,b)
begin
y<=a and b;
end process
順序執(zhí)行語句sequential statement
Wait語句例子
如果process中沒有敏感信號列表,其進程中也沒
有wait 語句,則process中的程序代碼循環(huán)執(zhí)行
順序執(zhí)行語句sequential statement
Assert語句格式
assert 條件 [report 輸出信息] [severity]
說明:條件為true 時執(zhí)行下一條語句,為false 時輸出錯誤信息和錯誤的嚴(yán)重級別
例子
….
assert(sum=100)report “sum /=100” severity error;
next statement
…...
順序執(zhí)行語句sequential statement
If 語句格式
if 條件 then
[順序執(zhí)行語句]
[else]
[順序執(zhí)行語句]
end if
順序執(zhí)行語句sequential statement
If 語句例子
順序執(zhí)行語句sequential statement
Case 語句格式
順序執(zhí)行語句sequential statement
Case 語句例子,條件表達式可以有多種形式
順序執(zhí)行語句sequential statement
Case 語句例子
順序執(zhí)行語句sequential statement
For loop 語句格式
順序執(zhí)行語句sequential statement
在loop語句中可以用next來跳出本次 循環(huán),也可以用exit 來結(jié)束整個循環(huán)狀態(tài)
next 格式:next [標(biāo)號] [when 條件];
exit 格式: exit [標(biāo)號] [when 條件];
順序執(zhí)行語句sequential statement
While 語句格式
并行處理語句concurrent statement
1、信號賦值操作
2、帶條件的信號賦值語句
3、帶選擇的信號賦值語句
并行處理語句concurrent statement
信號賦值操作
符號“<=”進行信號賦值操作的,
它可以用在順序執(zhí)行語句中,
也可以用在并行處理語句中
注意
1、用在并行處理語句中時,符號<=右邊的值是此條語句的敏感信號,即符號<=右邊的值發(fā)生變化就會重新激發(fā)此條賦值語句,也即符號<=右邊的值不變化時,此條賦值語句就不會執(zhí)行。如果符號<=右邊是常數(shù)則賦值語句一直執(zhí)行。
2、用在順序執(zhí)行語句中時,沒有以上說法。
并行處理語句concurrent statement
賦值語句例子
并行處理語句concurrent statement
條件信號帶入語句格式
目的信號量 <= 表達式1 when 條件1
else 表達式2 when 條件2
else 表達式3 when 條件3
…..
else 表達式4
并行處理語句concurrent statement
條件信號帶入語句例子
并行處理語句concurrent statement
選擇信號帶入語句格式
with 表達式 select
目的信號量 <= 表達式1 when 條件1,
表達式2 when 條件2,
…..
表達式n when 條件n;
并行處理語句concurrent statement
選擇信號帶入語句例子
順序執(zhí)行語句和并行處理語句
順序執(zhí)行語句和并行處理語句總結(jié)
1、順序執(zhí)行語句 wait、assert、if -else 、case、for-loop、while語句只能用在process、function 和 procedure 中;
2、并行處理語句(條件信號帶入和選擇信號帶入)只能用在architecture、block中;
其它語句
Generic語句
enttity and2 is
generic(rise:time:=10 ns);
port(a,b: in nit ; c:out bit);
end and2;
architecture behav of and2 is
begin
c<=(a xor b) after (rise);
end behav
enttity testand2 is
port(ain,bin: in nit ; cout:out bit);
end testand2;
architecture behav of testand2 is
component and2
generic(rise:time); port(a,b: in nit ; c:out bit);
end component;
begin
c<=(a xor b) after (rise);
u0:and2 generic map(20 ns) port map(ain,bin,cout);
end behav
一些例子
Signal A,B,C, Y,Z,M,N : integer;
Signal M,N : integer;
begin
process (A,B,C)
begin
M<=A;
N<=B;
Z<=M+N;
M<=C;
Y<=M+N;
end process
一些例子
變量值的更新立即發(fā)生
一些例子
Z 和 Y最終取什么值;
結(jié)束語
祝賀您完成了VHDL基本內(nèi)容的學(xué)習(xí),希望您在實踐過程中能學(xué)到更多!
下一講:
狀態(tài)機的設(shè)計
第四講、狀態(tài)機的設(shè)計
概念
一類十分重要的時序電路
許多數(shù)字電路的核心部件
狀態(tài)機概述
狀態(tài)機的結(jié)構(gòu)
狀態(tài)機的基本操作
1、狀態(tài)的轉(zhuǎn)換
下一個狀態(tài)由譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定。
2、輸出信號的產(chǎn)生
輸出信號由譯碼器根據(jù)當(dāng)前狀態(tài)和輸入條件決定
狀態(tài)機的時序
同步時序狀態(tài)機
由時鐘信號觸發(fā)狀態(tài)的轉(zhuǎn)換和信號的輸出
異步時序狀態(tài)機
狀態(tài)的轉(zhuǎn)移和輸出不與時鐘信號同步
狀態(tài)機的設(shè)計
在產(chǎn)生輸出的過程中,由是否使用輸入信號可以決定狀態(tài)機的類型
兩種類型
1、米里(mealy)狀態(tài)機---使用輸入信號
2、莫爾(moore)狀態(tài)機---不使用輸入信號
狀態(tài)機的類型
狀態(tài)機的表達方式
1、狀態(tài)圖
2、狀態(tài)表
3、流程圖
狀態(tài)機的設(shè)計
3進制計數(shù)器
狀態(tài)機的設(shè)計
序列檢測器(1110010)
VHDL上機指導(dǎo)
編譯和仿真工具
OR-CAD或ACTIVE-VHDL
本次培訓(xùn)采用ACTIVE-VHDL
ACTIVE-VHDL自帶教程
目錄: ..\Active VHDL\book\Avhdl.htm
vhdl ppt:這是vhdl ppt,包括了VHDL語言基礎(chǔ),VHDL基本結(jié)構(gòu),VHDL語句,狀態(tài)機在VHDL中的實現(xiàn),常用電路VHDL程序,VHDL仿真,VHDL綜合等內(nèi)容,歡迎點擊下載。
基于VHDL的六層電梯的論文答辯介紹ppt:這是一個關(guān)于基于VHDL的六層電梯的論文答辯材料ppt,主要介紹了選題的背景與任務(wù)要求;設(shè)計流程與設(shè)計原理簡介;總體電路設(shè)計與仿真;設(shè)計總體評估和收獲;擴展性分析與展望等內(nèi)容。本次設(shè)計完成了設(shè)想的設(shè)計要求,實現(xiàn)了電梯所應(yīng)具備的基本功能并且進行了正確的時序仿真,生成了正確的仿真波形圖。仿真結(jié)果表明VHDL 語言應(yīng)用于數(shù)字電路仿真是切實可行的。VHDL語言是一個很好用的硬件描述語言,能夠正確完成電梯控制的任務(wù)要求。同時在本次設(shè)計中我通過努力將所學(xué)運用于實踐,這加深了我對專業(yè)的認(rèn)識,并且也收獲到了成功后的喜悅。電梯控制器是一個比較復(fù)雜的系統(tǒng),由于設(shè)計任務(wù)的要求我們主要慮了六層電梯控制器的設(shè)計。但實際生活中電梯的層數(shù)和功能需要按照人們的需求不斷變化由于我們采用的是模塊化的設(shè)計,這樣便方便了我們對系統(tǒng)的功能擴展,除此之外,本次程序設(shè)計大多采用的是邏輯矢量,通過適當(dāng)引入變量,也可以方便我們對電梯控制器層數(shù)的擴展,歡迎點擊下載!