在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    5970

    瀏覽量

    175866
  • 電路設計
    +關注

    關注

    6678

    文章

    2459

    瀏覽量

    204941
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110190
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28425
  • 符號
    +關注

    關注

    0

    文章

    55

    瀏覽量

    4344

原文標題: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 ?1865次閱讀
    考慮x和z在<b class='flag-5'>verilog</b><b class='flag-5'>條件</b><b class='flag-5'>語句</b>中的使用情況

    Verilog中的賦值語句的區別

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

    Verilog的兩種語句解析

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

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

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

    Verilog語句

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

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

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

    條件判斷語句(if語句

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

    詳解Python條件語句

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

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

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

    Verilog常用的循環語句及用途

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

    條件語句/循環語句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 ?1038次閱讀

    Python條件條件語句

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

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數字電路建模和設計。Assign語句用于連續賦值,而Al
    的頭像 發表于 02-22 16:24 ?2709次閱讀
    主站蜘蛛池模板: 亚洲精品456| 新天堂网| 九九re| 18性夜影院午夜寂寞影院免费| 狠狠干天天射| 天天操天天插天天射| 天天干天天曰| 久久精品久久久久| 欧美猛交xxxx乱大交| 哥也操| 久久婷五月| 扒开末成年粉嫩的流白浆视频| 看片在线| dvd碟片色爱| 超碰v| jdav视频在线观看| 免费我看视频在线观看| 亚洲午夜一区二区三区| 综合伊人久久| 色天使色婷婷丁香久久综合| 四虎影院永久网址| 凸输偷窥xxxx自由视频| 日韩午夜精品| 日韩毛片一级| 久久国产综合| 亚洲情a成黄在线观看| 精品久久久久久久久久| 中文字幕在线观看一区二区 | 开心激情五月网| www.你懂的| 久久啊| 性xxxxx| 四虎影院在线播放| 久久2017| 手机在线1024| 中文字幕色婷婷在线精品中| 亚洲人成电影综合网站色| 欧美午夜性| 午夜视频在线观看免费视频| 800免费资源网| www亚洲成人|