




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、HDL-Hardware Description Language 一種用于描述數(shù)字電路的功能或行為的語(yǔ)言。目的是提為電路設(shè)計(jì)效率,縮短設(shè)計(jì)周期,減小設(shè)計(jì)成本,可在芯片制造前進(jìn)行有效的仿真和錯(cuò)誤檢測(cè)。 優(yōu)點(diǎn): HDL設(shè)計(jì)的電路能獲得非常抽象級(jí)的描述。如基于RTL(Register Transfer Level)描述的IC,可用于不同的工藝。 HDL設(shè)計(jì)的電路,在設(shè)計(jì)的前期,就可以完成電路的功能級(jí)的驗(yàn)證。 HDL設(shè)計(jì)的電路類似于計(jì)算機(jī)編程。 常用的HDL語(yǔ)言:VHDL 、Verilog HDL 第1頁(yè)/共112頁(yè) VHDL是美國(guó)國(guó)防部在20世紀(jì)80年代初為實(shí)現(xiàn)其高速集成電路硬件VHSIC計(jì)劃提出
2、的描述語(yǔ)言; IEEE從1986年開(kāi)始致力于VHDL標(biāo)準(zhǔn)化工作,融合了其它ASIC芯片制造商開(kāi)發(fā)的硬件描述語(yǔ)言的優(yōu)點(diǎn),于93年形成了標(biāo)準(zhǔn)版本(IEEE.std_1164)。 1995年,我國(guó)國(guó)家技術(shù)監(jiān)督局推薦VHDL做為電子設(shè)計(jì)自動(dòng)化硬件描述語(yǔ)言的國(guó)家標(biāo)準(zhǔn)。 VHDL 概述:VHDL VHSIC Hardwarter Description Language Very High speed integrated circuitVHSIC第2頁(yè)/共112頁(yè) 覆蓋面廣,系統(tǒng)硬件描述能力強(qiáng),是一個(gè)多層次的硬件描述語(yǔ)言; VHDL語(yǔ)言具有良好的可讀性,既可以被計(jì)算機(jī)接受,也容易被人們所理解; VHDL
3、語(yǔ)言可以與工藝無(wú)關(guān)編程; VHDL語(yǔ)言已做為一種IEEE的工業(yè)標(biāo)準(zhǔn),便于使用、交流和推廣。 VHDL語(yǔ)言的不足之處: VHDL優(yōu)點(diǎn): 設(shè)計(jì)的最終實(shí)現(xiàn)取決于針對(duì)目標(biāo)器件的編程器,工具的不同會(huì)導(dǎo)致綜合質(zhì)量不一樣。第3頁(yè)/共112頁(yè)標(biāo)識(shí)符(Identifiers)要求:l 首字符必須是字母l 末字符不能為下劃線l 不允許出現(xiàn)兩個(gè)連續(xù)的下劃線l 不區(qū)分大小寫(xiě)l VHDL定義的保留字(關(guān)鍵字),不能用作標(biāo)識(shí)符l 標(biāo)識(shí)符字符最長(zhǎng)可以是32個(gè)字符。注釋由兩個(gè)連續(xù)的虛線()引導(dǎo)。3.1 VHDL語(yǔ)言基礎(chǔ) 標(biāo)識(shí)符用來(lái)定義常數(shù)、變量、信號(hào)、端口、子程序或參數(shù)的名字,由字母(AZ,az)、數(shù)字(09)和下劃線(_)
4、字符組成。第4頁(yè)/共112頁(yè)例如: 關(guān)鍵字(保留字): 關(guān)鍵字(keyword)是VHDL中具有特別含義的單詞,只能做為固定的用途,用戶不能用其做為標(biāo)識(shí)符。第5頁(yè)/共112頁(yè)數(shù)據(jù)對(duì)象(Date Objects) 常量ConstantConstant bus_width: integer := 8; -定義總線寬度為常數(shù)8 數(shù)據(jù)對(duì)象包括常量、變量、信號(hào)和文件四種類型。 常量是對(duì)某一常量名賦予一個(gè)固定的值,而且只能賦值一次。通常賦值在程序開(kāi)始前進(jìn)行,該值的數(shù)據(jù)類型則在說(shuō)明語(yǔ)句中指明。Constant 常數(shù)名:數(shù)據(jù)類型:表達(dá)式Constant Vcc:real:=5.0; -定義Vcc的數(shù)據(jù)類型是實(shí)
5、數(shù),賦值為5.0V常量所賦的值應(yīng)和定義的數(shù)據(jù)類型一致;常量在程序包、實(shí)體、構(gòu)造體或進(jìn)程的說(shuō)明性區(qū)域內(nèi)必須加以說(shuō)明。定義在程序包內(nèi)的常量可供所含的任何實(shí)體、構(gòu)造體所引用,定義在實(shí)體說(shuō)明內(nèi)的常量只能在該實(shí)體內(nèi)可見(jiàn),定義在進(jìn)程說(shuō)明性區(qū)域中的常量只能在該進(jìn)程內(nèi)可見(jiàn)。第6頁(yè)/共112頁(yè)Variable 變量名:數(shù)據(jù)類型 :初始值;Variable count: integer 0 to 255:=20 ; - 定義count整數(shù)變量,變化 范圍0255,初始值為20。 變量Variable 變量只能在進(jìn)程語(yǔ)句、函數(shù)語(yǔ)句和過(guò)程語(yǔ)句結(jié)構(gòu)中使用。變量的賦值是直接的,非預(yù)設(shè)的,分配給變量的值立即成為當(dāng)前值,變量
6、不能表達(dá)“連線”或存儲(chǔ)元件,不能設(shè)置傳輸延遲量。變量賦值語(yǔ)句: 目標(biāo)變量名 := 表達(dá)式;變量定義語(yǔ)句:x:=10.0; - 實(shí)數(shù)變量賦值為10.0Y:=1.5+x; - 運(yùn)算表達(dá)式賦值,注意表達(dá)式必須與目標(biāo)變量的數(shù)據(jù)類型相同A(3 to 6):=(“1101”); -位矢量賦值第7頁(yè)/共112頁(yè)Signal 信號(hào)名: 數(shù)據(jù)類型 :初始值Signal clock:bit :=; -定義時(shí)鐘信號(hào)類型,初始值為0 信號(hào)Signal 信號(hào)表示邏輯門(mén)的輸入或輸出,類似于連接線,也可以表達(dá)存儲(chǔ)元件的狀態(tài)。信號(hào)通常在構(gòu)造體、程序包和實(shí)體中說(shuō)明。信號(hào)定義語(yǔ)句:Signal count:BIT_VECTOR(
7、3 DOWNTO 0); -定義count為4位位矢量信號(hào)賦值語(yǔ)句: 目標(biāo)信號(hào)名 = 表達(dá)式; x=9;Z=x after 5 ns; - 在5ns后將x的值賦予z第8頁(yè)/共112頁(yè)數(shù)據(jù)類型l 布爾:(Boolean)l 位: ( Bit ) TYPE BIT IS (0,1); -取值為0和1,用于邏輯運(yùn)算 l 位矢量: ( Bit_Vector ) TYPE BIT_VECTOR IS ARRAY (Natural range) OF BIT; - 基于Bit類型的數(shù) 組,用于邏輯運(yùn)算 SIGNAL a:Bit_Vector(0 TO 7); SIGNAL a:Bit_Vector ( 7
8、 DOWNTO 0) VHDL的預(yù)定義數(shù)據(jù)類型 在VHDL標(biāo)準(zhǔn)程序包STANDARD中定義好,實(shí)際使用過(guò)程中,已自動(dòng)包含進(jìn)VHDL源文件中,不需要通過(guò)USE語(yǔ)句顯式調(diào)用。 TYPE BOOLEAN IS (FALSE, TRUE); - 取值為FALSE和TRUE,不是數(shù)值,不 能運(yùn)算,一般用于關(guān)系運(yùn)算符第9頁(yè)/共112頁(yè)l 整數(shù):(Integer) 取值范圍 -(231-1) (231-1),可用32位有符號(hào)的二進(jìn)制數(shù)表示 variable a:integer range -63 to 63 在實(shí)際應(yīng)用中,VHDL仿真器將Integer做為有符號(hào)數(shù)處理,而VHDL綜合器將Integer做為無(wú)
9、符號(hào)數(shù)處理; 要求用RANGE子句為所定義的數(shù)限定范圍,以便根據(jù)范圍來(lái)決定表示此信號(hào)或變量的二進(jìn)制數(shù)的位數(shù)。 l 字符:(Character) TYPE CHARACTER IS (NUL, SOH,STX, , , !,); -通常用引起 來(lái),區(qū)分大小寫(xiě);l 字符串:(String)VARIABLE string_var: STRING (1 TO 7);string_var:=“A B C D” ; - 通常用“”引起來(lái),區(qū)分大小寫(xiě);第10頁(yè)/共112頁(yè)l 實(shí)數(shù):(Real) 取值范圍 -1.0E38 +1.0E38,僅用于仿真不可綜合 1.0 -十進(jìn)制浮點(diǎn)數(shù) 843.6e+4 -八進(jìn)制浮
10、點(diǎn)數(shù) 43.6E-4 -十進(jìn)制浮點(diǎn)數(shù)l 時(shí)間:(Time) 物理量數(shù)據(jù),完整的包括整數(shù)和單位兩個(gè)部分,用至少一個(gè)空格隔開(kāi),僅用于仿真不可綜合; fs,ps,ns,us,ms,sec,min,hrl 錯(cuò)誤等級(jí)(Severity Level) : 表示系統(tǒng)狀態(tài),僅用于仿真不可綜合;TYPE severity_level IS (NOTE、WARNING、ERROR、FAILURE);第11頁(yè)/共112頁(yè) IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量l 標(biāo)準(zhǔn)邏輯位(Std_Logic)l 標(biāo)準(zhǔn)邏輯位矢量( Std_Logic_vector)基于Std_Logic類型的數(shù)組; 使用Std_Logic和 Std_Lo
11、gic_Vector要調(diào)用IEEE庫(kù)中的Std_Logic_1164 程序包;就綜合而言,能夠在數(shù)字器件中實(shí)現(xiàn)的是“、0、1、Z”四種狀態(tài)。 在條件語(yǔ)句中,必須要全面考慮Std_Logic的所有可能取值情況,否則綜合器可能會(huì)插入不希望的鎖存器。U:Uninitialized; X:Forcing Unkown; 0: Forcing 0 1: Forcing 1 Z:High Impedance W:Weak UnknownL: Weak 0 H: Weak 1 :Dont care第12頁(yè)/共112頁(yè)枚舉:type states is (idle,decision,read,write);
12、type boolean is (false,true); type bit is (0,1);數(shù)組:type value_type is array (127 downto 0) of integer; type matrix_type is array (0 to 15, 0 to 31) of std_logic; 用戶自定義l TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義l SUBTYPE 子類型名 IS 基本數(shù)據(jù)類型定義 RANGE 約束范圍subtype digit is integer range 0 to 9;第13
13、頁(yè)/共112頁(yè)數(shù)據(jù)類型轉(zhuǎn)換VHDL為強(qiáng)定義類型語(yǔ)言,不同類型的數(shù)據(jù)不能進(jìn)行運(yùn)算和直接賦值。l 類型標(biāo)記法Variable A: integer; Variable B: real;A= integer (B); B=real (A);l 函數(shù)法Conv_interger (A);-由std_logic轉(zhuǎn)換為integer型,在std_logic_unsigned包。l 常數(shù)轉(zhuǎn)換法 / 常量轉(zhuǎn)換法Type conv_table is array(std_logic) of bit;Constant table: conv_table:=(0|L=0, 1|H=1, others=0);Signa
14、l a: bit; signal b: std_logic;A=table(b); - 將std_logic型轉(zhuǎn)換為bit型具有轉(zhuǎn)換表性質(zhì)的常數(shù)第14頁(yè)/共112頁(yè) 在“STD_LOGIC_1164”、“STD_LOGIC_ARITH”和 “STD_LOGIC_UNSIGNED”的程序包中提供的數(shù)據(jù)類型變換函數(shù)。第15頁(yè)/共112頁(yè) 屬性屬性提供的是關(guān)于信號(hào)、類型等的指定特性。 event:若屬性對(duì)象有事件發(fā)生,則生成布爾值“true”,常用來(lái)檢查時(shí)鐘邊沿是否有效。上升沿:Clock EVENT AND Clock=1 range:生成一個(gè)限制性數(shù)組對(duì)象的范圍left:生成數(shù)據(jù)類型或數(shù)據(jù)子類型
15、的左邊界值;right , high, low, lengthrange: “0 to n” ; reverse_range:“n downto 0”第16頁(yè)/共112頁(yè) 運(yùn)算符l 算術(shù)運(yùn)算符:, , *, / , MOD, REM ,SLL ,SRL ,SLA, SRA ,ROL ,ROR ,*,ABSl 關(guān)系運(yùn)算符:, /, , =l 邏輯運(yùn)算符:AND,OR,NAND,NOR,XNOR,NOT,XORl 賦值運(yùn)算符:l 其他運(yùn)算符:, ,& 第17頁(yè)/共112頁(yè)并置操作符 SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : S
16、TD_LOGIC_VECTOR (1 DOWNTO 0) ; .a = 10d(1)1 ; - 元素與元素并置,并置后的數(shù)組長(zhǎng)度為4 .IF a d = 101011 THEN . - 在IF條件句中可以使用并置符 第18頁(yè)/共112頁(yè) 運(yùn)算符優(yōu)先級(jí)別邏輯、算術(shù)運(yùn)算符( NOT, *,ABS) 乘法運(yùn)算符(/ , MOD, REM, * ) 正負(fù)運(yùn)算符:, , 加減、并置運(yùn)算符:, , & 關(guān)系運(yùn)算符:, /, , =邏輯運(yùn)算符:AND,OR,NAND,NOR,XNOR,NOT,XOR第19頁(yè)/共112頁(yè) 移位運(yùn)算符的左邊為一維數(shù)組,其類型必須是BIT或BOOLEAN,右邊必須是整數(shù)移
17、位次數(shù)為整數(shù)的絕對(duì)值。移位運(yùn)算符操作示意圖“1100”SLL1 =“1000” “1100”SRL1 =“0110” “1100”SLA1 =“1000” “1100”SRA1 =“1110” “1100”ROL1 =“1001” “1100”ROR1 =“0110” SLL:將位向量左移,右邊移空位補(bǔ)零;SRL:將位向量右移,左邊移空位補(bǔ)零;SLA:將位向量左移,右邊第一位的數(shù)值保持原值不變;SRA:將位向量右移,左邊第一位的數(shù)值保持原值不變;ROL和ROR:自循環(huán)左右移位。第20頁(yè)/共112頁(yè)取余運(yùn)算(a REM b)的符號(hào)與a相同,其絕對(duì)值小于b的絕對(duì)值。 例如:(-5)REM 2=(-
18、1) 5 REM 2=(1) 取模運(yùn)算(a MOD b)的符號(hào)與b相同,其絕對(duì)值小于b的絕對(duì)值。 例如:(-5)MOD 2=1 5 MOD (- 2)=(-1)第21頁(yè)/共112頁(yè)3.2 VHDL基本結(jié)構(gòu) 實(shí)體(Entity):描述所設(shè)計(jì)的系統(tǒng)的外部接口信號(hào),定義電路設(shè)計(jì)中所有的輸入和輸出端口; 結(jié)構(gòu)體 (Architecture):描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為; 包集合 (Package):存放各設(shè)計(jì)模塊能共享的數(shù)據(jù)類型、常數(shù)和子程序等; 配置 (Configuration):指定實(shí)體所對(duì)應(yīng)的結(jié)構(gòu)體; 庫(kù) (Library):存放已經(jīng)編譯的實(shí)體、結(jié)構(gòu)體、包集合和配置。第22頁(yè)/共112頁(yè)LIBR
19、ARY IEEE; - 庫(kù)、程序包的說(shuō)明調(diào)用 ENTITY FreDevider IS - 實(shí)體聲明PORT(Clock: IN Std_logic; Clkout: OUT Std_logic);END;ARCHITECTURE Behavior OF FreDevider IS - 結(jié)構(gòu)體定義SIGNAL Clk:Std_Logic;BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock) THEN Clk=NOT Clk; END IF;END PROCESS;Clkout=Clk;END;VHDL的基本設(shè)計(jì)單元結(jié)構(gòu):程序包說(shuō)明、實(shí)體說(shuō)明和結(jié)構(gòu)體說(shuō)明
20、三部分。第23頁(yè)/共112頁(yè)實(shí)體(Entity)ENTITY 實(shí)體名 IS GENERIC(常數(shù)名:數(shù)據(jù)類型:設(shè)定值)PORT( 端口名1:端口方向 端口類型; 端口名2:端口方向 端口類型; . . 端口名n:端口方向 端口類型);END 實(shí)體名; 實(shí)體描述了設(shè)計(jì)單元的輸入輸出接口信號(hào)或引腳,是設(shè)計(jì)實(shí)體經(jīng)封裝后對(duì)外的一個(gè)通信界面。第24頁(yè)/共112頁(yè)ENTITY FreDevider ISPORT(Clock: IN Std_logic; Clokout: OUT Std_logic);END;實(shí)體名最后一條端口聲明語(yǔ)句無(wú)分號(hào)端口方向端口類型端口名 實(shí)體名由設(shè)計(jì)者自由命名,用來(lái)表示被設(shè)計(jì)電路
21、芯片的名稱,但是必須與VHDL程序的文件名稱相同。要與文件名一致;第25頁(yè)/共112頁(yè)例如: GENERIC(wide:integer:=32); -說(shuō)明寬度為32 GENERIC(tmp:integer:=1ns); -說(shuō)明延時(shí)1 ns 類屬說(shuō)明 類屬為設(shè)計(jì)實(shí)體與外界通信的靜態(tài)信息提供通道,用來(lái)規(guī)定端口的大小、實(shí)體中子元件的數(shù)目和實(shí)體的定時(shí)特性等。格式: GENERIC(常數(shù)名:數(shù)據(jù)類型:設(shè)定值; 常數(shù)名:數(shù)據(jù)類型:設(shè)定值);第26頁(yè)/共112頁(yè) 端口方向:IN, OUT,INOUT,BUFFERINOUTINOUTBUFFER“OUT”和“BUFFER”都可定義輸出端口;若實(shí)體內(nèi)部需要反饋
22、輸出信號(hào),則輸出端口必須被設(shè)置為“BUFFER”,而不能為“OUT”。第27頁(yè)/共112頁(yè) 同方向、同類型的端口可放在同一個(gè)說(shuō)明語(yǔ)句中。ENTITY Full_adder IS PORT( a, b, c: IN BIT; sum, carry: OUT BIT ); END Full_adder;第28頁(yè)/共112頁(yè)結(jié)構(gòu)體 (Architecture)ARCHITECTURE 結(jié)構(gòu)體名 OF 實(shí)體名 IS 聲明語(yǔ)句BEGIN 功能描述語(yǔ)句END 結(jié)構(gòu)體名;用于聲明該結(jié)構(gòu)體將用到的信號(hào)、數(shù)據(jù)類型、常數(shù)、子程序和元件等。聲明的內(nèi)容是局部的。具體描述結(jié)構(gòu)體的功能和行為。 結(jié)構(gòu)體定義了設(shè)計(jì)單元具體的
23、功能,描述了該基本設(shè)計(jì)單元的行為、元件和內(nèi)部的連接關(guān)系。 一個(gè)實(shí)體可對(duì)應(yīng)多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體代表該實(shí)體功能的不同實(shí)現(xiàn)方案或不同實(shí)現(xiàn)方式。同一時(shí)刻只有一個(gè)結(jié)構(gòu)體起作用,通過(guò)CONFIGURATION決定用哪個(gè)結(jié)構(gòu)體進(jìn)行仿真或綜合。 在結(jié)構(gòu)體描述中,具體給出了輸入、輸出信號(hào)之間的邏輯關(guān)系。第29頁(yè)/共112頁(yè)ARCHITECTURE Behavior OF FreDevider IS - 結(jié)構(gòu)體定義SIGNAL Clk:Std_Logic; -信號(hào)聲明BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock) THEN Clk=NOT Clk; END IF;
24、END PROCESS;Clkout=Clk;END;功能描述語(yǔ)句進(jìn)程順序語(yǔ)句第30頁(yè)/共112頁(yè)庫(kù)、程序包的調(diào)用LIBRARY IEEE; ;LIBRARY 庫(kù)名;USE 庫(kù)名.程序包名.項(xiàng)目名;調(diào)用此程序包中所有的資源LIBRARY IEEE; ;第31頁(yè)/共112頁(yè)3.3 VHDL語(yǔ)句并行語(yǔ)句在結(jié)構(gòu)體中的執(zhí)行是同時(shí)進(jìn)行,執(zhí)行順序與書(shū)寫(xiě)順序無(wú)關(guān)。第32頁(yè)/共112頁(yè) 并行信號(hào)賦值語(yǔ)句l 簡(jiǎn)單賦值語(yǔ)句目標(biāo)信號(hào)名 = 表達(dá)式目標(biāo)信號(hào)的數(shù)據(jù)類型與右邊表達(dá)式一致ARCHITECTURE Behavior OF FreDevider IS SIGNAL Clk:Std_Logic;BEGIN PRO
25、CESS(Clock)BEGIN IF rising_edge(Clock) THEN Clk=NOT Clk; END IF;END PROCESS;Clkout=Clk;第33頁(yè)/共112頁(yè)l 選擇信號(hào)賦值語(yǔ)句WITH 選擇表達(dá)式 SELECT賦值目標(biāo)信號(hào) = 表達(dá)式1 WHEN 選擇值1, 表達(dá)式2 WHEN 選擇值1, 表達(dá)式n WHEN OTHERS; 選擇值要覆蓋所有可能情況,若不能一一指定,用OTHERS為其他情況找個(gè)出口; 選擇值必須互斥,不能出現(xiàn)條件重復(fù)或重疊的情況。第34頁(yè)/共112頁(yè)LIBRARY IEEE;ENTITY MUX ISPORT( Data0,Data1,D
26、ata2,Data3:IN Std_Logic_VECTOR(7 DOWNTO 0); Sel:IN Std_Logic_Vector(1 DOWNTO 0); DOUT:OUT Std_Logic_Vector(7 DOWNTO 0);END;ARCHITECTURE DataFlow OF MUX ISBEGIN WITH Sel SELECT DOUT= Data0 WHEN “00”, Data1 WHEN “01”, Data2 WHEN “10”, Data3 WHEN “11”,“00000000” WHEN OTHERS;END;地址選線地址選線Sel輸出輸出DOUT00Dat
27、a001Data110Data211Data34X1多路選擇器第35頁(yè)/共112頁(yè)第36頁(yè)/共112頁(yè)l 條件信號(hào)賦值語(yǔ)句賦值目標(biāo)信號(hào) = 表達(dá)式1 WHEN 賦值條件1 ELSE 表達(dá)式2 WHEN 賦值條件2 ELSE 表達(dá)式n WHEN 賦值條件n ELSE 表達(dá)式;各賦值語(yǔ)句有優(yōu)先級(jí)的差別,按書(shū)寫(xiě)順序從高到低排列;各賦值條件可以重疊。第37頁(yè)/共112頁(yè)8輸入優(yōu)先編碼器I7I6I5 A2I4 A1I3 A0 I2I1I0高低優(yōu)先級(jí)LIBRARY IEEE;ENTITY Priority_Encoder ISPORT( I:IN Std_Logic_VECTOR(7 DOWNTO 0);
28、 A:OUT Std_Logic_Vector(2 DOWNTO 0);END;ARCHITECTURE DataFlow OF Priority_Encoder ISBEGIN A=“111” WHEN I(7)=1 ELSE “110” WHEN I(6)=1 ELSE “101” WHEN I(5)=1 ELSE “100” WHEN I(4)=1 ELSE “011” WHEN I(3)=1 ELSE “010” WHEN I(2)=1 ELSE “001” WHEN I(1)=1 ELSE “000” WHEN I(0)=1 ELSE “111”;END;第38頁(yè)/共112頁(yè)第39頁(yè)
29、/共112頁(yè) 進(jìn)程語(yǔ)句l 進(jìn)程本身是并行語(yǔ)句,但內(nèi)部是順序語(yǔ)句;l 進(jìn)程只有在特定的時(shí)刻(敏感信號(hào)發(fā)生變化)才會(huì)被激活。 進(jìn)程標(biāo)號(hào): PROCESS (敏感信號(hào)參數(shù)表) 聲明區(qū); BEGIN 順序語(yǔ)句END PROCESS 進(jìn)程標(biāo)號(hào);在進(jìn)程中起作用的局部變量 一個(gè)進(jìn)程可以有多個(gè)敏感信號(hào),任一敏感信號(hào)發(fā)生變化都會(huì)激活進(jìn)程 進(jìn)程語(yǔ)句定義順序語(yǔ)句模塊,用于將從外部獲得的信號(hào)值,或內(nèi)部的運(yùn)算數(shù)據(jù)向其他的信號(hào)進(jìn)行賦值。第40頁(yè)/共112頁(yè)l 進(jìn)程的工作原理當(dāng)某個(gè)敏感信號(hào)的值發(fā)生變化時(shí),每個(gè)進(jìn)程語(yǔ)句立即完成進(jìn)程內(nèi)順序語(yǔ)句所定義的功能行為。執(zhí)行過(guò)程終止 順序語(yǔ)句所定義的功能行為的結(jié)果可以賦值給信號(hào),并通過(guò)信
30、號(hào)被其他的進(jìn)程讀取或賦值。第41頁(yè)/共112頁(yè)l 進(jìn)程與時(shí)鐘在每個(gè)上升沿啟動(dòng)一次進(jìn)程(執(zhí)行進(jìn)程內(nèi)所有的語(yǔ)句)。上升沿描述:Clock EVENT AND Clock=1下降沿描述:Clock EVENT AND Clock=0上升沿描述: rising_edge (Clock)下降沿描述: falling_edge (Clock)第42頁(yè)/共112頁(yè)LIBRARY IEEE; ENTITY FreDevider ISPORT( Clock: IN Std_logic; Clkout: OUT Std_logic);END;ARCHITECTURE Behavior OF FreDevider
31、IS SIGNAL Clk: Std_Logic;BEGIN PROCESS (Clock) 將時(shí)鐘作為進(jìn)程的敏感信號(hào)BEGIN IF rising_edge (Clock) THEN Clk=NOT Clk; 在時(shí)鐘上升沿執(zhí)行Clk=NOT Clk END IF;END PROCESS;Clkout=Clk;END;第43頁(yè)/共112頁(yè)LIBRARY IEEE; ENTITY Counter ISPORT( RESET:IN Std_Logic; 異步復(fù)位信號(hào) Clock: IN Std_logic; 時(shí)鐘信號(hào) NUM: BUFFER Integer RANGE 0 TO 3); 計(jì)數(shù)器輸出
32、值END;ARCHITECTURE Behavior OF Counter IS BEGIN PROCESS (RESET, Clock) 將復(fù)位、時(shí)鐘作為進(jìn)程的敏感信號(hào)BEGIN IF RESET=1 THEN Num=0; 復(fù)位時(shí)Num清0 ELSIF rising_edge (Clock) THEN IF Num=3 THEN Num=0; 如果Num3就清0 ELSE Num=Num+1; 否則自加1 END IF; END IF;END PROCESS;END;第44頁(yè)/共112頁(yè)仿真波形:第45頁(yè)/共112頁(yè)LIBRARY IEEE; ENTITY Counter ISPORT(
33、clr :IN Std_Logic; inl: in std_logic_vector(3 downto 0); outl: out std_logic_vector(3 downto 0) 計(jì)數(shù)器輸出值);END;ARCHITECTURE Behavior OF Counter IS BEGIN PROCESS (clr, inl) 進(jìn)程的敏感信號(hào)BEGIN IF (clr=1 or inl=“1001”) THEN outl=“0000”; ELSE outl=inl+1; END IF;END PROCESS;END;重載符號(hào),在庫(kù)IEEE.Std_Logic_unsigned中預(yù)先聲明
34、第46頁(yè)/共112頁(yè)LIBRARY IEEE; ENTITY Counter ISPORT( clr,clk:IN Std_Logic; cnt: buffer std_logic_vector(3 downto 0) 計(jì)數(shù)器輸出值);END;ARCHITECTURE Behavior OF Counter IS BEGIN PROCESS BEGINWait until clkevent and clk=1; IF (clr=1 or cnt=9) THEN cnt=“0000”; ELSE cnt output output output output = s1; END CASE; EN
35、D IF;END PROCESS;END;第48頁(yè)/共112頁(yè)l 進(jìn)程注意事項(xiàng):l 進(jìn)程本身是并行語(yǔ)句,但內(nèi)部為順序語(yǔ)句;l 進(jìn)程在敏感信號(hào)發(fā)生變化時(shí)被激活,在使用了敏感表的進(jìn)程中不能含wait語(yǔ)句;l 在同一進(jìn)程中對(duì)同一信號(hào)多次賦值,只有最后一次生效;l 在不同進(jìn)程中,不可對(duì)同一信號(hào)進(jìn)行賦值;l 一個(gè)進(jìn)程不可同時(shí)對(duì)時(shí)鐘上、下沿敏感。l 進(jìn)程中的信號(hào)賦值是在進(jìn)程掛起時(shí)生效的,而變量賦值是即時(shí)生效。l 相對(duì)于結(jié)構(gòu)體而言,信號(hào)具有全局性,是進(jìn)程間進(jìn)行并行聯(lián)系的重要途徑。l 進(jìn)程為綜合器支持,且其建模方式直接影響仿真和綜合結(jié)果,綜合后對(duì)應(yīng)于進(jìn)程的硬件結(jié)構(gòu)對(duì)進(jìn)程中所有可讀入信號(hào)都是敏感的。SIGNAL
36、 A,B: Integer RANGE 0 TO 7; : PROCESS (Clock) BEGIN IF rising_edge (Clock) THEN : B=A+1; B連接端口名 , );要插在電路系統(tǒng)板上的芯片較大的電路系統(tǒng)電路板上準(zhǔn)備接受芯片的插座元件定義語(yǔ)句元件例化語(yǔ)句列出對(duì)外通信的各端口名 當(dāng)前系統(tǒng)與準(zhǔn)備接入的元件對(duì)應(yīng)端口相連的通信端口。名字關(guān)聯(lián)方式:port map語(yǔ)句中位置可以任意;位置關(guān)聯(lián)方式:端口名和關(guān)聯(lián)連接符號(hào)可省去,連接端口名的排列方式與所需例化的元件端口定義中的端口名相對(duì)應(yīng)。第50頁(yè)/共112頁(yè)LIBRARY IEEE; USE IEEE.Std_Logic_
37、1164.ALL;ENTITY nd2 ISPORT( a, b:IN Std_Logic; c: out std_logic);END;ARCHITECTURE nd2behv OF nd2 IS BEGIN yc1, c=y, b=d1); 名字關(guān)聯(lián)方式u3:nd2 PORT MAP( x, y, c=z1); 混和關(guān)聯(lián)方式END;元件例化:第51頁(yè)/共112頁(yè)1位二進(jìn)制全加器內(nèi)部端口外部端口第52頁(yè)/共112頁(yè)外部端口內(nèi)部端口端口連線第53頁(yè)/共112頁(yè)順序語(yǔ)句 順序語(yǔ)句僅出現(xiàn)在進(jìn)程和子程序中。 順序語(yǔ)句綜合后,映射為實(shí)際的門(mén)電路,系統(tǒng)一上電,門(mén)電路開(kāi)始工作。電路可實(shí)現(xiàn)邏輯上的順序執(zhí)行,
38、實(shí)際上所有門(mén)電路是并行工作的。l 賦值語(yǔ)句l 流程控制語(yǔ)句l 空操作語(yǔ)句l 等待語(yǔ)句l 子程序調(diào)用語(yǔ)句l 返回語(yǔ)句第54頁(yè)/共112頁(yè) 賦值語(yǔ)句ENTITY TEST_Signal ISPORT( Reset, Clock: IN Std_logic; NumA, NumB: OUT Integer RANGE 0 TO 255);END;ARCHITECTURE TEST OF TEST_Signal IS SIGNAL A, B: Integer RANGE 0 TO 255; BEGIN PROCESS (RESET,Clock) VARIABLE C: Integer RANGE 0
39、TO 255; BEGIN IF RESET=1 THEN A=0; B=2;C:=0; ELSEIF rising_edge(Clock) THEN C:=C+1;A=C+1;B=A+2; END IF; END PROCESS; Num A=A; NumB=B;END;第55頁(yè)/共112頁(yè) 流程控制語(yǔ)句l IF語(yǔ)句:IF 條件式 THEN 順序語(yǔ)句END IF;IF 條件式 THEN 順序語(yǔ)句ELSE 順序語(yǔ)句END IF;IF 條件式 THEN 順序語(yǔ)句ELSEIF 條件式2 THEN 順序語(yǔ)句 ELSE 順序語(yǔ)句END IF;有優(yōu)先級(jí)第56頁(yè)/共112頁(yè) 用IF語(yǔ)句描述組合邏輯電路時(shí),
40、務(wù)必涵蓋所有的情況,否則綜合后將引入鎖存器!ENTITY Encoder ISPORT( En: IN Std_logic; I: IN Std_logic_Vetor(7 DOWNTO 0); A: OUT Std_logic_Vetor(2 DOWNTO 0); Idle: OUT Std_logic);END;ARCHITECTURE Behavior OF Encoder IS BEGIN PROCESS (En, I)BEGIN IF En=1 THEN IF I(7)=1 THEN A=“111”; Idle=0; ELSIF IF I(6)=1 THEN A=“110”; Idl
41、e=0; ELSIF IF I(5)=1 THEN A=“101”; Idle=0; ELSIF IF I(4)=1 THEN A=“100”; Idle=0; ELSIF IF I(3)=1 THEN A=“011”; Idle=0; ELSIF IF I(2)=1 THEN A=“010”; Idle=0; ELSIF IF I(1)=1 THEN A=“001”; Idle=0; ELSIF IF I(0)=1 THEN A=“000”; Idle=0; ELSE A=“000”; Idle b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 b1 THEN q1
42、= 1 ; ELSE q1 順序語(yǔ)句; WHEN 選擇值|選擇值 =順序語(yǔ)句; WHEN OTHERS=順序語(yǔ)句;END CASE;l 選擇值不可重復(fù)或重疊;l 當(dāng)CASE語(yǔ)句的選擇值無(wú)法覆蓋所有的情況時(shí),要用OTHERS指定未能列出的其他所有情況的輸出值;第61頁(yè)/共112頁(yè)LIBRARY IEEE;ENTITY MUX ISPORT( Data0,Data1,Data2,Data3:IN Std_Logic_VECTOR(7 DOWNTO 0); Sel:IN Std_Logic_Vector(1 DOWNTO 0); DOUT:OUT Std_Logic_Vector(7 DOWNTO
43、0);END; ARCHITECTURE DataFlow OF MUX IS BEGIN CASE Sel IS WHEN “00”= DOUT DOUT DOUT DOUT DOUTNULL; END CASE; END IF;END PROCESS;第66頁(yè)/共112頁(yè) WAIT語(yǔ)句 在進(jìn)程或過(guò)程中執(zhí)行到WAIT語(yǔ)句時(shí),程序?qū)⒈粧炱?,并設(shè)置好再次執(zhí)行的條件。WAIT ON 信號(hào)表UNTIL 條件表達(dá)式FOR 時(shí)間表達(dá)式; WAIT ;未設(shè)置停止掛起的條件,表示永遠(yuǎn)掛起。 WAIT ON 信號(hào)表;敏感信號(hào)等待語(yǔ)句,敏感信號(hào)的變化將結(jié)束掛起,再次啟動(dòng)進(jìn)程。 WAIT UNTIL 條件表達(dá)式;
44、條件表達(dá)式為中所含的信號(hào)發(fā)生變化,且滿足WAIT語(yǔ)句所設(shè)條件,則結(jié)束掛起,再次啟動(dòng)進(jìn)程。 WAIT FOR 時(shí)間表達(dá)式;超時(shí)等待語(yǔ)句,從執(zhí)行當(dāng)前的WAIT語(yǔ)句開(kāi)始,在此時(shí)間段內(nèi),進(jìn)程處于掛起狀態(tài),超過(guò)這一時(shí)間段后,程序自動(dòng)恢復(fù)執(zhí)行。第67頁(yè)/共112頁(yè)Configuration 配置名 of 實(shí)體名 is 配置說(shuō)明End 配置名;配置語(yǔ)句 配置主要為頂層設(shè)計(jì)實(shí)體指定結(jié)構(gòu)體,或?yàn)閰⑴c例化的元件實(shí)體指定所希望的結(jié)構(gòu)體 ,以層次方式來(lái)對(duì)元件例化做結(jié)構(gòu)配置。第68頁(yè)/共112頁(yè)Configuration 配置名 of 實(shí)體名 is 配置說(shuō)明End 配置名; 為頂層設(shè)計(jì)實(shí)體指定結(jié)構(gòu)體Entity nan
45、d is port ( a, b: in std_logic; c: out std_logic );End entity nand;Architecture one of nand is begin c=not (a and b);End architecture one;Architecture two of nand is begin cs, b=qf, c=q); u2:nand PORT MAP ( a=q, b=r, c=qf); END rsf; Configuration sel of rs is for rsf for u1,u2:nand use entity work.n
46、and (two);end for;end for;End sel; 為參與例化的元件實(shí)體指定所希望的結(jié)構(gòu)體 ,以層次方式來(lái)對(duì)元件例化做結(jié)構(gòu)配置。第70頁(yè)/共112頁(yè)3.4 狀態(tài)機(jī)在VHDL中的實(shí)現(xiàn)Moore 狀態(tài)機(jī)的VHDL描述輸出僅取決于其所處的狀態(tài)。第71頁(yè)/共112頁(yè)LIBRARY IEEE; USE IEEE.Std_ Logic_1164.ALL;ENTITY Moore ISPORT( Reset, Clock, DIN :IN Std_Logic; DOUT:OUT Std_Logic_Vetor(2 DOWNTO 0);END;ARCHITECTURE Mooremachin
47、e OF Moore ISTYPE State_type IS (S0,S1,S2,S3); 定義State_type為枚舉型數(shù)據(jù)類型SIGNAL State:State_type;BEGINChange_State: PROCESS (Reset, Clock) 時(shí)序邏輯進(jìn)程BEGINIF Reset=1 THEN State=S0;第72頁(yè)/共112頁(yè)ELSEIF rising_edge(Clock) THEN CASE State IS WHEN S0=IF DIN=1 THEN State=S1;END IF; WHEN S1=IF DIN=1 THEN State=S2;END IF
48、; WHEN S2=IF DIN=1 THEN State=S3;END IF; WHEN S3=IF DIN=1 THEN State=S0; ELSE StateDOUT DOUT DOUT DOUT =“111”; END CASE; END PROCESS;END;第73頁(yè)/共112頁(yè)仿真波形圖:第74頁(yè)/共112頁(yè)時(shí)鐘同步Moore狀態(tài)機(jī)結(jié)構(gòu)圖:第75頁(yè)/共112頁(yè)LIBRARY IEEE; USE IEEE.Std_ Logic_1164.ALL;ENTITY Moore ISPORT( Reset,Clock, DIN :in Std_Logic; DOUT:out Std_Lo
49、gic_Vetor(2 DOWNTO 0) );END;ARCHITECTURE Mooremachine OF Moore IS TYPE State_type IS (S0,S1,S2,S3); SIGNAL PresentState, NextState :State_type; 定義狀態(tài)轉(zhuǎn)換信號(hào) BEGINState_Reg: PROCESS (Reset, Clock) 狀態(tài)寄存器 BEGIN IF Reset=1 THEN 異步復(fù)位 PresentState=S0; ELSEIF rising_edge(Clock) THEN PresentState=NextState; 時(shí)鐘上
50、升沿,轉(zhuǎn)換至下一狀態(tài) END IF; END PROCESS;第76頁(yè)/共112頁(yè)Change_State:PROCESS (PresentState,DIN) 組合邏輯進(jìn)程BEGIN CASE Present State IS WHEN S0=if DIN=1 then NextState=S1; else NextState=S0; end if; DOUT =“001”; WHEN S1=if DIN=1 then NextState=S2; else NextState=S1; end if ; DOUT =“011”; WHEN S2=if DIN=1 then NextState=
51、S3; else NextState=S2; end if ; DOUT =“101”; WHEN S3=if DIN=1 then NextState=S0; else NextState=S1; end if ; DOUT =“111”; END CASE;END PROCESS;END;第77頁(yè)/共112頁(yè)仿真波形圖:第78頁(yè)/共112頁(yè)Mealy 狀態(tài)機(jī)的VHDL描述: 輸出由當(dāng)前狀態(tài)與輸入共同決定。第79頁(yè)/共112頁(yè)LIBRARY IEEE; USE IEEE.Std_ Logic_1164.ALL;ENTITY MealyMachine ISPORT( Reset ,Clock,
52、DIN:IN Std_Logic; DOUT:OUT Std_Logic_Vetor(2 DOWNTO 0);END;ARCHITECTURE Statemachine OF MealyMachine ISTYPE State_type IS (S0,S1,S2,S3);SIGNAL State:State_type;BEGINChange_State: PROCESS (Reset,Clock)BEGINIF Reset=1 THEN State=S0;第80頁(yè)/共112頁(yè)ELSIF rising_edge(Clock) THEN CASE State IS WHEN S0=IF DIN=1
53、 THEN State=S1;END IF; WHEN S1=IF DIN=1 THEN State=S2;END IF; WHEN S2=IF DIN=1 THEN State=S3;END IF; WHEN S3=IF DIN=1 THEN State=S0; ELSE StateIF DIN=0 THEN DOUT =“000”; ELSE DOUTIF DIN=0 THEN DOUT =“010”; ELSE DOUT IF DIN=0 THEN DOUT =“100”; ELSE DOUT IF DIN=0 THEN DOUT =“110”; ELSE DOUTState=Error
54、; 使?fàn)顟B(tài)機(jī)從未定義的狀態(tài)跳轉(zhuǎn)到處理出錯(cuò)情況的狀態(tài);l 直接回復(fù)到其他已設(shè)定的狀態(tài)。 第83頁(yè)/共112頁(yè)狀態(tài)機(jī)設(shè)計(jì)與寄存器l 對(duì)于所有可能的輸入條件,當(dāng)進(jìn)程中的輸出信號(hào)如果沒(méi)有被完全地與之對(duì)應(yīng)指定,此信號(hào)將自動(dòng)被指定,即在未列出的條件下保持原值,這意味著引入了寄存器。l 在狀態(tài)機(jī)中,如果存在一個(gè)或更多的狀態(tài)沒(méi)有被明確指定轉(zhuǎn)換方式,或者對(duì)于狀態(tài)機(jī)中的狀態(tài)值沒(méi)有規(guī)定所有的輸出值,就可能引入寄存器。第84頁(yè)/共112頁(yè)計(jì)數(shù)器: 3.5 常用電路的VHDL程序第85頁(yè)/共112頁(yè)比較器: 第86頁(yè)/共112頁(yè)奇數(shù)倍分頻:第87頁(yè)/共112頁(yè)8位奇偶校驗(yàn)電路LIBRARY IEEE;ENTITY p_
55、check IS PORT (a: IN STD_LOGIC_VECTOR (7 DOWNTO 0);y: OUT STD_LOGIC);END p_check; ARCHITECTURE opt OF p_check IS SIGNAL tmp: STD_LOGIC;BEGIN PROCESS (a) BEGIN tmp=0; FOR n IN 0 TO 7 LOOP -此循環(huán)語(yǔ) 句作為進(jìn)程語(yǔ)句中的順序語(yǔ)句使用tmp = tmp XOR a(n); END LOOP;y = tmp END.PROCESS; END opt;第88頁(yè)/共112頁(yè)LIBRARY IEEE; ENTITY h_a
56、dder IS PORT (a,b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder IBEGIN so = (a OR b)AND(a NAND b); co = NOT( a NAND b); END ARCHITECTURE fh1;1位二進(jìn)制半加器 半加器第89頁(yè)/共112頁(yè)含異步清0和同步時(shí)鐘使能的4位加法計(jì)數(shù)器LIBRARY IEEE;ENTITY CNT4B IS PORT (CLK : IN STD_LOGIC; RST : IN STD_LOGIC;
57、 ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP_REG: PROCESS(CLK, RST, ENA) BEGIN P_REG: PROCESS(CLK, RST, ENA) BEGIN IF RST = 1 T
58、HEN CQI = 0000; ELSIF CLKEVENT AND CLK = 1 THEN IF ENA = 1 THEN CQI = CQI + 1; ELSE CQI = 0000; END IF; END IF; OUTY = CQI ; END PROCESS P_REG ; COUT = CQI(0) AND CQI(1) AND CQI(2) AND CQI(3); -進(jìn)位輸出END behav;第90頁(yè)/共112頁(yè)表決器: 第91頁(yè)/共112頁(yè)三態(tài)門(mén): 三態(tài)總線:第92頁(yè)/共112頁(yè)八位鎖存器: 第93頁(yè)/共112頁(yè)第94頁(yè)/共112頁(yè)移位寄存器:第95頁(yè)/共112頁(yè)第96頁(yè)
59、/共112頁(yè)鍵盤(pán)消抖電路:第97頁(yè)/共112頁(yè)第98頁(yè)/共112頁(yè)3.6 VHDL仿真 仿真(Simulation,也稱模擬),不接觸具體的硬件系統(tǒng)利用計(jì)算機(jī)對(duì)電路設(shè)計(jì)的邏輯行為和運(yùn)行功能進(jìn)行模擬檢測(cè),較大規(guī)模的VHDL系統(tǒng)設(shè)計(jì)的最后完成必須經(jīng)歷多層次的仿真測(cè)試過(guò)程,包括針對(duì)系統(tǒng)的VHDL行為仿真、分模塊的時(shí)序仿真和硬件仿真,直至最后系統(tǒng)級(jí)的硬件仿真測(cè)試。對(duì)VHDL源文件進(jìn)行語(yǔ)法及語(yǔ)義檢查,將其轉(zhuǎn)換為中間數(shù)據(jù)格式。保存中間數(shù)據(jù)結(jié)果,提供VHDL源程序中需要的設(shè)計(jì)庫(kù)和程序包。功能仿真是在未經(jīng)布線和適配前,用VHDL源程序綜合后的文件進(jìn)行仿真。時(shí)序仿真是將設(shè)計(jì)綜合后,由適配器完成具體芯片的映射后得
60、到的文件進(jìn)行仿真。第99頁(yè)/共112頁(yè)仿真激勵(lì)信號(hào)的產(chǎn)生LIBRARY IEEE;ENTITY ADDER4 ISPORT ( a, b : IN INTEGER RANGE 0 TO 15; c : OUT INTEGER RANGE 0 TO 15 );END ADDER4;ARCHITECTURE one OF ADDER4 ISBEGINc = a + b;END one;第100頁(yè)/共112頁(yè)ENTITY SIGGEN ISPORT ( sig1 : OUT INTEGER RANGE 0 TO 15; sig2 : OUT INTEGER RANGE 0 TO 15 );END;ARCHITECT
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土建瓦工勞務(wù)分包合同
- 常年法律顧問(wèn)合同
- 詳細(xì)操作流程說(shuō)明書(shū)
- 2025年撫州貨運(yùn)資格證模擬考試題庫(kù)下載
- 2025年徐州市汽車租賃合同5篇
- 農(nóng)莊農(nóng)場(chǎng)合作經(jīng)營(yíng)合同協(xié)議書(shū)范本6篇
- 公司副食品購(gòu)銷合同7篇
- 房地產(chǎn)開(kāi)發(fā)聯(lián)營(yíng)合同
- 專利技術(shù)的授權(quán)與使用條款協(xié)議
- 無(wú)償保管合同范本-倉(cāng)儲(chǔ)保管合同8篇
- 中小學(xué)領(lǐng)導(dǎo)班子包級(jí)包組包班制度
- 汽車掛靠經(jīng)營(yíng)合同協(xié)議書(shū)模板
- 基坑土方開(kāi)挖專項(xiàng)施工方案(完整版)
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 數(shù)據(jù)中心運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 電玩城培訓(xùn)課件
- 2025年全年日歷-含農(nóng)歷、國(guó)家法定假日-帶周數(shù)豎版
- 小學(xué)生播音員課件
- 2024年重大事項(xiàng)內(nèi)部會(huì)審制度(3篇)
評(píng)論
0/150
提交評(píng)論