版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、EDA 技術(shù)實用教程技術(shù)實用教程第第 3 3 章章 VHDL設(shè)計初步設(shè)計初步1. 組合電路的組合電路的VHDL描述描述2. 基本時序電路的基本時序電路的VHDL描述描述3. 計數(shù)器的計數(shù)器的VHDL設(shè)計設(shè)計主要任務(wù):主要任務(wù):給出簡單而典型的電路實例,作為探討其性能特給出簡單而典型的電路實例,作為探討其性能特點和設(shè)計方法的情景。然后針對情景的具體對象,給出對應(yīng)點和設(shè)計方法的情景。然后針對情景的具體對象,給出對應(yīng)的的VHDL表述,并對表述中出現(xiàn)的語句進行解釋。表述,并對表述中出現(xiàn)的語句進行解釋。掌握掌握電路情景與電路情景與VHDL的對應(yīng)關(guān)系,程序的基本結(jié)構(gòu)、表述的對應(yīng)關(guān)系,程序的基本結(jié)構(gòu)、表述特
2、點和設(shè)計方法。特點和設(shè)計方法。主要內(nèi)容主要內(nèi)容3.1 組合電路的組合電路的VHDL描述描述 3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述 圖圖3-1 mux21a電路模型電路模型 2選選1多路選擇器(多路選擇器(mux21a)A、b是是2個數(shù)據(jù)的輸入端口個數(shù)據(jù)的輸入端口S是通道選擇控制信號端是通道選擇控制信號端Y是數(shù)據(jù)輸出端是數(shù)據(jù)輸出端S取值分別是取值分別是0、1時,輸出端分別輸時,輸出端分別輸出出a、b的數(shù)據(jù)。的數(shù)據(jù)。 圖圖3-2 mux21a元件圖元件圖 3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述 【例【例3-1】ENTITY mux21a IS PORT
3、 ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 了解情景了解情景VHDL描述描述Mux21a邏輯結(jié)構(gòu)圖邏輯結(jié)構(gòu)圖電路的電路的VHDL描述由兩大部分組成描述由兩大部分組成1. 以關(guān)鍵詞以關(guān)鍵詞ENTITY引導(dǎo),引導(dǎo),END ENTITY mux21a結(jié)尾的語結(jié)尾的語句部分稱為句部分稱為實體。實體。 VHDL實體描述了電路器件的外部情況及各信號端口的實體描述
4、了電路器件的外部情況及各信號端口的基本性質(zhì)?;拘再|(zhì)。ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 2. 以關(guān)鍵詞以關(guān)鍵詞ARCHITECTURE引導(dǎo),引導(dǎo), END ARCHITECTURE one結(jié)尾的語句部分稱為結(jié)尾的語句部分稱為結(jié)構(gòu)體。結(jié)構(gòu)體。 VHDL結(jié)構(gòu)體負責(zé)描述電路器件的內(nèi)部邏輯功能和電路結(jié)構(gòu)體負
5、責(zé)描述電路器件的內(nèi)部邏輯功能和電路結(jié)構(gòu)。結(jié)構(gòu)。 對于既定的電路功能,對應(yīng)的電路結(jié)構(gòu)不是唯一的,可對于既定的電路功能,對應(yīng)的電路結(jié)構(gòu)不是唯一的,可以對應(yīng)不同的電路結(jié)構(gòu),取決于綜合器的基本元件庫的以對應(yīng)不同的電路結(jié)構(gòu),取決于綜合器的基本元件庫的來源、優(yōu)化方向和約束的選擇。來源、優(yōu)化方向和約束的選擇。VHDL結(jié)構(gòu)體中用于描述邏輯功能和電路結(jié)構(gòu)的語句分為順結(jié)構(gòu)體中用于描述邏輯功能和電路結(jié)構(gòu)的語句分為順序語句和并行語句序語句和并行語句順序語句:執(zhí)行方式類似于普通軟件語言的程序執(zhí)行方式,順序語句:執(zhí)行方式類似于普通軟件語言的程序執(zhí)行方式,按照語句的前后排列方式逐條順序執(zhí)行。按照語句的前后排列方式逐條順序執(zhí)
6、行。并行語句:無論多少語句,都是同時執(zhí)行的,與語句的前并行語句:無論多少語句,都是同時執(zhí)行的,與語句的前后次序無關(guān)。后次序無關(guān)。y = a WHEN s = 0 ELSE b ;并行語句(可參看并行語句(可參看P357)3.1.2 相關(guān)語句結(jié)構(gòu)和語法說明相關(guān)語句結(jié)構(gòu)和語法說明 【例【例3-4】ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END ENTITY e_name; 1. 1. 實體表達實體表達 VHDL完整的、可綜合的程序結(jié)構(gòu)必須完整地表達一片專完整的、可綜合的程序
7、結(jié)構(gòu)必須完整地表達一片專用集成電路的端口和電路功能用集成電路的端口和電路功能含有完整程序結(jié)構(gòu)的含有完整程序結(jié)構(gòu)的VHDL表述成為設(shè)計實體。表述成為設(shè)計實體。實體描述的是電路器件的端口構(gòu)成、端口類型、端口上流實體描述的是電路器件的端口構(gòu)成、端口類型、端口上流動的信號的屬性動的信號的屬性ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;2. 2. 實體名實體名 【例【例3-4】ENTITY e_name IS PORT ( p_name : port_m data_type; . p
8、_namei : port_mi data_type );END ENTITY e_name; ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;實體名是標識符,具體設(shè)計者自定。實體名是標識符,具體設(shè)計者自定。實體名取名原則:根據(jù)相應(yīng)電路功能取,以表示設(shè)計電路器件實體名取名原則:根據(jù)相應(yīng)電路功能取,以表示設(shè)計電路器件4位二進制計數(shù)器(位二進制計數(shù)器(counter4b););8位二進制加法器(位二進制加法器(adder8b)不能用數(shù)字和中文,不能與庫定義好的名稱沖突不能用數(shù)字和中
9、文,不能與庫定義好的名稱沖突不能用數(shù)字起頭,不能用數(shù)字起頭,74LS1603. 3. 端口語句和端口信號名端口語句和端口信號名 【例【例3-4】ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END ENTITY e_name; ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;端口語句用端口語句用Port ( )引導(dǎo),并在語句結(jié)尾處加分號引導(dǎo),并在語句結(jié)尾處加分
10、號“;”。P_name是端口信號名。是端口信號名。一般地,程序中所有由設(shè)計者自定的名稱,都是標識符。標識一般地,程序中所有由設(shè)計者自定的名稱,都是標識符。標識符不應(yīng)用數(shù)字、數(shù)字起頭的文字和中文表述。符不應(yīng)用數(shù)字、數(shù)字起頭的文字和中文表述。3.1.2 相關(guān)語句結(jié)構(gòu)和語法說明相關(guān)語句結(jié)構(gòu)和語法說明 4. 4. 端口模式端口模式 輸入端口,定義的通道為單向只讀模式輸入端口,定義的通道為單向只讀模式 輸出端口,定義的通道為單向輸出模式輸出端口,定義的通道為單向輸出模式 定義的通道確定為輸入輸出雙向端口定義的通道確定為輸入輸出雙向端口 緩沖端口,其功能與緩沖端口,其功能與INOUTINOUT類似類似 5
11、. 5. 數(shù)據(jù)類型數(shù)據(jù)類型 【例【例3-4】ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END ENTITY e_name; ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;Data_type是數(shù)據(jù)類型名。是數(shù)據(jù)類型名。VHDL規(guī)定任何一種數(shù)據(jù)對象的應(yīng)用都必須嚴格限定其取值范規(guī)定任何一種數(shù)據(jù)對象的應(yīng)用都必須嚴格限定其取值范圍和數(shù)值類型,對其傳輸或存儲的數(shù)據(jù)類
12、型作明確的界定。圍和數(shù)值類型,對其傳輸或存儲的數(shù)據(jù)類型作明確的界定。VHDL設(shè)計中,預(yù)先定義好要使用的數(shù)據(jù)類型,對于大規(guī)模電設(shè)計中,預(yù)先定義好要使用的數(shù)據(jù)類型,對于大規(guī)模電路描述的排錯十分有益。路描述的排錯十分有益。INTEGER、Boolean、STD_LOGIC、BIT(參看(參看P324)6. 6. 結(jié)構(gòu)體表達結(jié)構(gòu)體表達 【例【例3-5】ARCHITECTURE arch_name OF e_name IS 說明語句說明語句BEGIN (功能描述語句功能描述語句)END ARCHITECTURE arch_name ; ARCHITECTURE one OF mux21a IS BEGI
13、N y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 關(guān)鍵詞關(guān)鍵詞 結(jié)構(gòu)體名結(jié)構(gòu)體名“說明語句說明語句”包括在結(jié)構(gòu)體中,用以說明和定義數(shù)據(jù)對象、數(shù)包括在結(jié)構(gòu)體中,用以說明和定義數(shù)據(jù)對象、數(shù)據(jù)類型、元件調(diào)用聲明等。說明語句并非是必須的。據(jù)類型、元件調(diào)用聲明等。說明語句并非是必須的。SIGNAL e : STD_LOGIC;“功能描述語句功能描述語句”,必須在結(jié)構(gòu)體中給出相應(yīng)的電路功能描述,必須在結(jié)構(gòu)體中給出相應(yīng)的電路功能描述語句,可以是并行語句、順序語句或其組合。語句,可以是并行語句、順序語句或其組合??删C合的、完整的可綜合的、完整的VHDL程序有比
14、較固定的結(jié)構(gòu)。程序有比較固定的結(jié)構(gòu)。設(shè)計實體設(shè)計實體各類庫及其程序包的使用聲明各類庫及其程序包的使用聲明實體描述實體描述結(jié)構(gòu)體描述,可含有不同的邏輯表達語句結(jié)構(gòu)結(jié)構(gòu)體描述,可含有不同的邏輯表達語句結(jié)構(gòu)把一個完整的、可綜合的把一個完整的、可綜合的VHDL程序設(shè)計構(gòu)建為設(shè)計實體(獨程序設(shè)計構(gòu)建為設(shè)計實體(獨立的電路功能結(jié)構(gòu)),其程序代碼常被成為立的電路功能結(jié)構(gòu)),其程序代碼常被成為RTL描述描述7. 7. 賦值符號和數(shù)據(jù)比較符號賦值符號和數(shù)據(jù)比較符號 賦值符賦值符 “=” 表達式表達式s=0的等號的等號“=”沒有賦值的含義,只是一種數(shù)據(jù)比較符號。沒有賦值的含義,只是一種數(shù)據(jù)比較符號。 其輸出數(shù)據(jù)比
15、較的邏輯關(guān)系。其輸出數(shù)據(jù)比較的邏輯關(guān)系。 IF a THEN . - 注意,注意,a的數(shù)據(jù)類型必須是的數(shù)據(jù)類型必須是boolean IF (s1=0)AND(s2=1)OR(cb+1) THEN . ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; Y=a,表示輸入端口,表示輸入端口a的數(shù)據(jù)向輸出端口的數(shù)據(jù)向輸出端口y傳輸傳輸或信號或信號a向信號向信號y賦值。賦值符兩邊信號類型必須一致賦值。賦值符兩邊信號類型必須一致RU : OUT BOOLEANRU= TRUE WHEN (
16、CD) ELSE FALSE8. WHEN_ELSE8. WHEN_ELSE條件信號賦值語句條件信號賦值語句 賦值目標賦值目標 = 表達式表達式 WHEN 賦值條件賦值條件 ELSE 表達式表達式 WHEN 賦值條件賦值條件 ELSE . 表達式表達式 ; z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ; 條件測試的順序性,條件信號賦值語句中的第一子句具有最條件測試的順序性,條件信號賦值語句中的第一子句具有最高賦值優(yōu)先級,第二句其次,以此類推高賦值優(yōu)先級,第二句其次,以此類推條件信號賦值語句的功能與進程(條件信號賦值語句的功能與進程(PROCESS)中
17、)中IF語句類同語句類同執(zhí)行條件信號語句時,賦值條件按書寫先后關(guān)系逐項確定,即發(fā)現(xiàn)執(zhí)行條件信號語句時,賦值條件按書寫先后關(guān)系逐項確定,即發(fā)現(xiàn)“賦值條件賦值條件”滿足,即把滿足,即把“表達式表達式”的值賦予的值賦予“賦值目標賦值目標”ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 9. 9. 關(guān)鍵字關(guān)鍵字關(guān)鍵字(關(guān)鍵字(Key Word)指指VHDL語言中預(yù)定義的有特殊含義的英文語句。語言中預(yù)定義的有特殊含義的英文語句。VHDL中不能用關(guān)鍵字命名自用的對象,或用作標識符中不能用
18、關(guān)鍵字命名自用的對象,或用作標識符多數(shù)的多數(shù)的VHDL編輯器,都對關(guān)鍵字敏感,會使用特定顏色標識,因此在編輯器,都對關(guān)鍵字敏感,會使用特定顏色標識,因此在編輯程序時,防止誤用關(guān)鍵字。編輯程序時,防止誤用關(guān)鍵字。關(guān)鍵字的大小寫不敏感。關(guān)鍵字的大小寫不敏感。10. 10. 標識符標識符標識符是設(shè)計者自行定義的,用于標識不同名稱的詞語。標識符是設(shè)計者自行定義的,用于標識不同名稱的詞語。與關(guān)鍵字一樣,不分大小寫。與關(guān)鍵字一樣,不分大小寫。3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述-2 【例【例3-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;E
19、NTITY mux21a IS PORT ( a, b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL e: STD_LOGIC; SIGNAL d: STD_LOGIC; BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ;END ARCHITECTURE one ; 【例【例3-1】ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN
20、 BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 1. 邏輯操作符邏輯操作符文字文字AND、OR和和NOT是邏輯操作符。是邏輯操作符。VHDL共有七種基本邏共有七種基本邏輯操作符。輯操作符。AND(與),(與),OR(或),(或),NAND(與非),(與非),NOR(或非),(或非),XOR(異或),(異或),XNOR(同或),(同或),NOT(取反)(取反)信號在這些操作符的作用下可構(gòu)成組合邏輯。信號
21、在這些操作符的作用下可構(gòu)成組合邏輯。邏輯操作符所要求的操作數(shù)的數(shù)據(jù)類型:邏輯操作符所要求的操作數(shù)的數(shù)據(jù)類型:BIT、BOOLEAN和和STD_LOGIC。VHDL直接用對應(yīng)的英語文字表達邏輯操作符號,顯示硬件行直接用對應(yīng)的英語文字表達邏輯操作符號,顯示硬件行為描述語言的特征。為描述語言的特征。2. 標準邏輯位數(shù)據(jù)類型標準邏輯位數(shù)據(jù)類型STD_LOGIC BIT數(shù)據(jù)類型定義:數(shù)據(jù)類型定義: TYPE BIT IS(0,1); -只有兩種取值只有兩種取值 STD_LOGIC數(shù)據(jù)類型定義:數(shù)據(jù)類型定義: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); ENTITY mu
22、x21a IS PORT ( a, b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC );END ENTITY mux21a;類型類型STD_LOGIC比比BIT包含的內(nèi)容更豐富和完整。包含的內(nèi)容更豐富和完整。STD_LOGIC九種數(shù)據(jù)的含義(九種數(shù)據(jù)的含義(P69)STD_LOGIC具有更寬的取值范圍,其描述與實際電路有更好更實用的適具有更寬的取值范圍,其描述與實際電路有更好更實用的適應(yīng)性。應(yīng)性。3. 3. 設(shè)計庫和標準程序包設(shè)計庫和標準程序包 LIBRARY WORK ;LIBRARY STD ; USE STD.STANDARD.
23、ALL ; 【例【例3-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;VHDL設(shè)計文件保存在某一文件夾,并指定為工程設(shè)計文件保存在某一文件夾,并指定為工程PROJECT的文件所在的的文件所在的目錄,此路徑默認為工作庫。目錄,此路徑默認為工作庫。LIBRARY WORK,VHDL工具才能調(diào)用此路徑中相關(guān)的元件和程序包。工具才能調(diào)用此路徑中相關(guān)的元件和程序包。標準庫標準庫STD和工作庫都是默認打開的,如例和工作庫都是默認打開的,如例3-1,不必顯式表達。,不必顯式表達。如例如例3-2,需要定義特殊數(shù)據(jù)類型,需要使用一些特殊的程序包。,需要定義特殊數(shù)據(jù)類型,需
24、要使用一些特殊的程序包。使用庫和程序包的一般定義表式是:使用庫和程序包的一般定義表式是:【例【例3-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;STD_LOGIC數(shù)據(jù)類型定義在數(shù)據(jù)類型定義在STD_LOGIC_1164程序包中,此包由程序包中,此包由IEEE庫定義。此程序包所在的程序庫取名庫定義。此程序包所在的程序庫取名IEEE,因此,因此IEEE.STD_LOGIC_1164.ALLIEEE不屬于不屬于VHDL的標準庫,因此,在使用時需要進行聲明。的標準庫,因此,在使用時需要進行聲明。4. 4. 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象ARCHITECT
25、URE one OF mux21a IS SIGNAL e: STD_LOGIC; SIGNAL d: STD_LOGIC; BEGINSINGAL:定義某標識符為信號的關(guān)鍵詞,信號屬于數(shù)據(jù)對象:定義某標識符為信號的關(guān)鍵詞,信號屬于數(shù)據(jù)對象在在VHDL中,數(shù)據(jù)對象類似于一種容器,能接受不同類型的數(shù)據(jù)類型的賦中,數(shù)據(jù)對象類似于一種容器,能接受不同類型的數(shù)據(jù)類型的賦值。值。SIGNAL d: STD_LOGIC;規(guī)定了規(guī)定了d的屬性特征的屬性特征對于不同的邏輯描述,被定義的信號可能成為一個數(shù)據(jù)暫存點,或一根信對于不同的邏輯描述,被定義的信號可能成為一個數(shù)據(jù)暫存點,或一根信號連接線等號連接線等數(shù)據(jù)對
26、象有三類:信號(數(shù)據(jù)對象有三類:信號(SIGNAL)、變量()、變量(VARIABLE)、常量)、常量(CONSTANT)被定義的標識符必須確定為某類數(shù)據(jù)對象,也還必須被定義為某種數(shù)據(jù)類被定義的標識符必須確定為某類數(shù)據(jù)對象,也還必須被定義為某種數(shù)據(jù)類型。(用什么裝,裝什么)型。(用什么裝,裝什么)3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述3【例【例3-3】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21a IS PORT ( a,b,s : IN STD_LOGIC; y : OUT STD_LOGIC );END E
27、NTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; 利用利用IF_THEN_ELSE語句表達了語句表達了VHDL順序語句。順序語句。IF語句的執(zhí)行順序類似與軟件語言,根據(jù)語句排列先后順序語句的執(zhí)行順序類似與軟件語言,根據(jù)語句排列先后順序進行判斷。進行判斷。順序語句同樣能描述并行運行的組合邏輯電路。順序語句同樣能描述并行運行的組合邏輯電路。判斷表達式可以
28、是一個值,也可以是復(fù)雜的邏輯或運算表達判斷表達式可以是一個值,也可以是復(fù)雜的邏輯或運算表達式。式。IF s = 0 THEN y = a ; ELSE y = b ; END IF;1. 1. 條件語句條件語句 IF a THEN . - 注意,注意,a的數(shù)據(jù)類型必須是的數(shù)據(jù)類型必須是boolean IF (s1=0)AND(s2=1)OR(cb+1) THEN . 2. 2. 進程語句和順序語句進程語句和順序語句PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;由由PROCESS引導(dǎo)的語句
29、成為進程語句。引導(dǎo)的語句成為進程語句。所有順序描述語句都必須放在進程語句中。所有順序描述語句都必須放在進程語句中。PROCESS(a,b,s)稱進程的敏感信號表,通常要求把進)稱進程的敏感信號表,通常要求把進程中的程中的所有輸入信號所有輸入信號都放在敏感信號表中。都放在敏感信號表中。PROCESS語句的執(zhí)行由敏感信號的變化啟動,引導(dǎo)語句被執(zhí)語句的執(zhí)行由敏感信號的變化啟動,引導(dǎo)語句被執(zhí)行一遍,然后返回進程的起始端,進入等待狀態(tài),直到下一行一遍,然后返回進程的起始端,進入等待狀態(tài),直到下一次任意敏感信號的變化。次任意敏感信號的變化。一個結(jié)構(gòu)體中可以包括任意個進程語句結(jié)構(gòu),所有的進程語一個結(jié)構(gòu)體中可
30、以包括任意個進程語句結(jié)構(gòu),所有的進程語句都是并行語句。句都是并行語句。任一進程任一進程PROCESS引導(dǎo)的語句結(jié)構(gòu)屬于順序語句引導(dǎo)的語句結(jié)構(gòu)屬于順序語句3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述 圖圖3-3 mux21a功能時序波形功能時序波形 圖圖3-10 半加器半加器h_adder電路圖及其真值表電路圖及其真值表 3.1.4 半加器描述半加器描述 I113coasob1001010110001100cosobanotxnor2and2半加器可以有多種表達方式半加器可以有多種表達方式【用電路原理圖表達的半加器【用電路原理圖表達的半加器】 【用真值表的形式給出半加器的描述【用
31、真值表的形式給出半加器的描述】3.1.4 半加器描述半加器描述 【例【例3-4】LIBRARY IEEE; -半加器描述半加器描述(1):布爾方程描述方法:布爾方程描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = a XOR b ; co = a AND b ; END ARCHITECTURE fh1; X康芯科技康
32、芯科技【例【例3-5】LIBRARY IEEE; -半加器描述半加器描述(2):真值表描述方法:真值表描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -定義標準邏輯位矢量定義標準邏輯位矢量BEGIN 數(shù)據(jù)類型數(shù)據(jù)類型 abc so=0; co so=1
33、; co so=1; co so=0; co NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; 1. 1. CASECASE語句語句 CASE ISWhen = ; . ; ;When = ; . ; ;.WHEN OTHERS = ;END CASE ; 執(zhí)行執(zhí)行CASE語句時,首先計算語句時,首先計算“表達式表達式”語句,然后根據(jù)語句,然后根據(jù)WHEN條件語句中相同的條件語句中相同的“選擇值或標識符選擇值或標識符”,執(zhí)行對應(yīng)的順,執(zhí)行對應(yīng)的順序語句,最后結(jié)束序語句,最后結(jié)束CASE語句。語句。CASE abc IS WHEN 00 =
34、 so=0; co so=1; co so=1; co so=0; co NULL ; END CASE;1. 1. CASECASE語句語句 CASE中需要注意以下幾點:中需要注意以下幾點:(1)WHEN條件句中的選擇值或標識符所代表的值必須在條件句中的選擇值或標識符所代表的值必須在CASE的的“表達式表達式”的的取值范圍取值范圍內(nèi),內(nèi),數(shù)據(jù)類型數(shù)據(jù)類型也必須匹配。也必須匹配。(2)所有條件句中的選擇值必須覆蓋表達式的取值,否則)所有條件句中的選擇值必須覆蓋表達式的取值,否則最末必須加上最末必須加上WHEN OTHERS = ;OTHERS表表示以上已經(jīng)列出的所有條件句中示以上已經(jīng)列出的所有
35、條件句中未能列出的其他可能取值未能列出的其他可能取值。(3)CASE語句中的選擇值只能出現(xiàn)一次。語句中的選擇值只能出現(xiàn)一次。(4)CASE語句執(zhí)行必須選中,且只能選中所列條件語句中語句執(zhí)行必須選中,且只能選中所列條件語句中的一條。的一條。CASE abc IS WHEN 00 = so=0; co so=1; co so=1; co so=0; co NULL ; END CASE;2. 2. 標準邏輯矢量數(shù)據(jù)類型標準邏輯矢量數(shù)據(jù)類型 STD_LOGIC_VECTOR(標準一維矢量數(shù)據(jù))(標準一維矢量數(shù)據(jù)) STD_LOGIC (標準位類型)(標準位類型)在使用在使用STD_LOGIC_VEC
36、TOR中,中,必須注明其數(shù)組寬度,即位寬,如:必須注明其數(shù)組寬度,即位寬,如: B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4) B = 01100010 ; - B(7)為為 0 B(4 DOWNTO 1) = 1101 ; - B(4)為為 1 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN3. 3. 并
37、置操作符并置操作符 SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;.a = 1 0 d(1) 1 ; - 元素與元素并置,并置元素與元素并置,并置后的數(shù)組長度為后的數(shù)組長度為4. IF a d = 101011 THEN . - 在在IF條件句中可以使用并置符條件句中可以使用并置符 操作符操作符&表示將操作數(shù)或數(shù)組表示將操作數(shù)或數(shù)組合并起來合并起來形成新的數(shù)組矢量形成新的數(shù)組矢量如:如:“VH”&“DL”的結(jié)果為的結(jié)果為“VHDL”利用并置符可以有多種方式建
38、立新的數(shù)組利用并置符可以有多種方式建立新的數(shù)組BEGIN abc = a & b ; -a相并相并b,即,即a與與b并置操作并置操作圖圖3-11 全加器全加器f_adder電路圖及其實體模塊電路圖及其實體模塊 3.1.5 1位二進制全加器的位二進制全加器的VHDL描述描述 I113aincoutcoutainbinsumcinbinsumcinf_adderor2afedu3u2u1baccosoBcosoBh_adderAh_adderA1位全加器可以由兩個半加器和一個或門連接而成。位全加器可以由兩個半加器和一個或門連接而成。半加器的電路原理圖半加器的電路原理圖半加器的半加器的VHD
39、L描述描述全加器的頂層描述全加器的頂層描述【例【例3-18】 LIBRARY IEEE ; -或門邏輯描述或門邏輯描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c ain,b=bin,co=d,so=e);-例化語句例化語句 u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum); u3 : or2a PORT MA
40、P(a=d, b=f, c=cout); END ARCHITECTURE fd1; I113aincoutcoutainbinsumcinbinsumcinf_adderor2afedu3u2u1baccosoBcosoBh_adderAh_adderA1. 全加器描述和例化語句全加器描述和例化語句 COMPONENT 元件名元件名 IS PORT (端口名表端口名表) ;END COMPONENT 文件名文件名 ; 例化語句由兩個部分組成,一是將一個現(xiàn)成的設(shè)計實體定義例化語句由兩個部分組成,一是將一個現(xiàn)成的設(shè)計實體定義為一個元件,語句功能對待調(diào)用的元件作出調(diào)用聲明。為一個元件,語句功能對待
41、調(diào)用的元件作出調(diào)用聲明。元件定義語句,相當(dāng)于對一個現(xiàn)成的設(shè)計實體進行封裝,使其只留出對外元件定義語句,相當(dāng)于對一個現(xiàn)成的設(shè)計實體進行封裝,使其只留出對外的接口界面,如同一個集成芯片只留幾個引腳一般。的接口界面,如同一個集成芯片只留幾個引腳一般。端口名表,將對應(yīng)端口名表,將對應(yīng)VHDL的實體描述直接復(fù)制,將的實體描述直接復(fù)制,將ENTITY改成改成COMPONENT即可。(注意一一對應(yīng)關(guān)系)。即可。(注意一一對應(yīng)關(guān)系)。元件定義語句必須放在結(jié)構(gòu)體的元件定義語句必須放在結(jié)構(gòu)體的Architecture和和BEGIN之間。之間。COMPONENT h_adder PORT ( a,b : IN ST
42、D_LOGIC; co,so : OUT STD_LOGIC);元件例化是多層次的,一個調(diào)用了較低層次元件的頂層設(shè)計實元件例化是多層次的,一個調(diào)用了較低層次元件的頂層設(shè)計實體本身也可以被更高層次的設(shè)計實體所調(diào)用,成為該設(shè)計實體體本身也可以被更高層次的設(shè)計實體所調(diào)用,成為該設(shè)計實體中的一個元件。(類似于層層嵌套的關(guān)系,系統(tǒng)中的一個元件。(類似于層層嵌套的關(guān)系,系統(tǒng)-子系統(tǒng)子系統(tǒng)-部件)部件)1. 全加器描述和例化語句全加器描述和例化語句 例化名例化名 : 元件名元件名 PORT MAP( 端口名端口名 = 連接端口名連接端口名,.); COMPONENT h_adder PORT ( c,d :
43、 IN STD_LOGIC; e,f : OUT STD_LOGIC); COMPONENT h_adder PORT ( a,b : IN STD_LOGIC; co,so : OUT STD_LOGIC);元件例化的端口說明,不一定需要使用唯一的表達方式,但元件例化的端口說明,不一定需要使用唯一的表達方式,但注意端口信號的數(shù)據(jù)類型的定義必須與原設(shè)計實體文件一致。注意端口信號的數(shù)據(jù)類型的定義必須與原設(shè)計實體文件一致。第二部分是元件與當(dāng)前設(shè)計實體(頂層文件)中元件間及端第二部分是元件與當(dāng)前設(shè)計實體(頂層文件)中元件間及端口的連接說明??诘倪B接說明。例化名例化名 : 元件名元件名 PORT MA
44、P( 端口名端口名 = 連接端口名連接端口名,.); 第二部分是元件與當(dāng)前設(shè)計實體(頂層文件)中元件間及端第二部分是元件與當(dāng)前設(shè)計實體(頂層文件)中元件間及端口的連接說明??诘倪B接說明。SIGNAL d,e,f : STD_LOGIC; -定義定義3個信號作為內(nèi)部的連接線。個信號作為內(nèi)部的連接線。 BEGIN u1 : h_adder PORT MAP(a=ain,b=bin,co=d,so=e);-例化語句例化語句 u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum); u3 : or2a PORT MAP(a=d, b=f, c=cout);I113
45、aincoutcoutainbinsumcinbinsumcinf_adderor2afedu3u2u1baccosoBcosoBh_adderAh_adderA例化名例化名端口名:頂層文件中待連接的各個元件本身的端口名端口名:頂層文件中待連接的各個元件本身的端口名連接端口名:頂層系統(tǒng)中,準備接入元件的端口相連的通信線名連接端口名:頂層系統(tǒng)中,準備接入元件的端口相連的通信線名左邊放置內(nèi)部元件的端口名,右面放置內(nèi)部元件以外需要連接的端口名和信左邊放置內(nèi)部元件的端口名,右面放置內(nèi)部元件以外需要連接的端口名和信號名號名3.2 基本時序電路的基本時序電路的VHDL描述描述 VHDL在時序電路的描述上有
46、許多獨特之處。在時序電路的描述上有許多獨特之處。VHDL主要通過對時序器件功能和邏輯行為的描述,而非結(jié)構(gòu)主要通過對時序器件功能和邏輯行為的描述,而非結(jié)構(gòu)上的描述使得計算機綜合出符合要求的時序電路。上的描述使得計算機綜合出符合要求的時序電路。行為描述方式體現(xiàn)了行為描述方式體現(xiàn)了VHDL電路系統(tǒng)行為描述的強大功能。電路系統(tǒng)行為描述的強大功能。3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述描述 X康芯科技康芯科技【例【例3-6】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D :
47、 IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -類似于在芯片內(nèi)部定義一個數(shù)據(jù)的暫存節(jié)點類似于在芯片內(nèi)部定義一個數(shù)據(jù)的暫存節(jié)點 BEGIN PROCESS (CLK,Q1) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; -將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線-是注釋符號)是注釋符號) END bhv; 圖3-4 D觸發(fā)器
48、圖圖3-6 D觸發(fā)器觸發(fā)器3.2.1 D觸發(fā)器的描述觸發(fā)器的描述圖3-4 D觸發(fā)器1. 1.上升沿檢測表式和信號屬性函數(shù)上升沿檢測表式和信號屬性函數(shù)EVENT “CLKEVENT AND CLK=1” EVENT EVENT 上述條件語句的判斷表達式用于檢測時鐘信號上述條件語句的判斷表達式用于檢測時鐘信號CLK的上升沿,的上升沿,若檢測到若檢測到CLK的上升沿,表達式將輸出的上升沿,表達式將輸出TRUEEVENT是信號屬性函數(shù),用于獲得信號行為的信息的函數(shù)是信號屬性函數(shù),用于獲得信號行為的信息的函數(shù)CLKEVENT 是對時鐘信號是對時鐘信號CLK(標識符)在當(dāng)前的一個極(標識符)在當(dāng)前的一個極
49、小的時間段內(nèi)發(fā)生時間的情況進行檢測。小的時間段內(nèi)發(fā)生時間的情況進行檢測。發(fā)生事件,就是發(fā)生事件,就是CLK在其數(shù)據(jù)類型的取值范圍內(nèi)發(fā)生變化,從在其數(shù)據(jù)類型的取值范圍內(nèi)發(fā)生變化,從一種取值轉(zhuǎn)變到另一種取值。一種取值轉(zhuǎn)變到另一種取值。注意注意CLK的數(shù)據(jù)類型定義,的數(shù)據(jù)類型定義,BIT STD_LOGIC是不一樣的。而是不一樣的。而且需要考慮跳變前、跳變后的邏輯輸出值。且需要考慮跳變前、跳變后的邏輯輸出值。CLKEVENT改成改成 CLKEVENT AND CLK=1,表示,表示CLK時間時間在時間內(nèi)發(fā)生跳變,而且之后保持高電平狀態(tài)。在時間內(nèi)發(fā)生跳變,而且之后保持高電平狀態(tài)。兩種情況相與后,滿足上
50、述條件,輸出兩種情況相與后,滿足上述條件,輸出TRUE,得到一個綜合,得到一個綜合判斷,對信號判斷,對信號CLK的上升沿進行檢測。的上升沿進行檢測。CLKEVENT AND CLK=1成為上升沿測試語句。成為上升沿測試語句。PROCESS (CLK,Q1) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;2. 2. 不完整條件語句與時序電路不完整條件語句與時序電路 在在D觸發(fā)器中,完成觸發(fā)器保持原有信號功能的語句提示觸發(fā)器中,完成觸發(fā)器保持原有信號功能的語句提示當(dāng)當(dāng)CLK被觸發(fā)啟動時,被觸發(fā)啟動時,IF語句將測定
51、表達式語句將測定表達式“CLKEVENT AND CLK = 1 ”是否滿足條件。是否滿足條件。若若CLK為上升沿,滿足條件表達式的檢測,執(zhí)行賦值為上升沿,滿足條件表達式的檢測,執(zhí)行賦值Q1 b THEN q = 1 ; ELSIF a b THEN q b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; . 綜上,引入時序電路結(jié)構(gòu)的必要條件和關(guān)鍵是:綜上,引入時序電路結(jié)構(gòu)的必要條件和關(guān)鍵是:不完整的任何形式的條件語句的出現(xiàn),且并不局限于不完整的任何形式的條件語句的出現(xiàn),且并不局限于if語句,甚語句,甚至不局限于順序語句。至不局限于順序語句。3.2.3 實現(xiàn)時序電路的
52、實現(xiàn)時序電路的VHDL不同表述不同表述 (非唯一性)(非唯一性)【例【例3-11】.PROCESS (CLK) BEGINIF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -確保確保CLK的變化是一次上升沿的跳變的變化是一次上升沿的跳變 END IF; END PROCESS ; 利用表達式來利用表達式來CLKEVENT AND CLK = 1 檢測檢測CLK的上升沿,從而實現(xiàn)了的上升沿,從而實現(xiàn)了邊沿觸發(fā)型寄存器的設(shè)計。邊沿觸發(fā)型寄存器的設(shè)計。VHDL還有其他多種實現(xiàn)時序元件的常用方式還有其他多種實現(xiàn)時序元件的常用方式例:信
53、號例:信號CLK的數(shù)據(jù)類型是的數(shù)據(jù)類型是STD_LOGIC,它可能的取值有,它可能的取值有9種,而種,而CLKEVENT 為真的條件是為真的條件是CLK在在9種數(shù)據(jù)中的任何兩種間的跳變。種數(shù)據(jù)中的任何兩種間的跳變。當(dāng)當(dāng)CLKEVENT AND CLK = 1 為真時,并不能推定為真時,并不能推定CLK的前一狀態(tài)為的前一狀態(tài)為0,為了確保為了確保CLK發(fā)生上升沿跳變,可表述為發(fā)生上升沿跳變,可表述為3.2.3 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 【例【例3-12】.PROCESS (CLK) BEGINIF CLK=1 AND CLKLAST_VALUE=0 -同例同例3-11
54、 THEN Q = D ; END IF; END PROCESS ; LAST_VALUE也屬于信號屬性函數(shù),它表示最近一次事件發(fā)生前的值。也屬于信號屬性函數(shù),它表示最近一次事件發(fā)生前的值。CLKLAST_VALUE=0為為TRUE,表示,表示CLK在上一狀態(tài)為在上一狀態(tài)為0【例【例3-11】.PROCESS (CLK) BEGINIF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -確保確保CLK的變化是一次上升沿的跳變的變化是一次上升沿的跳變 END IF; END PROCESS ; 【例【例3-13】LIBRARY I
55、EEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) - 必須打開必須打開STD_LOGIC_1164程序包程序包 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; -在此,賦值語句可以放在進程外,作為并行賦值
56、語句在此,賦值語句可以放在進程外,作為并行賦值語句 END ; Rising_edge()是是IEEE庫標準程庫標準程序包序包STD_LOGIC_1164的預(yù)定的預(yù)定義函數(shù)義函數(shù) 這條語句只能用于標準邏輯位這條語句只能用于標準邏輯位數(shù)據(jù)類型數(shù)據(jù)類型STD_LOGIC的信號。的信號。 必須打開必須打開IEEE庫和程序包庫和程序包STD_LOGIC_1164,定義,定義CLK的數(shù)據(jù)類型為的數(shù)據(jù)類型為STD_LOGIC3.2.3 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 【例【例3-14】.PROCESS BEGIN wait until CLK = 1 ; -利用利用wait語句語句
57、Q = D ;END PROCESS; 下降沿語句:下降沿語句: CLKEVENT AND (CLK=0) AND (CLKLAST_VALUE=1) Falling_edge()CLKEVENT AND CLK = 0利用利用wait until語句實現(xiàn)時序電路設(shè)計,含義是如果語句實現(xiàn)時序電路設(shè)計,含義是如果CLK當(dāng)前的當(dāng)前的值不是值不是1,就等待并保持,就等待并保持Q的原值不變,直到的原值不變,直到CLK變?yōu)樽優(yōu)?時時才對才對Q進行賦值更新。進行賦值更新。VHDL要求當(dāng)進程語句中使用要求當(dāng)進程語句中使用wait語句后,就語句后,就不必列出敏感信不必列出敏感信號號3.2.3 實現(xiàn)時序電路的實
58、現(xiàn)時序電路的VHDL不同表述不同表述 【例【例3-15】.PROCESS (CLK) BEGIN -可以將可以將BEGIN和和PROCESS寫再一行寫再一行 IF CLK = 1 THEN Q = D ; -利用進程的啟動特性產(chǎn)生對利用進程的啟動特性產(chǎn)生對CLK的邊沿檢測的邊沿檢測 END IF; END PROCESS ; 例例3-15描述的描述的D觸發(fā)器的觸發(fā)器的CLK邊沿檢測是由,邊沿檢測是由,PROCESS語句和語句和IF語句的功能特性相結(jié)合實現(xiàn)的。語句的功能特性相結(jié)合實現(xiàn)的。圖圖3-7 例例3-13的時序波形的時序波形 1. 當(dāng)當(dāng)CLK為為0時,時,PROCESS語句處于等待狀態(tài),直
59、到發(fā)生一語句處于等待狀態(tài),直到發(fā)生一次由次由0到到1的跳變才啟動進程語句。的跳變才啟動進程語句。2. 進入進程執(zhí)行進入進程執(zhí)行IF語句時,又滿足了語句時,又滿足了CLK為為1的條件,于是的條件,于是對對Q進行賦值更新。進行賦值更新。3. 此前,此前,Q一直保持原值不變,直到下一次上跳時鐘邊沿的到來。一直保持原值不變,直到下一次上跳時鐘邊沿的到來。3.2.3 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 【例【例3-16】.PROCESS (CLK,D) BEGIN IF CLK = 1 -電平觸發(fā)型寄存器電平觸發(fā)型寄存器 THEN Q = D ; END IF; END PROCESS
60、 ; 圖圖3-8 例例3-14的時序波形的時序波形 Q必須處于數(shù)據(jù)原值保存的狀態(tài),必須處于數(shù)據(jù)原值保存的狀態(tài),綜合結(jié)果提供了一個電平觸發(fā)型綜合結(jié)果提供了一個電平觸發(fā)型的時序元件的時序元件1. CLK發(fā)生跳變發(fā)生跳變2. D發(fā)生跳變發(fā)生跳變X康芯科技康芯科技3.2.4 異步時序電路設(shè)計異步時序電路設(shè)計 構(gòu)成時序電路的進程稱為時鐘進程。構(gòu)成時序電路的進程稱為時鐘進程。 在時序電路設(shè)計中應(yīng)注意,一個時鐘進程只能構(gòu)成對應(yīng)單一在時序電路設(shè)計中應(yīng)注意,一個時鐘進程只能構(gòu)成對應(yīng)單一時鐘信號的時序電路,如果在進程中需要構(gòu)成多觸發(fā)器時序時鐘信號的時序電路,如果在進程中需要構(gòu)成多觸發(fā)器時序電路,也只能產(chǎn)生對應(yīng)某個單一時鐘的同步時序邏輯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色家居產(chǎn)品免責(zé)任協(xié)議書3篇
- 2025年度農(nóng)村土地租賃與農(nóng)業(yè)廢棄物資源化利用項目合作合同2篇
- 二零二五年度全新音樂節(jié)演出活動承辦服務(wù)合同3篇
- 2025年度年度合伙開設(shè)中式快餐連鎖店合同3篇
- 2025年度農(nóng)村土地互換與農(nóng)業(yè)綠色發(fā)展合作協(xié)議
- 二零二五年度建筑用石材采購與加工合作協(xié)議3篇
- 二零二五年度現(xiàn)代化工廠生產(chǎn)線整體轉(zhuǎn)讓協(xié)議3篇
- 2025年度養(yǎng)老院老人外出社區(qū)活動安全保障合同3篇
- 二零二五年度金融科技基金公司投資合作協(xié)議3篇
- 二零二五年度房地產(chǎn)開發(fā)企業(yè)借款合同3篇
- 2021年貴安新區(qū)產(chǎn)業(yè)發(fā)展控股集團有限公司招聘筆試試題及答案解析
- 安全文化培訓(xùn) (注冊安工再培訓(xùn))課件
- 色粉-MSDS物質(zhì)安全技術(shù)資料
- 骨科學(xué)研究生復(fù)試真題匯總版
- 石油化工鋼結(jié)構(gòu)工程施工及驗收規(guī)范
- 遼海版六年級音樂上冊第8單元《3. 演唱 姐妹們上場院》教學(xué)設(shè)計
- 形勢任務(wù)教育宣講材料第一講——講上情
- 物業(yè)安全員考核實施細則
- 中國地質(zhì)大學(xué)(武漢)教育發(fā)展基金會籌備成立情況報告
- 第四章破產(chǎn)法(破產(chǎn)法)教學(xué)課件
- PE拖拉管施工方案標準版
評論
0/150
提交評論