VHDL第六講_VHDL的元件例化語(yǔ)句_第1頁(yè)
VHDL第六講_VHDL的元件例化語(yǔ)句_第2頁(yè)
VHDL第六講_VHDL的元件例化語(yǔ)句_第3頁(yè)
VHDL第六講_VHDL的元件例化語(yǔ)句_第4頁(yè)
VHDL第六講_VHDL的元件例化語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、整理課件第六講 VHDL硬件描述語(yǔ)言_4教學(xué)課時(shí):教學(xué)課時(shí):2學(xué)時(shí)學(xué)時(shí)教學(xué)內(nèi)容:教學(xué)內(nèi)容:VHDL語(yǔ)句語(yǔ)句(1)元件例化語(yǔ)句()元件例化語(yǔ)句(1學(xué)時(shí))學(xué)時(shí))(2)生成語(yǔ)句()生成語(yǔ)句(1學(xué)時(shí))學(xué)時(shí))整理課件元件例化語(yǔ)句元件例化就是元件例化就是將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件定義為一個(gè)元件,然后利用映射語(yǔ)句將然后利用映射語(yǔ)句將此元件與另一個(gè)設(shè)計(jì)實(shí)體中的指定端口此元件與另一個(gè)設(shè)計(jì)實(shí)體中的指定端口相連相連,從而進(jìn)行層次化設(shè)計(jì)從而進(jìn)行層次化設(shè)計(jì)。元件例化。元件例化是使是使VHDL設(shè)計(jì)實(shí)體構(gòu)成設(shè)計(jì)實(shí)體構(gòu)成“自上而下自上而下”或或“自下而上自下而上”層次化設(shè)計(jì)的一種重要層次化設(shè)計(jì)

2、的一種重要途徑。途徑。整理課件元件例化語(yǔ)句分為元件聲明和元件例化兩部分。用元件例化方式設(shè)計(jì)電路的方法是:(1)完成各種元件的設(shè)計(jì)。(2)元件聲明。(3)通過(guò)元件例化語(yǔ)句調(diào)用這些元件,產(chǎn)生需要的設(shè)計(jì)電路。整理課件元件聲明語(yǔ)句的格式COMPONENT 元件名元件名 GENERIC ; PORT ;END COMPONENT; 整理課件元件例化語(yǔ)句的格式元件例化就是將元件的引腳與調(diào)用該元件的端口的引腳相關(guān)聯(lián)。關(guān)聯(lián)方法有位置關(guān)聯(lián),名字關(guān)聯(lián),混合關(guān)聯(lián)。(1)位置關(guān)聯(lián)方式)位置關(guān)聯(lián)方式例化名:元件名例化名:元件名 port map(信號(hào)信號(hào)1,信號(hào),信號(hào)2,.);(2)名字關(guān)聯(lián)方式)名字關(guān)聯(lián)方式例化名:元

3、件名例化名:元件名 port map(信號(hào)關(guān)聯(lián)式信號(hào)關(guān)聯(lián)式1,信號(hào)關(guān)聯(lián)式,信號(hào)關(guān)聯(lián)式2,.);信號(hào)關(guān)聯(lián)式形如:信號(hào)關(guān)聯(lián)式形如:a=a1,b=b1,意思是將元件的引腳意思是將元件的引腳a與調(diào)用該元與調(diào)用該元件的端口件的端口a1相關(guān)聯(lián)。這種情況下,位置可以是任意的。相關(guān)聯(lián)。這種情況下,位置可以是任意的。(3)混合關(guān)聯(lián)方式)混合關(guān)聯(lián)方式將上述兩種相結(jié)合,即為混合關(guān)聯(lián)方式。將上述兩種相結(jié)合,即為混合關(guān)聯(lián)方式。整理課件元件例化舉例例例1:利用:利用2輸入與非門(mén)元件,設(shè)計(jì)輸入與非門(mén)元件,設(shè)計(jì)4輸入的與非與非輸入的與非與非電路。電路。方法一方法一:在調(diào)用文件里聲明元件,在調(diào)用文件里聲明元件,它放在結(jié)構(gòu)體的它

4、放在結(jié)構(gòu)體的begin之前之前。第一步:設(shè)計(jì)第一步:設(shè)計(jì)2輸入與非門(mén),其輸入與非門(mén),其VHDL源程序?yàn)樵闯绦驗(yàn)閚and_2.vhd;第二步:元件聲明及元件例化,其第二步:元件聲明及元件例化,其VHDL源程序?yàn)樵闯绦驗(yàn)閚and_4.vhd;生成的生成的RTL視圖:視圖:整理課件library ieee;use ieee.std_logic_1164.all;entity nand_2 isport(a,b:in std_logic;y:out std_logic);end nand_2;architecture one of nand_2 isbeginprocess(a,b)beginy=a

5、nand b;end process;end one;library ieee;use ieee.std_logic_1164.all;entity nand_4 isport(a,b,c,d:in std_logic;y:out std_logic);end nand_4;architecture one of nand_4 is-元件聲明元件聲明component nand_2 port(a,b:in std_logic;y:out std_logic);end component;-元件聲明元件聲明signal y1,y2:std_logic; beginu1:nand_2 port m

6、ap(a,b,y1);-元件例化元件例化u2:nand_2 port map(c,d,y2);u3:nand_2 port map(y1,y2,y);end one;整理課件例例1:利用:利用2輸入與非門(mén)元件,設(shè)計(jì)輸入與非門(mén)元件,設(shè)計(jì)4輸入的與輸入的與非與非電路。非與非電路。方法方法2:將元件聲明放在程序包里進(jìn)行說(shuō)明:將元件聲明放在程序包里進(jìn)行說(shuō)明 第一步:設(shè)計(jì)第一步:設(shè)計(jì)2輸入與非門(mén),其輸入與非門(mén),其VHDL源程序?yàn)樵闯绦驗(yàn)閚and_2.vhd;第二步:元件聲明,放在程序包里,其第二步:元件聲明,放在程序包里,其VHDL源程序源程序?yàn)闉閙ypkg.vhd;第三步:元件例化,其第三步:元件例化

7、,其VHDL源程序?yàn)樵闯绦驗(yàn)閙ynand_4.vhd;整理課件程序包(p228)在設(shè)計(jì)實(shí)體中聲明的數(shù)據(jù)類型、數(shù)據(jù)對(duì)象只能用于本實(shí)體和結(jié)構(gòu)體內(nèi)部,不能被其他實(shí)體和結(jié)構(gòu)體使用,就像高級(jí)語(yǔ)言中的局部變量一樣。為了使數(shù)據(jù)類型、元件等能被多個(gè)設(shè)計(jì)實(shí)體調(diào)用或共享,VHDL提供了程序包的機(jī)制。程序包就像是公用的工具箱,各個(gè)設(shè)計(jì)實(shí)體都可使用其中定義的工具。整理課件程序包的格式package 程序包名 is程序包頭說(shuō)明部分end 程序包名;package body 程序包名 is程序包體說(shuō)明部分及包體內(nèi)容end 程序包名;整理課件如何打開(kāi)程序包?用語(yǔ)句use work.程序包名.all;打開(kāi)程序包。其中,wor

8、k庫(kù)是用戶設(shè)計(jì)的現(xiàn)行工作庫(kù),用于存放自己設(shè)計(jì)的工程項(xiàng)目。在QuartusII 的根目錄下為設(shè)計(jì)建立一個(gè)工程目錄(即文件夾),VHDL綜合器將此目錄默認(rèn)為work庫(kù)。但work不是設(shè)計(jì)項(xiàng)目的目錄名,而是一個(gè)邏輯名。VHDL標(biāo)準(zhǔn)規(guī)定work庫(kù)總是可見(jiàn)的,因此,在程序設(shè)計(jì)時(shí)不需要明確指定。整理課件用將元件聲明放在程序包里的設(shè)計(jì)方法設(shè)計(jì)用將元件聲明放在程序包里的設(shè)計(jì)方法設(shè)計(jì)4輸入的與非輸入的與非與非門(mén),詳見(jiàn)演示實(shí)例與非門(mén),詳見(jiàn)演示實(shí)例mynand_4.qpf。(1)在在QuartusII 的根目錄下新建工程的根目錄下新建工程mynand_4.(2)編輯編輯VHDL源程序文件源程序文件nand_2.vh

9、d,mypkg.vhd,mynand_4.vhd.nand_2.vhd用來(lái)描述用來(lái)描述2輸入與非門(mén)。輸入與非門(mén)。mypkg.vhd用來(lái)進(jìn)行元件聲明。用來(lái)進(jìn)行元件聲明。mynand_4.vhd實(shí)現(xiàn)元件例化。實(shí)現(xiàn)元件例化。整理課件library ieee;use ieee.std_logic_1164.all;entity nand_2 isport(a,b:in std_logic;y:out std_logic);end nand_2;architecture one of nand_2 isbeginprocess(a,b)beginy=a nand b;end process;end on

10、e;library ieee;use ieee.std_logic_1164.all;package mypkg iscomponent nand_2port(a,b:in std_logic; y:out std_logic);-元件聲明元件聲明end component;end mypkg;library ieee;use ieee.std_logic_1164.all;use work.mypkg.all;-打開(kāi)程序包打開(kāi)程序包entity mynand_4 isport(a,b,c,d:in std_logic;y:out std_logic);end mynand_4;archite

11、cture one of mynand_4 issignal y1,y2:std_logic; begin-元件例化元件例化u1:nand_2 port map(a,b,y1);u2:nand_2 port map(c,d,y2);u3:nand_2 port map(y1,y2,y);end one;整理課件思考題用一位用一位D觸發(fā)器,利用元件例化語(yǔ)句實(shí)現(xiàn)觸發(fā)器,利用元件例化語(yǔ)句實(shí)現(xiàn)4位移位寄存器。位移位寄存器。思路:思路:(1)設(shè)計(jì)一位)設(shè)計(jì)一位D觸發(fā)器的源程序文件觸發(fā)器的源程序文件shift_reg1.vhd。(2)用元件例化實(shí)現(xiàn))用元件例化實(shí)現(xiàn)4位移位寄存器文件位移位寄存器文件shif

12、t_reg4.vhd。整理課件4位位D觸發(fā)器的觸發(fā)器的VHDL程序文件:程序文件:library ieee;use ieee.std_logic_1164.all;entity shift_reg4 isport(clk:in std_logic;D:in std_logic;Q:out std_logic);end shift_reg4;architecture one of shift_reg4 iscomponent shift_reg1port(clk:in std_logic;D:in std_logic;Q:out std_logic);end component;-元件聲明元件聲

13、明signal Q0,Q1,Q2:std_logic;begin-元件例化元件例化u0:shift_reg1 port map(clk,D,Q0);u1:shift_reg1 port map(clk,Q0,Q1);u2:shift_reg1 port map(clk,Q1,Q2);u3:shift_reg1 port map(clk,Q2,Q);end one;1位位D觸發(fā)器的觸發(fā)器的VHDL程序文件:程序文件:library ieee;use ieee.std_logic_1164.all;entity shift_reg1 isport(clk:in std_logic;D:in std

14、_logic;Q:out std_logic);end entity;architecture one of shift_reg1 isbeginprocess(clk,D)beginif clkevent and clk=1 thenQ=D;end if;end process;end one;整理課件生成語(yǔ)句生成語(yǔ)句生成語(yǔ)句(生成語(yǔ)句(GENERATE)是一種可以建立重復(fù)結(jié)構(gòu)或者是在多個(gè)模塊)是一種可以建立重復(fù)結(jié)構(gòu)或者是在多個(gè)模塊的表示形式之間進(jìn)行選擇的語(yǔ)句。由于生成語(yǔ)句可以用來(lái)產(chǎn)生多個(gè)相的表示形式之間進(jìn)行選擇的語(yǔ)句。由于生成語(yǔ)句可以用來(lái)產(chǎn)生多個(gè)相同的結(jié)構(gòu),因此使用生成語(yǔ)句就可以避免多段相

15、同結(jié)構(gòu)的同的結(jié)構(gòu),因此使用生成語(yǔ)句就可以避免多段相同結(jié)構(gòu)的VHDL程序程序的重復(fù)書(shū)寫(xiě)(的重復(fù)書(shū)寫(xiě)(相當(dāng)于相當(dāng)于復(fù)制復(fù)制)。)。生成語(yǔ)句有兩種形式:生成語(yǔ)句有兩種形式:FOR- GENERATE模式和模式和IF- GENERATE模式。模式。FOR- GENERATE 模式的生成語(yǔ)句模式的生成語(yǔ)句FOR- GENERATE 模式生成語(yǔ)句的書(shū)寫(xiě)格式為:模式生成語(yǔ)句的書(shū)寫(xiě)格式為:標(biāo)號(hào):標(biāo)號(hào):FOR 循環(huán)變量循環(huán)變量 IN 離散范圍離散范圍 GENERATE ;END GENERATE 標(biāo)號(hào)標(biāo)號(hào); 整理課件 其中循環(huán)變量的值在每次的循環(huán)中都將發(fā)生變化;離散范其中循環(huán)變量的值在每次的循環(huán)中都將發(fā)生變化;

16、離散范圍用來(lái)指定循環(huán)變量的取值范圍,循環(huán)變量的取值將從取值圍用來(lái)指定循環(huán)變量的取值范圍,循環(huán)變量的取值將從取值范圍最左邊的值開(kāi)始并且遞增到取值范圍最右邊的值,實(shí)際范圍最左邊的值開(kāi)始并且遞增到取值范圍最右邊的值,實(shí)際上也就限制了循環(huán)的次數(shù);循環(huán)變量每取一個(gè)值就要執(zhí)行一上也就限制了循環(huán)的次數(shù);循環(huán)變量每取一個(gè)值就要執(zhí)行一次次GENERATE語(yǔ)句體中的并行處理語(yǔ)句;最后語(yǔ)句體中的并行處理語(yǔ)句;最后FOR- GENERATE模式生成語(yǔ)句以保留字模式生成語(yǔ)句以保留字END GENERATE 標(biāo)標(biāo)號(hào):號(hào):;來(lái)結(jié)束;來(lái)結(jié)束GENERATE語(yǔ)句的循環(huán)。語(yǔ)句的循環(huán)。 生成語(yǔ)句的典型應(yīng)用是存儲(chǔ)器陣列和寄存器。下面

17、以四位生成語(yǔ)句的典型應(yīng)用是存儲(chǔ)器陣列和寄存器。下面以四位移位寄存器為例,說(shuō)明移位寄存器為例,說(shuō)明FOR- GENERATE模式生成語(yǔ)句的優(yōu)模式生成語(yǔ)句的優(yōu)點(diǎn)和使用方法。點(diǎn)和使用方法。 整理課件4位位D觸發(fā)器的觸發(fā)器的VHDL程序文件:程序文件:library ieee;use ieee.std_logic_1164.all;entity shift_reg4 isport(clk:in std_logic;D:in std_logic;Q:out std_logic);end shift_reg4;architecture two of shift_reg4 iscomponent shift

18、_reg1port(clk:in std_logic;D:in std_logic;Q:out std_logic);end component;-元件聲明元件聲明signal y:std_logic_vector(0 to 4);beginy(0)=D;u0:for i in 0 to 3 generate元件生成元件生成ux:shift_reg1 port map(clk,y(i),y(i+1);end generate;Q=y(4);end two;1位位D觸發(fā)器的觸發(fā)器的VHDL程序文件:程序文件:library ieee;use ieee.std_logic_1164.all;ent

19、ity shift_reg1 isport(clk:in std_logic;D:in std_logic;Q:out std_logic);end entity;architecture one of shift_reg1 isbeginprocess(clk,D)beginif clkevent and clk=1 thenQ=D;end if;end process;end one;例例: FOR- GENERATE模式生成語(yǔ)句應(yīng)用模式生成語(yǔ)句應(yīng)用.用用1位位D觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì)4位移位寄存器。位移位寄存器。 整理課件 可以看出用可以看出用FOR- GENERATE模式生成語(yǔ)句替代思考

20、題中模式生成語(yǔ)句替代思考題中的四條元件例化語(yǔ)句,使的四條元件例化語(yǔ)句,使VHDL程序變的更加簡(jiǎn)潔明了。程序變的更加簡(jiǎn)潔明了。IF- GENERATE模式生成語(yǔ)句模式生成語(yǔ)句IF- GENERATE模式生成語(yǔ)句的書(shū)寫(xiě)格式如下:模式生成語(yǔ)句的書(shū)寫(xiě)格式如下:標(biāo)號(hào):標(biāo)號(hào):IF 條件條件 GENERATE ;END GENERATE 標(biāo)號(hào)標(biāo)號(hào); 整理課件思考題設(shè)計(jì)一位二進(jìn)制全加器,然后利用for-generate生成語(yǔ)句實(shí)現(xiàn)4位二進(jìn)制全加器,并仿真驗(yàn)證設(shè)計(jì)結(jié)果。整理課件library ieee;use ieee.std_logic_1164.all;entity adder_1 isport(a,b:in std_logic;cin:in std_logic;cout:out std_logic;s:out std_logic);end adder_1;architecture one of adder_1 issignal temp:std_logic_vector(2 downto 0);beginprocess(a,b,cin)begintemp=a&b&cin;if temp=011 or temp=101 or temp=110 or temp=111 thencout=1;elsecout=0;end if;s=a xor b xor

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論