freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]數(shù)字電子技術(shù)基礎(chǔ)第10章(編輯修改稿)

2025-01-03 23:35 本頁面
 

【文章內(nèi)容簡介】 順序描述語句按這些語句在進(jìn)程或子程序中出現(xiàn)的順序執(zhí)行,這一點與高級語言類似?;静僮骺梢允切盘柡妥兞康馁x值、算術(shù)運算、邏輯運算、 VHDL中常用的順序描述語句包括:信號和變量賦值、if、 case、 wait、 loop、 next、 exit、斷言語句、過程調(diào)用語句、空語句等。下面介紹主要的幾種順序描述語句。 第 10章 VHDL硬件描述語言簡介 1 1 目的信號量 = 上述語句將右邊表達(dá)式的值賦予左邊的信號量。表達(dá)式可以使用 VHDL預(yù)定義運算符,也可以使用 VHDL標(biāo)準(zhǔn)庫提供的函數(shù),或自定義的函數(shù)。例如: f=′1′。 q=″010010″。 a=b。 s=axorb。 x=y+z。 i=to integer(v)。 第 10章 VHDL硬件描述語言簡介 2 目的變量 := 變量賦值的符號與信號賦值的符號不同,表達(dá)式與信號 變量與信號有明顯的區(qū)別:變量只在定義它的進(jìn)程和子程序內(nèi)有效,無法傳遞到進(jìn)程之外,而信號在定義它的結(jié)構(gòu)體內(nèi)有效;賦給變量的值立即成為當(dāng)前值,而賦給信號的值必須在進(jìn)程結(jié)束后才能成為當(dāng)前值。 第 10章 VHDL硬件描述語言簡介 2. if語句 if語句用來判定所給定的條件是否滿足,并根據(jù)判定的結(jié)果(真或假)決定執(zhí)行的操作。 if語句的條件是一個條件表達(dá)式,只能使用關(guān)系運算符及邏輯運算符組成的表 1 當(dāng) if語句在條件為假時并不需要執(zhí)行任何操作,那么,if if 條件 then end if。 第 10章 VHDL硬件描述語言簡介 2 if條件 then else end if。 第 10章 VHDL硬件描述語言簡介 當(dāng) if語句的條件為“真”時,執(zhí)行 then和 else之間的順序描述語句;當(dāng) if語句的條件為“假”時,執(zhí)行 else和 endif之間的順序描述語句。例如: entity mux2is port (a,b:in std logic。 s:in std logic。 f:out std logic)。 end mux2。 architecture behaviorofmux2is begin 第 10章 VHDL硬件描述語言簡介 process (a,b,s) begin if (s=′0′)then f=a。 else f=b。 endif 。 end process。 end behavior。 第 10章 VHDL硬件描述語言簡介 3 在使用 if語句時,有時需要對多個條件進(jìn)行判斷。此時, if if條件 1then elsif條件 2then elsif … elsif條件 nthen else endif。 第 10章 VHDL硬件描述語言簡介 3. case語句 case語句用來對多個條件分支進(jìn)行判定,并根據(jù)判定的結(jié)果決定執(zhí)行給出分支之一。 case語句的基本格式如下: case表達(dá)式 is when條件表達(dá)式 1= when條件表達(dá)式 2= when… endcase。 第 10章 VHDL硬件描述語言簡介 上述 case when值 = when值 1|值 2|值 3|…| 值 n= when值 1to值 2= whenothers= 第 10章 VHDL硬件描述語言簡介 上述語句分別表示條件表達(dá)式的值是某個確定的值,多個值中的一個,一個取值范圍中的一個,其他所有的缺 當(dāng) case和 is之間的表達(dá)式取值滿足某一個條件表達(dá)式的值時,程序?qū)?zhí)行后面的由符號 =所指的順序描述語句。 case語句的各個條件表達(dá)式之間沒有優(yōu)先級,所以,給定的條件表達(dá)式不能有重疊,否則將無法確定執(zhí)行哪一個分支。如果沒有列舉出 case和 is之間的表達(dá)式的全部取值,則 whenothers=必不可少。 第 10章 VHDL硬件描述語言簡介 4. wait語句 進(jìn)程的狀態(tài)還可以通過 wait語句來控制。當(dāng)進(jìn)程執(zhí)行到 wait語句時,將被掛起,并設(shè)置好再次執(zhí)行的條件,可以是無限等待 (wait) 或有限等待。有限等待的條件可以是:等待某些信號發(fā)生變化 (waiton),等待某個條件滿足( waituntil),等待一段時間 (waitfor)。這幾個條件還可以組合成一個復(fù)合條件。 第 10章 VHDL硬件描述語言簡介 1) waiton waiton waiton 信號列表可以包括一個或多個信號。信號列表中的任何一個信號的值發(fā)生變化,進(jìn)程將結(jié)束掛起狀態(tài),進(jìn)入執(zhí)行狀態(tài),執(zhí)行 waiton waitona,b,s。 上述語句等待信號 a、 b、 s中的任何一個發(fā)生變化。 第 10章 VHDL硬件描述語言簡介 waiton語句可以使進(jìn)程掛起,然后又使它重新執(zhí)行,其條件是信號列表中任何一個信號的值發(fā)生變化。該語句的作用與進(jìn)程的敏感信號列表非常類似。例如: mux2:process () begin if (s=′0′)then f=a。 else f=b。 end if 。 wait on a,b,s。 end process 。 mux2:process (a,b,s) begin if (s=′0′)then f=a。 else f=b。 endif 。 end process。 第 10章 VHDL硬件描述語言簡介 上面兩個例子是完全等價的。由此可以看出,控制進(jìn)程執(zhí)行還是掛起的敏感信號列表,可以寫在進(jìn)程開始的process語句中,也可以寫在進(jìn)程結(jié)尾的 waiton語句中,兩種描述是等價的。必須注意的是,如果 process語句已經(jīng)有敏感信號列表,那么在進(jìn)程中不能再使用 waiton語句。雖然, waiton語句可以出現(xiàn)在進(jìn)程中的任何位置,但在不同位置它的作用略有不同。 waiton語句只有出現(xiàn)在進(jìn)程結(jié)束時,才是與進(jìn)程敏感信號列表等價的。若出現(xiàn)在進(jìn)程中間,則相當(dāng)于改變了進(jìn)程中語句的順序。 第 10章 VHDL硬件描述語言簡介 2) waituntil waituntil waituntil 當(dāng) wait等待的布爾表達(dá)式為“真”時,進(jìn)程將結(jié)束掛起狀態(tài),進(jìn)入執(zhí)行狀態(tài),執(zhí)行 waituntil語句的后繼語句。例如: waituntila=′1′。 第 10章 VHDL硬件描述語言簡介 3) wait for wait for wait for 時間表達(dá)式可以是一個具體時間(如 30ns)或一個時間量的算術(shù)表達(dá)式(如 t1+t2, 2*t1+t2等)。當(dāng)進(jìn)程執(zhí)行到waitfor語句時,進(jìn)程將進(jìn)入掛起狀態(tài),直到時間表達(dá)式指定的時間到,進(jìn)程將結(jié)束掛起狀態(tài),進(jìn)入執(zhí)行狀態(tài),執(zhí)行waitfor wait for 30 ns。 wait for a*t1+t2。 第 10章 VHDL硬件描述語言簡介 上面的第一個 wait for語句中, 30ns是一個時間常量。第二個 wait for語句中, a*t1+t2是一個時間表達(dá)式, wait for語句在等待時要對該時間表達(dá)式進(jìn)行一次計算。當(dāng)a=3,t1=20ns,t2=50ns時,它相當(dāng)于 wait for 110 ns 必須注意: waitfor語句不是可綜合語句,它只能在仿真時使用。 第 10章 VHDL硬件描述語言簡介 4)復(fù)合 wait wait語句可以同時使用多個等待條件,構(gòu)成一條復(fù)合wait waitonclkuntilclk=′1′。 該語句等待 clk信號的值發(fā)生變化,而且 clk的值為 ′1′(即 clk從 ′0′變到 ′1′)時,進(jìn)程將結(jié)束掛起狀態(tài),進(jìn)入執(zhí)行狀態(tài),執(zhí)行該語句的后繼語句。 第 10章 VHDL硬件描述語言簡介 5. loop語句 循環(huán)控制語句 loop可以用來描述 process的循環(huán)結(jié)構(gòu),對應(yīng)于電路的位片邏輯、迭代電路等,可以是 for循環(huán)或while 1)for for循環(huán)結(jié)構(gòu)的 loop [標(biāo)號:] for循環(huán)變量 in離散范圍 loop endloop[標(biāo)號]; 第 10章 VHDL硬件描述語言簡介 這里,標(biāo)號是可以省略的;循環(huán)變量是整數(shù)型變量,它不需要在結(jié)構(gòu)體或進(jìn)程中定義,在循環(huán)體(由順序描述語句構(gòu)成)中不能通過信號或變量給循環(huán)變量賦值;離散范圍是循環(huán)變量的取值范圍,它決定了循環(huán)的次數(shù); loop語句針對循環(huán)變量的每一個取值,執(zhí)行一遍循環(huán)體的所有順序描述語句。例如: entity parity—checker is port (data:in std—logic—vector(7downto 0)。 p:out std—logic)。 end parity—checker。 architecture behavior of parity—checker is begin 第 10章 VHDL硬件描述語言簡介 parity—checker:process (data) variable tmp:std—logic。 begin tmp:=′0′。 for I in 7 downto 0 loop tmp:=tmp xor data(i)。 end loop。 p=tmp。 end process。 end behavior。 第 10章 VHDL硬件描述語言簡介 上面的例子描述了一個偶校驗的電路(只要把 tmp的初值改成“ 1”,就可以實現(xiàn)奇校驗)。在這個例子中,大家要特別注意變量 tmp的作用。這里只能用變量,不能用信號。因為信號的賦值要到 process結(jié)束才能生效,不能實現(xiàn)校驗的功能。變量只能在本進(jìn)程內(nèi)有效,要實現(xiàn)輸出還必須將它賦值給一個信號(本例中是 p=tmp)。 第 10章 VHDL硬件描述語言簡介 2)while while循環(huán)的 loop [標(biāo)號:] while條件 loop end[標(biāo)號] 。 這里,當(dāng)條件為“真”時,執(zhí)行循環(huán)體中的語句;當(dāng)條件為“假”時,結(jié)束循環(huán)。 第 10章 VHDL硬件描述語言簡介 6. next語句和 exit語句 1) next next next[標(biāo)號][ when 執(zhí)行到該語句時,如果條件為“真”,則結(jié)束本次循環(huán),跳到“標(biāo)號”規(guī)定的語句,開始下一次循環(huán)。如果標(biāo)號省略,則表示跳到 loop循環(huán)的起始位置,開始下一次循環(huán)。如果“ when條件”省略,則執(zhí)行到 next語句時無條件結(jié)束本次循環(huán)。從功能上來看, next語句用于 loop循環(huán)內(nèi)的執(zhí)行控制。 第 10章 VHDL硬件描述語言簡介 2) exit exit語句用于結(jié)束本循環(huán) loop exit[標(biāo)號][ when 執(zhí)行到該語句時,如果條件為“真”,則結(jié)束本循環(huán)語句,跳到“標(biāo)號”規(guī)定的語句,繼續(xù)向下執(zhí)行。如果標(biāo)號省略,則表示跳到 loop循環(huán)的后繼語句,即 endloop下面的語句。如果“ when條件”省略,則執(zhí)行到 exit語句時無條件結(jié)束循環(huán)。要注意 exit語句與 next語句的區(qū)別: next只結(jié)束本次循環(huán),開始下一次循環(huán),而 exit語句結(jié)束整個循環(huán),跳出循環(huán)狀態(tài)。 第 10章 VHDL硬件描述語言簡介 process語句 所有的順序描述語句都只能在進(jìn)程中使用。進(jìn)程內(nèi)是順序執(zhí)行,進(jìn)程與進(jìn)程之間是并發(fā)的,有點類似于計算機 1) process process [進(jìn)程名]: process(進(jìn)程敏感信號列表 ) begin end process 第 10章 VHDL硬件描述語言簡介 proce
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1