




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章第八章 超高速集成電路硬件超高速集成電路硬件 描述語(yǔ)言描述語(yǔ)言VHDLVHDL簡(jiǎn)介8-1 VHDL語(yǔ)言的基本組成語(yǔ)言的基本組成8-2 VHDL數(shù)據(jù)類型和屬性數(shù)據(jù)類型和屬性8-3 VHDL的行為描述的行為描述8-4 VHDL的結(jié)構(gòu)描述的結(jié)構(gòu)描述小結(jié)小結(jié) 傳統(tǒng)的電路系統(tǒng)設(shè)計(jì)方法的步驟從狀態(tài)圖的簡(jiǎn)化,傳統(tǒng)的電路系統(tǒng)設(shè)計(jì)方法的步驟從狀態(tài)圖的簡(jiǎn)化,寫出最簡(jiǎn)邏輯表達(dá)式,到繪出電路原理圖。這在不是寫出最簡(jiǎn)邏輯表達(dá)式,到繪出電路原理圖。這在不是較大的電路系統(tǒng)中,工程師可以用一定的時(shí)間,了解較大的電路系統(tǒng)中,工程師可以用一定的時(shí)間,了解電路的原理。若電路系統(tǒng)非常龐大,工程師就不容易電路的原理。若電路系統(tǒng)非
2、常龐大,工程師就不容易在電路原理圖上了解電路的原理,而且對(duì)繪圖者也是在電路原理圖上了解電路的原理,而且對(duì)繪圖者也是一項(xiàng)非常煩瑣的工作。因此眾多軟件公司開發(fā)研制了一項(xiàng)非常煩瑣的工作。因此眾多軟件公司開發(fā)研制了具有自己特色的電路硬件描述語(yǔ)言(具有自己特色的電路硬件描述語(yǔ)言(Hardware Description Language,HDL),這些硬件描述語(yǔ)言必),這些硬件描述語(yǔ)言必然有很大的差異,工程師一旦選用某種硬件描述語(yǔ)言然有很大的差異,工程師一旦選用某種硬件描述語(yǔ)言作為輸入工具,就被束縛在這個(gè)硬件設(shè)計(jì)環(huán)境之中,作為輸入工具,就被束縛在這個(gè)硬件設(shè)計(jì)環(huán)境之中,不能在眾多的軟件工具中選擇一個(gè)最佳組
3、合作為自己不能在眾多的軟件工具中選擇一個(gè)最佳組合作為自己的最優(yōu)設(shè)計(jì)環(huán)境。因此,硬件設(shè)計(jì)工程師需要一種強(qiáng)的最優(yōu)設(shè)計(jì)環(huán)境。因此,硬件設(shè)計(jì)工程師需要一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,作為可相互交流的設(shè)大的、標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,作為可相互交流的設(shè)計(jì)環(huán)境。計(jì)環(huán)境。 美國(guó)國(guó)防部在美國(guó)國(guó)防部在80年代初提出了年代初提出了VHSIC(Very High Speed Integrated Circuit)計(jì)劃,其目標(biāo)之)計(jì)劃,其目標(biāo)之一是為下一代集成電路的生產(chǎn),實(shí)現(xiàn)階段性的工一是為下一代集成電路的生產(chǎn),實(shí)現(xiàn)階段性的工藝極限以及完成藝極限以及完成10萬(wàn)門級(jí)以上的設(shè)計(jì),建立一項(xiàng)萬(wàn)門級(jí)以上的設(shè)計(jì),建立一項(xiàng)新的描述方
4、法。新的描述方法。1981年提出了一種新的年提出了一種新的HDL,稱,稱之為之為VHSIC Hardware Description Language,簡(jiǎn),簡(jiǎn)稱為稱為VHDL,這種語(yǔ)言的成就有兩個(gè)方面:,這種語(yǔ)言的成就有兩個(gè)方面:1. 描述復(fù)雜的電路系統(tǒng)描述復(fù)雜的電路系統(tǒng);2. VHDL成為硬件描述語(yǔ)言的標(biāo)準(zhǔn)成為硬件描述語(yǔ)言的標(biāo)準(zhǔn)。VHDL的主要優(yōu)點(diǎn)是:的主要優(yōu)點(diǎn)是: 1.覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語(yǔ)言。覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語(yǔ)言。即設(shè)計(jì)的原始描述可以是非常簡(jiǎn)練的描述,經(jīng)過(guò)層層細(xì)化求即設(shè)計(jì)的原始描述可以是非常簡(jiǎn)練的描述,經(jīng)過(guò)層層細(xì)化求精,最終成為可直接付
5、諸生產(chǎn)的電路級(jí)或版圖參數(shù)描述,整精,最終成為可直接付諸生產(chǎn)的電路級(jí)或版圖參數(shù)描述,整個(gè)過(guò)程都可以在個(gè)過(guò)程都可以在VHDL的環(huán)境下進(jìn)行。的環(huán)境下進(jìn)行。 2.VHDL有良好的可讀性,即可以被計(jì)算機(jī)接受,也容有良好的可讀性,即可以被計(jì)算機(jī)接受,也容易被理解。用易被理解。用VHDL書寫的原文件書寫的原文件,即是程序,又是文檔,即是程序,又是文檔,即是技術(shù)人員之間交換信息的文件,又可作為合同簽約者即是技術(shù)人員之間交換信息的文件,又可作為合同簽約者之間的文件。之間的文件。 3.VHDL本身的生命期長(zhǎng),因?yàn)楸旧淼纳陂L(zhǎng),因?yàn)閂HDL的硬件描述與工的硬件描述與工藝技術(shù)無(wú)關(guān),不會(huì)因工藝變化而使描述過(guò)時(shí)。與工藝
6、技術(shù)藝技術(shù)無(wú)關(guān),不會(huì)因工藝變化而使描述過(guò)時(shí)。與工藝技術(shù)有關(guān)的參數(shù)可通過(guò)有關(guān)的參數(shù)可通過(guò)VHDL提供的屬性加以描述,工藝改變提供的屬性加以描述,工藝改變時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。 4.支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用,一個(gè)大規(guī)模設(shè)計(jì)不可能一個(gè)人獨(dú)再利用,一個(gè)大規(guī)模設(shè)計(jì)不可能一個(gè)人獨(dú)立完成,它將由多人,多項(xiàng)目組來(lái)共同完立完成,它將由多人,多項(xiàng)目組來(lái)共同完成。成。VHDL為設(shè)計(jì)的分解和設(shè)計(jì)的再利用為設(shè)計(jì)的分解和設(shè)計(jì)的再利用提供了有力的支持。提供了有力的支持。VHDL的主要優(yōu)點(diǎn)是:的主要優(yōu)點(diǎn)是: 5.VHDL已成為
7、已成為IEEE承認(rèn)的一個(gè)工業(yè)標(biāo)承認(rèn)的一個(gè)工業(yè)標(biāo)準(zhǔn),事實(shí)上已成為通用硬件描述語(yǔ)言。準(zhǔn),事實(shí)上已成為通用硬件描述語(yǔ)言。8-1 VHDL的基本組成的基本組成 VHDL可以把任意復(fù)雜的電路系統(tǒng)視作一個(gè)模可以把任意復(fù)雜的電路系統(tǒng)視作一個(gè)模塊,一個(gè)模塊可主要分為三個(gè)組成部分:塊,一個(gè)模塊可主要分為三個(gè)組成部分: 每個(gè)模塊中的程序包有每個(gè)模塊中的程序包有IEEE標(biāo)準(zhǔn)的標(biāo)準(zhǔn)程序標(biāo)準(zhǔn)的標(biāo)準(zhǔn)程序包或設(shè)計(jì)者自身設(shè)計(jì)的程序包,而且調(diào)用的數(shù)量包或設(shè)計(jì)者自身設(shè)計(jì)的程序包,而且調(diào)用的數(shù)量不限。模塊中的程序包是設(shè)計(jì)中的子程序和公用不限。模塊中的程序包是設(shè)計(jì)中的子程序和公用數(shù)據(jù)類型的集合,是構(gòu)成設(shè)計(jì)工具的工具箱,工數(shù)據(jù)類型的集
8、合,是構(gòu)成設(shè)計(jì)工具的工具箱,工具箱中最基本的工具是數(shù)據(jù)類型包,調(diào)用此標(biāo)準(zhǔn)具箱中最基本的工具是數(shù)據(jù)類型包,調(diào)用此標(biāo)準(zhǔn)程序包的程序包的VHDL語(yǔ)言是:語(yǔ)言是:一一、參數(shù)部分、參數(shù)部分程序包程序包例例1:LIBRARY ieee;USE ieee.std_logic_1164.all;調(diào)用程序包調(diào)用程序包語(yǔ)句語(yǔ)句標(biāo)標(biāo)準(zhǔn)準(zhǔn)程程序序包包定定義義程程序序包包 這兩句設(shè)置在這兩句設(shè)置在VHDL程序的前面,表示以后程序的前面,表示以后在實(shí)體或結(jié)構(gòu)體中要用在實(shí)體或結(jié)構(gòu)體中要用到數(shù)據(jù)類型包中的數(shù)據(jù)到數(shù)據(jù)類型包中的數(shù)據(jù)類型。類型。 模塊中僅有一個(gè)設(shè)計(jì)實(shí)體,模塊中僅有一個(gè)設(shè)計(jì)實(shí)體,它提供該設(shè)計(jì)模塊的公共信息,它提供該
9、設(shè)計(jì)模塊的公共信息,是是VHDL設(shè)計(jì)電路的最基本部設(shè)計(jì)電路的最基本部分。分。VHDL設(shè)計(jì)的電路系統(tǒng)是設(shè)計(jì)的電路系統(tǒng)是可以分層次的,所以設(shè)計(jì)的??梢苑謱哟蔚?,所以設(shè)計(jì)的模塊系統(tǒng)實(shí)體即可以是頂層實(shí)體,塊系統(tǒng)實(shí)體即可以是頂層實(shí)體,又可以是最底層實(shí)體。又可以是最底層實(shí)體。二、接口部分二、接口部分設(shè)計(jì)實(shí)體:設(shè)計(jì)實(shí)體:調(diào)用程序包調(diào)用程序包語(yǔ)句語(yǔ)句標(biāo)標(biāo)準(zhǔn)準(zhǔn)程程序序包包定定義義程程序序包包實(shí)體實(shí)體 及實(shí)及實(shí)體聲體聲明語(yǔ)明語(yǔ)句句ENTITY kxor ISkxor PORT(a1,b1:IN std_logic;a1b1 c1:OUT std_logic);c1END kxor;例例 2 實(shí)體部分的大寫單詞實(shí)體
10、部分的大寫單詞ENTITY、IS、PORT、IN、OUT和和END為關(guān)鍵字。在為關(guān)鍵字。在ENTITY.END之之間表示實(shí)體內(nèi)容,間表示實(shí)體內(nèi)容,ENTITY后的字符串后的字符串kxor表示表示實(shí)體的名稱,即電路的符號(hào)名。端口(引腳)信實(shí)體的名稱,即電路的符號(hào)名。端口(引腳)信息關(guān)鍵字息關(guān)鍵字PORT中的語(yǔ)句有三個(gè)端口,描述了信中的語(yǔ)句有三個(gè)端口,描述了信號(hào)的流向,分別是兩個(gè)輸入(號(hào)的流向,分別是兩個(gè)輸入(IN)模式)模式a1和和b1,一個(gè)是輸出(一個(gè)是輸出(OUT)模式)模式c1,端口信息除了輸入,端口信息除了輸入輸出之外,還可以是雙向、緩沖器等。輸出之外,還可以是雙向、緩沖器等。std_l
11、ogic表示信號(hào)取值的類型為標(biāo)準(zhǔn)邏輯位,除了標(biāo)準(zhǔn)邏表示信號(hào)取值的類型為標(biāo)準(zhǔn)邏輯位,除了標(biāo)準(zhǔn)邏輯位之外,還可以是實(shí)數(shù)、整數(shù)、無(wú)符號(hào)數(shù)、物輯位之外,還可以是實(shí)數(shù)、整數(shù)、無(wú)符號(hào)數(shù)、物理以及以上數(shù)據(jù)類型組成的記錄和數(shù)組集合,信理以及以上數(shù)據(jù)類型組成的記錄和數(shù)組集合,信號(hào)類型也可以是設(shè)計(jì)者定義。號(hào)類型也可以是設(shè)計(jì)者定義。三、描述部分三、描述部分結(jié)構(gòu)體:結(jié)構(gòu)體: 當(dāng)異或門的符號(hào)和外部端口當(dāng)異或門的符號(hào)和外部端口a1、b1和和c1確定之后,就要確定確定之后,就要確定實(shí)體的內(nèi)部電路,使之與實(shí)體相實(shí)體的內(nèi)部電路,使之與實(shí)體相對(duì)應(yīng)。電路描述部分稱之為結(jié)構(gòu)對(duì)應(yīng)。電路描述部分稱之為結(jié)構(gòu)體體ARCHITECTURE,它
12、描述實(shí),它描述實(shí)體硬件的互連關(guān)系、數(shù)據(jù)的傳輸體硬件的互連關(guān)系、數(shù)據(jù)的傳輸和變換以及動(dòng)態(tài)行為。一個(gè)實(shí)體和變換以及動(dòng)態(tài)行為。一個(gè)實(shí)體可以對(duì)應(yīng)多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)可以對(duì)應(yīng)多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體可以代表該硬件的某一方面特體可以代表該硬件的某一方面特性,例如行為特性,結(jié)構(gòu)特性。性,例如行為特性,結(jié)構(gòu)特性。調(diào)用程序包調(diào)用程序包語(yǔ)句語(yǔ)句標(biāo)標(biāo)準(zhǔn)準(zhǔn)程程序序包包定定義義程程序序包包實(shí)體實(shí)體 及實(shí)及實(shí)體聲體聲明語(yǔ)明語(yǔ)句句結(jié)結(jié)構(gòu)構(gòu)體體1結(jié)結(jié)構(gòu)構(gòu)體體2結(jié)結(jié)構(gòu)構(gòu)體體nARCHITECTURE kxor_arc OF kxor IS例例3BEGIN c1 = (NOT a1 AND b1) OR (a1 AND NOT b
13、1);END kxor_arc;kxora1b1c1a1b1c18-2 VHDL數(shù)據(jù)類型和屬性數(shù)據(jù)類型和屬性 VHDL硬件描述語(yǔ)言中涉及到了許多信號(hào),變量和常硬件描述語(yǔ)言中涉及到了許多信號(hào),變量和常量,它們用來(lái)保持一個(gè)數(shù)據(jù)。量,它們用來(lái)保持一個(gè)數(shù)據(jù)。 保持?jǐn)?shù)據(jù)的信號(hào),變量和常量,在保持?jǐn)?shù)據(jù)的信號(hào),變量和常量,在VHDL中稱為中稱為目標(biāo),每一個(gè)目標(biāo)都有一個(gè)數(shù)據(jù)類型確定目標(biāo)保持的目標(biāo),每一個(gè)目標(biāo)都有一個(gè)數(shù)據(jù)類型確定目標(biāo)保持的那一類數(shù)據(jù)。那一類數(shù)據(jù)。 VHDL是一種非常嚴(yán)格的數(shù)據(jù)類型化語(yǔ)言,規(guī)定每個(gè)信是一種非常嚴(yán)格的數(shù)據(jù)類型化語(yǔ)言,規(guī)定每個(gè)信號(hào),常量或變量和每個(gè)表達(dá)式有一個(gè)唯一的確定數(shù)據(jù)類型,號(hào),常
14、量或變量和每個(gè)表達(dá)式有一個(gè)唯一的確定數(shù)據(jù)類型,一般說(shuō),在表達(dá)式中分配數(shù)值給目標(biāo)時(shí)的數(shù)據(jù)類型不可以一般說(shuō),在表達(dá)式中分配數(shù)值給目標(biāo)時(shí)的數(shù)據(jù)類型不可以被混用。被混用。每個(gè)目標(biāo)和表達(dá)式的類型靜態(tài)地確定。每個(gè)目標(biāo)和表達(dá)式的類型靜態(tài)地確定。在在VHDL中有三類目標(biāo):信號(hào)、變量和常量。中有三類目標(biāo):信號(hào)、變量和常量。 信號(hào)和變量可以賦予一系列的值,而常量一次信號(hào)和變量可以賦予一系列的值,而常量一次僅被分配一個(gè)值。僅被分配一個(gè)值。 變量和信號(hào)又有不同,賦予信號(hào)的數(shù)值要到未來(lái)變量和信號(hào)又有不同,賦予信號(hào)的數(shù)值要到未來(lái)的某個(gè)時(shí)刻,信號(hào)才接受當(dāng)前的數(shù)值,而賦予變量的的某個(gè)時(shí)刻,信號(hào)才接受當(dāng)前的數(shù)值,而賦予變量的數(shù)
15、值,變量立即接受當(dāng)前的數(shù)值。數(shù)值,變量立即接受當(dāng)前的數(shù)值。目標(biāo)的一般形式如下:目標(biāo)的一般形式如下: 目標(biāo)目標(biāo) : := ;目標(biāo)目標(biāo):是一個(gè)或多個(gè)代表著目標(biāo)種類的字符串,多個(gè)目:是一個(gè)或多個(gè)代表著目標(biāo)種類的字符串,多個(gè)目 標(biāo)時(shí)用標(biāo)時(shí)用“,”號(hào)分開。號(hào)分開。 目標(biāo)目標(biāo) : := ;目標(biāo)種類目標(biāo)種類:信號(hào)信號(hào)、變量變量和和常量常量。信號(hào)信號(hào):它可以表示把元件的端口連接在一起的互連線。:它可以表示把元件的端口連接在一起的互連線。 變量變量:用于對(duì)暫時(shí)數(shù)據(jù)的局部存儲(chǔ),變量只在進(jìn)程和子:用于對(duì)暫時(shí)數(shù)據(jù)的局部存儲(chǔ),變量只在進(jìn)程和子 程序內(nèi)部定義。程序內(nèi)部定義。 常量常量:對(duì)某些特定類型數(shù)據(jù)賦予的數(shù)值。:對(duì)某
16、些特定類型數(shù)據(jù)賦予的數(shù)值。表達(dá)式表達(dá)式:表達(dá)式是為了規(guī)定目標(biāo)的初始值,這是缺省部分。:表達(dá)式是為了規(guī)定目標(biāo)的初始值,這是缺省部分。目標(biāo)類型目標(biāo)類型:為了規(guī)定目標(biāo)的特征,:為了規(guī)定目標(biāo)的特征,VHDL含有很寬范圍的含有很寬范圍的數(shù)據(jù)類型。數(shù)據(jù)類型。VHDL除了有基本的數(shù)據(jù)類型之外,設(shè)計(jì)者還除了有基本的數(shù)據(jù)類型之外,設(shè)計(jì)者還可以建立自己新的數(shù)據(jù)類型,類型說(shuō)明部分規(guī)定類型名和可以建立自己新的數(shù)據(jù)類型,類型說(shuō)明部分規(guī)定類型名和類型范圍,它的一般形式是:類型范圍,它的一般形式是:TYPE IS ;標(biāo)量類型、復(fù)合類型、子類型、文件類型和尋址類型。標(biāo)量類型、復(fù)合類型、子類型、文件類型和尋址類型。標(biāo)量類型包括
17、所有的簡(jiǎn)單類型:如整數(shù)、實(shí)數(shù)等標(biāo)量類型包括所有的簡(jiǎn)單類型:如整數(shù)、實(shí)數(shù)等復(fù)合類型包括數(shù)組和記錄復(fù)合類型包括數(shù)組和記錄尋址類型在一般編輯語(yǔ)言中等價(jià)為指針尋址類型在一般編輯語(yǔ)言中等價(jià)為指針文件類型用設(shè)計(jì)者定義的文件類型為設(shè)計(jì)者提供說(shuō)明的文件對(duì)象文件類型用設(shè)計(jì)者定義的文件類型為設(shè)計(jì)者提供說(shuō)明的文件對(duì)象子類型主要是對(duì)現(xiàn)有類型加以限制子類型主要是對(duì)現(xiàn)有類型加以限制VHDL可用數(shù)據(jù)類型有五類:可用數(shù)據(jù)類型有五類:一、一、 標(biāo)量數(shù)據(jù)類型標(biāo)量數(shù)據(jù)類型標(biāo)量數(shù)據(jù)類型是基本的數(shù)據(jù)類型,它包括整數(shù)類型、標(biāo)量數(shù)據(jù)類型是基本的數(shù)據(jù)類型,它包括整數(shù)類型、實(shí)數(shù)類型、物理類型和枚舉類型。實(shí)數(shù)類型、物理類型和枚舉類型。一個(gè)目標(biāo)的
18、數(shù)值有可能經(jīng)常更換或者說(shuō)是包含多個(gè)值,一個(gè)目標(biāo)的數(shù)值有可能經(jīng)常更換或者說(shuō)是包含多個(gè)值,但一個(gè)目標(biāo)一次只能被一種類型說(shuō)明。但一個(gè)目標(biāo)一次只能被一種類型說(shuō)明。物理類型要提供一個(gè)基本單位,然后在這個(gè)基本單位物理類型要提供一個(gè)基本單位,然后在這個(gè)基本單位上定義多個(gè)或零個(gè)次級(jí)單位,每個(gè)次級(jí)單位都是基本上定義多個(gè)或零個(gè)次級(jí)單位,每個(gè)次級(jí)單位都是基本單位的整數(shù)倍。單位的整數(shù)倍。枚舉類型在形式上是定義括弧括起來(lái)的字符串文字表,枚舉類型在形式上是定義括弧括起來(lái)的字符串文字表,一個(gè)字符串文字在枚舉類型定義中只能出現(xiàn)一次,但一個(gè)字符串文字在枚舉類型定義中只能出現(xiàn)一次,但允許同樣一個(gè)字符串文字出現(xiàn)在不同的枚舉類型的字
19、允許同樣一個(gè)字符串文字出現(xiàn)在不同的枚舉類型的字符串文字表中,枚舉類型的字符串文字表中的文字是符串文字表中,枚舉類型的字符串文字表中的文字是由設(shè)計(jì)者定義的,這些字母可以是單個(gè)字母,也可以由設(shè)計(jì)者定義的,這些字母可以是單個(gè)字母,也可以是一個(gè)字符串,例如是一個(gè)字符串,例如BREAKFAST, Lunch, a等。等。 下面舉兩個(gè)下面舉兩個(gè)VHDL程序加深理解程序加深理解枚舉枚舉類型的使用。類型的使用。P A C K A G E m e a l s _ p k g I S T Y P E m e a l I S ( b re a k f a s t , l u n c h , d i n n e r
20、) ;END meals_pkg;例例2:USE work . meals_pkg . all;ENTITY meals IS PORT(previous_meal:IN meal; next_meal:OUT meal);END meals;ARCHITECTURE meals_arc OF meals ISBEGIN WITH previous_meal SELECT next_meal = breakfast WHEN dinner, lunch WHEN breakfast, dinner WHEN lunch;END meals_arc;二、復(fù)合數(shù)據(jù)類型二、復(fù)合數(shù)據(jù)類型 復(fù)合類型是由
21、數(shù)組類型和記錄類型組成,它們的元復(fù)合類型是由數(shù)組類型和記錄類型組成,它們的元素是標(biāo)量類型的元素。數(shù)組類型是由相同的標(biāo)量元素素是標(biāo)量類型的元素。數(shù)組類型是由相同的標(biāo)量元素組成,即同構(gòu)復(fù)合類型,數(shù)組可以是一維二維或多維。組成,即同構(gòu)復(fù)合類型,數(shù)組可以是一維二維或多維。例如例如TYPE matrix IS ARRAY(row,column) OF std_logic;TYPE r_ma IS ARRAY( 1 TO 10, 1 TO 40) OF std_logic; TYPE word IS ARRAY(15 DOWNTO 0) OF BIT;TYPE column IS RANGE 1 TO 4
22、0; TYPE row IS RANGE 1 TO 10;CONSTANT ROM : BIT_VECTOR(0 TO 15);ARCHITECTURE rom_arc OF rom ISBEGIN PROCESS(cs,x1,x2,x3,x4) VARIABLE n:NATURAL RANGE 0 TO 15; CONSTANT rom0:std_logic_vector(0 TO 15):= “0101010101010101”; CONSTANT rom1:std_logic_vector(0 TO 15):= “0011001100110011”; CONSTANT rom2:std_
23、logic_vector(0 TO 15):= “0000111100001111”; CONSTANT rom3:std_logic_vector(0 TO 15):= “0000000011111111”;下面舉一個(gè)VHDL程序說(shuō)明一維數(shù)組實(shí)現(xiàn)164的ROM。LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY rom IS PORT(cs,x1,x2,x3,x4:IN std_logic; d0,d1,d2,d3:OUT std_logic);END rom; BEGIN IF cs= 1 THEN n:=0; IF x1 = 1 THEN n:
24、= n+1; END IF; IF x2 = 1 THEN n:= n+2; END IF; IF x3 = 1 THEN n:= n+4; END IF; IF x4 = 1 THEN n:= n+8; END IF; d0 = rom0(n) AFTER 10 ns; d1 = rom1(n) AFTER 10 ns; d2 = rom2(n) AFTER 10 ns; d3 = rom3(n) AFTER 10 ns; ELSE d0 = Z AFTER 10 ns; d1 = Z AFTER 10 ns; d2 = Z AFTER 10 ns; d3 = Z AFTER 10 ns;
25、END IF; END PROCESS; END rom_arc; 在結(jié)構(gòu)體說(shuō)明區(qū)(在結(jié)構(gòu)體說(shuō)明區(qū)(ARCHITECTURE和和BEGIN之間)被之間)被說(shuō)明的目標(biāo),僅可以在此結(jié)構(gòu)體中引用或在結(jié)構(gòu)體中的任何說(shuō)明的目標(biāo),僅可以在此結(jié)構(gòu)體中引用或在結(jié)構(gòu)體中的任何進(jìn)程語(yǔ)句中被引用,稱此目標(biāo)為局部信號(hào)。進(jìn)程語(yǔ)句中被引用,稱此目標(biāo)為局部信號(hào)。數(shù)據(jù)類型的全局化和局部化數(shù)據(jù)類型的全局化和局部化 前面已經(jīng)討論前面已經(jīng)討論VHDL描述語(yǔ)言的組成是由程序包、實(shí)體、描述語(yǔ)言的組成是由程序包、實(shí)體、結(jié)構(gòu)體(結(jié)構(gòu)體中有進(jìn)程)、以及子程序而組成,不同的目標(biāo)結(jié)構(gòu)體(結(jié)構(gòu)體中有進(jìn)程)、以及子程序而組成,不同的目標(biāo)可以在指定的
26、組成部分內(nèi)加以說(shuō)明??梢栽谥付ǖ慕M成部分內(nèi)加以說(shuō)明。 如果一個(gè)目標(biāo)在實(shí)體說(shuō)明部分被說(shuō)明,那么在本實(shí)體和本如果一個(gè)目標(biāo)在實(shí)體說(shuō)明部分被說(shuō)明,那么在本實(shí)體和本實(shí)體內(nèi)部的任何結(jié)構(gòu)體和任何進(jìn)程中都可以引用在實(shí)體中說(shuō)明實(shí)體內(nèi)部的任何結(jié)構(gòu)體和任何進(jìn)程中都可以引用在實(shí)體中說(shuō)明的目標(biāo),稱為全局信號(hào);的目標(biāo),稱為全局信號(hào);VHDL中不同的目標(biāo)和類型規(guī)定在不同的構(gòu)造中可以被說(shuō)明。中不同的目標(biāo)和類型規(guī)定在不同的構(gòu)造中可以被說(shuō)明。信 號(hào)信 號(hào) : 實(shí) 體 、 結(jié) 構(gòu) 體 說(shuō) 明 區(qū) 、 程 序 包 和 子 程 序 。: 實(shí) 體 、 結(jié) 構(gòu) 體 說(shuō) 明 區(qū) 、 程 序 包 和 子 程 序 。變量變量:進(jìn)程語(yǔ)句說(shuō)明區(qū)和子
27、程序。:進(jìn)程語(yǔ)句說(shuō)明區(qū)和子程序。常量常量:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。標(biāo)量類型標(biāo)量類型:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。復(fù)合類型復(fù)合類型:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。:實(shí)體、結(jié)構(gòu)體、進(jìn)程語(yǔ)句說(shuō)明區(qū)和程序包和子程序。文 件 類 型文 件 類 型 : 子 程 序 和 進(jìn) 程 語(yǔ) 句 說(shuō) 明 區(qū) 。: 子 程 序 和 進(jìn) 程 語(yǔ) 句 說(shuō) 明 區(qū) 。尋址類型尋址類型:進(jìn)程語(yǔ)句說(shuō)明區(qū)。:進(jìn)程語(yǔ)句說(shuō)明區(qū)。VHDL的屬性的屬性 VHDL中的屬性使得中的屬性使得VH
28、DL程序更加簡(jiǎn)明扼要,更程序更加簡(jiǎn)明扼要,更加容易理解,加容易理解,VHDL的屬性在時(shí)序程序中幾乎處處可的屬性在時(shí)序程序中幾乎處處可見(jiàn),如值類屬性的左邊界、右邊界、上下邊界以及值見(jiàn),如值類屬性的左邊界、右邊界、上下邊界以及值類屬性的長(zhǎng)度,還可以檢測(cè)信號(hào)上升沿和下降沿以及類屬性的長(zhǎng)度,還可以檢測(cè)信號(hào)上升沿和下降沿以及前一次發(fā)生的事件等等。前一次發(fā)生的事件等等。 VHDL的屬性可歸納為,信號(hào)類屬性、函數(shù)類屬性、的屬性可歸納為,信號(hào)類屬性、函數(shù)類屬性、 值類屬性、類型類屬性和范圍類屬性。本節(jié)介紹值類值類屬性、類型類屬性和范圍類屬性。本節(jié)介紹值類屬性及函數(shù)信號(hào)類屬性。屬性及函數(shù)信號(hào)類屬性。TYPE b
29、it IS ARRAY(63 DOWNTO 32) OF BIT; VARIABLE left_range,right_range,uprange,lowrange:INTEGER;BEGIN l e f t _ r a n g e : = b i t L E F T ; - - re t u r n s 6 3 right_range:= bitRIGHT; -returns 32 uprange:= bitHIGH; -returns 63 lowrange:= bitLOW; -returns 32 值類屬性值類屬性:值類屬性用于返回?cái)?shù)組的邊界或長(zhǎng)度,首先舉一例值類屬性用于返回?cái)?shù)組的邊界
30、或長(zhǎng)度,首先舉一例數(shù)組邊界的例子說(shuō)明類型屬性。數(shù)組邊界的例子說(shuō)明類型屬性。例例8:TYPE bit IS ARRAY(0 TO 7) OF BIT;TYPE bit1 IS ARRAY(8 TO 31) OF BIT; VA R I A B L E l e n 1 , l e n 2 : I N T E G E R ;BEGIN len1:=bitLENGTH; -return 8 len2:=bit1LENGTH; -return 24 下面再舉一個(gè)值類數(shù)組屬性的例子,讓其返下面再舉一個(gè)值類數(shù)組屬性的例子,讓其返回?cái)?shù)組范圍的總長(zhǎng)度?;?cái)?shù)組范圍的總長(zhǎng)度。例例: 它可用來(lái)檢查一個(gè)信號(hào)的變化,并且
31、變化剛它可用來(lái)檢查一個(gè)信號(hào)的變化,并且變化剛剛發(fā)生,既推斷出在信號(hào)上發(fā)生了一個(gè)跳變。剛發(fā)生,既推斷出在信號(hào)上發(fā)生了一個(gè)跳變。 函數(shù)信號(hào)屬性:函數(shù)信號(hào)屬性用來(lái)返回有關(guān)信函數(shù)信號(hào)屬性:函數(shù)信號(hào)屬性用來(lái)返回有關(guān)信號(hào)行為功能的信息,它反映一個(gè)信號(hào)是否正好有值號(hào)行為功能的信息,它反映一個(gè)信號(hào)是否正好有值的變化或事件的發(fā)生,如的變化或事件的發(fā)生,如clkEVENT,這個(gè)屬性為,這個(gè)屬性為“EVENT”,對(duì)檢查時(shí)鐘邊沿觸發(fā)是很有效的。,對(duì)檢查時(shí)鐘邊沿觸發(fā)是很有效的。下面舉一個(gè)例子,說(shuō)明函數(shù)信號(hào)屬性的用法下面舉一個(gè)例子,說(shuō)明函數(shù)信號(hào)屬性的用法IF clk= 1 AND clkEVENT THEN q = d;
32、END IF; 上述語(yǔ)句中用到了函數(shù)信號(hào)屬性上述語(yǔ)句中用到了函數(shù)信號(hào)屬性clkEVENT,說(shuō)明,說(shuō)明如果時(shí)鐘信號(hào)如果時(shí)鐘信號(hào)clk為高電平,并且事件剛剛發(fā)生,也就為高電平,并且事件剛剛發(fā)生,也就是說(shuō)是時(shí)鐘上升沿有效,此時(shí)是說(shuō)是時(shí)鐘上升沿有效,此時(shí)q得到得到d的信號(hào)。的信號(hào)。8-3 VHDL的行為描述的行為描述 在在VHDL硬件描述語(yǔ)言中,描述電路邏輯的程硬件描述語(yǔ)言中,描述電路邏輯的程序稱為序稱為行為描述行為描述,行為描述有,行為描述有并行行為描述并行行為描述、進(jìn)程進(jìn)程行為描述行為描述和和順序行為描述順序行為描述。 三個(gè)行為即可以是相互獨(dú)立,成為單一的行為三個(gè)行為即可以是相互獨(dú)立,成為單一的行
33、為描述體,又可以相互聯(lián)系,成為混合描述體,如進(jìn)描述體,又可以相互聯(lián)系,成為混合描述體,如進(jìn)程行為描述行為程行為描述行為之間之間是并行行為,進(jìn)程行為體的是并行行為,進(jìn)程行為體的內(nèi)內(nèi)部部是順序行為。是順序行為。一、一、VHDL的并行行為的并行行為 在典型的編程語(yǔ)言如在典型的編程語(yǔ)言如C或或Pascal中,每個(gè)賦值語(yǔ)句按規(guī)定的次中,每個(gè)賦值語(yǔ)句按規(guī)定的次序,一個(gè)接在另一個(gè)之后順序執(zhí)行,執(zhí)行的次序由源文件決定。序,一個(gè)接在另一個(gè)之后順序執(zhí)行,執(zhí)行的次序由源文件決定。 在在VHDL中,結(jié)構(gòu)體的內(nèi)部沒(méi)有規(guī)定語(yǔ)句的次序,執(zhí)行的次序中,結(jié)構(gòu)體的內(nèi)部沒(méi)有規(guī)定語(yǔ)句的次序,執(zhí)行的次序僅由對(duì)語(yǔ)句中的敏感信號(hào)發(fā)生的事件
34、決定,且語(yǔ)句是同時(shí)執(zhí)行,產(chǎn)僅由對(duì)語(yǔ)句中的敏感信號(hào)發(fā)生的事件決定,且語(yǔ)句是同時(shí)執(zhí)行,產(chǎn)生其并行型。生其并行型。結(jié)構(gòu)體中并行賦值語(yǔ)句的一般格式如下:結(jié)構(gòu)體中并行賦值語(yǔ)句的一般格式如下: = 該一般形式讀作對(duì)象得到表達(dá)式的值,其作用是將表達(dá)式的信號(hào)該一般形式讀作對(duì)象得到表達(dá)式的值,其作用是將表達(dá)式的信號(hào)值分配給對(duì)象,也就是說(shuō)每當(dāng)表達(dá)式的信號(hào)值變化時(shí)執(zhí)行該語(yǔ)句。值分配給對(duì)象,也就是說(shuō)每當(dāng)表達(dá)式的信號(hào)值變化時(shí)執(zhí)行該語(yǔ)句。 每個(gè)表達(dá)式都至少有一個(gè)敏感信號(hào),每當(dāng)敏感信號(hào)改變其每個(gè)表達(dá)式都至少有一個(gè)敏感信號(hào),每當(dāng)敏感信號(hào)改變其值時(shí),這個(gè)信號(hào)賦值語(yǔ)句就執(zhí)行,值時(shí),這個(gè)信號(hào)賦值語(yǔ)句就執(zhí)行, 在所有的并行語(yǔ)句中,兩
35、個(gè)以上的并行賦值語(yǔ)句在字面在所有的并行語(yǔ)句中,兩個(gè)以上的并行賦值語(yǔ)句在字面上的順序并不表明它們的執(zhí)行順序,上的順序并不表明它們的執(zhí)行順序,例如下面的兩個(gè)結(jié)構(gòu)體在功能上是等價(jià)的。例如下面的兩個(gè)結(jié)構(gòu)體在功能上是等價(jià)的。ENTITY exe IS PORT(a1,a2:IN BIT; b1,b2:OUT BIT);END exe;ARCHITECTURE exe_arc1 OF exe ISBEGIN b1 = a1 AND b2; b2 = NOT a1 OR a2;END exe_arc1;ARCHITECTURE exe_arc2 OF exe ISBEGIN b2 = NOT a1 OR a
36、2; b1 = a1 AND b2;END exe_arc2;a1a2b1b2 另一種并行信號(hào)賦值語(yǔ)句是選擇信號(hào)賦值語(yǔ)句,它們的每一另一種并行信號(hào)賦值語(yǔ)句是選擇信號(hào)賦值語(yǔ)句,它們的每一個(gè)賦值語(yǔ)句都需要給出一個(gè)表達(dá)式,同時(shí)給出與該表達(dá)式的每個(gè)個(gè)賦值語(yǔ)句都需要給出一個(gè)表達(dá)式,同時(shí)給出與該表達(dá)式的每個(gè)可能值相關(guān)聯(lián)的信號(hào)可能值相關(guān)聯(lián)的信號(hào) 選擇信號(hào)賦值語(yǔ)句的一般形式如下:選擇信號(hào)賦值語(yǔ)句的一般形式如下: WITH SELECT = WHEN , WHEN , WHEN ; 一個(gè)典型的四路數(shù)據(jù)選擇器的一個(gè)典型的四路數(shù)據(jù)選擇器的VHDL程序說(shuō)明程序說(shuō)明WITH一般一般形式的用法形式的用法ENTITY se
37、ls IS PORT(d0,d1,d2,d3:IN BIT; s :IN INTEGER RANGE 0 TO 3; out1 :OUT BIT);END sels;ARCHITECTURE sels_arc OF sels ISBEGIN WITH s SELECT out1 = d0 WHEN 0, d1 WHEN 1, d2 WHEN 2, d3 WHEN 3;END sels_arc;d0d1d2d3sout1sels 仍以四路數(shù)據(jù)選擇器為例,討論另一個(gè)較為復(fù)雜的并仍以四路數(shù)據(jù)選擇器為例,討論另一個(gè)較為復(fù)雜的并行信號(hào)賦值語(yǔ)句的例子,以便更詳細(xì)地說(shuō)明并行概念,行信號(hào)賦值語(yǔ)句的例子,以便更
38、詳細(xì)地說(shuō)明并行概念,下面是四輸入數(shù)據(jù)選擇器的第二個(gè)下面是四輸入數(shù)據(jù)選擇器的第二個(gè)VHDL程序。程序。例:例:LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY mux4 IS PORT(I0,I1,I2,I3,A,B:IN std_logic; Q :OUT std_logic);END mux4;ARCHITECTURE mux4_arc OF mux4 IS SIGNAL sel :INTEGER ;BEGIN Q = I0 AFTER 10 ns WHEN sel= 0 ELSE I1 AFTER 10 ns WHEN sel= 1 ELSE
39、 I2 AFTER 10 ns WHEN sel= 2 ELSE I3 AFTER 10 ns ; sel = 0 WHEN A= 0 AND B= 0 ELSE 1 WHEN A= 1 AND B= 0 ELSE 2 WHEN A= 0 AND B= 1 ELSE 3 ;END mux4_arc;二、二、VHDL的進(jìn)程行為的進(jìn)程行為 VHDL除了并行行為之外,還有順序行為。順序行為執(zhí)行除了并行行為之外,還有順序行為。順序行為執(zhí)行的順序是一個(gè)接在另一個(gè)之后嚴(yán)格執(zhí)行。的順序是一個(gè)接在另一個(gè)之后嚴(yán)格執(zhí)行。順序行為的語(yǔ)句存在于順序行為的語(yǔ)句存在于VHDL程序中的程序中的進(jìn)程行為進(jìn)程行為之中。之中。而
40、進(jìn)程行為之間是并行行為語(yǔ)句而進(jìn)程行為之間是并行行為語(yǔ)句。進(jìn)程行為語(yǔ)句的一般形式如下進(jìn)程行為語(yǔ)句的一般形式如下: :PROCESS BEGIN WAIT ON ; WAIT UNTIL ; WAIT FOR ; END PROCESS; 進(jìn)程行為的說(shuō)明區(qū)定義該進(jìn)程所需要的局部數(shù)據(jù)環(huán)境、它進(jìn)程行為的說(shuō)明區(qū)定義該進(jìn)程所需要的局部數(shù)據(jù)環(huán)境、它包括包括子程序說(shuō)明子程序說(shuō)明、屬性說(shuō)明屬性說(shuō)明和和變量說(shuō)明變量說(shuō)明等等在這里只給出在這里只給出變量說(shuō)明變量說(shuō)明的一個(gè)例子,變量說(shuō)明的一般形式為的一個(gè)例子,變量說(shuō)明的一般形式為VARIABLE : ;下面進(jìn)程說(shuō)明區(qū)中說(shuō)明了變量下面進(jìn)程說(shuō)明區(qū)中說(shuō)明了變量count,進(jìn)
41、程也可對(duì)變量賦值。,進(jìn)程也可對(duì)變量賦值。 PROCESS VARIABLE count:INTEGER:= 0; BEGIN count:= count+1; WAIT FOR 1000 ns; END PROCESS; 整個(gè)實(shí)體模塊中的每個(gè)進(jìn)程行為語(yǔ)句,可以在任何時(shí)候被整個(gè)實(shí)體模塊中的每個(gè)進(jìn)程行為語(yǔ)句,可以在任何時(shí)候被激活,所有被激活的進(jìn)程是并行執(zhí)行的激活,所有被激活的進(jìn)程是并行執(zhí)行的 下面舉一個(gè)三八通用譯碼器程序的例子,說(shuō)明進(jìn)程語(yǔ)句下面舉一個(gè)三八通用譯碼器程序的例子,說(shuō)明進(jìn)程語(yǔ)句如何工作。如何工作。LIBRARY ieee; USE ieee.std_logic_1164.all; USE
42、 ieee.std_logic_arith.all; ENTITY decoder IS PORT(sel : IN UNSIGNED(2 DOWNTO 0); dout : OUT UNSIGNED(7 DOWNTO 0); END decoder;ARCHITECTURE decoder_arc OF decoder IS SIGNAL sel1 :INTEGER; BEGIN PROCESS(sel) BEGINsel1 dout dout dout dout dout dout dout dout = (1,0,0,0,0,0,0,0) AFTER 5 ns; END CASE; EN
43、D PROCESS; END decoder_arc; 此例不像上例那樣等待時(shí)間到此例不像上例那樣等待時(shí)間到1000ns以后再激活進(jìn)程,而以后再激活進(jìn)程,而是只要是只要sel的值一發(fā)生改變就激活進(jìn)程,從第一句執(zhí)行直到滿足的值一發(fā)生改變就激活進(jìn)程,從第一句執(zhí)行直到滿足條件后再被掛起。條件后再被掛起。下例是另一種激活進(jìn)程的方式:下例是另一種激活進(jìn)程的方式:ENTITY reg IS PORT(d,clk:IN BIT; q1,q2:OUT BIT); END reg; ARCHITECTURE reg_arc OF reg IS BEGIN PROCESS BEGIN WAIT UNTIL clk
44、= 1; q1 = d; END PROCESS; PROCESS BEGIN WAIT UNTIL clk= 0; q2 = d; END PROCESS; END reg_arc;進(jìn)程行為語(yǔ)句之間是進(jìn)程行為語(yǔ)句之間是并行關(guān)系,進(jìn)程行為并行關(guān)系,進(jìn)程行為語(yǔ)句內(nèi)部是順序關(guān)系。語(yǔ)句內(nèi)部是順序關(guān)系。VHDL的每個(gè)結(jié)構(gòu)的每個(gè)結(jié)構(gòu)體中可以有多個(gè)進(jìn)程體中可以有多個(gè)進(jìn)程行為語(yǔ)句。行為語(yǔ)句。它的關(guān)鍵之處是:它的關(guān)鍵之處是:三、三、VHDL的順序行為的順序行為順序行為語(yǔ)句可分為兩大類:順序行為語(yǔ)句可分為兩大類:條件控制類條件控制類,循環(huán)控制類循環(huán)控制類 在這兩類中選出六種在這兩類中選出六種 IF、CASE、F
45、OR、WHILE.LOOP、EXIT和和ASSERT進(jìn)行討論進(jìn)行討論 IF THEN ; ELSIF THEN ; ELSIF THEN ; ELSE ; END IF;1、IF語(yǔ)句語(yǔ)句IF語(yǔ)句的一般形式為:語(yǔ)句的一般形式為:ARCHITECTURE alarm_arc OF alarm ISBEGIN下面舉例說(shuō)明下面舉例說(shuō)明IF條件語(yǔ)句的用法。條件語(yǔ)句的用法。例例: 用用VHDL設(shè)計(jì)一家用告警系統(tǒng)的控制邏輯,它有來(lái)自傳感設(shè)計(jì)一家用告警系統(tǒng)的控制邏輯,它有來(lái)自傳感器的三個(gè)輸入信號(hào)器的三個(gè)輸入信號(hào)smoke、door、water和準(zhǔn)備傳輸?shù)礁婢O(shè)備和準(zhǔn)備傳輸?shù)礁婢O(shè)備的三個(gè)輸出觸發(fā)信號(hào)的三個(gè)輸出
46、觸發(fā)信號(hào)fire_alarm、burg_alarm、water_alarm以以及使能信號(hào)及使能信號(hào)en和和alarm_en。VHDL程序描述如下:程序描述如下:LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY alarm IS PORT(smoke,door,water:IN std_logic; en,alarm_en :IN std_logic; fire_alarm,burg_alarm,water_alarm:OUT std_logic);END alarm;PROCESS(smoke,door,water,en,alarm_en) BEG
47、IN IF (smoke= 1) AND (en= 0) THEN fire_alarm = 1; ELSE fire_alarm = 0; END IF;IF (door= 1) AND (en= 0) AND (alarm_en= 0) THEN burg_alarm = 1; ELSE burg_alarm = 0; END IF;IF (water= 1) AND (en= 0) THEN water_alarm = 1; ELSE water_alarm = 0; END IF; END PROCESS; END alarm_arc;2、CASE 語(yǔ)句語(yǔ)句CASE語(yǔ)句的一般形式:語(yǔ)句
48、的一般形式:CASE IS WHEN ; WHEN | ; WHEN ; WHEN OTHERS ;END CASE; CASE語(yǔ)句是語(yǔ)句是VHDL提供的另一種形式的控制語(yǔ)句,每當(dāng)提供的另一種形式的控制語(yǔ)句,每當(dāng)單個(gè)表達(dá)式的值在多個(gè)起作用的項(xiàng)中選擇時(shí),用此語(yǔ)句是較合單個(gè)表達(dá)式的值在多個(gè)起作用的項(xiàng)中選擇時(shí),用此語(yǔ)句是較合適的,它根據(jù)所給表達(dá)式的值或域,選擇適的,它根據(jù)所給表達(dá)式的值或域,選擇“=”后面的執(zhí)行語(yǔ)句。后面的執(zhí)行語(yǔ)句。用用CASE語(yǔ)句應(yīng)該注意三個(gè)問(wèn)題:語(yǔ)句應(yīng)該注意三個(gè)問(wèn)題: 一,是關(guān)鍵字一,是關(guān)鍵字WHEN的數(shù)量不作限制,但不容許兩的數(shù)量不作限制,但不容許兩個(gè)語(yǔ)句用一個(gè)值;個(gè)語(yǔ)句用一個(gè)
49、值; 二,是所有二,是所有WHEN后面的值在后面的值在CASE語(yǔ)句中合起來(lái)的語(yǔ)句中合起來(lái)的值域中的全部;值域中的全部;三,是三,是WHEN的次序可以任意排定的次序可以任意排定信號(hào)可被看作兩個(gè)元件之間數(shù)據(jù)傳輸?shù)耐?,信?hào)可被看作兩個(gè)元件之間數(shù)據(jù)傳輸?shù)耐罚?-4 VHDL的結(jié)構(gòu)描述實(shí)體主要描述元件、端口與信號(hào)。實(shí)體主要描述元件、端口與信號(hào)。元件是硬件的描述,即門、芯片或者電路板。元件是硬件的描述,即門、芯片或者電路板。端口是元件與外界的連接點(diǎn),數(shù)據(jù)通過(guò)端口進(jìn)入或流出元件。端口是元件與外界的連接點(diǎn),數(shù)據(jù)通過(guò)端口進(jìn)入或流出元件。而信號(hào)則是作為硬件連線的一種抽象描述,它即能保持變化而信號(hào)則是作為硬件連線的一種抽象描述,它即能保持變化的數(shù)據(jù),又可以連接各個(gè)子元件。的數(shù)據(jù),又可以連接各個(gè)子元件。下面舉例說(shuō)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青海省海東市2025屆初三下學(xué)期階段性檢測(cè)試題(三)生物試題試卷含解析
- 同濟(jì)大學(xué)《裝飾繪畫與材料技法》2023-2024學(xué)年第一學(xué)期期末試卷
- 沙洲職業(yè)工學(xué)院《思想道德修養(yǎng)與法律基礎(chǔ)影技》2023-2024學(xué)年第二學(xué)期期末試卷
- 嘉興南洋職業(yè)技術(shù)學(xué)院《藥用拉丁語(yǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省泰安市肥城市2025屆高三下學(xué)期入學(xué)測(cè)試(四)生物試題試卷含解析
- 現(xiàn)代農(nóng)業(yè)發(fā)展與2025年相關(guān)考試試卷及答案
- 2025年新聞傳播學(xué)入學(xué)考試試卷及答案
- 江蘇省如東縣2025年初三下學(xué)期六校(4月)聯(lián)考生物試題試卷含解析
- 江蘇省南京市南京外國(guó)語(yǔ)校2024-2025學(xué)年初三中考猜題卷(一)數(shù)學(xué)試題含解析
- 外貿(mào)自學(xué)課件模板
- PSP問(wèn)題解決程序
- 粉煤灰漂珠的特性提取和應(yīng)用1
- 良性陣發(fā)性位置性眩暈臨床路徑
- 2023屆天津市南開區(qū)高三一模(質(zhì)量檢測(cè)一)語(yǔ)文試題和答案詳解
- 不確定的危機(jī)下做確定的業(yè)績(jī)
- 精神科病歷書寫培訓(xùn)講義課件
- JJF 1939-2021 熱式風(fēng)速儀校準(zhǔn)規(guī)范 高清晰版
- 鋼筋混凝土排水管三級(jí)管配筋設(shè)計(jì)圖冊(cè)
- 最新火電廠工作原理演示文稿
- 證據(jù)清單模板
- NB∕T 10897-2021 烴基生物柴油
評(píng)論
0/150
提交評(píng)論