第4章 VHDL的順序描述語句_第1頁
第4章 VHDL的順序描述語句_第2頁
第4章 VHDL的順序描述語句_第3頁
第4章 VHDL的順序描述語句_第4頁
第4章 VHDL的順序描述語句_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 第六節(jié)第六節(jié) VHDL的順序描述語句的順序描述語句 VHDL VHDL的順序描述語句只能出現(xiàn)在進(jìn)程、函的順序描述語句只能出現(xiàn)在進(jìn)程、函數(shù)或過程中,按語句出現(xiàn)的次序執(zhí)行。數(shù)或過程中,按語句出現(xiàn)的次序執(zhí)行。VHDLVHDL中中的順序語句包括以下幾種類型:的順序語句包括以下幾種類型: (1) (1) 信號賦值;信號賦值; (2) (2) 變量賦值;變量賦值; (3) (3) 過程調(diào)用和函數(shù)調(diào)用;過程調(diào)用和函數(shù)調(diào)用; (4) WAIT(4) WAIT語句、斷言語句、語句、斷言語句、IFIF語句、語句、CASECASE語語句、句、LOOPLOOP語句、語句、NEXTNEXT語句、語句、EXITEXIT

2、語句和語句和NULL(NULL(空空) )語句。語句。 1WAIT語句語句 進(jìn)程進(jìn)程(PROCESS)的執(zhí)行過程可以由的執(zhí)行過程可以由WAIT(等待等待)語句控制。注意,當(dāng)進(jìn)程中使用了語句控制。注意,當(dāng)進(jìn)程中使用了WAIT語句后,就語句后,就不能夠再使用進(jìn)程的敏感信號了。不能夠再使用進(jìn)程的敏感信號了。WAIT語句有以下語句有以下四種形式:四種形式: WAIT:無限等待。:無限等待。 WAIT ON(信號名表信號名表):當(dāng)其中任何一個(gè)信號發(fā):當(dāng)其中任何一個(gè)信號發(fā)生變化時(shí),該進(jìn)程就被激活。生變化時(shí),該進(jìn)程就被激活。 WAIT UNTIL(條件表達(dá)式條件表達(dá)式):當(dāng)條件表達(dá)式的?。寒?dāng)條件表達(dá)式的取值

3、為真時(shí),激活該進(jìn)程。值為真時(shí),激活該進(jìn)程。 WAIT FOR(時(shí)間表達(dá)式時(shí)間表達(dá)式):給出了進(jìn)程被掛起的:給出了進(jìn)程被掛起的最長時(shí)間,一旦超過了這個(gè)時(shí)間值,該進(jìn)程就被激最長時(shí)間,一旦超過了這個(gè)時(shí)間值,該進(jìn)程就被激活。活。 例:例: WAIT UNTIL (clk EVENT AND clk=1);first: processfirst: process begin begin wait until clk wait until clk=1=1 if d_ff(20 downto if d_ff(20 downto 0)=2e6 then 0)=2e6 then d_ff d_ff(2 2)=1

4、;=1; end if; end if; end process; end process; 2 2斷言語句斷言語句(ASSERT)(ASSERT) 斷言語句的格式為:斷言語句的格式為: ASSERT ASSERT REPORT REPORT SEVERITY SEVERITY ; 當(dāng)條件為假時(shí),系統(tǒng)的輸出設(shè)備輸出所要當(dāng)條件為假時(shí),系統(tǒng)的輸出設(shè)備輸出所要報(bào)告的信息、信息的嚴(yán)重級別以及斷言語句所報(bào)告的信息、信息的嚴(yán)重級別以及斷言語句所在設(shè)計(jì)單元的名字。在設(shè)計(jì)單元的名字。 注意:注意:斷言語句主要用于程序調(diào)試、時(shí)斷言語句主要用于程序調(diào)試、時(shí)序仿真時(shí)的人機(jī)對話,屬于不可綜合的語句,序仿真時(shí)的人機(jī)對話

5、,屬于不可綜合的語句,綜合中被忽略而不會生成邏輯電路。斷言語句綜合中被忽略而不會生成邏輯電路。斷言語句分為順序斷言和并行斷言,放在進(jìn)程內(nèi)的叫順分為順序斷言和并行斷言,放在進(jìn)程內(nèi)的叫順序,放在進(jìn)程外的叫并行。序,放在進(jìn)程外的叫并行。3 3信號賦值語句信號賦值語句信號賦值語句的格式為:信號賦值語句的格式為:信號名信號名 = = 信號變量表達(dá)式;信號變量表達(dá)式;賦值符號兩邊信號的類型和長度應(yīng)該一致。賦值符號兩邊信號的類型和長度應(yīng)該一致。 對向量賦值時(shí),如果信號的位數(shù)比較長,對向量賦值時(shí),如果信號的位數(shù)比較長,可以采用可以采用聚合賦值聚合賦值。例如,假設(shè)信號。例如,假設(shè)信號a a的數(shù)據(jù)寬的數(shù)據(jù)寬度為度

6、為8 8位,語句位,語句“a 1)”a 1)”與語與語句句“a =11111111”a =11111111”的作用相同。但是語句的作用相同。但是語句“a1)”a1)”的優(yōu)點(diǎn)是給數(shù)據(jù)寬度的優(yōu)點(diǎn)是給數(shù)據(jù)寬度比較長的信號賦值時(shí),寫起來簡單,而且與數(shù)比較長的信號賦值時(shí),寫起來簡單,而且與數(shù)據(jù)寬度無關(guān)。還可以給向量的一部分賦值后,據(jù)寬度無關(guān)。還可以給向量的一部分賦值后,再用再用OTHERSOTHERS給其余各位賦值。例如:給其余各位賦值。例如: a 1a 1,4=14=1,OTHERS=0)OTHERS=0); 4 4變量賦值語句變量賦值語句 變量的說明和賦值只能夠在進(jìn)程、函數(shù)和過變量的說明和賦值只能夠

7、在進(jìn)程、函數(shù)和過程中。變量的賦值符號為程中。變量的賦值符號為“: =”: =”,符號,符號 “ “: =”: =”也可以給任何對象賦初值,但不會引也可以給任何對象賦初值,但不會引起問題,操作符號的意義根據(jù)上下文來決定。起問題,操作符號的意義根據(jù)上下文來決定。 變量賦值語句的格式為:變量賦值語句的格式為: 變量名變量名: =: =表達(dá)式;表達(dá)式; 選擇變量名時(shí),要簡單并能描述其功能。選擇變量名時(shí),要簡單并能描述其功能。 當(dāng)信號類型與變量類型一致時(shí),允許二者相當(dāng)信號類型與變量類型一致時(shí),允許二者相互賦值。互賦值。5 5IFIF語句語句IFIF語句的格式為:語句的格式為:IF IF THEN THE

8、N 順序處理語句;順序處理語句; ELSIF ELSIF THEN THEN 順序處理語句;順序處理語句; ELSE ELSE 順序處理語句;順序處理語句; END IF; END IF; 使用使用IFIF語句時(shí),應(yīng)該注意描述時(shí)序邏輯和組合邏輯的語句時(shí),應(yīng)該注意描述時(shí)序邏輯和組合邏輯的區(qū)別。區(qū)別。例如:例如: PROCESS(clk,aPROCESS(clk,a) ) BEGIN BEGIN IF clk IF clk=1 THEN=1 THEN y=a;y=a; END IF;END IF; END PROCESS; END PROCESS;上述語句描述的是鎖存器。當(dāng)上述語句描述的是鎖存器。

9、當(dāng)clkclk為高電平時(shí),輸出信為高電平時(shí),輸出信號號y y隨輸入信號隨輸入信號a a的變化而變化;當(dāng)?shù)淖兓兓划?dāng)clkclk為低電平時(shí),輸為低電平時(shí),輸出信號出信號y y保持不變,描述的是時(shí)序邏輯。保持不變,描述的是時(shí)序邏輯。 如果使用如果使用ELSEELSE語句,則產(chǎn)生組合電路語句,則產(chǎn)生組合電路PROCESS(clk,a,bPROCESS(clk,a,b) ) BEGIN BEGIN IF clk IF clk=1 THEN=1 THEN y=a;y=a; ELSE ELSE y=b;y一組順序語句;一組順序語句; When When 條件表達(dá)式的值條件表達(dá)式的值一組順序語句;一組順

10、序語句; End caseEnd case 注意注意:case :case 語句中條件表達(dá)式的值必須列舉窮盡,不語句中條件表達(dá)式的值必須列舉窮盡,不能重復(fù)。不能窮盡的條件表達(dá)式用能重復(fù)。不能窮盡的條件表達(dá)式用othersothers表示。表示。Library ieee;Use ieee.std_logic_1164.all;Entity decoder_38 isPort(d: in std_logic_vector(2 downto 0);q: out std_logic_vector(7 downto 0);end decoder_38;architecture rtl of decode

11、r_38 isbegin process(d) begin case d is when 000=q=00000001; when 001=q=00000010; when 010=q=00000100; when 011=q=00001000; when 100=q=00010000; when 101=q=00100000; when 110=q=01000000; when others=q=10000000; end case; end process;end rtl【Case語句實(shí)例】 3線8線譯碼器 本程序有錯(cuò)誤本程序有錯(cuò)誤 【例】【例】 描述一個(gè)如圖所示的組合邏輯電路。當(dāng)描述一個(gè)

12、如圖所示的組合邏輯電路。當(dāng)輸入信號輸入信號selsel為為“000”000”時(shí),輸出信號時(shí),輸出信號q q等于等于a a;當(dāng)輸入信號當(dāng)輸入信號selsel為為“001”001”或或“010”010”時(shí),輸出時(shí),輸出信號信號q q等于等于b b;當(dāng)輸入信號;當(dāng)輸入信號selsel為為“011”011”或或“100”100”或或“101”101”時(shí),輸出信號時(shí),輸出信號q q等于等于c c;當(dāng)輸入信;當(dāng)輸入信號號selsel為其他值時(shí),輸出信號為其他值時(shí),輸出信號q q等于等于d d。四選一多路選擇器四選一多路選擇器 selabcdqLIBRARY IEEE;USE IEEE.STD_LOGIC_

13、1164.ALL;ENTITY vhdltest IS PORT ( sel : IN STD_LOGIC_VECTOR(2 DOWNTO 0); a,b,c,d : IN STD_LOGIC; q : OUT STD_LOGIC);END vhdltest;ARCHITECTURE BEHAVIORAL OF vhdltest ISBEGINPROCESS(sel,a,b,c,d)VARIABLE sela: INTEGER RANGE 7 DOWNTO 0;BEGIN sela:=CONV_INTEGER(sel); CASE sela IS WHEN 0 = q=a; -sel為為“00

14、0”時(shí),時(shí),q等于等于a WHEN 1 | 2 = q=b; -sel為為“001”或或“010”時(shí),時(shí),q等于等于b WHEN 3 TO 5 = q=c; -sel為為“011”到到“101”時(shí),時(shí),q等于等于c WHEN OTHERS = q= d; -sel為其他值時(shí),為其他值時(shí),q等于等于d END CASE;END PROCESS;END BEHAVIORAL; 當(dāng)當(dāng)CASE語句的條件表達(dá)式不能夠像上述語句的條件表達(dá)式不能夠像上述程序中的語句程序中的語句“WHEN 3 TO 5”一樣,對向量一樣,對向量指 定 范 圍 時(shí) , 必 須 先 將 信 號 的指 定 范 圍 時(shí) , 必 須

15、先 將 信 號 的STD_LOGIC_VECTOR類型轉(zhuǎn)換成整數(shù)類型,類型轉(zhuǎn)換成整數(shù)類型,用用CONV_INTEGER( )轉(zhuǎn)換函數(shù)來實(shí)現(xiàn)。如果轉(zhuǎn)換函數(shù)來實(shí)現(xiàn)。如果不進(jìn)行轉(zhuǎn)換,而在不進(jìn)行轉(zhuǎn)換,而在CASE語句的條件表達(dá)式中,語句的條件表達(dá)式中,直接對向量指定范圍,在進(jìn)行綜合時(shí),會提示直接對向量指定范圍,在進(jìn)行綜合時(shí),會提示錯(cuò)誤信息。將上述程序改寫為:錯(cuò)誤信息。將上述程序改寫為:-VARIABLE sela: INTEGER RANGE 7 DOWNTO 0; CASE sel IS WHEN 000 = q q q=c; -錯(cuò)誤條件表達(dá)式,指定的范圍與數(shù)據(jù)類型不匹配錯(cuò)誤條件表達(dá)式,指定的范圍與

16、數(shù)據(jù)類型不匹配 7 7LOOPLOOP語句語句 LOOPLOOP語句有以下兩種書寫格式。語句有以下兩種書寫格式。 1) FOR1) FOR循環(huán)變量循環(huán)變量 含含F(xiàn)ORFOR循環(huán)變量的循環(huán)變量的LOOPLOOP語句的格式為:語句的格式為: 標(biāo)號標(biāo)號: FOR : FOR 循環(huán)變量循環(huán)變量 IN IN 離散范圍離散范圍 LOOPLOOP 順序處理語句;順序處理語句; END LOOP END LOOP 標(biāo)號標(biāo)號 ; LOOPLOOP語句的循環(huán)變量的值在每次循環(huán)中語句的循環(huán)變量的值在每次循環(huán)中都發(fā)生變化,而都發(fā)生變化,而ININ后跟的離散范圍則表示循環(huán)后跟的離散范圍則表示循環(huán)變量在循環(huán)過程中依次取值

17、的范圍。變量在循環(huán)過程中依次取值的范圍。 【例【例】 用用VHDLVHDL描述一個(gè)八位的奇偶校驗(yàn)電路。描述一個(gè)八位的奇偶校驗(yàn)電路。如果輸入信號為奇數(shù)個(gè)如果輸入信號為奇數(shù)個(gè)1 1時(shí),則輸出時(shí),則輸出y y等于等于“1”1”;如果;如果輸入為偶數(shù)個(gè)輸入為偶數(shù)個(gè)1 1時(shí),則輸出時(shí),則輸出y y等于等于“0”0”。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITYparity_check IS PORT ( a: IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 ); y: OUT STD_LOGIC); END parity_chec

18、k ; ARCHITECTURE rtl OF parity_check IS BEGIN PROCESS (a ) VARIABLE tmp: STD_LOGIC; BEGIN tmp:=0; FOR i IN 0 TO 7 LOOP i可以不作任何定義可以不作任何定義 tmp: = tmp XOR a ( i ); END LOOP; y = tmp; END PROCESS; END rtl; 2) 2) WHILE條件條件 含含WHILE條件的條件的LOOPLOOP語句的格式為:語句的格式為: 標(biāo)號標(biāo)號 :WHILE WHILE 循環(huán)條件循環(huán)條件 LOOPLOOP 順序處理語句;順序處

19、理語句; END LOOP END LOOP 標(biāo)號標(biāo)號 ;WHILE WHILE 語句中的循環(huán)條件是布爾類型,其值為假時(shí)語句中的循環(huán)條件是布爾類型,其值為假時(shí)結(jié)束循環(huán)。結(jié)束循環(huán)?!纠纠?描述如圖所示的邏輯電路。描述如圖所示的邏輯電路。 圖圖 邏輯電路圖邏輯電路圖m(3)m(2)m(1)m(0)a(3)a(2)a(1)a(0) ENTITY while_stmt IS PORT ( a: IN BIT_VECTOR ( 0 TO 3 ); m: OUT BIT_VECTOR ( 0 TO 3 ); END while_stmt ; ARCHITECTURE example OF while_

20、stmt IS BEGIN PROCESS (a ) VARIABLE b: BIT; variable i:integer; BEGIN i:= 0 ; b:= 1; WHILE i = 3 LOOP b:=a (3-i) AND b; m (i) = b; i : = i + 1; END LOOP; END PROCESS; END example; 8NEXT語句語句 在在LOOP語句中,語句中,NEXT語句用來跳出本語句用來跳出本次循環(huán),次循環(huán),NEXT語句實(shí)際上是用于語句實(shí)際上是用于LOOP語句語句的內(nèi)部循環(huán)。其格式為:的內(nèi)部循環(huán)。其格式為: NEXT WHEN ; 循環(huán)標(biāo)號用來標(biāo)

21、明結(jié)束本次循環(huán)后下一次循環(huán)標(biāo)號用來標(biāo)明結(jié)束本次循環(huán)后下一次循環(huán)的起始位置。循環(huán)的起始位置。循環(huán)標(biāo)號和條件表達(dá)式是可循環(huán)標(biāo)號和條件表達(dá)式是可選項(xiàng),當(dāng)選項(xiàng),當(dāng)next后面無循環(huán)標(biāo)號和條件表達(dá)式時(shí),后面無循環(huán)標(biāo)號和條件表達(dá)式時(shí),只要執(zhí)行到該語句就立即無條件地跳出本次循只要執(zhí)行到該語句就立即無條件地跳出本次循環(huán),從環(huán),從loop 語句的起始位置進(jìn)入下一次循環(huán)。語句的起始位置進(jìn)入下一次循環(huán)。 【例【例】 L1: WHILE i 10 LOOP L2: WHILE j 20 LOOP NEXT L1 WHEN i=j; matrix (i , j ):= i * ( j +1 ); END LOOP L2

22、; END LOOP L1; 當(dāng)當(dāng)i=j時(shí),執(zhí)行時(shí),執(zhí)行NEXT語句,程序從內(nèi)循環(huán)語句,程序從內(nèi)循環(huán)跳出,再從下一次外循環(huán)開始執(zhí)行。跳出,再從下一次外循環(huán)開始執(zhí)行。 9EXIT語句語句 EXIT語句的格式為:語句的格式為: EXIT WHEN ; 該語句用在循環(huán)語句內(nèi)部。它有條件和無該語句用在循環(huán)語句內(nèi)部。它有條件和無條件地終止當(dāng)前循環(huán)并開始下一次循環(huán)。若條件地終止當(dāng)前循環(huán)并開始下一次循環(huán)。若WHEN子句出現(xiàn)的條件為子句出現(xiàn)的條件為FALSE,則循環(huán)正常,則循環(huán)正常繼續(xù);若繼續(xù);若WHEN子句出現(xiàn)的條件為子句出現(xiàn)的條件為TRUTH,則從所標(biāo)明的循環(huán)中退出。則從所標(biāo)明的循環(huán)中退出?!纠纠?L

23、1: FOR i IN 10 DOWNTO 1 LOOP L2: FOR j IN 0 TO i LOOP EXIT L2 WHEN i=j; matrix (i , j ):= i * ( j +1 );END LOOP L2;END LOOP L1;10、NULL空操作語句空操作語句 空操作語句不完成任何操作,它唯一的功能就是使邏輯運(yùn)行空操作語句不完成任何操作,它唯一的功能就是使邏輯運(yùn)行流程跨入下一步語句的執(zhí)行。流程跨入下一步語句的執(zhí)行。NULL常用于常用于CASE語句中,為滿足語句中,為滿足所有可能的條件,利用所有可能的條件,利用NULL來表示剩余的不用條件下的操作行為。來表示剩余的不用

24、條件下的操作行為。例:例:case opcode iswhen “001”=tmp:=rega and regb;when “101”=tmp:=rega or regb;when “110”=tmp:=not rega;when others=null;end case;VHDL子程序子程序VHDL子程序有兩種類型:過程子程序有兩種類型:過程procedure 和函數(shù)和函數(shù)function函數(shù)的語句表達(dá)格式如下:函數(shù)的語句表達(dá)格式如下:function 函數(shù)名(參數(shù)表)函數(shù)名(參數(shù)表) return 數(shù)據(jù)類型數(shù)據(jù)類型 函數(shù)首函數(shù)首function 函數(shù)名(參數(shù)表)函數(shù)名(參數(shù)表) retur

25、n 數(shù)據(jù)類型數(shù)據(jù)類型 is 函數(shù)體函數(shù)體說明部分說明部分begin順序語句;順序語句;end function 函數(shù)名;函數(shù)名; 一般地,函數(shù)定義應(yīng)由兩部分組成,即函數(shù)體和函數(shù)首,在一般地,函數(shù)定義應(yīng)由兩部分組成,即函數(shù)體和函數(shù)首,在進(jìn)程或結(jié)構(gòu)體中不必定義函數(shù)首,在程序包中必須定義函數(shù)首。進(jìn)程或結(jié)構(gòu)體中不必定義函數(shù)首,在程序包中必須定義函數(shù)首。函數(shù)例子函數(shù)例子library ieee;use ieee.std_logic_1164.all;package packexp isfunction max(a,b:in std_logic_vector)return std_logic_vector

26、;-function func1(a,b,c:real)-return real;-function *(a,b:integer)-return integer;-function as2(signal in1,in2:real)-return real;end;package body packexp isfunction max(a,b:in std_logic_vector)return std_logic_vector isbegin if ab then return a; else return b;end if;end function max;end;library IEEE;

27、use Ieee.std_logic_1164.all;use work.packexp.all;entity axamp isport(dat1,dat2:in std_logic_vector(3 downto 0); dat3,dat4:in std_logic_vector(3 downto 0); out1,out2:out std_logic_vector(3 downto 0);end;architecture bhv of axamp isbegin out1=max(dat1,dat2); process(dat3,dat4) begin out2=max(dat3,dat4

28、);end process;end bhv; 過程過程procedure的語句表達(dá)格式如下:的語句表達(dá)格式如下:procedure 過程名(參數(shù)表)過程名(參數(shù)表) 過程首過程首procedure 過程名(參數(shù)表)過程名(參數(shù)表) is 過程體過程體說明部分說明部分begin順序語句;順序語句;end procedure 過程名;過程名; 一般地,過程定義應(yīng)由兩部分組成,即過程體和過程首,在一般地,過程定義應(yīng)由兩部分組成,即過程體和過程首,在進(jìn)程或結(jié)構(gòu)體中不必定義過程首,在程序包中必須定義函數(shù)首。進(jìn)程或結(jié)構(gòu)體中不必定義過程首,在程序包中必須定義函數(shù)首。4輸入與非門過程定義與調(diào)用輸入與非門過程定

29、義與調(diào)用library IEEE;use Ieee.std_logic_1164.all;package axamp is procedure nand4a(signal a,b,c,d: in std_logic; signal y: out std_logic);end axamp;package body axamp isprocedure nand4a(signal a,b,c,d: in std_logic; signal y: out std_logic) isbeginy=not(a and b and c and d);return;end nand4a;end axamp;l

30、ibrary IEEE;use Ieee.std_logic_1164.all;use work.axamp.all;entity ex isport(e,f,g,h:in std_logic; x:out std_logic);end; architecture bhv of ex isbegin nand4a(e,f,g,h,x);end;VHDL程序包程序包package 程序包名程序包名 is 程序包首說明部分程序包首說明部分end 程序包名;程序包名;程序包首程序包首定義程序包地一般語句結(jié)構(gòu)如下:定義程序包地一般語句結(jié)構(gòu)如下:package body 程序包名程序包名 is 程序包體

31、說明部分程序包體說明部分end 程序包名;程序包名;程序包體程序包體程序包體并非總是必須地,程序包首可以獨(dú)立定義和使用。程序包體并非總是必須地,程序包首可以獨(dú)立定義和使用。VHDL程序包例題程序包例題package seven is subtype segments is bit_vector(0 to 6);type bcd is range 0 to 9;end seven;use work.seven.all;entity decoder isport(input:in bcd;drive:out segments);end decoder;architecture simple of

32、decoder isbegin with input select driveb then return a; else return b;end if;end function max;end;程序包可以和使用它的文件在程序包可以和使用它的文件在同一文件名稱下也可以單獨(dú)存儲同一文件名稱下也可以單獨(dú)存儲library IEEE;use Ieee.std_logic_1164.all;use work.packexp.all;entity axamp isport(dat1,dat2:in std_logic_vector(3 downto 0); dat3,dat4:in std_logic_

33、vector(3 downto 0); out1,out2:out std_logic_vector(3 downto 0);end;architecture bhv of axamp isbegin out1=max(dat1,dat2); process(dat3,dat4) begin out2=max(dat3,dat4);end process;end bhv; 【例】脈寬調(diào)制信號發(fā)生器【例】脈寬調(diào)制信號發(fā)生器 原理:原理: PWM(Pulse Windth Modulation,脈沖寬度調(diào)脈沖寬度調(diào)制)是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)制)是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)

34、行控制的一種非常有效的技術(shù),廣泛應(yīng)用于測量,行控制的一種非常有效的技術(shù),廣泛應(yīng)用于測量,通信,功率控制與變換等許多領(lǐng)域。通信,功率控制與變換等許多領(lǐng)域。 通過調(diào)制方波的占空比來對一個(gè)具體模擬信通過調(diào)制方波的占空比來對一個(gè)具體模擬信號的電平進(jìn)行編碼。號的電平進(jìn)行編碼。PWM信號仍然是數(shù)字的,因信號仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完為在給定的任何時(shí)刻,滿幅值的直流供電要么完全有全有(ON),要么完全無,要么完全無(OFF)。電壓或電流源是。電壓或電流源是以一種通以一種通(ON)或斷或斷(OFF)的重復(fù)脈沖序列被加到的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行進(jìn)行編碼。編碼。library IEEE;use ieee.std_logic_1164.all;-use i

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論