版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
天道酬勤第2章
邏輯電路及VerilogHDL簡介目錄2.1基本邏輯門和常用邏輯門
2.2用VerilogHDL實現(xiàn)基本的邏輯操作
2.3原理圖輸入法邏輯電路設(shè)計2.4三種風(fēng)格的VerilogHDL描述
2.5常用的組合電路及其設(shè)計
2.6時序電路的設(shè)計方法
算術(shù)運(yùn)算和邏輯運(yùn)算算術(shù)運(yùn)算:當(dāng)二進(jìn)制數(shù)表示不同大小的數(shù)值時,數(shù)值與數(shù)值之間可以進(jìn)行加、減、乘、除等運(yùn)算,稱算術(shù)運(yùn)算。邏輯運(yùn)算:當(dāng)二進(jìn)制數(shù)表示不同狀態(tài)的代碼時,代碼與代碼之間的運(yùn)算是一種邏輯因果關(guān)系的運(yùn)算,有與、或、非三種,稱邏輯運(yùn)算。這兩種運(yùn)算有本質(zhì)的不同。算術(shù)運(yùn)算—加法1001+011100010進(jìn)位1進(jìn)位1進(jìn)位1進(jìn)位12.1
基本邏輯門和常用邏輯門基本邏輯運(yùn)算有邏輯與、邏輯或和邏輯非。實現(xiàn)這三種邏輯運(yùn)算的電路,稱作基本邏輯門。
1.邏輯代數(shù)的三種基本運(yùn)算模型
⑴邏輯與(乘)運(yùn)算只有決定一件事情的全部條件具備之后,結(jié)果才能發(fā)生,這種因果關(guān)系為“邏輯與”或“邏輯乘”。邏輯與(乘)運(yùn)算邏輯與的邏輯關(guān)系表達(dá)式寫成Y=A·B“·”表示“與運(yùn)算”或“邏輯乘”,讀作“與”或“乘”,可省略不讀。與邏輯功能可記成:“有0出0,全1出1”與運(yùn)算規(guī)則:
0·0=0;0·1=0;1·0=0;1·1=1A·0=0;A·1=A;0·A=0;1·A=A邏輯符號
AB00011011Y0001
真值表AB(a)YYAB(b)YAB&(c)(2)邏輯或(加)運(yùn)算邏輯或的邏輯關(guān)系表達(dá)式Y(jié)=A+B“+”表示“或運(yùn)算”或“邏輯加”,讀作“或”或“加”?;蜻壿嫻δ?“有1出1,全0出0”。或運(yùn)算規(guī)則:
0+0=0;0+1=1;1+0=1;1+1=1
A+0=A;A+1=1;A+A=A。AB00011011Y0111真值表邏輯或(加)運(yùn)算二進(jìn)制運(yùn)算和邏輯代數(shù)的區(qū)別:二進(jìn)制運(yùn)算中的加法、乘法有進(jìn)位問題,1+1=10;但邏輯代數(shù)研究的是“0”、“1”兩種邏輯狀態(tài)的邏輯加、邏輯乘、邏輯非,是一種邏輯運(yùn)算,所以
1+1=1,1+1+···+1=1。邏輯符號
ABY(c)≥1ABY(a)+ABY(b)邏輯運(yùn)算—或1001+01111111(3)邏輯非運(yùn)算邏輯非的邏輯表達(dá)式寫成
“ˉ”表示“非運(yùn)算”或“邏輯非”,讀作“非”。非運(yùn)算的運(yùn)算規(guī)則:邏輯符號A01Y10真值表AY1(c)AY(a)AY(b)基本邏輯門2.1.2基本邏輯符號2.復(fù)合邏輯運(yùn)算與、或、非為三種基本邏輯運(yùn)算。實際邏輯問題要比與、或、非復(fù)雜得多,但都可以用簡單的與、或、非邏輯組合來實現(xiàn)。從而構(gòu)成復(fù)合邏輯。復(fù)合邏輯常見的有與非、或非、異或、同(或)運(yùn)算等。(1)
與非門
與非運(yùn)算的邏輯結(jié)論:有0出1,全1出0。(2)
或非門
或非運(yùn)算的邏輯結(jié)論:有1出0,全0出1。(3)
異或門
邏輯關(guān)系是:相異出1;相同出0
。邏輯結(jié)論:A<>B時,Y=1;A=B時,Y=0。(4)
同或門
異或運(yùn)算和同或運(yùn)算互為反函數(shù)即A⊙B=A⊕B邏輯關(guān)系:相同出1;相異出0
。邏輯結(jié)論:
A=B時Y=1;A<>B時Y=0。復(fù)合邏輯運(yùn)算=A⊙B
邏輯符號如下圖,其中第一行為IEEE84國際標(biāo)準(zhǔn)符號;第二行為慣用符號;第三行為IEEE91國際標(biāo)準(zhǔn)符號。公理3:公理4:公理5:3.邏輯代數(shù)的運(yùn)算規(guī)則 一.基本公理
公理1:
設(shè)A為邏輯變量,若A≠0,則A=1;若A≠l,則A=0。
公理2:
0
0=0;1+1=11
1=1;0+0=0。
0
1=0;1+0=1。1
0=0;0+1=1。二.基本定律分別令A(yù)=0及A=1代入這些公式,即可證明它們的正確性。(20)6、交換律7、結(jié)合律8、分配律A+B=B+AA?B=B?AA+(B+C)=(A+B)+C=(A+C)+BA?(B?C)=(A?B)?CA(B+C)=A?B+A?CA+B?C=(A+B)(A+C)普通代數(shù)不適用!三、德摩根定理(反演律)(21)(DeMorgan)證明:真值表法、窮舉法推廣到多變量:說明:兩個(或兩個以上)變量的與非(或非)運(yùn)算等于兩個(或兩個以上)變量的非或(非與)運(yùn)算。用真值表證明摩根定理成立(22)A·B=A+BA+B=A·BAB00011011Y1=A·BY2=A+B11101110相等√邏輯代數(shù)的基本公式=A⊙B=自等律說明公式求反律反演律分配律結(jié)合律還原律吸收律交換律重疊律互補(bǔ)律0—1律(24)四種表示方法邏輯函數(shù)式
(邏輯表示式,邏輯代數(shù)式)
邏輯電路圖:卡諾圖n個輸入變量種組合。真值表:將邏輯函數(shù)輸入變量取值的不同組合與所對應(yīng)的輸出變量值用列表的方式一一對應(yīng)列出的表格。4.邏輯函數(shù)的表示方法010100110100011110CAB卡諾圖表述方式找出那些使函數(shù)值為1的變量取值組合,變量值為1的寫成原變量,為0的寫成反變量,這樣對應(yīng)于使函數(shù)值為1的每一個組合就可以寫出一個乘積項,把這些乘積項加起來,可以得到函數(shù)的原函數(shù)的標(biāo)準(zhǔn)與或式。把函數(shù)值為0的對應(yīng)乘積項相加,則得反函數(shù)。5.邏輯函數(shù)表達(dá)式與真值表的相互轉(zhuǎn)換(1)由真值表求對應(yīng)的邏輯函數(shù)表達(dá)式例:寫出表決邏輯的原函數(shù)和反函數(shù)的標(biāo)準(zhǔn)與或式。解:00010111000001010011100101110111FABC表決邏輯真值表(2)由函數(shù)式寫真值表將輸入變量的各種組合一一代入函數(shù)式中計算輸出變量值,全部完成后得到真值表。01010101C00110011B00001111Y=A+BC+ABCA011···01111例如:Y=A+BC+ABC,求它的真值表。6.邏輯代數(shù)化簡法
同一個邏輯函數(shù)可以有多種表達(dá)形式,一種形式的表達(dá)式,對應(yīng)一種電路,盡管它們的形式不同,但實現(xiàn)的邏輯功能相同,所以在實現(xiàn)某種函數(shù)的電路時,重要的是如何處理函數(shù),以盡量少的單元電路、以及電路類型來達(dá)到目的?;喌囊饬x:電路簡單使用已有器件化簡的方法:代數(shù)化簡法(公式法)卡諾圖化簡法
一般說來,表達(dá)式越簡單,實現(xiàn)起來邏輯電路也越簡單。默認(rèn)最簡形式為最簡與或式,即用最少的與門和或門來實現(xiàn)函數(shù)。
與或表達(dá)式最簡,由它轉(zhuǎn)換得來的表達(dá)式,一般來說也就最簡。最簡與或式:乘積項的項數(shù)最少。每個乘積項中變量個數(shù)最少。將n個輸入變量的全部最小項用小方塊陣列圖表示,并且將邏輯相鄰的最小項放在相鄰的幾何位置上,所得到的陣列圖就是n變量的卡諾圖。
卡諾圖的每一個方塊(最小項)代表一種輸入組合,并且把對應(yīng)的輸入組合注明在陣列圖的上方和左方。
卡諾圖化簡法一、與或表達(dá)式的卡諾圖表示0001111000011110CDAB最小項卡諾圖的畫法①畫正方形或矩形,圖形中分割出2n個小方格,n為變量的個數(shù),每個最小項對應(yīng)一個小方格。②變量取值按循環(huán)碼排列(GrayCode),其特點是相鄰兩個編碼只有一位狀態(tài)不同。變量卡諾圖形象地表達(dá)了變量各個最小項之間在邏輯上的相鄰性。0001111001BCA說明:⑴2個或以上變量,按循環(huán)碼規(guī)則排列;⑵每個小方格對應(yīng)一個最小項;⑶相鄰方格的最小項,具有邏輯相鄰性,即有一個變量互為反變量;⑷具有邏輯相鄰性的方格有: 相接——幾何相鄰的方格; 相對——上下兩邊、左右兩邊的方格; 相重——多變量卡諾圖,以對稱軸相折疊,重在一齊的方格。邏輯相鄰的最小項可以消去互補(bǔ)變量mo
m1m2m3m6m7
m4
m50100011110CAB三變量卡諾圖邏輯相鄰舉例0001111001BCA相接相對0001111001BCA四變量卡諾圖邏輯相鄰舉例相接相對相對0001111000011110CDAB由真值表填卡諾圖ABC F000 0001 1010 0011 1100 1101 1110 0111 0mo
m1m2m3m6m7
m4
m50100011110CAB
0100011110CAB對應(yīng)最小項填1其余補(bǔ)0
01
101
1
000001111001BCAmo
m1m3
m2m4
m5m7
m60001111001BCA11110000(37)二、卡諾圖法化簡步驟(一)布陣(畫法規(guī)則)(二)填項(用卡諾圖表示邏輯函數(shù))(三)勾圈化簡(用卡諾圖化簡)三步曲(一)布陣(畫法規(guī)則):1.N=2n
格(n5):最小項2.循環(huán)碼編排循環(huán)鄰接上下封閉布陣(38)ABCD0001111000011110ABDC
m0m1m3m2
m4m5m7m6
m8m9m11m10
m12m13m15m14高位低位(39)(二)填項:用卡諾圖表示邏輯函數(shù)填F=1的項1.最小項直接填入;2.刷項(填公因子所包含的項);3.按(m0,m15)
編號填入。按F=1的與或式填項方法(40)例1:ABCD0001111000011110ABDC1直接填入1公因子:有重復(fù)“1”者,只填一個“1”。(41)ABCD0001111000011110ABDC1111公因子:BD有重復(fù)“1”者,只填一個“1”。刷項:填公因子包含的項例1:(42)ABCD0001111000011110ABDC111111111111有重復(fù)“1”者,只填一個“1”。刷項:填公因子包含的項例1:(43)ABCD0001111000011110ABDC111111111111F=1的項全部填完以后,填項結(jié)束;不填者自動為“0”。例1:(44)(三)勾圈化簡:1.盡量勾大,2i個格消i個變量(in);3.每個圈至少有一個獨立格;4.圈必須覆蓋所有的“1”,即不能遺漏取值為“1”的小方塊。勾圈原則得到最簡與或式。2.“1”可以重復(fù)利用;(45)ABCD0001111000011110ABDC111111111111D保留公因子:消取值不同的變量:B保留公因子:合理重疊(“1”可以重復(fù)使用)。例1:(46)也可以取F=0的項化簡:ABCD00011110000111101111111111110000組合邏輯電路時序邏輯電路功能:輸出只取決于
當(dāng)前的輸入邏輯電路組成:門電路(不存在記憶元件)功能:輸出取決于當(dāng)前的輸入原來的狀態(tài)組成:組合電路記憶元件
7.組合邏輯電路的設(shè)計
組合邏輯電路的特點2023/2/148
組合邏輯電路的一般設(shè)計步驟
1、由邏輯問題抽象出邏輯功能,列出真值表;2、由卡洛圖進(jìn)行化簡,得到邏輯函數(shù)式;4、對邏輯電路圖進(jìn)行仿真。
組合邏輯電路手工設(shè)計方法
設(shè)計要求:按要求得到最簡單的邏輯電路。3、選定器件,畫出邏輯電路圖;2023/2/149例:
數(shù)據(jù)選擇器的設(shè)計在數(shù)字信號的傳輸過程中,有時需要從多路輸入數(shù)據(jù)中選出某一路數(shù)據(jù),完成此功能的邏輯器件稱為數(shù)據(jù)選擇器,即所謂多路開關(guān),簡稱MUX(Multiplexer)
。D3D2D1D0F選擇端輸入數(shù)據(jù)輸出數(shù)據(jù)A1A0功能示意圖:數(shù)據(jù)選擇器S2023/2/150一位二選一數(shù)據(jù)選擇器
真值表:選擇端數(shù)據(jù)端輸出端a1a0Y10
0010
1011
0111
110
a0a0選擇a0選擇a1(51)sa1a00100011110001101勾圈化簡:0054本課程要學(xué)習(xí)的PLD設(shè)計EDA工具軟件
QuartusⅡ美國Altera公司自行設(shè)計的第四代PLD開發(fā)軟件可以完成PLD的設(shè)計輸入、邏輯綜合、布局與布線、仿真、時序分析、器件編程的全過程同時還支持SOPC(可編程片上系統(tǒng))設(shè)計開發(fā)2.3原理圖輸入法邏輯電路設(shè)計2.3.1QuartusII軟件簡介
QuartusⅡ簡介
QuartusⅡ提供了方便的設(shè)計輸入方式、快速的編譯和直接易懂的器件編程。能夠支持邏輯門數(shù)在百萬門以上的邏輯器件的開發(fā),并且為第三方工具提供了無縫接口。QuartusⅡ支持的器件有:StratixⅡ、StratixGX、Stratix、Mercury、MAX3000A、MAX7000B、MAX7000S、MAX7000AE、MAXⅡ、FLEX6000、FLEX10K、FLEX10KA、FLEX10KE、Cyclone、CycloneⅡ、APEXⅡ、APEX20KC、APEX20KE和ACEX1K系列。QuartusⅡ軟件包的編程器是系統(tǒng)的核心,提供功能強(qiáng)大的設(shè)計處理,設(shè)計者可以添加特定的約束條件來提高芯片的利用率。QuartusⅡ主界面QuartusⅡ主界面的一個實例原理圖輸入法邏輯電路設(shè)計設(shè)計流程1、建立一個新工程,并指定對象器件。2、設(shè)計輸入:
編輯HDL文件
原理圖3、功能模擬:
編譯(分析和綜合)生成網(wǎng)表文件建立波形文件4、物理設(shè)計引腳分配
完整編譯后時序模擬5、器件編程:下載
進(jìn)入原理圖編輯器從元件庫中調(diào)入元件符號繪制原理圖將設(shè)計項目設(shè)置成可調(diào)用的元件設(shè)計頂層文件將設(shè)計設(shè)置成工程2.3.2電路原理圖編輯輸入進(jìn)入原理圖編輯器進(jìn)入原理圖編輯器File->NewBlockDiagram/SchematicFile原理圖編輯器窗口原理圖設(shè)計方法
元件輸入對話框
從元件庫中調(diào)入元件符號
電路原理圖編輯輸入電路原理圖編輯輸入(1)新建一個文件夾。
(2)打開原理圖編輯窗。(3)文件存盤。
2.3.3創(chuàng)建工程
(1)打開建立新工程管理窗。新建工程工作目錄的路徑新建的工程名稱工程的頂層設(shè)計實體名稱創(chuàng)建工程
(2)將設(shè)計文件加入工程中。創(chuàng)建工程
(3)選擇目標(biāo)芯片。
(4)工具設(shè)置。
選擇對象器件EP1C12Q240C8創(chuàng)建工程
(5)結(jié)束設(shè)置。創(chuàng)建工程
(6)編輯構(gòu)建電路圖。
2.3.5編譯前設(shè)置
選擇FPGA目標(biāo)芯片。選擇對象器件EP1C12Q240C82.3.6全程編譯processing->startcompilationprocessing->start菜單編譯器窗口編譯結(jié)果的報告2.3.7時序仿真測試電路功能
選擇編輯矢量波形文件,打開波形編輯器(1)打開波形編輯器建立波形文件File->New->VectorWaveformFile使用波形編輯器繪制測試向量波形波形編輯器窗口時序仿真測試電路功能
(1)打開波形編輯器。(2)設(shè)置仿真時間區(qū)域。
(3)波形文件存盤。Edit->EndTime指定模擬終止時間(4)將工程top的端口信號名選入波形編輯器中(1)選擇Pins:all(2)點擊List(5)編輯輸入波形(輸入激勵信號)(1)按住鼠標(biāo)左鍵并拖動鼠標(biāo),選擇一個時間段(2)在工具條中選擇一個值,給信號賦值(6)仿真器參數(shù)設(shè)置(7)啟動仿真器。模擬器窗口Processing->Simulatortool或Processing->StartSimulator(8)觀察分析仿真結(jié)果。時延2.4三種風(fēng)格的VerilogHDL描述
?cVerilogHDLStyles1.Structuralstyle(結(jié)構(gòu)風(fēng)格)2.Data?owstyle(數(shù)據(jù)流風(fēng)格)3.Behavioralstyle(功能描述風(fēng)格)cVerilogHDLSynthesisandSimulationTools
Therearemanytools(freeornot) Iamusing2freetools OnWindows:QuartusIIWebEdition
ACPLD/FPGAdesigntoolbyAltera OnLinux:IcarusVerilog
Supporttransistorleveldesign AlsoforWindowsc2.4.1VerilogHDL基礎(chǔ)知識一.Verilog模塊的結(jié)構(gòu)VerilogHDL以模塊集合的形式來描述數(shù)字系統(tǒng)?!澳K”(module)是Verilog程序的基本設(shè)計單元,用于描述某個設(shè)計的功能、結(jié)構(gòu)、與其他模塊通信的外部端口。
先通過三個簡單的Verilog程序,直觀地認(rèn)識Verilog模塊的結(jié)構(gòu)。例1:根據(jù)電路結(jié)構(gòu)建模&&modulemux2x1_gate(a0,a1,s,y);outputy;inputa0,a1,s;noti0(sn,s);andi1(a0_sn,a0,sn);andi2(a1_s,a1,s);ori3(y,a0_sn,a1_s);endmodule//模塊名、端口列表//聲明y為輸出端口//聲明a0,a1,s為輸入端口//調(diào)用內(nèi)置“非”門元件//調(diào)用內(nèi)置“與”門元件//調(diào)用內(nèi)置“與”門元件//調(diào)用內(nèi)置“或”門元件例2:根據(jù)邏輯表達(dá)式建模modulemux2x1_dataflow(a0,a1,s,y);outputy;inputa0,a1,s;endmodule
assigny=(~s&a0)|(s&a1);定義同上采用邏輯表達(dá)式進(jìn)行邏輯功能的描述&&例3:根據(jù)電路行為建模modulemux2x1_behavioral_if_else(a0,a1,s,y);
inputa0,a1,s;
outputy;
regy;endmodulealways@(sora0ora1)
if(s)y=a1;
elsey=a0;定義always中的賦值變量
只要信號a0,a1,s中有一個發(fā)生變化,就執(zhí)行下面的語句。在這里已看不出電路的結(jié)構(gòu),而是一種電路行為的描述。&&Verilog模塊基本結(jié)構(gòu)module模塊名(端口列表);端口定義input輸入端口output輸出端口……數(shù)據(jù)類型說明wireregparameter……邏輯功能定義assignalways語言內(nèi)置門元件調(diào)用…endmodule1.模塊聲明Verilog模塊結(jié)構(gòu)完全包含在module和endmodule關(guān)鍵字之間。模塊聲明的格式:module模塊名(端口1,端口2、….);……endmodule2.端口(Port)定義
端口是模塊與外界或其他模塊進(jìn)行連接和通信的信號線,對模塊的輸入、輸出端口要進(jìn)行明確的定義,格式如下:input〈[向量位寬]〉
端口名1,端口名2,……端口名n;output〈[向量位寬]〉
端口名1,端口名2,……端口名n;定義輸入定義輸出3.數(shù)據(jù)類型和信號類型的聲明
每個端口除聲明為輸入、輸出,還要聲明其數(shù)據(jù)類型是連線型(wire)還是寄存器型(reg),若沒有聲明,綜合器默認(rèn)為是wire型。
模塊中用到的節(jié)點信號(連線)也必須進(jìn)行數(shù)據(jù)類型的定義。用wire將信號定義為連線型;用reg將信號定義為寄存器型;用parameter定義符號常量。特別提示:輸入不能聲明為reg型!4.邏輯功能定義
模塊中最核心的部分是邏輯功能定義。下面介紹幾種基本方法。(1)用“assign”持續(xù)賦值語句進(jìn)行邏輯功能的定義例如:assignF=~((A&B)|(C&D));“assign”語句一般用于組合邏輯的賦值,稱為持續(xù)賦值方式。是一種基于邏輯表達(dá)式的邏輯功能描述方式。在前面的例2中,就是采用這種方式建立電路模型。(2)
調(diào)用內(nèi)置元件(元件例化)描述電路結(jié)構(gòu)調(diào)用VerilogHDL中提供的動態(tài)元件“畫”電路圖。例如:andmyand3(out,a,b,c);調(diào)用門元件,構(gòu)造一個名為myand3的三輸入與門。andc1(F,in1,in2);調(diào)用門元件,構(gòu)造一個名為c1的二輸入與門。
前面例1中,通過調(diào)用門元件,進(jìn)行信號的相互連接,構(gòu)造電路的模型。(3)
用“always”過程塊描述電路的邏輯功能moduleMUX2_1(out,a,b,sel);//Portdeclarationsoutputout;inputa,b,sel;wireout,a,b,sel;wiresel_,a1,b1;
regout;
always@(seloraorb)if(!sel)out=a;elseout=b;endmodule注釋行定義always中的賦值變量a,b,sel是輸入端口,out是輸出端口。所有信號通過這些端口從模塊輸入/輸出。另一個模塊可以通過模塊名及端口說明使用多路器。實例化多路器時不需要知道其實現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計方法的一個重要特點。模塊的實現(xiàn)可以是行為級也可以是門級,但并不影響高層次模塊對它的使用。多路器由關(guān)鍵詞module和endmodule開始及結(jié)束。小結(jié)●VerilogHDL程序是由模塊構(gòu)成的●模塊是可以進(jìn)行層次嵌套的●上層模塊可以通過模塊調(diào)用構(gòu)成更大的邏輯系統(tǒng)●Verilog模塊分為邏輯綜合模塊和邏輯模擬模塊●每個模塊由模塊聲明、端口定義、數(shù)據(jù)類型說明、邏輯功能定義四部分構(gòu)成●VerilogHDL程序的書寫格式自由,一行可寫多個語句,一個語句也可分寫多行?!癯齟ndmodule外,每個語句和數(shù)據(jù)定義的最后必須有分號●可用/*…*/和//…進(jìn)行多行、單行注釋(綠色),增強(qiáng)程序的可讀性二.VerilogHDL中的數(shù)字(數(shù)值)常量VerilogHDL有下列四種基本的邏輯狀態(tài):0:低電平、邏輯0或“假”1:高電平、邏輯1或“真”x或X:不確定或未知的邏輯狀態(tài)z或Z:高阻狀態(tài)VerilogHDL中的常量是有這四類基本值組成的。
±<size>′<base_format><number>位寬:對應(yīng)二進(jìn)制數(shù)的寬度,省缺為32位。當(dāng)指定進(jìn)制格式時,不能省略數(shù)值采用的進(jìn)制格式b或B:二進(jìn)制d或D或缺?。菏M(jìn)制h或H:十六進(jìn)制o或O:八進(jìn)制基于進(jìn)制的數(shù)字序列VerilogHDL可綜合模塊中常用的整數(shù)型常量的書寫格式:正、負(fù)號例:
659//簡單的十進(jìn)制表示′h837FF/*省缺位寬的十六進(jìn)制數(shù),位寬大于實際位數(shù),數(shù)值高位是
0或1,高位補(bǔ)0;數(shù)值高位是x或z,高位補(bǔ)x或z。*/′o7460//省缺位寬的八進(jìn)制數(shù)4AF//非法的整數(shù)表示,十六進(jìn)制需要′hb001//非法的整數(shù)表示,不能省略′4′b0010//四位的二進(jìn)制數(shù)5′D3//五位的十進(jìn)制數(shù)8′b0100_1010//使用下劃線增加可讀性
±<size>′<base_format><number>三.VerilogHDL中的標(biāo)識符由字母、數(shù)字以及符號“$”、“_”(下劃線)組成?!駱?biāo)識符必須以字母或下劃線開頭●標(biāo)識符是區(qū)分大小寫的合法標(biāo)識符舉例:countCOUNT_A1_d2不正確的標(biāo)識符:30countOut*$123標(biāo)識符常用于“模塊名”或“變量名”四.VerilogHDL中的關(guān)鍵字
關(guān)鍵字也稱為保留字,是VerilogHDL語言內(nèi)部的專用詞,用于組織語言結(jié)構(gòu),全部采用小寫形式(藍(lán)色)。例如:module、endmodule、begin、end、always、and、or、if、else、wire、reg、input、output、……
請同學(xué)們在后續(xù)課程學(xué)習(xí)時,關(guān)注、總結(jié)VerilogHDL中的關(guān)鍵字,從現(xiàn)在開始熟悉掌握。請注意:ALWAYS是標(biāo)識符(黑色),與關(guān)鍵字always是不同的。五.VerilogHDL中的數(shù)據(jù)(變量)類型
在硬件描述語言中,數(shù)據(jù)類型用來表示邏輯電路中的物理連線、數(shù)據(jù)存儲和傳送單元。VerilogHDL中共有19種數(shù)據(jù)類型,分為連線型(NetType)和寄存器型(RegisterType)。在可綜合模塊中,最常用的是這兩類中的wire型、reg型、integer型和parameter型。1.連線型(NetType)變量
連線型變量一般用來描述硬件電路中的各種物理連線。其特點是輸出始終跟隨輸入的變化而變化。對連線型變量有兩種驅(qū)動方式,一種是在結(jié)構(gòu)描述中將其連接到一個邏輯門或模塊的輸出端;另一種是用assign語句進(jìn)行賦值。類型功能說明wire,tri常用連線類型wor,trior具有線或特性的連線wand,triand具有線與特性的連線tri1,tri0上拉電阻,下拉電阻supply1,supply0電源(邏輯1),地(邏輯0)VerilogHDL提供了多種連線型變量重點介紹在可綜合模塊中最常用的是wire型變量wire型變量常用來表示通過assign語句賦值的組合邏輯信號。Verilog模塊中的輸入、輸出端口的信號類型說明省缺時,自動定義為wire型。wire型變量可用于任何表達(dá)式的輸入assign語句的輸出實例元件的輸出對綜合器而言,其取值0,1,x,z其他模塊的輸出wire型變量的定義格式
wire〈[向量位寬]〉數(shù)據(jù)名1,數(shù)據(jù)名2,……數(shù)據(jù)名n;關(guān)鍵字n-1:0或n:1時,定義多位wire型向量;省略時,定義一位的wire型變量。例如,wire型變量或向量的定義:
wirea,b;//定義兩個1位wire型變量a,bwire[7:0]databus;//定義一個8位寬的向量(數(shù)據(jù)總線)
wire[20:1]addrbus;//定義20位寬的地址總線例如,wire型向量的全域使用……wire[7:0]in,out;//定義兩個8位wire型向量in,outassignout=in;//按位對應(yīng)賦值……例如,對wire型向量可選域使用……wire[7:0]out;wire[3:0]in;assignout[5:2]=in;//in的0-3位賦值給out的2-5位……等效于:assignout[5]=in[3];assignout[4]=in[2];assignout[3]=in[1];assignout[2]=in[0];2.寄存器型(RegisterType)變量
寄存器型變量對應(yīng)的是具有狀態(tài)保持作用的電路元件。例如:觸發(fā)器,寄存器。
寄存器型變量的特點是必須進(jìn)行明確的賦值,并且在被重新賦值前一直保持原值。register型變量與net型變量的根本區(qū)別在于:register型變量能夠保持最后一次的賦值;net型變量需要有持續(xù)的驅(qū)動。
在設(shè)計中必須將寄存器型變量放在過程塊語句(initial,always)中,通過過程賦值語句賦值。即:initial,always過程塊內(nèi)被賦值的每一個信號,都必須定義為register型變量。VerilogHDL中也提供了多種寄存器型變量,在可綜合模塊中常用的是integer型和reg型。
integer寄存器型變量是一種純數(shù)學(xué)的抽象描述,它雖然能定義帶符號的32位整型寄存器變量,但不對應(yīng)任何具體的硬件電路。
reg<[向量位寬]>數(shù)據(jù)名1,數(shù)據(jù)名2,……數(shù)據(jù)名n;reg型變量的定義格式:關(guān)鍵字n-1:0或n:1時,定義多位reg型向量;省略時,定義一位的reg型變量。例如,reg型變量、向量的定義
rega,b;//定義兩個寄存器型變量a,b。位寬為1。
reg[7:0]data;//定義位寬為8的寄存器型變量data。
reg[8:1]data;//等效。例如:……reg[7:0]a,b;reg[3:0]c;regd;……d=a[7]&b[7];//位選擇c=a[7:4]+b[3:0];//域選擇……
在表達(dá)式中,可任意使用reg型變量中的一位或相鄰幾位,分別稱為位選擇和域選擇。例:parametersel=8,code=8′ha3;//定義sel為常數(shù)8(十進(jìn)制),code為常數(shù)a3(十六進(jìn)制)parameterdata=8,addr=data*2;//data為8,addr為16,用常數(shù)表達(dá)式賦值。3.parameter型數(shù)據(jù)
在VerilogHDL中,用parameter定義符號常量,即定義一個標(biāo)識符代表一個常量。定義格式如下:
parameter參數(shù)名1=表達(dá)式1,參數(shù)名2=表達(dá)式2,……;六.VerilogHDL中的運(yùn)算符按功能分成九大類:關(guān)系運(yùn)算符算術(shù)運(yùn)算符邏輯運(yùn)算符等式運(yùn)算符縮減運(yùn)算符條件運(yùn)算符拼接運(yùn)算符移位運(yùn)算符位運(yùn)算符按運(yùn)算符所帶的操作數(shù)區(qū)分:單目運(yùn)算符(unaryoperator),帶一個操作數(shù)。雙目運(yùn)算符(binaryoperator),帶兩個操作數(shù)。三目運(yùn)算符(ternaryoperator),帶三個操作數(shù)。算術(shù)運(yùn)算符+加-減*乘/除%模運(yùn)算符(對兩個整型數(shù)據(jù)進(jìn)行求余運(yùn)算)均為雙目運(yùn)算符。在進(jìn)行整數(shù)除法運(yùn)算時,結(jié)果略去小數(shù)。取模運(yùn)算時,結(jié)果符號與第一操作數(shù)相同。當(dāng)兩操作數(shù)中有一個為x,則結(jié)果就為x。10%3,結(jié)果為1;12%4,結(jié)果為0;-10%3,結(jié)果為-1;11%-3,結(jié)果為2邏輯運(yùn)算符&&邏輯與,雙目運(yùn)算‖邏輯或,雙目運(yùn)算!邏輯非,單目運(yùn)算當(dāng)進(jìn)行邏輯運(yùn)算時:●若操作數(shù)是一位的,則邏輯運(yùn)算真值表如下:aba&&ba||b!a!b00001010100010111100●當(dāng)操作數(shù)由多位組成,則將操作數(shù)作為一個整體處理,即如操作數(shù)所有位都是“0”,則整體作為邏輯“0”;只要其中有一位是“1”,則整體作為邏輯“1”?!袢舨僮鲾?shù)中有x,則結(jié)果也可能是x。例如:設(shè)a=2b=0c=4′hxa&&b邏輯與,1&&0,結(jié)果為0a‖b邏輯或,1‖0,結(jié)果為1!a邏輯非,!1,結(jié)果為0a&&c邏輯與,1&&x,結(jié)果為xa‖c邏輯或,1‖x,結(jié)果為1!c邏輯非,!X,結(jié)果為x位運(yùn)算符~按位非(按位取反),單目運(yùn)算。&按位與︱按位或^按位異或^~,~^按位異或非(按位同或)●將操作數(shù)按位對應(yīng),進(jìn)行邏輯運(yùn)算?!駜蓚€不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算時,按右對齊,位數(shù)少的在高位補(bǔ)“0”?!褡⒁鈞對運(yùn)算結(jié)果的影響位運(yùn)算符應(yīng)用舉例:若A=5′B11001,B=5′b101x1,則
~A=5′b00110A&B=5′b10001A︱B=5′b111x1A^B=5′b011x0關(guān)系運(yùn)算符<小于<=小于或等于>大于>=大于或等于
比較兩個操作數(shù)的大小關(guān)系,如果比較關(guān)系成立,則返回邏輯“1”;否則,返回邏輯“0”。如果兩個操作數(shù)中有一個為x,則返回值是x。例:A=2,B=5,D=4′hx則:A<B返回邏輯“1”A>B返回邏輯“0”B<=D返回值是x等式運(yùn)算符==等于!=不等于===全等!==不全等
雙目運(yùn)算,運(yùn)算的結(jié)果是1位的邏輯值。兩個操作數(shù)逐位相等,返回邏輯1;否則,返回邏輯0。若任何一個操作數(shù)中某位是x或z,則返回x。對操作數(shù)中的x和z也進(jìn)行比較,逐位一致,返回邏輯1;否則,返回邏輯0。例:a=5′b11x01,c=5′b11x01,則
a==c得到的結(jié)果是xa===c得到的結(jié)果是1歸約運(yùn)算符又稱為“縮減運(yùn)算符”,是單目運(yùn)算符。&歸約與~&歸約與非︱歸約或~︱歸約或非^歸約異或~^,^~歸約異或非(歸約同或)對單個操作數(shù)進(jìn)行歸約的遞推運(yùn)算,運(yùn)算結(jié)果是1位二進(jìn)制數(shù)。過程:先將操作數(shù)的第1位與第2位進(jìn)行歸約運(yùn)算,運(yùn)算結(jié)果再與第3位進(jìn)行歸約運(yùn)算,依此類推,直到最后一位?!璻eg[3:0]a;b=&a;//等效于b=((a[0]&a[1])&a[2])&a[3])…歸約運(yùn)算符舉例若A=5′b11001則
&A歸約運(yùn)算結(jié)果是0,只有各位均為1,結(jié)果才為1。
︱A歸約運(yùn)算結(jié)果是1,只有各位均為0,結(jié)果才為0^A歸約運(yùn)算結(jié)果是1,奇數(shù)個1,結(jié)果為1。移位運(yùn)算符>>邏輯右移<<邏輯左移
雙目運(yùn)算,將運(yùn)算符左邊的操作數(shù)左移或右移運(yùn)算符右邊的操作數(shù)指定的位數(shù),空位補(bǔ)0。即:A>>n或A<<n。例如:A=6′b110010則A>>2的結(jié)果是6′b001100A<<2的結(jié)果是6′b001000條件運(yùn)算符
?:三目運(yùn)算符應(yīng)用方式
signal=condition
?
true-expression:false-expression;信號=條件?表達(dá)式1:
表達(dá)式2;當(dāng)條件成立時,信號取表達(dá)式1的值,反之取表達(dá)式2的值。條件運(yùn)算符舉例
moduleadd_subtract(a,b,op,result);parameterADD=1′b0;//定義字符常量
input [3:0]a,b;//定義a,b為4位輸入向量
input op;//定義op為1位輸入變量
output[3:0]result;//定義result為4位輸出向量
assignresult=(op==ADD)?a+b:a-b;endmodule當(dāng)op為0,做a+b當(dāng)op為1,做a-b拼接運(yùn)算符{}
將兩個或多個信號的某些位拼接起來。用法如下:{信號1的某幾位,信號2的某幾位,……信號n的某幾位}示例:a=1′b1b=2′b00c=6′b101001則:{a,b}產(chǎn)生一個3位數(shù)3′b100{c[5:3],a}產(chǎn)生一個4位數(shù)4′b1011嵌套使用,進(jìn)行常量或變量的復(fù)制以及簡化書寫。例如:{3{a,b}}等同于{{a,b},{a,b},{a,b}}
也等同于{a,b,a,b,a,b}七.運(yùn)算符的優(yōu)先級運(yùn)算符優(yōu)先級!~高低*/%+–<<>><<=>>===!====!==&~&^^~|~|&&||?:
不同的綜合開發(fā)工具在執(zhí)行這些優(yōu)先級時會有微小的差異,建議養(yǎng)成用括號控制優(yōu)先級的習(xí)慣。2.4.2
VerilogHDL的功能描述模塊一.功能描述
邏輯電路的結(jié)構(gòu)描述側(cè)重于表示一個電路由哪些基本元件組成,以及這些基本元件的相互連接關(guān)系。
邏輯電路的數(shù)據(jù)流描述側(cè)重于邏輯表達(dá)式以及VerilogHDL中運(yùn)算符的靈活運(yùn)用。
功能描述關(guān)注邏輯電路輸入、輸出的因果關(guān)系(行為特性),即在何種輸入條件下,產(chǎn)生何種輸出(操作),并不關(guān)心電路的內(nèi)部結(jié)構(gòu)。EDA的綜合工具能自動將功能描述轉(zhuǎn)換成電路結(jié)構(gòu),形成網(wǎng)表文件。
顯然,當(dāng)電路的規(guī)模較大或時序關(guān)系較復(fù)雜時,通常采用功能描述方式進(jìn)行設(shè)計。二.VerilogHDL功能描述風(fēng)格模塊的設(shè)計模型Verilog功能描述風(fēng)格基本結(jié)構(gòu)module模塊名(端口列表);端口定義input輸入端口output輸出端口數(shù)據(jù)類型說明
regparameter邏輯功能定義always@(敏感事件列表)begin阻塞、非阻塞、if-else、case、for等行為語句endendmodule三.功能描述中的always進(jìn)程應(yīng)用模板always@(<敏感信號表達(dá)式>)begin//過程賦值語句
//if-else,case,casex,casez選擇語句
//for循環(huán)語句
end
一般情況下,always進(jìn)程帶有觸發(fā)條件,這些觸發(fā)條件列在敏感信號表達(dá)式中,只有當(dāng)觸發(fā)條件滿足時,begin-end塊語句才被執(zhí)行。
在一個VerilogHDL模塊中可以有多個always進(jìn)程,它們是并發(fā)執(zhí)行的。
敏感信號表達(dá)式
又稱敏感事件列表。當(dāng)該表達(dá)式中任意一個信號(變量)的值改變時,就會引發(fā)塊內(nèi)語句的執(zhí)行。因此,應(yīng)將所有影響塊內(nèi)取值的信號(變量)列入。多個敏感信號用“or”或“,”連接。2001年以后的版本只要寫一個“*”就行了。例如:@(a)//當(dāng)信號a的值發(fā)生改變時@(a,b)//當(dāng)信號a或信號b的值發(fā)生改變時@(*)//當(dāng)所有輸入信號中至少有一個的值發(fā)生改變時
這里a和b稱為電平敏感型信號,代表的觸發(fā)事件是:信號除了保持穩(wěn)定狀態(tài)以外的任意一種變化過程。
這種電平敏感型信號列表常用在組合邏輯的描述中,以體現(xiàn)輸入隨時影響輸出的組合邏輯特性。
再例如:@(posedgeclock)//當(dāng)clock的上升沿到來時@(negedgeclock)//當(dāng)clock的下降沿到來時@(posedgeclockornegedgereset)//當(dāng)clock的上升沿到來或當(dāng)reset的下降沿到來時
這里的clock和reset信號稱為邊沿敏感型信號,posedge描述對信號的上升沿敏感;negedge描述對信號的下降沿敏感。顯然,這種邊沿敏感型信號列表適合描述同步時序電路,以體現(xiàn)同步時序電路的特點——在統(tǒng)一時鐘作用下改變電路的狀態(tài)。
posedge——代表的觸發(fā)事件是,信號發(fā)生了正跳變。
0→x,0→z,0→1,x→1,z→1negedge——代表的觸發(fā)事件是,信號發(fā)生了負(fù)跳變。
1→x,1→z,1→0,x→0,z→0
在每一個always過程語句中,最好只使用一種類型的敏感信號列表,不要混合使用。以避免使用不同的綜合工具時發(fā)生錯誤。四.串行塊
由關(guān)鍵字begin-end界定的一組語句。串行塊的特點:●一般情況下,塊內(nèi)語句順序執(zhí)行,前面一條語句執(zhí)行畢后,才開始執(zhí)行下一條語句?!衲K運(yùn)行時,遇到串行塊,塊內(nèi)第一條語句即開始執(zhí)行,最后一條執(zhí)行完畢,串行塊結(jié)束?!裾麄€串行塊執(zhí)行時間等于塊內(nèi)各條語句執(zhí)行時間的總和。begin
語句1
語句2……endmoduleff_1(A,B,C,D,F);inputA,B,C,D;outputF;wirew1,w2;
assignw1=A&B;assignw2=~(C&D);assignF=w1|w2;endmodulemoduleff_1(A,B,C,D,F);inputA,B,C,D;outputF;regF,w1,w2;always@(AorBorCorD)
begin
w1=A&B;w2=~(C&D);F=w1|w2;endendmodule功能描述串行塊只應(yīng)用在always進(jìn)程中:多條語句;順序執(zhí)行。
過程賦值語句必須放在always進(jìn)程中,分為阻塞型和非阻塞型,其基本格式為:
〈被賦值變量〉〈賦值操作符〉〈賦值表達(dá)式〉●reg或integer類型變量;●寄存器向量的某一位或某幾位;●用拼接符{}拼接起來的寄存器。=阻塞賦值操作符<=非阻塞賦值操作符任意合法表達(dá)式五.過程賦值語句//過程賦值語句的目標(biāo)變量形式……rega;reg[7:0]b;integeri;always@(敏感事件列表)begin
a=0;i=356;b[2]=1′b1;b[3:0]=4′b1111;{a,b}=9′b101110110;end……過程賦值語句阻塞型過程賦值非阻塞型過程賦值操作符“=”在前面討論中,用到的賦值語句都是阻塞型過程賦值語句●串行塊(begin-end)內(nèi)各條阻塞型過程賦值語句按順序依次執(zhí)行。下一條語句的執(zhí)行被阻塞,等本條語句的賦值操作完成后,才開始執(zhí)行。●阻塞型過程賦值語句的執(zhí)行過程:先計算“賦值表達(dá)式”的值,然后立即賦值給“=”左邊的“被賦值變量”。過程賦值語句非阻塞型過程賦值阻塞型過程賦值操作符“<=”特點:●在begin-eng串行塊語句中,各條非阻塞過程賦值語句對應(yīng)的“賦值表達(dá)式”同時開始計算?!裨谶^程塊結(jié)束時,才將結(jié)果賦值給各個“被賦值變量”?!窨衫斫鉃橄韧瑫r采樣,最后一起賦值?!璪eginA<=B;//S1B<=A;//S2end……這里,S1、S2語句均為非阻塞賦值,立即開始計算B和A值(上次的值)。在過程塊結(jié)束時,進(jìn)行賦值操作,將計算得到的B,A的值賦給變量A,B。(實現(xiàn)A,B交換)
如果不能很好地理解阻塞賦值與非阻塞賦值的區(qū)別,往往給設(shè)計帶來麻煩,特別是在可綜合邏輯模塊中,不易把握reg型變量的賦值過程。建議同學(xué)在編寫模塊時,只采用一種過程賦值方式,并且最好不要將輸出再次作為輸入使用。
為了更好地理解阻塞賦值與非阻塞賦值的區(qū)別,我們觀察下面的示例。//例1:非阻塞賦值modulen_block(c,b,a,clk);outputc,b;inputclk,a;regb,c;always@(posedgeclk)beginb<=a;c<=b;endendmodule//例2:阻塞賦值moduleblock(c,b,a,clk);outputc,b;inputclk,a;regb,c;always@(posedgeclk)beginb=a;c=b;endendmodule結(jié)果:b更新為a的值,c為上個時鐘周期b的值。結(jié)果:b、c都更新為a的值。這兩個程序進(jìn)行邏輯綜合后的結(jié)果如下:>DQ>DQclkabc>DQclkacb例1非阻塞賦值綜合結(jié)果例2阻塞賦值綜合結(jié)果高級程序語句if-else條件分支語句case分支控制語句(1)if-else條件分支語句格式1if(<條件表達(dá)式>)語句或語句塊;格式2if(<條件表達(dá)式>)語句或語句塊1;
else語句或語句塊2;格式3if(<條件表達(dá)式1>)語句或語句塊1;
elseif(<條件表達(dá)式2>)語句或語句塊2;
……elseif(<條件表達(dá)式n>)語句或語句塊n;
else語句或語句塊n+1;兩路分支選擇控制多路分支選擇控制六.條件語句
三種格式中的<條件表達(dá)式>,一般為邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是一位的變量。系統(tǒng)對<條件表達(dá)式>的值進(jìn)行判斷,若為0、x、z,按“假”處理;若為1,按“真”處理,執(zhí)行指定語句。語句可以是單句,也可以是多句,多句時用begin-end括起來。
為了清晰表達(dá)if和else的匹配關(guān)系,建議最好用begin-end將“指定語句”括起來。//if-else條件分支語句應(yīng)用舉例
modulesel-from-three(q,sela,selb,a,b,c);inputsela,selb,a,b,c;outputq;regq;always@(selaorselboraorborc)beginif(sela)q=a;elseif(selb)q=b;elseq=c;endendmoduleselaselb語句
00q=c01q=b10q=a11q=a注意隱含的優(yōu)先級關(guān)系。排在前面的分支項指定的操作具有較高優(yōu)先級。例:11時,執(zhí)行q=a,不是q=b。(2)case分支控制語句
相對if-else語句只有兩個分支而言,case語句是一種多分支語句。所以,常用來描述譯碼器、多路數(shù)據(jù)選擇器、微處理器的指令譯碼和有限狀態(tài)機(jī)。case分支控制語句有三種形式:casecasexcasez全等比較分支控制局部比較分支控制“全等比較分支控制”case語句的格式:
case(<控制表達(dá)式>)<分支項表達(dá)式1>:語句塊1;
<分支項表達(dá)式2>:語句塊2;
……<分支項表達(dá)式n>:語句塊n;
default:語句塊n+1;endcase對程序流向進(jìn)行控制的信號(變量)控制信號(變量)的具體狀態(tài)組合取值受控的分支操作,可單句,也可多句。未列入分支控制的狀態(tài)組合下應(yīng)進(jìn)行的操作未列入分支控制的狀態(tài)組合的統(tǒng)稱。
(其余狀態(tài)時)與真值表存在某種對應(yīng)關(guān)系
按位全等比較case語句示例……case(op_code)2′b00:out=a︱b;2′b01:out=a&b;2′b10:out=~(a&b);2′b11:out=a^b;default:out=0;endcase……case語句在執(zhí)行時,控制表達(dá)式和分支項表達(dá)式之間進(jìn)行的是按位全等比較,只有對應(yīng)每一位都相等,才認(rèn)為控制表達(dá)式和分支項表達(dá)式是相等的。顯然,這種比較包含了信號的0、1、x、z四種狀態(tài)。
根據(jù)按位全等比較的特點,要求case語句中的控制表達(dá)式和分支項表達(dá)式必須具有相同的位寬。當(dāng)各個分支項表達(dá)式以常數(shù)形式給出時,必須明確標(biāo)明位寬,否則編譯器默認(rèn)為與機(jī)器字長相同的位寬(例如32位)。能不能忽略信號的x和z邏輯狀態(tài)的比較?這就引出了“局部比較”分支控制的casex和casez語句。利用控制表達(dá)式和分支項表達(dá)式中某些位的比較結(jié)果控制程序流向。
casez語句——忽略處于“z”邏輯狀態(tài)位的比較。casex語句——忽略處于“x”或“z”邏輯狀態(tài)位的比較。
casex語句示例
……reg[7:0]out;always@(aorboropcode)begincasex(opcode)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海科創(chuàng)職業(yè)技術(shù)學(xué)院《多尺度與多場計算》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海交通大學(xué)《中外教育改革專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海建橋?qū)W院《電氣與計算機(jī)工程概率統(tǒng)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海洋大學(xué)《汽車底盤結(jié)構(gòu)與維修》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海事職業(yè)技術(shù)學(xué)院《國際貿(mào)易運(yùn)輸與保險》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海海事大學(xué)《聚合設(shè)備及工藝設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年中國承托層礫石市場調(diào)查研究報告
- 上海工商外國語職業(yè)學(xué)院《綠色建筑技術(shù)與方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 混凝土結(jié)構(gòu)工程模擬試題含答案
- 教育行業(yè)工作總結(jié)
- 2024年執(zhí)業(yè)醫(yī)師考試-中醫(yī)師承及確有專長考核筆試考試歷年高頻考點試題摘選含答案
- 光伏支架巡回檢查、維護(hù)管理制度
- 小班戶外運(yùn)動案例分析與反思
- 天津市河?xùn)|區(qū)2023-2024學(xué)年九年級上學(xué)期期末數(shù)學(xué)試題
- 巖體力學(xué)與工程智慧樹知到期末考試答案章節(jié)答案2024年合肥工業(yè)大學(xué)
- 精氨酸在肥胖中的作用
- 2024年醫(yī)藥衛(wèi)生考試-醫(yī)院信息科筆試參考題庫含答案
- 微觀經(jīng)濟(jì)學(xué)(對外經(jīng)濟(jì)貿(mào)易大學(xué))智慧樹知到期末考試答案2024年
- 初中語文文言文《狼》習(xí)題
- 醫(yī)院總值班培訓(xùn)課件
- MOOC 創(chuàng)新創(chuàng)業(yè)學(xué)-西安工業(yè)大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論