版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章基本邏輯電路設(shè)計(jì)
5.1組合邏輯電路設(shè)計(jì)5.2
時(shí)序邏輯電路設(shè)計(jì)5.3存儲器設(shè)計(jì)5.4狀態(tài)機(jī)的VHDL設(shè)計(jì)
12/20/2023第5章基本邏輯電路設(shè)計(jì)
教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程12/20/2023掌握組合邏輯電路的設(shè)計(jì)掌握總線接口電路的設(shè)計(jì)掌握存儲器和狀態(tài)機(jī)的設(shè)計(jì)通過若干數(shù)字電路設(shè)計(jì)實(shí)例掌握復(fù)雜邏輯電路的設(shè)計(jì)方法第5章教學(xué)目標(biāo)12/20/2023第5章教學(xué)重點(diǎn)
掌握組合邏輯電路的設(shè)計(jì)掌握總線接口電路的設(shè)計(jì)掌握存儲器和狀態(tài)機(jī)的設(shè)計(jì)
12/20/20235.1組合邏輯電路設(shè)計(jì)5.1.1基本門電路
1.基本門電路的VHDL語言描述基本門電路用VHDL語言來描述十分方便。為方便起見,在下面的兩輸入模塊中,使用VHDL中定義的邏輯運(yùn)算符,同時(shí)實(shí)現(xiàn)一個(gè)與門、或門、與非門、或非門、異或門及反相器的邏輯。
本節(jié)的組合邏輯電路設(shè)計(jì)主要有:基本門電路、3-8譯碼器、8-3線優(yōu)先編碼器、8位比較器、多路選擇器、三態(tài)門電路、單向總線驅(qū)動器、雙向總線緩沖器等設(shè)計(jì)實(shí)例。12/20/2023
【例5.1.1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYGATEISPORT(A,B:INSTD_LOGIC;
YAND,YOR,YNAND,YNOR,YNOT,YXOR:OUTSTD_LOGIC);
ENDGATE;ARCHITECTUREARTOFGATEIS12/20/2023BEGINYAND<=AANDB; --與門輸出
YOR<=AORB; --或門輸出
YNAND<=ANANDB;--與非門輸出
YNOR<=ANORB; --或非門輸出
YNOT<=ANOTB; --反相器輸出
YXOR<=AXORB; --異或門輸出
ENDART;12/20/20232.3-8譯碼器下面我們分別以4種方法描述一個(gè)3-8譯碼器?!纠?.1.2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED_ALL;ENTITYDECODERISPORT(INP:INSTD_LOGIC_VECTOR(2DOWNTO0);
OUTP:OUTBIT_VECTOR(7DOWNTO0));ENDDECODER;12/20/2023方法1:使用SLL邏輯運(yùn)算符ARCHITECTUREART1OFDECODERISBEGINOUTP<="11111110"SLL(CONV_INTEGER(INP));----輸出低有效譯碼ENDART1;
12/20/2023方法2:使用PROCESS語句ARCHITECTUREART2OFDECODERISBEGINPROCESS(INP)BEGINOUTP<=(OTHERS=>‘1’)--對輸出所有位全賦0OUTP(COVN_INTEGER(INP))<=‘1’--僅對其中的一位賦值
ENDPROCESS;ENDART212/20/2023方法3:使用CASE_WHEN語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDECODERISPORT(SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);
EN:INSTD_LOGIC;---加使能控制端
Y:OUTBIT_VECTOR(7DOWNTO0));ARCHITECTUREART3OFDECODERISBEGINPROCESS(SEL,EN)BEGINY<=”11111111”;IF(EN=’1’)THEN12/20/2023CASESELISWHEN"000"=>Y(0)<=‘0’;--輸出低有效
WHEN"001"=>Y(1)<=’0’;
WHEN"010"=>Y(2)<=‘0’;
WHEN"011"=>Y(3)<=‘0’;
WHEN"100"=>Y(4)<=‘0’;
WHEN"101"=>Y(5)<=‘0’;
WHEN"110"=>Y(6)<=‘0’;
WHEN"111"=>Y(7)<=‘0’;
WHENOTHERS=>NULL;
ENDCASE;ENDPROCESS;ENDART3;
12/20/2023方法4:使用條件選擇WHENELSE語句
ARCHITECTUREART4OFDECODERISBEGINY(0)<=‘0’WHEN(EN=’1’ANDSEL="000")ELSE’1’;
Y(1)<=‘0’WHEN(EN=’1’ANDSEL="001")ELSE’1’;
Y(2)<=‘0’WHEN(EN=’1’ANDSEL="010")ELSE’1’;
Y(3)<=‘0’WHEN(EN=’1’ANDSEL="011")ELSE’1’;
Y(4)<=‘0’WHEN(EN=’1’ANDSEL="100")ELSE’1’;
Y(5)<=‘0’WHEN(EN=’1’ANDSEL="101")ELSE’1’;
Y(6)<=‘0’WHEN(EN=’1’ANDSEL="110")ELSE’1’;
Y(7)<=’0’WHEN(EN=’1’ANDSEL="111")ELSE’1’;ENDART4;12/20/20233.8-3線優(yōu)先編碼器下面我們用三種方法設(shè)計(jì)8-3線優(yōu)先編碼器。8-3線優(yōu)先編碼器,輸入信號為y0、y1、y2、y3、y4、y5、y6和y7,輸出信號為OUT0、OUT1和OUT2。輸入信號中y0的優(yōu)先級別最低,依次類推,y7的優(yōu)先級別最高。【例5.1.3】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYENCODERISPORT(y0,y1,y2,y3,y4,y5,y6,y7:INSTD_LOGIC;
OUT0,OUT1,OUT2:OUTSTD_LOGIC);ENDENCODER;12/20/2023方法1:使用條件賦值語句ARCHITECTUREART1OFENCODERISSIGNALOUTS:STD_LOGIC_VECTOR(2DOWNTO0);
BEGINOUTS(2DOWNTO0)<="111"WHENy7=‘1’ELSE"110"WHENy6=‘1’ELSE"101"WHENy5=‘1’ELSE"100"WHENy4=‘1’ELSE"011"WHENy3=‘1’ELSE"010"WHENy2=‘1’ELSE"001"WHENy1=‘1’ELSE"000"WHENy0=‘1’ELSE"XXX";OUT0<=OUTS(0);
OUT1<=OUTS(1);
OUT2<=OUTS(2);
ENDART1;12/20/2023
方法2:使用IF語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYENCODERISPORT(IN1:INSTD_LOGIC_VECTOR(7DOWNTO0);
OUT1:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDENCODER;ARCHITECTUREART2OFENCODERISBEGINPROCESS(IN1)12/20/2023BEGINIFIN1(7)=‘1’THENOUT1<="111";ELSIFIN1(6)=‘1’THENOUT1<="110";ELSIFIN1(5)=‘1’THENOUT1<="101";ELSIFIN1(4)=‘1’THENOUT1<="100";ELSIFIN1(3)=‘1’THENOUT1<="011";ELSIFIN1(2)=‘1’THENOUT1<="010";ELSIFIN1(1)=‘1’THENOUT1<="001";ELSIFIN1(0)=‘1’THENOUT1<="000";ELSEOUT1<="XXX";ENDIF;
ENDPROCESS;ENDART2;12/20/2023
4.加法器—帶進(jìn)位的4位加法器【例5.1.4】用FOR-LOOP語句實(shí)現(xiàn)LIBRARYIEEE;方法1:USEIEEE.STD_LOGIC_1164.ALL;ENTITYADDER4IS
PORT(A,B:INSTD_LOGIC_VECTOR(3DOWNTO0);
CIN:INSTD_LOGIC;SUM:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUNT:OUTSTD_LOGIC);ENDADDER4;12/20/2023ARCHITECTUREARTOFADDER4ISSIGNALC:STD_LOGIC_VECTOR(4DOWNTO0);
BEGINPROCESS(A,B,CIN,C)BEGINC(0)<=CIN;FORIIN0TO3LOOP---用FOR循環(huán)語句實(shí)現(xiàn)多位相加
SUM(I)<=A(I)XORB(I)XORC(I);C(I+1)<=(A(I)ANDB(I))OR(C(I)AND(A(I)ORB(I)));ENDLOOP;
12/20/2023COUNT<=C(4);---總的進(jìn)位輸出
ENDPROCESS;ENDART;方法2:直接使用加法“+”函數(shù)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED_ALL;ENTITYADDER4_OPIS
12/20/2023PORT(A,B:INSTD_LOGIC_VECTOR(3DOWNTO0);
CIN:INSTD_LOGIC;SUM:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUNT:OUTSTD_LOGIC);ENDADDER4_OP;ARCHITECTUREARTOFADDER4_OPISSIGNALC:STD_LOGIC_VECTOR(4DOWNTO0);
BEGINPROCESS(A,B,CIN,C)BEGINENDPROCESS;SUM<=C(3DOWNTO0)COUT<=C(4)ENDART12/20/2023
5.8位比較器
比較器可以比較兩個(gè)二進(jìn)制是否相等,下面是一個(gè)8位比較器的VHDL描述。有兩個(gè)8位二進(jìn)制數(shù),分別是A和B,輸出為EQ,當(dāng)A=B時(shí),EQ=1,否則EQ=0?!纠?.1.5】LIBRARYIEEE;USEIEEE.STD_LOGIC_VECTOR(7DOWNTO0);ENTITYCOMPAREISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);
EQ:OUTSTD_LOGIC);ENDCOMPARE;ARCHITECTUREARTOFCOMPAREISBEGINEQ<=‘1’WHENA=BELSE‘0’;ENDART;12/20/2023
6.多路選擇器
選擇器常用于信號的切換,前面用IF語句、CASE語句、條件賦值語句、選擇賦值語句分別描述過4選1選擇器。
5.1.2三態(tài)門及總線緩沖器
三態(tài)門和總線緩沖器是驅(qū)動電路經(jīng)常用到的器件,VHDL語言通過指定大寫的Z值表示高阻狀態(tài)。
A:STD_LOGIC;B_BUS:STD_LOGIC_VECTOR(7DOWNTO0);指定高阻狀態(tài)如下:A<=‘Z’;A_BUS<=“ZZZZZZZZ”;
12/20/2023
【例5.1.6】三態(tài)門描述電路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTRI_GATEISPORT(EN,DIN:INSTD_LOGIC;
DOUT:OUTSTD_LOGIC);ENDTRI_GATE;ARCHITECTUREARTOFTRI_GATEISBEGINIF(EN=’1’)THENDOUT<=DIN;
ELSEDOUT<='Z';--此處是單總線
ENDIF;
ENDPROCESS;ENDART;12/20/20235.1.3單向總線驅(qū)動器
在微型計(jì)算機(jī)的總線驅(qū)動中經(jīng)常要用單向總線緩沖器,它通常由多個(gè)三態(tài)門組成,用來驅(qū)動地址總線和控制總線。一個(gè)8位的單向總線緩沖器如圖5-1所示。圖5-1單向總線緩沖器圖5-1單向總線緩沖器12/20/2023
【例5.1.7】單向總線緩沖器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTR1_BUF8ISPORT(DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);
EN:INSTD_LOGIC;
DOUNT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ARCHITECTUREARTOFTR1_BUF8IS12/20/2023
BEGINPROCESS(EN,DIN)IF(EN=‘1’)THENDOUT<=DIN;
ELSEDOUT<="ZZZZZZZZ";
ENDIF;
ENDPROCESS;ENDART;
12/20/2023
5.1.4雙向總線緩沖器
雙向總線緩沖器用于數(shù)據(jù)總線的驅(qū)動和緩沖,典型的雙向總線緩沖器如圖5-2所示。圖中的雙向總線緩沖器有兩個(gè)數(shù)據(jù)輸入輸出端A和B,一個(gè)方向控制端DIR和一個(gè)選通端EN。EN=0時(shí)雙向緩沖器選通,若DIR=0,則A=B,反之則B=A。
圖5-2雙向總線緩沖器12/20/2023
【例5.1.8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYBIDIRISPORT(A,B:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
EN,DIR:INSTD_STD_LOGIC);圖5-2雙向總線緩沖器ENDBIDIR;ARCHITECTUREARTOFBIDIRISSIGNALAOUT,BOUT:STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN12/20/2023
PROCESS(A,EN,DIR)BEGINIFEN=‘0’ANDDIR=‘1’THENBOUT<=A;
ELSEBOUT<"ZZZZZZZZ";
ENDIF;
B<=BOUT;
ENDPROCESS;
PROCESS(B,EN,DIR)BEGINIFEN=‘0’ANDDIR=‘1’THENAOUT<=B;
ELSEAOUT<"ZZZZZZZZ";
ENDIF;
A<=AOUT;
ENDPROCESS;
ENDART;12/20/2023
5.2時(shí)序邏輯電路設(shè)計(jì)在本節(jié)的時(shí)序電路設(shè)計(jì)主要有觸發(fā)器、寄存器、計(jì)數(shù)器、分頻器、序列信號發(fā)生器和序列信號檢測器等的設(shè)計(jì)實(shí)例。5.2.1時(shí)序電路特殊信號描述時(shí)鐘信號和復(fù)位信號1.時(shí)鐘信號的描述1)常用的描述方式:進(jìn)程的敏感信號是時(shí)鐘信號,在進(jìn)程內(nèi)部用IF語句描述時(shí)鐘的邊沿條件。如:PROCESS(CLOCK_SIGNAL)BEGIN
12/20/2023IF(CLK_EDGE_CONDITION)
THENSIGNAL_OUT<=SIGNAL_IN;…
其他時(shí)序語句…ENDIF;ENDPROCESS;2.觸發(fā)器的復(fù)位信號描述1)同步復(fù)位:在只有以時(shí)鐘為敏感信號的進(jìn)程中定義。如:PROCESS(CLOCK_SIGNAL)BEGIN12/20/2023
IF(CLK_EDGE_CONDITION)
THENIf(reset_condition)thenSIGNAL_OUT<=reset_value;elseSIGNAL_OUT<=SIGNAL_IN;…
其他時(shí)序語句…ENDIF;ENDIF;Endprocess;12/20/20232)異步復(fù)位:進(jìn)程的敏感信號表中除時(shí)鐘信號外,還有復(fù)位信號。PROCESS(reset_signal,CLOCK_SIGNAL)BEGINIf(reset_condition)thenSIGNAL_OUT<=reset_value;
elsef(CLK_EDGE_CONDITION)
THENSIGNAL_OUT<=SIGNAL_IN;…
其他時(shí)序語句…ENDIF;Endprocess;12/20/2023
5.2.2常用時(shí)序電路設(shè)計(jì)1.基本觸發(fā)器(Flip_Flop)1)D觸發(fā)器【例5.2.1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDCFQISPORT(D,CLK:INSTD_LOGIC;
Q:OUTSTD_LOGIC);ENDDCFQ;ARCHITECTUREARTOFDCFQISBEGINPROCESS(CLK)--同步進(jìn)程
12/20/2023
【例5.2.2】復(fù)位D觸發(fā)器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLR,PSET,CLK,D:INSTD_LOGIC;
Q:OUTSTD_LOGIC);ENDDFF3;ARCHITECTUREARTOFDFF3IS
12/20/2023BEGINPROCESS(CLK,CLR,PSET)--異步進(jìn)程
BEGINIF(PSET=‘0’)THENQ<=‘1’;--置位信號有效,則觸發(fā)器被置位ELSIF(CLR=‘0’)THENQ<=‘0’;復(fù)位信號有效,則觸發(fā)器被復(fù)位ELSIF(CLK'EVENTANDCLK=‘1’)THENQ<=D;ENDIF;
ENDIF;
ENDPROCESS;ENDART;
12/20/2023【例5.2.3】同步復(fù)位的D觸發(fā)器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSYNDCFQISPORT(D,CLK,RESET:INSTD_LOGIC;
Q:OUTSTD_LOGIC);ENDSYNDCFQ;ARCHITECTUREARTOFSYNDCFQISBEGINPROCESS(CLK)12/20/2023
BEGINIF(CLK'EVENTANDCLK=‘1’)THENIF(PRESET=‘0’)THEN Q<=‘0’;--時(shí)鐘邊沿到來且有復(fù)位信號,觸發(fā)器被復(fù)位
ELSEQ<=D;--且有復(fù)位信號,觸發(fā)器被復(fù)位
ENDIF;
ENDIF;
ENDPROCESS;ENDART;12/20/20232.T觸發(fā)器【例5.2.4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTCFQISPORT(T,CLK:INSTD_LOGIC;
Q:BUFFERSTD_LOGIC);ENDTCFQ;ARCHITECTUREARTOFTCFQISBEGINPROCESS(CLK)--同步進(jìn)程
BEGIN
12/20/2023IF(CLK'EVENTANDCLK=‘1’)THENQ<=NOT(Q);
ELSEQ<=Q;
ENDIF;
ENDPROCESS;ENDART;3.RS觸發(fā)器【例5.2.5】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYRSCFQIS
12/20/2023PORT(R,S,CLK:INSTD_LOGIC;
Q,QB:BUFFERSTD_LOGIC);ENDRSCFQ;ARCHITECTUREARTOFRSCFQISSIGNALQ_S,QB_S:STD_LOGIC;
BEGINPROCESS(CLK,R,S)--異步進(jìn)程
BEGINIF(CLK'EVENTANDCLK=‘1’)THENIF(S=‘1’ANDR=‘0’)THENQ_S<=‘0’;
QB_S<=‘1’;
ELSIF(S<=‘0’ANDR<=‘1’)THEN12/20/2023Q_S<=‘1’;
QB_S<=‘0’;
ELSIF(S<=‘0’ANDR<=‘0’)THENQ_S<=Q_S;--輸出保持不變
QB_S<=QB_S;
ENDIF;
ENDIF;
Q<=Q_S;
QB<=QB_S;
ENDPROCESS;ENDART;12/20/20235.關(guān)于觸發(fā)器的同步和非同步復(fù)位
觸發(fā)器的初始狀態(tài)應(yīng)由復(fù)位信號來設(shè)置。按復(fù)位信號對觸發(fā)器復(fù)位的操作不同,可以分為同步復(fù)位和非同步復(fù)位兩種。所謂同步復(fù)位,就是當(dāng)復(fù)位信號有效且在給定的時(shí)鐘邊沿到來時(shí),觸發(fā)器才被復(fù)位;非同步復(fù)位,也稱異步復(fù)位,則是當(dāng)復(fù)位信號有效時(shí),觸發(fā)器就被復(fù)位,不用等待時(shí)鐘邊沿信號。下面以D觸發(fā)器為例分別予以舉例12/20/20235.2.3寄存器和移位寄存器1.寄存(鎖存)器
寄存器用于寄存一組二值代碼,廣泛用于各類數(shù)字系統(tǒng)。因?yàn)橐粋€(gè)觸發(fā)器能儲存1位二值代碼,所以用N個(gè)觸發(fā)器組成的寄存器能儲存一組N位的二值代碼。下面給出一個(gè)8位寄存器的VHDL描述?!纠?.2.7】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYREGISPORT(D:INSTD_LOGIC_VECTOR(0TO7);
CLK:INSTD_LOGIC;
Q:OUTSTD_LOGIC_VECTOR(0TO7));ENDREG;
12/20/2023ARCHITECTUREARTOFREGISBEGINPROCESS(CLK)BEGINIF(CLK'EVENTANDCLK=‘1’)THEN
Q<=D;
ENDIF;
ENDPROCESS;ENDART;2.移位寄存器
移位寄存器除了具有存儲代碼的功能以外,還具有移位功能。所謂移位功能,是指寄存器里存儲的代碼能在移位脈沖的作用下依次左移或右移。因此,移位寄存器不但可以用來寄存代碼,還可用來實(shí)現(xiàn)數(shù)據(jù)的串并轉(zhuǎn)換、數(shù)值的運(yùn)算以及數(shù)據(jù)處理等。下面給出一個(gè)8位的移位寄存器,其具有左移一位或右移一位、并行輸入和同步復(fù)位的功能。
12/20/2023【例5.2.8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSHIFTERISPORT(DATA:INSTD_LOGIC_VECTOR(7DOWNTO0);SHIFT_LEFT:INSTD_LOGIC;SHIFT_RIGHT:INSTD_LOGIC;RESET:INSTD_LOGIC;MODE:INSTD_LOGIC_VECTOR(1DOWNTO0);QOUT:BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));12/20/2023ENDSHIFTER;ARCHITECTUREARTOFSHIFTERISBEGINPROCESSBEGINWAITUNTIL(RISING_EDGE(CLK));IF(RESET=‘1’)THENQOUT<="00000000"; ELSE --同步復(fù)位功能的實(shí)現(xiàn)CASEMODEISWHEN"01"=>QOUT<=SHIFT_RIGHT&QOUT(7DOWNTO1);12/20/2023
--右移一位WHEN"10"=>QOUT<=QOUT(6DOWNTO0)&SHIFT_LEFT;
--左移一位WHEN"11"=>QOUT<=DATA;WHENOTHERS=>NULL;
ENDCASE;
ENDIF;
ENDPROCESS;圖5-36位串行輸入串行輸出移位寄存器ENDART;12/20/20235.2.4計(jì)數(shù)器
計(jì)數(shù)器是在數(shù)字系統(tǒng)中使用最多的時(shí)序電路,它不僅能用于對時(shí)鐘脈沖計(jì)數(shù),還可以用于分頻、定時(shí)、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進(jìn)行數(shù)字運(yùn)算等。計(jì)數(shù)器分為同步和異步。1.同步計(jì)數(shù)器:同步計(jì)數(shù)器指在時(shí)鐘脈沖(計(jì)數(shù)脈沖)的控制下,構(gòu)成計(jì)數(shù)器的各觸發(fā)器狀態(tài)同時(shí)發(fā)生變化的計(jì)數(shù)器。12/20/2023【例5.2.10】12進(jìn)制的計(jì)數(shù)器的設(shè)計(jì)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNTM12IS
PORT(Clk,clr,en:INSTD_LOGIC;
Qa,qb,qc,qd:OUTSTD_LOGIC;
Endcount12;ARCHITECTUREARTOFCount12ISSignalcount_4:STD_LOGIC_VECTOR(3DOWNTO0);begin
qa<=count_4(0);qb<=count_4(1);qc<=count_4(2);qd<=count_4(3);12/20/2023process(clk,clr)BEGIN
IF(clr=‘0’)THEN --異步復(fù)位
Count_4<="0000";ELSIF(CLK'EVENTANDCLK=‘1’)THEN --IF(en=‘1’)THEN IF(Count_4<="1011")THENCount_4<="0000";ELSE Count_4<=Count_4+1;--調(diào)用STD_LOGIC_UNSIGNED.ALL程序包就是為了實(shí)現(xiàn)不同數(shù)據(jù)類型直接相加
ENDIF;ENDIF;
12/20/2023ENDIF;ENDPROCESS;ENDART;【例5.2.11】加減計(jì)數(shù)器(仿真如圖5-4所示)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYupdncount64IS
PORT(Clk,clr,updn:INSTD_LOGIC;
qa,qb,qc,qd,qe,qf:OUTSTD_LOGIC);--輸出6位二進(jìn)制數(shù)最大為63,所以是64進(jìn)制計(jì)數(shù)器12/20/2023Endupdncount64;-ARCHITECTUREARTOFupdncount64IS圖5-4加減計(jì)數(shù)器仿波形
Signalcount_6:STD_LOGIC_VECTOR(5DOWNTO0);Begin
qa<=count_6(0);qb<=count_6(1);qc<=count_6(2);qd<=count_6(3);qe<=count_6(4);qf<=count_6(5);12/20/2023process(clk,clr)BEGIN
IF(clr=‘0’)THEN --異步復(fù)位
Count_6<="000000";ELSIF(CLK'EVENTANDCLK=‘1’)THEN -IF(updn=‘1’)THEN Count_6<=Count_6+1;--調(diào)用STD_LOGIC_UNSIGNED.ALL程序包就是為了實(shí)現(xiàn)不同數(shù)據(jù)類型直接相加
ELSECount_6<=Count_6-1;--為減1計(jì)數(shù)器
ENDIF;
12/20/2023ENDIF;ENDPROCESS;ENDART;【例5.2.12】60進(jìn)制(分、秒)計(jì)數(shù)器LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYClock60IS
PORT(Clk
:INSTD_LOGIC;
NRESET:INSTD_LOGIC;12/20/2023
Bcd1_out:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--個(gè)位顯示0~9需4位寬
Bcd10_out:OUTSTD_LOGIC_VECTOR(2DOWNTO0));--十位顯示0~5需3位寬ENDCLOCK60;ARCHITECTUREARTOFCLOCK60ISSIGNALBcd1n:STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALBcd10n:STD_LOGIC_VECTOR(2DOWNTO0);
BEGINBcd1_out<=Bcd1n;--把定義的中間信分別賦給輸出端口12/20/2023Bcd10_out<=Bcd10n;PROCESS(CLK,NRESET)BEGINIF(NRESET=‘0’)THEN --異步復(fù)位Bcd1n<="0000";Bcd10n<="000";ELSIF(CLK’EVENTANDCLK=’1’)THENIF(Bcd1n=9)THEN--如個(gè)位為9則清零12/20/2023Bcd1n<="0000";IF(Bcd10n=5)THEN如十位為5則清零Bcd10n<="000";ELSIFBcd10n<=Bcd10n+1;ENDIF;ELSFBcd1n<=Bcd1n+1;ENDIF;ENDIF;ENDPROCESS;ENDART;12/20/2023【例5.2.13】模為60具有異步復(fù)位、同步置數(shù)功能的8421BCD碼計(jì)數(shù)器LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYClock60IS
PORT(Clk,:INSTD_LOGIC;
NRESET:INSTD_LOGIC;
LOAD:INSTD_LOGIC;
D:INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:INSTD_LOGIC;
CO:OUTSTD_LOGIC;
12/20/2023QH:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);
QL:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNTM60;ARCHITECTUREARTOFCNTM60ISBEGINCO<=‘1’WHEN(QH="0101"ANDQL="1001"ANDCI=‘1’)ELSE'0';
--進(jìn)位輸出的產(chǎn)生PROCESS(CLK,NRESET)
12/20/2023BEGINIF(NRESET=‘0’)THEN --異步復(fù)位
QH<="0000";
QL<="0000";ELSIF(CLK'EVENTANDCLK=‘1’)THEN --同步置數(shù)
IF(LOAD=‘1’)THENQH<=D(7DOWNTO4)QL<=D(3DOWNTO0);12/20/2023ELSIF(CI=‘1’)THEN --模60的實(shí)現(xiàn)
IF(QL=9)THENQL<="0000";
IF(QH=5)THENQH<="0000";
ELSE --計(jì)數(shù)功能的實(shí)現(xiàn)
QH<=QH+1;
ENDIFELSEQL<=QL+1;
ENDIF;
ENDIF; --ENDIFLOAD
ENDPROCESS;ENDART;12/20/20232.異步計(jì)數(shù)器
異步計(jì)數(shù)器又稱為行波計(jì)數(shù)器,它的低位計(jì)數(shù)器的輸出作為高位計(jì)數(shù)器的時(shí)鐘信號。由于是行波計(jì)數(shù),致使計(jì)數(shù)延遲增加,計(jì)數(shù)器工作頻率較低。用VHDL語言描述異步計(jì)數(shù)器,與同步計(jì)數(shù)器描述的區(qū)別主要體現(xiàn)在對各級時(shí)鐘的描述上。下面是一個(gè)由8個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器,采用元件例化的方式生成。如圖5-5所示圖5-58個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器12/20/2023【例5.2.14】
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDIFFRISPORT(CLK,CLR,D:INSTD_LOGIC;
Q,QB:OUTSTD_LOGIC);ENDDIFFR;ARCHITECTUREART1OFDIFFRISSIGNALQ_IN:STD_LOGIC;BEGINQ<=Q_IN;QB<=NOTQ_IN;PROCESS(CLK,CLR)12/20/2023BEGINIF(CLR=‘1’)THEN圖5-58個(gè)觸發(fā)器構(gòu)成的異步計(jì)數(shù)器
Q_IN<=‘0’;
ELSIF(CLK'EVENTANDCLK=‘1')THENQ_IN<=D;
ENDIF;
ENDPROCESS;ENDART1;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYRPLCOUNTIS
12/20/2023PORT(CLK,CLR:INSTD_LOGIC;
COUNT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDRPLCOUNT;ARCHITECTUREART2OFRPLCOUNTISSIGNALCOUNT_IN:STD_LOGIC_VECTOR(8DOWNTO0);
COMPONENTDFFRPORT(CLK,CLR,D:INSTD_LOGIC;
Q,QB:OUTSTD_LOGIC);
ENDCOMPONENT;12/20/2023
BEGINCOUNT_IN(0)<=CLK;
GEN1:FORIIN0TO7GENERATEU:DFFRPORTMAP(CLK=>COUNT_IN(I),--采用名字映射方式
CLR=>CLR,D=>COUNT_IN(I+1),
Q=>COUNT_IN(I),QB=>COUNT_IN(I+1));
ENDGENERATE;ENDART2;用計(jì)數(shù)器實(shí)現(xiàn)分頻器的設(shè)計(jì)(實(shí)現(xiàn)輸入信號的二分頻、四分頻)12/20/2023【例5.2.16】分頻器的設(shè)計(jì)LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYN_DIVISPORT(N:INSTD_LOGIC_VECTOR(7DOWNTO0);
Clk:INSTD_LOGIC;
ClkOUT:OUTSTD_LOGIC);
EndN_DIV;ARCHITECTUREARTOFN_DIVISSignalcnt:STD_LOGIC_VECTOR(7DOWNTO0);12/20/2023Signaln_t,n_1:STD_LOGIC_VECTOR(7DOWNTO0);BeginN_1<=N-1;--N_1代表N減一操作N_t<=‘0’&N(7DOWNTO1);--相當(dāng)于右移一位,即除2操作(N_t是中間暫存信號)process(N,clk)BEGINIFVLK’EVENTANDCLK=‘1’THEN --異步復(fù)位
IFCnt<=N_1;THEN;--判斷是否到計(jì)數(shù)的終值
CNT<=“00000000”;--到計(jì)數(shù)的終值清零ELSIF12/20/2023Cnt<=Cnt+1;--未到計(jì)數(shù)的終值則加1計(jì)數(shù)ENDIF;IFCNT<N_TTHEN--如小于N的一半則輸出低電平
CLKOUT<=‘0’;ELSECLKOUT<=‘1’;--如大于等于N的一半則輸出高電平(N為偶數(shù)時(shí),輸出方波信號)ENDIF;ENDPROCESS;ENDART;12/20/20235.2.5序列信號發(fā)生器、檢測器
在數(shù)字信號的傳輸和數(shù)字系統(tǒng)的測試中,有時(shí)需要用到一組特定的串行數(shù)字信號,產(chǎn)生序列信號的電路稱為序列信號發(fā)生器。1.“01111110”序列發(fā)生器(序列可任意)該電路可由計(jì)數(shù)器與數(shù)據(jù)選擇器構(gòu)成,其VHDL描述如下:【例5.2.17】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSENQGENIS
12/20/2023PORT(CLK,CLR,CLOCK:INSTD_LOGIC;--兩個(gè)時(shí)鐘信號
ZO:OUTSTD_LOGIC);ENDSENQGEN;ARCHITECTUREARTOFSENQGENISSIGNALCOUNT:STD_LOGIC_VECTOR(2DOWNTO0);--序列發(fā)生器的關(guān)鍵是計(jì)數(shù)器,COUNT的寬度決定序列的長度,此為8位
SIGNALZ:STD_LOGIC:=‘0’;--賦初值僅對仿真有用
BEGINPROCESS(CLK,CLR)12/20/2023BEGINIF(CLR=‘1’)THENCOUNT<="000";
ELSEIF(CLK=‘1’ANDCLK'EVENT)THENIF(COUNT="111")THENCOUNT<="000";--此處可不要
ELSECOUNT<=COUNT+1;
ENDIF;
ENDIF;ENDIF;ENDPROCESS;PROCESS(COUNT)12/20/2023BEGINCASECOUNTISWHEN"000"=>Z<=‘0’;WHEN"001"=>Z<=‘1’;WHEN"010"=>Z<=‘1’;WHEN"011"=>Z<=‘1’;WHEN"100"=>Z<=‘1’;WHEN"101"=>Z<=‘1’;WHEN"110"=>Z<=‘1’;WHENOTHERS=>Z<=‘0’;
ENDCASE;ENDPROCESS;12/20/2023PROCESS(CLOCK,Z)BEGIN --消除毛刺的鎖存器
IF(CLOCK'EVENTANDCLOCK=‘1’)THENZO<=Z;--把中間信號通過一個(gè)觸發(fā)器寄存輸出
ENDIF;
ENDPROCESS;ENDART;2.M序列發(fā)生器M序列發(fā)生器主要由移位寄存器和反饋環(huán)節(jié)組成。下面是一個(gè)20位的M序列發(fā)生器的VHDL描述。
12/20/2023【例5.2.18】LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYXLGEN20ISPORT(CLK,LOAD,EN:INSTD_LOGIC;
DATA:INSTD_LOGIC_VECTOR(20DOWNTO0);
LOUT:BUFFERSTD_LOGIC);ENDXLGEN20;12/20/2023ARCHITECTUREARTOFXLGEN20ISCONSTANTLEN:INTEGER:=20SIGNALLFSR_VAL:STD_LOGIC_VECTOR(LENDOWNTO0);
SIGNALDOUT:STD_LOGIC_VECTOR(LENDOWNTO0);
BEGINPROCESS(LOAD,EN,DOUT)BEGINIF(LOAD=‘1’)THENLFSR_VAL<=DATA;
ELSIF(EN=‘1’)THEN12/20/2023LFSR_VAL(0)<=DOUT(3)XORDOUT(LEN);
LFSR_VAL(LENDOWNTO1)<=DOUT(LEN-1DOWNTO0);ENDIF;
ENDPROCESS;
PROCESS(CLK)BEGINIF(CLK'EVENTANDCLK=‘1’)THENDOUT<=LFSR_VAL;
LOUT<=LFSR_VAL(LEN);
ENDIF;
ENDPROCESS;ENDART;12/20/2023【例5.2.20】簡潔序列檢測器LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDETECT_SISPORT(DATAIN,CLK:INSTD_LOGIC;
Q:OUTSTD_LOGIC);ENDDETECT_S;ARCHITECTUREARTOFDETECT_SISSIGNALREG:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLK)BEGIN12/20/2023
IFCLK’EVENTANDCLK=’1’THEN—第一個(gè)IF語句
REG(0)<=DATAIN;--被檢測數(shù)據(jù)打入第一個(gè)寄存器的0位
REG(7DOWNTO1)<=REG(6DOWNTO0);--內(nèi)部寄存器進(jìn)行向高位的移位操作ENDIF;IFREG=”01111110”THENQ<=‘1’;第二個(gè)IF語句是判斷檢測到”01111110”圖5-7簡序列時(shí)把標(biāo)志置1ELSSEQ<=‘0’;ENDIF;ENDPROCESS;ENDART;12/20/20235.3存儲器設(shè)計(jì)半導(dǎo)體存儲器的種類很多,從功能上可以分為只讀存儲器(Read_OnlyMemory,簡稱ROM)和隨機(jī)存儲器(RandomAccessMemory,簡稱RAM)兩大類。本節(jié)主要詳細(xì)描述了只讀存儲器ROM、靜態(tài)數(shù)據(jù)存儲器SRAM、先進(jìn)先出堆棧FIFO的設(shè)計(jì)。5.3.1只讀存儲器ROM
只讀存儲器在正常工作時(shí)從中讀取數(shù)據(jù),不能快速地修改或重新寫入數(shù),適用于存儲固定數(shù)據(jù)的場合。下面是一個(gè)容量為256×4的ROM存儲的例子,該ROM有8位地址線ADR(0)~圖5-8只讀ROMADR(7),4位數(shù)據(jù)輸出線DOUT(0)~DOUT(3)及使能EN,如圖5-8所示。12/20/2023【例5.3.1】
LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USESTD.TEXTIO.ALL;ENTITYROMIS
PORT(EN:INSTD_LOGIC;
ADR:INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDROM;ARCHITECTUREARTOFROMIS12/20/2023SUBTYPEWORDISSTD_LOGIC_VECTOR(3DOWNTO0);
TYPEMEMORYISARRAY(0TO255)OFWORD;
SIGNALADR_IN:INTEGERRANGE0TO255;
VARIABLEROM:MEMORY;
VARABLESTART_UP:BOOLEAN:=TRUE;
VARABLEL:LINE;
VARABLEJ:INTEGER;
FILEROMIN:TEXTISIN"ROMIN";
BEGINPROCESS(EN,ADR)IFSTART_UPTHEN --初始化開始
FORJINROM'RANGELOOP12/20/2023
READLINE(ROMIN,1);READ(1,ROM(J));
ENDLOOP;
START_UP:=FALSE; --初始化結(jié)束
ENDIF;
ADR_IN<=CONV_INTEGER(ADR);--將向量轉(zhuǎn)化成整數(shù)
IF(EN=‘1’)THENDOUT<=ROM(ADR_IN);
ELSEDOUT<="ZZZZ";
ENDIF;
ENDPROCESS;ENDART;12/20/20235.3.2靜態(tài)數(shù)據(jù)存儲器SRAMRAM和ROM的主要區(qū)別在于RAM描述上有讀和寫兩種操作,而且在讀寫上對時(shí)間有較嚴(yán)格的要求。下面我們給出一個(gè)8×8位的雙口SRAM的VHDL描述實(shí)例,如圖5-9所示。
圖5-9雙口SRAM12/20/2023【例5.3.2.】8×8位的雙口SRAM的VHDL描述(仿真圖如圖5-10)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDPRAMISGENERIC(WIDTH:INTEGER:=8;
DEPTH:INTEGER:=8;
ADDER:INTEGER:=3);
PORT(DATAIN:INSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);
DATAOUT:OUT.STD_LOGIC_VECTOR(WIDTH-1DOWNTO0);
12/20/2023CLOCK:INSTD_LOGIC;
WE,RE:INSTD_LOGIC;--讀寫控制信號WADD:INSTD_LOGIC_VECTOR(ADDER-1DOWNTO0);--讀地址3位寬
RADD:INSTD_LOGIC_VECTOR(ADDER-1DOWNTO0));--寫地址3位寬ENDDPRAM;ARCHITECTUREARTOFDPRAMISTYPEMEMISARRAY(0TODEPTH-1)OF--定義MEM為二維數(shù)組,數(shù)組有8個(gè)元素,每個(gè)元素為8位寬度
STD_LOGIC_VECTOR(WIDTH-1DOWNTO0);12/20/2023
SIGNALRAMTMP:MEM;--信號的類型為MEMBEGIN--第一個(gè)進(jìn)程完成將輸入數(shù)據(jù)寫入RAM指定地址單元
PROCESS(CLOCK)BEGINIF(CLOCK'EVENTANDCLOCK=‘1’)THENIF(WE=‘1’)THEN判寫使能信號有效否
RAMTMP(CONV_INTEGER(WADD))<=DATAIN;--調(diào)用轉(zhuǎn)換函數(shù)把寫地址矢量轉(zhuǎn)換為整數(shù)
ENDIF;
ENDIF;ENDPROCESS;--讀進(jìn)程12/20/2023PROCESS(CLOCK)BEGINIF(CLOCK'EVENTANDCLOCK=‘1’)THENIF(RE=‘1’)THEN--判讀使能有效否
DATAOUT<=RAMTMP(CONV_INTEGER(RADD));把輸入讀地址轉(zhuǎn)換為整數(shù),并把對應(yīng)單元的數(shù)據(jù)送輸出端口
ENDIF;
ENDIF;
ENDPROCESS;ENDART;12/20/20235.3.3先進(jìn)先出堆棧FIFOFIFO是先進(jìn)先出堆棧,作為數(shù)據(jù)緩沖器,通常其數(shù)據(jù)存放結(jié)構(gòu)完全與RAM一致,只是存取方式有所不同。圖5-11電路為一個(gè)8×8FIFO,其VHDL描述如例5.3.3?!纠?.3.3】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYREG_FIFOISGENERIC(WIDTH:INTEGER:=8;
DEPTH:INTEGER:=8;ADDR:INTEGER:=3);12/20/2023PORT(DATA:INSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);
Q:OUTSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);
ACLR:INSTD_LOGIC;圖5-118×8FIFO模塊
CLOCK:INSTD_LOGIC;
WE:INSTD_LOGIC;
RE:INSTD_LOGIC;FF:OUTSTD_LOGIC;FF:OUTSTD_LOGIC);ENDREG_FIFO;12/20/2023TYPEMEMISARRAY(0TODEPTH-1)OFSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);SIGNALRAMTMP:MEM;SIGNALWADD:STD_LOGIC_VECTOR(ADDR-1DOWNTO0);SIGNALRADD:STD_LOGIC_VECTOR(ADDR-1DOWNTO0);SIGNALWORDS:STD_LOGIC_VECTOR(ADDR-1DOWNTO0);ARCHITECTUREARTOFREG_FIFOIS12/20/2023BEGIN--寫指針修改進(jìn)程WRITE_POINTER:PROCESS(ACLR,CLOCK)BEGINIF(ACLR=‘0’)THENWADD<=(OTHERS=>‘0’);
ELSIF(CLOCK'EVENTANDCLOCK=‘1’)THENIF(WE=‘1’)THENIF(WADD=WORDS)THENWADD<=(OTHERS=>‘0’);ELSEWADD<=WADD+‘1’;
ENDIF;
ENDIF;12/20/2023
ENDIF;ENDPROCESS;--寫操作進(jìn)程WRITE_RAM:PROCESS(CLOCK)BEGINIF(CLOCK'EVENTANDCLOCK=‘1’)THEN
IF(WE=‘1’)THENRAMTMP(CONV_INTEGER(WADD))<=DATA;
ENDIF;
ENDIF;ENDPROCESS;12/20/2023--讀指針修改READ_POINIER:PROCESS(ACLR,CLOCK)BEGINIF(ACLR=‘0’)THENRADD<=(OTHERS=>‘0’);
ELSIF(CLOCK'EVENTANDCLOCK=‘1’)THENIF(RE=‘1’)THENIF(RADD=WORDS)THENRADD<=(OTHERS=>‘0’);
ELSERADD<=RADD+‘1’;
ENDIF;
12/20/2023ENDIF;
ENDIF;ENDPROCESS;--讀操作進(jìn)程READ_RAM
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型股份代持業(yè)務(wù)合作協(xié)議書范本
- 2025年度生態(tài)園區(qū)開發(fā)商與綠色物業(yè)合作協(xié)議書
- 2025年度健身中心租賃合同(健康生活)
- 2025年度水電安裝項(xiàng)目安全生產(chǎn)責(zé)任合同范本
- 服務(wù)消費(fèi)券的受益群體分析
- 房地產(chǎn)價(jià)格走勢與預(yù)測
- 2025年度國際貨運(yùn)代理與物流服務(wù)合同-@-1
- 2025年度大型機(jī)械設(shè)備出口貿(mào)易合同范本
- 2025年度文化創(chuàng)意產(chǎn)業(yè)股東分紅及市場拓展協(xié)議
- 2025年度建筑垃圾處理與循環(huán)經(jīng)濟(jì)合作合同模板
- 監(jiān)察部部長崗位職責(zé)
- 山西省太原市杏花嶺區(qū)年三年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 《農(nóng)機(jī)化促進(jìn)法解讀》課件
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2023-2024學(xué)年度上期七年級英語期末試題
- 2024年燃?xì)廨啓C(jī)值班員技能鑒定理論知識考試題庫-下(多選、判斷題)
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計(jì)》課件-1:Python簡介與應(yīng)用領(lǐng)域
- 各類心理量表大全
- DB12T990-2020建筑類建設(shè)工程規(guī)劃許可證設(shè)計(jì)方案規(guī)范
評論
0/150
提交評論