色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解Verilog賦值語句、塊語句、條件語句

jf_GctfwYN7 ? 來源:IC修真院優秀學員 ? 2023-07-02 10:47 ? 次閱讀


ddd99930-1731-11ee-962d-dac502259ad0.png

不可綜合語句經常用在測試文件中,未注明的語句均是可綜合的

賦值語句

1.連續賦值語句——assign語句,用于對wire型變量賦值,是描述組合邏輯最常用的方法之一。

例:assign c=a&b; // a,b,c 均為wire型變量

2.過程賦值語句——用于對reg型變量賦值,有兩種方法:

非阻塞賦值方法:符號<=

阻塞賦值方法:符號為=

阻塞與非阻塞賦值的區別:

1.非阻塞賦值方式:

always @(posedge clk)
    begin
      b <= a;
      c <= b;
    end

非阻塞賦值在塊結束時才完成賦值操作(c的值比b的值落后一個時鐘周期)

ddf752c2-1731-11ee-962d-dac502259ad0.png

2.阻塞賦值方式

always @(posedge clk)
    begin
      b = a;
      c = b;
    end

阻塞賦值語句在該語句結束時就完成賦值操作(在塊語句中,如果有多條阻塞賦值語句,在前面的賦值語句沒有完成之前,后面的語句就不能被執行,就像被阻塞一樣,因此稱為阻塞賦值方式。這里的c和b的值一樣。)

de11155e-1731-11ee-962d-dac502259ad0.png

非阻塞賦值于阻塞賦值方式的主要區別:

非阻塞賦值:b的值被賦成新值a的操作,并不是立刻完成,而是在塊結束時才完成;

塊內的多條語句在塊結束時同時賦值。

硬件有對應電路。

阻塞賦值: b的值立刻被賦成新值a;

完成該賦值語句后才能執行下一條語句;

硬件沒有對應的電路,因而綜合結果未知。

塊語句

用來將兩條或多條語句組合在一起,使其在格式上更像一條語句,以增加程序的可讀性

塊語句有兩種:

begin...end語句——標示順序執行的語句

fork...join語句——標示并行執行的語句(不可綜合)

begin...end:

塊內的語句是順序執行的

每條語句的延遲時間是相對于前一條語句仿真時間而言的

直到最后一條語句執行完,程序流程控制才能跳出該順序塊

塊內語句可以是參數聲明,reg變量聲明,integer變量聲明,real變量聲明語句

#可以用在語句塊中表示延遲,(在模塊調用過程中使用#表示參數的傳遞)

fork...join:

塊內的語句是并行執行的

每條語句的延遲時間是相對于開始仿真時間而言的

如何跳出該順序塊由(fork...join,fork...join_any,fork...join_none)決定

塊內語句可以是參數聲明,reg變量聲明,integer變量聲明,real變量聲明語句,time變量聲明語句和事件(event)說明語句。

條件語句

條件語句分為兩種:if...else語句和case語句

它們都是順序語句,應該放在“always”塊內;

if...else:

判定給出的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。

if...else語句有3中形式:

其中,表達式為邏輯表達式或關系表達式,或一位的變量

若表達的值為0或者z,則判定的結果為假,若為1,則加過為真

語句分為單句,也可分為多句;多句一定用“begin...end”語句括起來,形成一個符合塊語句

方式1:

if (表達式) 語句1;

方式2:

if(表達式) 語句1;

else 語句2;

方式3:

if(表達式1) 語句1;

else if(表達式2) 語句2;

...

else if(表達式n) 語句n;

允許一定形式的表達式簡寫方式,如:

if(expression) 等同于if(expression ==1)

if(!expression) 等同于if(expression!=1)

if 語句可以嵌套

若if和else的數目不一樣,要使用“begin..end”語句來確定if于else的配對關系。

嵌套語句:

if(表達式1)

if(表達式2)語句1;

else 語句2;

else

if(表達式3) 語句3;

else 語句4;

module count60(qout, cout,data,load,cin,reset,clk);
output[7:0]  qout;
output       cout;
input [7:0]  data;
input        load,cin,reset,clk;
reg   [7:0]  qout;


    always@(posedge clk)
begin
  if(reset)         qout = 0;           //同步復位
  else if(load)     qout = data;        //同步置數
       else if (cin)        /如果cin為1,執行加1計數
      begin
   if (qout[3:0]==9)
    begin
qout[3:0]=0;
  if (qout[7:4]==5)
    qout[7:4] = 0;
  else
    qout[7:4] =qout[7:4]+1;
end  
           else
    qout[3:0]=qout[3:0]+1;
   end
end
assign cout = ((qout ==8'h59)&cin)?1:0; //產生進位輸出
endmodule
case語句

當敏感表達式取不同的值時,執行不同的語句;

功能:當某個(控制)信號取不同的值時,給另一個(輸出)信號賦不同的值。常用于多條件譯碼電路(如譯碼器,數據選擇器,狀態機,微處理器

case語句有三種不同形式:case,casez,casex

說明:

其中“敏感表達式”有稱為“控制表達式”,通常表示為控制信號的某些位。

值1—值n稱為分支表達式,用控制信號的具體狀態值表示,因此有分為常量表達式。

default項可有可無,一個case語句中只有一個default項;

值1—值n必須互不相同,否則矛盾;

值1—值n的位寬必須相等,且與控制表達式的位寬相同。

casez與casex語句:

de224a18-1731-11ee-962d-dac502259ad0.png

使用條件語句的注意事項:

- 應列出所有條件分支,否則當條件不滿足時,編譯器會生成一個鎖存器保持原值;

- 這一點可用于設計時序電路,如計數器:條件滿足時加1,否則保持原值不變;

- 在組合電路設計中,應避免生成隱含的鎖存器,有效的方法是在if語句最后寫上else,在case語句最后寫上default項。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IC
    IC
    +關注

    關注

    36

    文章

    5944

    瀏覽量

    175492
  • 電路設計
    +關注

    關注

    6673

    文章

    2451

    瀏覽量

    204167
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110077
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28360
  • 符號
    +關注

    關注

    0

    文章

    55

    瀏覽量

    4332

原文標題:IC學霸筆記 | Verilog賦值語句、塊語句、條件語句

文章出處:【微信號:IC修真院,微信公眾號:IC修真院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言中if語句、if-else語句和switch語句詳解

    在C語言中,有三種條件判斷結構:if語句、if-else語句和switch語句
    發表于 08-18 16:36 ?1.2w次閱讀
    C語言中if<b class='flag-5'>語句</b>、if-else<b class='flag-5'>語句</b>和switch<b class='flag-5'>語句</b><b class='flag-5'>詳解</b>

    考慮x和z在verilog條件語句中的使用情況

    首先,考慮x和z在verilog條件語句中的使用情況,然后我們再考慮在verilog中用x和z給其他reg/wire賦值的情況。
    的頭像 發表于 11-02 09:40 ?1789次閱讀
    考慮x和z在<b class='flag-5'>verilog</b><b class='flag-5'>條件</b><b class='flag-5'>語句</b>中的使用情況

    Verilog中的賦值語句的區別

    連續賦值語句總是處于激活狀態。只要任意一個操作數發生變化,表達式就會被立即重新計算,并且將結果賦給等號左邊的線網。
    的頭像 發表于 11-26 10:04 ?3588次閱讀
    <b class='flag-5'>Verilog</b>中的<b class='flag-5'>賦值</b><b class='flag-5'>語句</b>的區別

    Verilog的兩種語句解析

    順序,用于將多條語句組成順序語句按順序一條一條執行(除了帶有內嵌延遲控制的非阻塞賦值語句
    的頭像 發表于 06-18 15:16 ?3055次閱讀

    簡述Verilog HDL中阻塞語句和非阻塞語句的區別

    ? 在Verilog中有兩種類型的賦值語句:阻塞賦值語句(“=”)和非阻塞賦值
    的頭像 發表于 12-02 18:24 ?6197次閱讀
    簡述<b class='flag-5'>Verilog</b> HDL中阻塞<b class='flag-5'>語句</b>和非阻塞<b class='flag-5'>語句</b>的區別

    Verilog語句

    begin_end順序,用于將多條語句組成順序語句按順序一條一條執行(除了帶有內嵌延遲控制的非阻塞賦值
    的頭像 發表于 05-18 10:29 ?1386次閱讀

    Verilog語句fork...join 和 begin...end

    begin_end順序,用于將多條語句組成順序語句按順序一條一條執行(除了帶有內嵌延遲控制的非阻塞賦值
    的頭像 發表于 06-09 10:30 ?3212次閱讀

    條件判斷語句(if語句

    條件判斷語句,作為任何編程語言都不可缺少的內容,在C語言中也不例外。條件判斷語句可以讓程序的功能更加復雜,從而實現各種各樣的功能。
    的頭像 發表于 02-21 15:24 ?3492次閱讀
    <b class='flag-5'>條件</b>判斷<b class='flag-5'>語句</b>(if<b class='flag-5'>語句</b>)

    詳解Python條件語句

    在 Python 中,if...else 是一種條件語句,可以根據給定的條件執行不同的操作。這個語句通常用于控制程序的流程。
    的頭像 發表于 04-19 15:39 ?813次閱讀

    Verilog中的If語句和case語句介紹

    我們在上一篇文章中已經看到了如何使用程序(例如 always 來編寫按順序執行的 verilog 代碼。 我們還可以在程序中使用許多語句
    的頭像 發表于 05-11 15:37 ?4506次閱讀
    <b class='flag-5'>Verilog</b>中的If<b class='flag-5'>語句</b>和case<b class='flag-5'>語句</b>介紹

    Verilog常用的循環語句及用途

    本文主要介紹verilog常用的循環語句,循環語句的用途,主要是可以多次執行相同的代碼或邏輯。
    的頭像 發表于 05-12 18:26 ?2449次閱讀

    條件語句/循環語句simulink的實現方法(一)

    條件語句和循環語句是計算機編程中常用的兩種控制結構
    的頭像 發表于 07-21 16:48 ?1.1w次閱讀
    <b class='flag-5'>條件</b><b class='flag-5'>語句</b>/循環<b class='flag-5'>語句</b>simulink的實現方法(一)

    Python中什么是語句

    條件判斷 語句 什么是語句呢? 語句是在
    的頭像 發表于 09-12 16:41 ?1010次閱讀

    Python條件條件語句

    if語句 對于if語句,若條件判定為真,那么后面的語句就會被執行。若條件判定為假,
    的頭像 發表于 09-12 16:45 ?603次閱讀

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數字電路建模和設計。Assign語句用于連續賦值,而Al
    的頭像 發表于 02-22 16:24 ?2530次閱讀
    主站蜘蛛池模板: 久久国产加勒比精品无码| 九九99热久久999精品| 成人精品综合免费视频| 国产高清视频免费最新在线| 黄色免费网址在线观看| 热99re久久精品国产首页| 亚洲男人天堂网| 把腿张开再深点好爽宝贝动态图| 国产区免费在线观看| 免费视频精品38| 午夜精品久久久久久影视riav| 中文字幕人成乱码中国| 国产精品久免费的黄网站| 美女的避毛| 亚洲精品97福利在线| WWW国产精品内射熟女| 寂寞夜晚看免费视频| 日韩人妻少妇一区二区三区| 在线视频 国产 日韩 欧美| 高清国语自产拍免费| 蜜芽最新域名解析网站| 亚洲成AV人电影在线观看| xxx暴力xxx| 两个女人互添下身高潮自视频| 午夜亚洲WWW湿好爽| 98色精品视频在线| 国语自产二区高清国语自产拍| 人人干人人看| 伊人久久青青草| 国产成人v视频在线观看| 男人都懂www深夜免费网站| 亚洲永久精品ww47app| 东北老妇人70OLDMAN| 嫩草影院一区| 野花韩国中文版免费观看| 国产精品久久久久久搜索 | 午夜DY888国产精品影院| 99欧美精品| 久久久久久久国产精品视频| 性色少妇AV蜜臀人妻无码| 床伴在线观看免费高清完整泰剧第四集 |