国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

煉獄傳奇-if_else與case之戰

發布時間:2015-3-31 09:48    發布者:zxopen09
關鍵詞: case , 煉獄 , 至芯 , 至芯科技 , 培訓
Verilog HDL語言中存在兩種分支語言:
● if-else 條件分支語句
● case 分支控制語句

1.       if-else條件分支語句
if-else 條件分支語句的作用是根據指定的判斷條件是否滿足來確定下一步要執行的操作。它在使用時可以采用如下三種形式:
(1)if(<條件表達式>)
      語句或語句塊;
在if-else 條件語句的這種使用形式中沒有出現else項,這種情況下條件分支語句的執行過程是:

● 如果指定的<條件表達式>成立(也就是這個條件表達式的邏輯值為”1”),則執行條件分支語句內給出的“語句或語句塊”,然后退出條件分支語句的執行。
● 如果<條件表達式>不成立(也就是條件的表達式的邏輯值為”0”、”x”、”z”),則不執行條件分支語句內給出的”語句或語句塊”,而是直接退出條件語句的執行。

例如程序1
這段程序在運行時,就會根據根據條件表達式“sel==1”是否成立來決定是否執行賦值語句“out==a”如仿真圖,如果sel==1時,則賦值語句就會得到執行,輸出信號out得到a的值1,如果sel==0時,則不執行的賦值語句,輸出信號out保持原有的值不變。如圖,當sel==0時,out保持原值1不變。

(2)if(<條件表達式>)
       語句或語句塊1
       else
       語句或語句塊2
    這種形式的條件分支語句將以如下方式得到執行:

● 如果指定的<條件表達式>成立(也就是這個條件表達式的邏輯值為“1”),則執行條件分支語句第一行所指定的語句或語句塊1,然后結束條件分支語句的執行。
● 如果<條件表達式>不成立,則執行由條件分支語句內第二行的else項指定的語句或語句塊2,然后結束條件分支語句的執行。

例如程序2
仿真圖
  在運行這段程序時,會根據條件表達式“sel==1”是否成立來決定執行兩條過程賦值語句中的哪一條。
如果sel==1,則第一行if這項所指定的賦值語句out=a,得到執行,輸出信號out 得到a的值1,如圖所示。
如果sel!==1,則執行第二行else 項所指定的賦值語句out=b,輸出信號out得到b的值。

(3)if(<條件表達式1>)
    語句或語句塊1
     else if( <條件表達式2>)
     語句或語句塊2
     ………
     else

    在執行這種形式的if-else條件分支語句時,將按照各分支項的排列順序對各個條件表達式是否成立做出判斷,當遇到某一項的條件表達式成立時,就執行這一項所指定的語句或語句塊。
    如果所有的條件表達式都不成立,則執行最后的else項。
    這種形式的if-else條件分支語句實現了一種多路分支選擇控制。

例如程序3
仿真圖
    如果sel1的值為1,則第一個分支項的條件表達式sel1成立,因而第一分支項所指定的賦值操作out=a.執行。
    如果sel2的值為1,sel1的值不為1,則第二個分支項的條件表達式sel2成立,因而第二個分支項所指定的賦值操作out=b,執行。
    如果sle1和sel2的值都不為1,則執行else 分支語句這一項操作out=c執行。

(4)Verilog HDL 允許if-else條件分支語句的嵌套使用。
    If(<條件表達式1>)//外層if語句
       If(<條件表達式2>)//內層if語句1
       Else             //內層else語句2
Else               //外層else語句1
       If(<條件表達式3>)//內層if語句3
       Else             //內層else語句4

1.  case分支控制語句
     case分支語句是另一種用來實現多路分支控制的分支語句。與使用if-else條件分支語句相比,采用case分支語句來實現多路控制將顯得更為方便與直觀。
     Case分支語句通常用于對微處理器指令譯碼功能的描述以及對有限狀態機的描述。Case分支語句有“case”、“casez”、“casex”三種形式。

(1)  case語句
case(<控制表達式>)
<分支語句1>  :語句塊1
<分支語句2>  :語句塊2
<分支語句3>  :語句塊3
………
<分支語句n>  :語句塊n
Default:       語句塊n+1;
Endcase

<控制表達式>代表著對程序流向進行控制的控制信號:各個<分支表達式>則是控制表達式的某些具體狀態取值,在實際使用中這些分支項表達式通常是一些常量表達式:各個“語句”則指定了在各個分支下所要執行的操作,它們也可以是由單條語句構成,處于最后的、以關鍵詞default開頭的那個分支項稱為“default”分支項,它是可以缺省的。

   Case語句的執行過程:
   (1)當“控制表達式”的取值等于“分支項表達式1”時,執行第一個分支項所包含的語句塊1.
(2)當“控制表達式”的取值等于“分支項表達式2”時,執行第一個分支項所包含的語句塊2.  
………….
(n)當“控制表達式”的取值等于“分支項表達式n”時,執行第一個分支項所包含的語句塊n.
    (4)在執行了某一分支項內的語句后,跳出case語句結構,終止case語句的執行。
Case語句中各個“分支項表達式”的取值必須是互不相同的,否則就會出現矛盾現象。


例如程序4
仿真圖
Case語句在執行時,控制表達式和分支項表達式之間進行的比較是一種按進位進行的“全等比較”,也就是說,只有在分支項表達式和控制表達式對應的每一位都是彼此相等的情況下才認為分支項表達式和控制表達式兩者是“相等”的,對應的語句塊就會被執行。

1.  case語句和if-else的區別

   if-else 語句的執行是有優先級的判斷,按照優先級的順序執行語句;而case語句沒有先級的考慮,只跟對應的邏輯值有關系,只要邏輯值對應相等就執行對應的語句塊。


本文地址:http://www.4huy16.com/thread-147563-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會上海首站開幕
  • 電動兩輪車設計生態系統
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • Microchip第22屆中國技術精英年會——采訪篇
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表