VHDL的基本語法-課件_第1頁
VHDL的基本語法-課件_第2頁
VHDL的基本語法-課件_第3頁
VHDL的基本語法-課件_第4頁
VHDL的基本語法-課件_第5頁
已閱讀5頁,還剩120頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VHDL的基本語法歡迎參加VHDL培訓VHDL的基本語法ppt課件2021/3/261VHDL的基本語法歡迎參加VHDL培訓VHDL的基本語法pVHDL的基本語法第一講、VHDL簡介及其結構第二講、VHDL中的對象、操作符、數(shù)據(jù)類型第三講、VHDL中的控制語句及模塊第四講、狀態(tài)機的設計VHDL的基本語法ppt課件2021/3/262VHDL的基本語法第一講、VHDL簡介及其結構VHDL的基本VHDL的基本語法通過本課的學習您可以了解以下幾點1、VHDL的基本概念2、VHDL的基本結構3、VHDL的設計初步VHDL的基本語法ppt課件2021/3/263VHDL的基本語法通過本課的學習您可以了解以下幾點VHDL的VHDL-VHSICHardwareDecriptionLanguage

其中VHSIC-VeryHighSpeedIntegratedCircuit電子設計自動化的關鍵技術之一是要求用形式化方法來描述硬件系統(tǒng)。VHDL適應了這種要求。VHDL的基本語法VHDL的基本語法ppt課件2021/3/264VHDL-VHDL的基本語法VHDL的基本語法ppt課件2VHDL的基本語法VerilogHDL:另一種硬件描述語言,由Verilog公司開發(fā),1995年成為IEEE標準。優(yōu)點:簡單、易學易用缺點:功能不如VHDL強大,仿真工具少VHDL:

1987年成為IEEE標準優(yōu)點:功能強大、通用性強。缺點:難學VHDL的基本語法ppt課件2021/3/265VHDL的基本語法VerilogHDL:VHDL的基本語法VHDL的基本語法起源于八十年代,由美國國防部開發(fā)兩個標準:1、1987年的IEEE1076(VHDL87)

2、1993年進行了修正(VHDL93)VHDL的基本語法ppt課件2021/3/266VHDL的基本語法起源于八十年代,由美國國防部開發(fā)VHDL的VHDL的基本語法電子系統(tǒng)的設計模塊VHDL的基本語法ppt課件2021/3/267VHDL的基本語法電子系統(tǒng)的設計模塊VHDL的基本語法ppVHDL的基本語法電子系統(tǒng)設計的描述等級1、行為級2、RTL級(Registertransferlevel)3、邏輯門級4、版圖級用VHDL可以描述以上四個等級VHDL的基本語法ppt課件2021/3/268VHDL的基本語法電子系統(tǒng)設計的描述等級VHDL的基本語法VHDL的基本語法系統(tǒng)設計的描述等級-制版級VHDL的基本語法ppt課件2021/3/269VHDL的基本語法系統(tǒng)設計的描述等級-制版級VHDL的基本語VHDL的基本語法系統(tǒng)設計的描述等級-邏輯門級VHDL的基本語法ppt課件2021/3/2610VHDL的基本語法系統(tǒng)設計的描述等級-邏輯門級VHDL的基本VHDL的基本語法系統(tǒng)設計的描述等級-RTL級VHDL的基本語法ppt課件2021/3/2611VHDL的基本語法系統(tǒng)設計的描述等級-RTL級VHDL的基本VHDL的基本語法系統(tǒng)設計的描述等級-行為級VHDL的基本語法ppt課件2021/3/2612VHDL的基本語法系統(tǒng)設計的描述等級-行為級VHDL的基本語VHDL的基本語法

Entity(實體)Architecture1(構造體)ArchitectureN

process(進程結構)

block(塊結構)

subprograms(子程序)

procedure(過程)

function(函數(shù))VHDL的基本語法ppt課件2021/3/2613VHDL的基本語法Entity(實體)ArchitectulibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_unsigned.all;entitycountisport(clock,reset:inSTD_LOGIC;dataout:outSTD_LOGIC_VECTOR(3downto0));endcount;architecturebehaviorlofcountissignaldatabuffer:STD_LOGIC_VECTOR(3downto0);begindataout<=databuffer;

process(clock,reset)

beginif(reset='1')thendatabuffer<="0000";elsif(clock'eventandclock='1')thenifdatabuffer="1000"thendatabuffer<="0000";elsedatabuffer<=databuffer+'1';endif;endif;

endprocess;endbehavioral;VHDL的基本語法ppt課件2021/3/2614libraryIEEE;VHDL的基本語法ppt課件20VHDL的基本語法1、ENTITY(實體)格式:

Entity實體名IS[類屬參數(shù)說明][端口說明]EndEntity;其中端口說明格式為:

PORT(端口名1,端口名N:方向:類型)其中方向有:IN,OUT,INOUT,BUFFER,LINKAGE

VHDL的基本語法ppt課件2021/3/2615VHDL的基本語法1、ENTITY(實體)VHDL的基本語法VHDL的基本語法注意簡單地說

In

不可以出現(xiàn)在<=或:=的左邊

out不可以出現(xiàn)在<=或:=的右邊

buffer可以出現(xiàn)在<=或:=的兩邊In信號只能被引用,不能被賦值out信號只能被賦值,不能被引用buffer信號可以被引用,也可以被賦值VHDL的基本語法ppt課件2021/3/2616VHDL的基本語法注意In信號只能被引用,不能被賦值VHDVHDL的基本語法例子(HalfAdd)

其內部結構將由Architecture來描述VHDL的基本語法ppt課件2021/3/2617VHDL的基本語法例子(HalfAdd)其內部結構將由VHDL的基本語法2、Arcthitecture(構造體)

格式:

Arcthitecture

構造體名of

實體名is

[定義語句]內部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義

begin[并行處理語句和block、process、function、procedure]

end構造體名;

VHDL的基本語法ppt課件2021/3/2618VHDL的基本語法2、Arcthitecture(構造體)VVHDL的基本語法例子(HalfAdd)VHDL的基本語法ppt課件2021/3/2619VHDL的基本語法例子(HalfAdd)VHDL的基本語法VHDL的基本語法例子(FullAdd)(學習如何調用現(xiàn)有模塊)

VHDL的基本語法ppt課件2021/3/2620VHDL的基本語法例子(FullAdd)(學習如何調用現(xiàn)VHDL的基本語法實例(FullAdd)-entity

VHDL的基本語法ppt課件2021/3/2621VHDL的基本語法實例(FullAdd)-entityVHDVHDL的基本語法實例(FullAdd)-architectureVHDL的基本語法ppt課件2021/3/2622VHDL的基本語法實例(FullAdd)-architectVHDL的基本語法

除了entity(實體)和architecture(構造體)外還有另外三個可以獨立進行編譯的設計單元Package(包集合)屬于庫結構的一個層次,存放信號定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義。PackageBody具有獨立對端口(port)的packageconfiguration(配置)描述層與層之間的連接關系以及實體與構造體之間關系。VHDL的基本語法ppt課件2021/3/2623VHDL的基本語法除了entity(實體)和arVHDL的基本語法VHDL中的設計單元(可以獨立編譯)VHDL的基本語法ppt課件2021/3/2624VHDL的基本語法VHDL中的設計單元(可以獨立編譯)VHDVHDL的基本語法STD庫--VHDL的標準庫IEEE庫--VHDL的標準庫的擴展面向ASIC的庫--不同的工藝不同公司自定義的庫普通用戶自己的庫庫:數(shù)據(jù)的集合。內含各類包定義、實體、構造體等VHDL的基本語法ppt課件2021/3/2625VHDL的基本語法STD庫--VHDL的標準庫庫:VHDL的基本語法用戶自己的庫當您的VHDL文件被編譯后,編譯的結果儲存在特定的目錄下,這個目錄的邏輯名稱即Library,此目錄下的內容亦即是這個Library的內容。VHDL的基本語法ppt課件2021/3/2626VHDL的基本語法用戶自己的庫VHDL的基本語法ppt課件VHDL的基本語法Package(包)VHDL的基本語法ppt課件2021/3/2627VHDL的基本語法Package(包)VHDL的基本語法pVHDL的基本語法結構關系VHDL的基本語法ppt課件2021/3/2628VHDL的基本語法結構關系VHDL的基本語法ppt課件20VHDL的基本語法本講結束下一講:VHDL中的對象、操作符、數(shù)據(jù)類型VHDL的基本語法ppt課件2021/3/2629VHDL的基本語法本講結束VHDL的基本語法ppt課件20VHDL的基本語法通過本課的學習您可以了解以下幾點1、VHDL的基本類型2、如何在VHDL中定義類型3、VHDL的信號定義4、如何在VHDL中對信號賦值5、VHDL中的操作符VHDL的基本語法ppt課件2021/3/2630VHDL的基本語法通過本課的學習您可以了解以下幾點VHDL的VHDL的基本語法對象object

對客觀實體的抽象和概括VHDL中的對象有:1、Constant(常量)在程序中不可以被賦值

2、Variable(變量)在程序中可以被賦值(用“:=”),賦值后立即變化為新值。3、Signal(信號)在程序中可以被賦值(用“<=”),但不立即更新,當進程掛起后,才開始更新。

VHDL的基本語法ppt課件2021/3/2631VHDL的基本語法對象objectVHDL的基本語法pptVHDL的基本語法VHDL中的對象使用:

variable

x,y:integer;--定義了整數(shù)型的變量對象x,y

constantVcc:real;--定義了實數(shù)型的常量對象Vcc

signalclk,reset:bit;--定義了位類型的信號對象clk,resetVHDL的基本語法ppt課件2021/3/2632VHDL的基本語法VHDL中的對象使用:VHDL的基本語法VHDL的基本語法注意1、variable只能定義在process和subprogram(包括function和procedure)中,不可定以在其外部。2、signal不能定義在process和subprogram(包括function和procedure)中,只可定以在其外部。VHDL的基本語法ppt課件2021/3/2633VHDL的基本語法注意VHDL的基本語法ppt課件2021VHDL的基本語法對象的屬性

類似于其它面向對象的編程語言如VB、VC、DELPHI

用法格式:對象’屬性例子:clk’event--表明信號clk的event屬性

常用的屬性:

Signal對象的常用屬性有:

event:返回boolean值,信號發(fā)生變化時返回truelast_value:返回信號發(fā)生此次變化前的值

last_event:返回上一次信號發(fā)生變化到現(xiàn)在變化的間隔時間VHDL的基本語法ppt課件2021/3/2634VHDL的基本語法對象的屬性VHDL的基本語法ppt課件2VHDL的基本語法Signal對象的常用屬性有:接上頁delayed[(時延值)]:使信號產(chǎn)生固定時間的延時并返回stable[(時延值)]:返回boolean,信號在規(guī)定時間內沒有變化返回truetransaction:返回bit類型,信號每發(fā)生一次變化,返回值翻轉一次例子:A<=B’delayed(10ns);--B延時10ns后賦給A;

if(B’Stable(10ns));--判斷B在10ns中是否發(fā)生變化VHDL的基本語法ppt課件2021/3/2635VHDL的基本語法Signal對象的常用屬性有:接上頁例子VHDL的基本語法信號的event和last_value屬性經(jīng)常用來確定信號的邊沿

屬性應用例如:判斷clk的上升沿if((clk’event)and(clk=‘1’)and(clk’last_value=‘0’))then判斷clk的下降沿if((clk’event)and(clk=‘0’)and(clk’last_value=‘1’))thenVHDL的基本語法ppt課件2021/3/2636VHDL的基本語法信號的event和last_value屬性VHDL的基本語法1、bit(位):

`0`和`1`2、bit-Vector(位矢量):例如:``00110``3、Boolean“ture”和“false”4、time

例如:1us、100ms,3s5、character

例如:‘a(chǎn)’、’n’、’1’、’0’6、string

例如:“sdfsd”、”mydesign”7、integer32位例如:1、234、-21342348、real范圍-1.0E38~+1.0E38

例如:1.0、2.834、3.14、0.0VHDL的基本語法ppt課件2021/3/2637VHDL的基本語法1、bit(位):`0`和`1`VHDVHDL的基本語法9、natural

自然數(shù)和positive

正整數(shù)10、senveritylevel(常和assert語句配合使用)包含有:note、warning、error、failure

以上十種類型是VHDL中的標準類型,在編程中可以直接使用。使用這十種以外的類型,需要自行定義或指明所引用的Library(庫)和Package(包)集合VHDL的基本語法ppt課件2021/3/2638VHDL的基本語法9、natural自然數(shù)和posiVHDL的基本語法例子一VHDL的基本語法ppt課件2021/3/2639VHDL的基本語法例子一VHDL的基本語法pptVHDL的基本語法例子二VHDL的基本語法ppt課件2021/3/2640VHDL的基本語法例子二VHDL的基本語法ppt課件202VHDL的基本語法例子三例子中信號Z有兩個驅動A和B;Z必須定義為一種新的數(shù)據(jù)類型,否則Z將無法決定取值,語句視為非法。VHDL的基本語法ppt課件2021/3/2641VHDL的基本語法例子三例子中信VHDL的基本語法例子四VHDL的基本語法ppt課件2021/3/2642VHDL的基本語法例子四VHDL的基本語法ppt課件202VHDL的基本語法例子五要點:賦值語句中的方向應和聲明中的方向一樣VHDL的基本語法ppt課件2021/3/2643VHDL的基本語法例子五要點:賦值語句中的方向應和聲明中的方VHDL的基本語法連接操作符---使用&VHDL的基本語法ppt課件2021/3/2644VHDL的基本語法連接操作符---使用&VHDL的基本語法VHDL的基本語法集合操作---使用()VHDL的基本語法ppt課件2021/3/2645VHDL的基本語法集合操作---使用()VHDL的基本語法VHDL的基本語法集合操作---采用序號VHDL的基本語法ppt課件2021/3/2646VHDL的基本語法集合操作---采用序號VHDL的基本語法VHDL的基本語法集合操作--采用othersVHDL的基本語法ppt課件2021/3/2647VHDL的基本語法集合操作--采用othersVHDL的基本VHDL的基本語法通用格式

TYPE

類型名IS數(shù)據(jù)類型定義用戶可以定義的數(shù)據(jù)類型枚舉類型enumberated、整數(shù)型integer、實數(shù)型real、數(shù)組類型array、紀錄類型record、時間類型time、文件類型file、存取類型accessVHDL的基本語法ppt課件2021/3/2648VHDL的基本語法通用格式VHDL的基本語法ppt課件20VHDL的基本語法枚舉類型enumberated格式

type

數(shù)據(jù)類型名is

(元素,元素…...);例子

typeweekis(sun,mon,tue,thu,fri,sat);typestd_logicis(‘1’,’0’,’x’,’z’);

VHDL的基本語法ppt課件2021/3/2649VHDL的基本語法枚舉類型enumberatedVHDL的基VHDL的基本語法整數(shù)類integer和實數(shù)類real格式

type

數(shù)據(jù)類型名is數(shù)據(jù)類型定義約束范圍;例子

typeweekisintegerrange1to7;typecurrentisrealrange-1E4to1E4VHDL的基本語法ppt課件2021/3/2650VHDL的基本語法整數(shù)類integer和實數(shù)類realVHDVHDL的基本語法數(shù)組類型array格式

type

數(shù)據(jù)類型名isarray

范圍

of元數(shù)據(jù)類型名例子

typeweekisarray(1to7)ofinteger;

typedeweekisarray(1to7)ofweek;VHDL的基本語法ppt課件2021/3/2651VHDL的基本語法數(shù)組類型arrayVHDL的基本語法ppVHDL的基本語法時間類型time格式

type

數(shù)據(jù)類型名is

范圍

units基本單位;

單位;

endunitsVHDL的基本語法ppt課件2021/3/2652VHDL的基本語法時間類型timeVHDL的基本語法pptVHDL的基本語法時間類型例子

typetimeisrange-1E18to1E18unitsus;ms=1000us;sec=1000ms;min=60sec;endunits注意:引用時間時,有的編譯器要求量與單位之間應有一個空格如:1ns;不能寫為1ns;VHDL的基本語法ppt課件2021/3/2653VHDL的基本語法時間類型例子注意:引用時間時,有的編譯器要VHDL的基本語法紀錄類型record格式

type

數(shù)據(jù)類型名is

record

元素名:數(shù)據(jù)類型名;

元素名:數(shù)據(jù)類型名;

….

endrecord;VHDL的基本語法ppt課件2021/3/2654VHDL的基本語法紀錄類型recordVHDL的基本語法pVHDL的基本語法紀錄類型的例子typeorderisrecordid:integer;date:string;security:boolean;endrecord;引用:signalflag:boolean;signalorder1:order;order1<=(3423,”1999/07/07”,true);flag<=order1.security;

VHDL的基本語法ppt課件2021/3/2655VHDL的基本語法紀錄類型的例子VHDL的基本語法ppt課VHDL的基本語法std_ulogic是對位(bit)類型的擴展,只允許一個驅動源VHDL的基本語法ppt課件2021/3/2656VHDL的基本語法std_ulogic是對位(bit)類型VHDL的基本語法Std_logic同std_ulogic一樣有九個狀態(tài),允許一個或多個驅動源VHDL的基本語法ppt課件2021/3/2657VHDL的基本語法Std_logic同std_ulogicVHDL的基本語法Std_unlogic_vector和std_logic_vectorVHDL的基本語法ppt課件2021/3/2658VHDL的基本語法Std_unlogic_vector和stVHDL的基本語法Std_unlogic、std_ulogic_vectorstd_logic_vector和std_unlogic_vector類型均定義在package(包)standard_logic_1164中在使用這四種類形時應加以說明,例如:libraryieee;useieee.std_logic_1164.all;注:standard_logic_1164位于IEEE庫中VHDL的基本語法ppt課件2021/3/2659VHDL的基本語法Std_unlogic、std_ulogiVHDL的基本語法例子一(聲明使用的庫和包)VHDL的基本語法ppt課件2021/3/2660VHDL的基本語法例子一(聲明使用的庫和包)VHDL的基本語VHDL的基本語法例子二std_ulogic和std_logic的區(qū)別VHDL的基本語法ppt課件2021/3/2661VHDL的基本語法例子二std_ulogic和std_lVHDL的基本語法練習一:下面那一個是正確的3VHDL的基本語法ppt課件2021/3/2662VHDL的基本語法練習一:下面那一個是正確的3VHDL的基VHDL的基本語法分類

1、邏輯操作符

2、關系操作符

3、數(shù)學運算符VHDL的基本語法ppt課件2021/3/2663VHDL的基本語法分類VHDL的基本語法ppt課件2021VHDL的基本語法1、邏輯操作符有:VHDL的基本語法ppt課件2021/3/2664VHDL的基本語法1、邏輯操作符有:VHDL的基本語法ppVHDL的基本語法邏輯操作符的應用類型VHDL的基本語法ppt課件2021/3/2665VHDL的基本語法邏輯操作符的應用類型VHDL的基本語法pVHDL的基本語法邏輯操作符的應用例子VHDL的基本語法ppt課件2021/3/2666VHDL的基本語法邏輯操作符的應用例子VHDL的基本語法pVHDL的基本語法2、關系運算符有VHDL的基本語法ppt課件2021/3/2667VHDL的基本語法2、關系運算符有VHDL的基本語法pptVHDL的基本語法關系運算符的應用ARRAY(數(shù)組)沒有數(shù)字概念,數(shù)組“111”不等于7VHDL的基本語法ppt課件2021/3/2668VHDL的基本語法關系運算符的應用ARRAY(數(shù)組)沒有數(shù)字VHDL的基本語法3、數(shù)學運算符注意:上述運算符應用于integer,real,time類型,不能用于vector(如果希望用于vector,可以使用庫IEEE的std_logic_unsigned包,它對算術運算符進行了擴展)VHDL的基本語法ppt課件2021/3/2669VHDL的基本語法3、數(shù)學運算符注意:上述運算符應用于inVHDL的基本語法VHDL中的操作符應用要點

1、VHDL屬于強類型,不同類型之間不能進行運算和賦值,可以進行數(shù)據(jù)類型轉換

2、vector不表示number3、array不表示numberVHDL的基本語法ppt課件2021/3/2670VHDL的基本語法VHDL中的操作符應用要點VHDL的基本語VHDL的基本語法本講結束下一講:VHDL中的控制語句及模塊VHDL的基本語法ppt課件2021/3/2671VHDL的基本語法本講結束VHDL的基本語法ppt課件20VHDL的基本語法通過本講您將會學到1、Block的編寫2、Process的編寫3、function和procedure的編寫4、VHDL中的流程控制語句的書寫VHDL的基本語法ppt課件2021/3/2672VHDL的基本語法通過本講您將會學到VHDL的基本語法ppVHDL的基本語法回顧第一講的內容

Entity(實體)Architecture1(構造體)ArchitectureN

process(進程結構)

block(塊結構)

subprograms(子程序)

procedure(過程)

function(函數(shù))VHDL的基本語法ppt課件2021/3/2673VHDL的基本語法回顧第一講的內容Entity(實體)ArVHDL的基本語法基本概念1、并行處理(concurrent)語句的執(zhí)行與書寫順序無關,并行塊內的語句時同時執(zhí)行的2、順序處理(sequential)語句的執(zhí)行按書寫的先后次序,從前到后順序執(zhí)行。這種方式和其他普通編程語言(如c,pascal)是一樣的。VHDL的基本語法ppt課件2021/3/2674VHDL的基本語法基本概念VHDL的基本語法ppt課件20VHDL的基本語法Architecture中的語句及子模塊之間是并行處理的子模塊block中的語句是并行處理的子模塊process中的語句是順序處理的子模塊subprogram中的function和procedure是順序處理的VHDL的基本語法ppt課件2021/3/2675VHDL的基本語法Architecture中的語句及子模塊VHDL的基本語法Arcthitecture(構造體)的格式為:(第一講)

Arcthitecture

構造體名of

實體名is

[定義語句]內部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義

begin[并行處理語句和block、process、function、procedure]

end構造體名;

VHDL的基本語法ppt課件2021/3/2676VHDL的基本語法Arcthitecture(構造體)的VHDL的基本語法Block格式

塊名:

BLOCK[定義語句]

begin[并行處理語句concurrentstatement]

endblock

塊名VHDL的基本語法ppt課件2021/3/2677VHDL的基本語法BlockVHDL的基本語法ppt課件2VHDL的基本語法條件Block格式

塊名:

BLOCK

[(布爾表達式)]

[定義語句]

begin[并行處理語句concurrentstatement[信號]<=

guarded[信號,延時];

endblock

塊名VHDL的基本語法ppt課件2021/3/2678VHDL的基本語法條件BlockVHDL的基本語法ppt課VHDL的基本語法Block例子

myblock1:

block(clk=‘1’)

signal:qin:bit:=‘0’;

beginqout<=guardedqin;

endblockmyblock1

myblock2:

block

beginqout<=qin;

endblock

myblock2VHDL的基本語法ppt課件2021/3/2679VHDL的基本語法Block例子myblock2:VHDLVHDL的基本語法Process格式[進程名:]

process[(觸發(fā)信號列表)][定義語句;]

begin[串行處理語句sequentialstatement;]

endprocessVHDL的基本語法ppt課件2021/3/2680VHDL的基本語法ProcessVHDL的基本語法ppt課VHDL的基本語法process例子

exp1:

process

(clk,qin)

variable:qin:bit:=‘0’;

beginqout<=qin;

endprocessexp2:

process

begin

waitonclk,qin;

qout<=qin;

endprocessVHDL的基本語法ppt課件2021/3/2681VHDL的基本語法process例子exp2:VHDL的基本process例子-值的更新分析:當A、B、C、D中任一信號發(fā)生變化時,進程將開始執(zhí)行,當執(zhí)行Z<=AandB后,Z的值不會立即變化;同理執(zhí)行Z<=CandD后Z的值也不會立即變化。當執(zhí)行endprocess后,Z的值才開始更新,同時系統(tǒng)掛起開始等待敏感信號。VHDL的基本語法ppt課件2021/3/2682process例子-值的更新分析:VHDL的基本語法pptVHDL的基本語法Process中敏感信號列表的普遍原則是:在process中,其值被引用的信號應當出現(xiàn)在敏感信號列表中例子;二選一的選擇器:A、B為輸入信號;SEL為選路信號;Z為輸出信號;VHDL的基本語法ppt課件2021/3/2683VHDL的基本語法Process中敏感信號列表的普遍原則是:不符和設計要求VHDL的基本語法ppt課件2021/3/2684不符和設計要求VHDL的基本語法ppt課件2021/3/2VHDL的基本語法Function(函數(shù))格式:

function

函數(shù)名(參數(shù)1,參數(shù)2…...)

[定義語句]

return

數(shù)據(jù)類型名

is[定義語句]

begin[順序執(zhí)行語句]

return[返回變量名]

end函數(shù)名

VHDL的基本語法ppt課件2021/3/2685VHDL的基本語法Function(函數(shù))VHDL的基本語法VHDL的基本語法Function例子functionmax(a,b:bit)

returnbooleanisvariable:flag:boolean;beginif(a=b)thenflag<=true;

endifreturnflag;endmaxFunction中的參數(shù)不用說明方向(因為只有一種方向in)VHDL的基本語法ppt課件2021/3/2686VHDL的基本語法Function例子Function中Architecture中的subprogramprocedure(過程)格式:

procedure

過程名(參數(shù)1,參數(shù)2…...)is[定義語句]

begin[順序執(zhí)行語句]

end

過程名

VHDL的基本語法ppt課件2021/3/2687Architecture中的subprogramprocedVHDL的基本語法Procedure例子proceduremax(a,b:inbit;

flag:outboolean)isbeginif(a=b)thenflag<=true;

endifendmax;VHDL的基本語法ppt課件2021/3/2688VHDL的基本語法Procedure例子VHDL的基本語法VHDL的基本語法Wait語句assert語句If語句case語句forloop語句while語句VHDL的基本語法ppt課件2021/3/2689VHDL的基本語法Wait語句VHDL的基本語法ppt課件VHDL的基本語法Wait語句書寫格式

wait;--無限等待

waiton[信號列表]--等待信號變化

waituntil[條件];--等待條件滿足

waitfor[時間值];--等待時間到功能

wait語句使系統(tǒng)暫時掛起(等同于endprocess),此時,信號值開始更新。條件滿足后,系統(tǒng)將繼續(xù)運行。VHDL的基本語法ppt課件2021/3/2690VHDL的基本語法Wait語句VHDL的基本語法ppt課件VHDL的基本語法Wait語句例子process(a,b)

beginy<=aandb;endprocessprocessbeginwaitona,b;y<=aandb;endprocess等同于process(a,b)

begin錯誤如果process中已有敏感信號

waitona,b;進程中不能使用wait語句

y<=aandb;endprocessVHDL的基本語法ppt課件2021/3/2691VHDL的基本語法Wait語句例子process等同于proVHDL的基本語法Wait語句例子如果process中沒有敏感信號列表,其進程中也沒有wait語句,則process中的程序代碼循環(huán)執(zhí)行processbeginclk<=notclkafter50ns;endprocess功能:產(chǎn)生頻率為100ns的clk信號VHDL的基本語法ppt課件2021/3/2692VHDL的基本語法Wait語句例子process功能:產(chǎn)生頻VHDL的基本語法Assert語句格式

assert條件[report輸出信息][severity]

說明:條件為true時執(zhí)行下一條語句,為false時輸出錯誤信息和錯誤的嚴重級別例子

….assert(sum=100)report“sum/=100”severityerror;

nextstatement

…...VHDL的基本語法ppt課件2021/3/2693VHDL的基本語法Assert語句格式VHDL的基本語法pVHDL的基本語法If語句格式

if條件then[順序執(zhí)行語句][else][順序執(zhí)行語句]endifif條件then[順序執(zhí)行語句][elsif][順序執(zhí)行語句][elsif][順序執(zhí)行語句]…..[else]endifVHDL的基本語法ppt課件2021/3/2694VHDL的基本語法If語句格式if條件thenVHDLVHDL的基本語法If語句例子VHDL的基本語法ppt課件2021/3/2695VHDL的基本語法If語句例子VHDL的基本語法ppt課VHDL的基本語法Case語句格式Case表達式iswhen條件表達式=>順序處理語句

when條件表達式=>順序處理語句

…….whenothers=>順序處理語句endcase

原則:1、完全性:表達式所有可能的值都必須說明,可以用others2、唯一性:相同表達式的值只能說明一次VHDL的基本語法ppt課件2021/3/2696VHDL的基本語法Case語句格式Case表達式isVHDL的基本語法Case語句例子,條件表達式可以有多種形式VHDL的基本語法ppt課件2021/3/2697VHDL的基本語法Case語句例子,條件表達式可以有多種形VHDL的基本語法Case語句例子VHDL的基本語法ppt課件2021/3/2698VHDL的基本語法Case語句例子VHDL的基本語法pp

VHDL的基本語法Forloop語句格式For循環(huán)變量in范圍loop[順序處理語句]endloop注意:循環(huán)變量不需要定義(聲明);例子中i不需要定義Forloop語句例子Foriin1to10loopsum=sum+1;endloopVHDL的基本語法ppt課件2021/3/2699VHDL的基本語法Forloop語句格式For循環(huán)VHDL的基本語法在loop語句中可以用next來跳出本次循環(huán),也可以用exit來結束整個循環(huán)狀態(tài)

next格式:next[標號][when條件];

exit格式:

exit[標號][when條件];Foriin1to10loopsum=sum+1;nextwhensum=100;endloopForiin1to10loopsum=sum+1;exitwhensum=100;endloopVHDL的基本語法ppt課件2021/3/26100VHDL的基本語法在loop語句中可以用next來跳出本次VHDL的基本語法While語句格式while條件loop[順序處理語句]endloopWhilei<10loopsum=sum+1;i=i+1;endloopWhile語句例子VHDL的基本語法ppt課件2021/3/26101VHDL的基本語法While語句格式while條件VHDL的基本語法1、信號賦值操作2、帶條件的信號賦值語句3、帶選擇的信號賦值語句VHDL的基本語法ppt課件2021/3/26102VHDL的基本語法1、信號賦值操作VHDL的基本語法pptVHDL的基本語法信號賦值操作符號“<=”進行信號賦值操作的,它可以用在順序執(zhí)行語句中,也可以用在并行處理語句中注意

1、用在并行處理語句中時,符號<=右邊的值是此條語句的敏感信號,即符號<=右邊的值發(fā)生變化就會重新激發(fā)此條賦值語句,也即符號<=右邊的值不變化時,此條賦值語句就不會執(zhí)行。如果符號<=右邊是常數(shù)則賦值語句一直執(zhí)行。

2、用在順序執(zhí)行語句中時,沒有以上說法。VHDL的基本語法ppt課件2021/3/26103VHDL的基本語法信號賦值操作VHDL的基本語法ppt課件VHDL的基本語法賦值語句例子Myblock:Blockbeginclr<=‘1’after10ns; clr<=‘0’after20ns;endblockmyblockprocessbeginclr<=‘1’after10ns;clr<=‘0’after20ns;endblockmyblock程序執(zhí)行10ns后clr為1,又過10ns后0賦給了clr,此時clr以前的值1并沒有清掉,clr將出現(xiàn)不穩(wěn)定狀態(tài)程序執(zhí)行10ns后clr為1,又過20ns后clr的值變?yōu)?,VHDL的基本語法ppt課件2021/3/26104VHDL的基本語法賦值語句例子Myblock:BlockVHDL的基本語法條件信號帶入語句格式

目的信號量<=表達式1when條件1else表達式2when條件2else表達式3when條件3

…..

else表達式4注意:最后的Else項是必須的;滿足完全性和唯一性VHDL的基本語法ppt課件2021/3/26105VHDL的基本語法條件信號帶入語句格式注意:最后的ElseVHDL的基本語法條件信號帶入語句例子Blockbeginsel<=b&a;q<=ainwhensel=“00”

elsebinwhensel=“01”elsecinwhensel=“10”elsedinwhensel=‘11”elsexx;endblockVHDL的基本語法ppt課件2021/3/26106VHDL的基本語法條件信號帶入語句例子BlockVHDL的基本語法選擇信號帶入語句格式

with表達式select

目的信號量<=表達式1when條件1,表達式2when條件2,

…..

表達式nwhen條件n;VHDL的基本語法ppt課件2021/3/26107VHDL的基本語法選擇信號帶入語句格式VHDL的基本語法pVHDL的基本語法選擇信號帶入語句例子Blockbeginwithselselectq<=ainwhensel=“00”,

binwhensel=“01”,

cinwhensel=“10”,

dinwhensel=‘11”xx;whenothers;endblockVHDL的基本語法ppt課件2021/3/26108VHDL的基本語法選擇信號帶入語句例子BlockVHDL的基本語法順序執(zhí)行語句和并行處理語句總結1、順序執(zhí)行語句wait、assert、if-else、case、for-loop、while語句只能用在process、function和procedure中;2、并行處理語句(條件信號帶入和選擇信號帶入)只能用在architecture、block中;VHDL的基本語法ppt課件2021/3/26109VHDL的基本語法順序執(zhí)行語句和并行處理語句總結VHDL的基VHDL的基本語法Generic語句enttityand2isgeneric(rise:time:=10ns);port(a,b:innit;c:outbit);endand2;architecturebehavofand2isbeginc<=(axorb)after(rise);endbehavVHDL的基本語法ppt課件2021/3/26110VHDL的基本語法Generic

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論