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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog邏輯設(shè)計中的循環(huán)語句和運算符

FPGA之家 ? 來源:時沿科技 ? 作者:Nemo_Yxc ? 2022-03-15 11:41 ? 次閱讀

“本文主要分享了在Verilog設(shè)計過程中一些經(jīng)驗與知識點,主要包括循環(huán)語句(forever、repeat、while和for)、運算符?!?/p>

01

循環(huán)語句

在Verilog中存在著4種類型的循環(huán)語句(forever、repeat、while和for),其中“while”與“for”的使用方法與C語言中的基本類似。

“forever”語句

語句格式如下: forever begin //add codes end

forever語句經(jīng)常用于仿真時產(chǎn)生周期性的波形,但是必須寫在initial塊中。示例代碼如下
rega;  initial begin    a = 0;    forever      begin        #5 a = ~a;      end  end
仿真效果如下:

fb1b5090-9197-11ec-952b-dac502259ad0.png

可以看出,clk每5ns實現(xiàn)一次電平翻轉(zhuǎn)。
  • “repeat”語句

語句格式如下: repeat(重復(fù)次數(shù)) begin // add codes end示意代碼如下:
  parameter      times = 3;reg[7:0]b_1,b_2;  initial    begin      b_1 = 0;      #10;      b_1 = 8'b0000_0100;      #10;end  always@(b_1)    begin      b_2 = b_1;        repeat(times)        begin          b_2 = b_2 << 1;        end    end
仿真結(jié)果如下:

fb2e4cc2-9197-11ec-952b-dac502259ad0.png

在10ns的時候,b_1賦值為8’b0000_0100,這時候repeat語句觸發(fā),b_2變成了8’b0010_0000,可見b_2右移了三位,也就是repeat內(nèi)的語句重復(fù)執(zhí)行了3次。

  • “while”語句

語句格式如下: while(表達(dá)式) begin end while后面的表達(dá)式為真時,while將會一直執(zhí)行,直到表達(dá)式為假時,才結(jié)束執(zhí)行while語句。示例代碼如下

reg[7:0]c_1,c_2;  initial    begin      c_1 = 0;      #10;      c_1 = 1;      c_2 = 8'b0000_0001;      while(c_1)        begin          c_2 = c_2 << 1;          #10;          if(c_2 == 8'b0001_0000)            c_1 = 0;          else            c_1 = 1;        end    end
仿真結(jié)果如下:

fb40361c-9197-11ec-952b-dac502259ad0.png

可以看出,當(dāng)c_1==1的時候,while中的語句在不停的執(zhí)行,當(dāng)c_1==0時,程序跳出while,不在執(zhí)行。
  • “for”語句

for語句的語句形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)beginend 它的執(zhí)行過程如下:
  1. 先求表達(dá)式1;

  2. 求解表達(dá)式2。若其值為真,則執(zhí)行 for 語句中指定的內(nèi)嵌語句,然后執(zhí)行第3步;若表達(dá)式2值為假,則結(jié)束循環(huán),轉(zhuǎn)到第5步;

  3. 求解表達(dá)式3;

  4. 轉(zhuǎn)回上面第2步繼續(xù)執(zhí)行;

  5. 循環(huán)結(jié)束,執(zhí)行 for 語句下面的語句。

    示例代碼如下:

  reg    [7:0]    d_1,d_2;  initial    begin      d_2 = 10;      #10;      for(d_1=1;d_1<5;d_1=d_1+1)        begin          d_2 = d_2 + 3;          #5;        end    end

fb4fb506-9197-11ec-952b-dac502259ad0.png

02

運算符

  • 基本算術(shù)運算符

  1. + (加法運算符);

  2. - (減法運算符);

  3. * (加法運算符);

  4. / (除法運算符);

  5. % (模運算符或者求余運算符,要求%兩側(cè)均為整型數(shù)據(jù),結(jié)果取第一個操作數(shù)的符號位,-10%3的結(jié)果是-1,11%-3的結(jié)果是2);

  • 賦值運算符

  1. =;

  2. <=;

  • 關(guān)系運算符

  1. > (大于);

  2. >= (大于等于);

  3. <=? ? ? (小于等于);

  4. == (等于);

  5. != (不等于);

  6. === (等于,可以比較含有X和Z的操作數(shù),在仿真中用的比較多);

  7. !== (不等于,可以比較含有X和Z的操作數(shù),在仿真中用的比較多)。

  • 邏輯運算符

  1. && (邏輯與);

  2. || (邏輯或);

  3. ! (邏輯非)。

  • 條件運算符

?:

例子:y=x?a:b(當(dāng)x為真時,y=a,當(dāng)x為假時,y=b)。

  • 位運算符

位運算符的操作數(shù)是幾位,結(jié)果也是幾位。

  1. ~ (取反);

  2. & (按位與);

  3. | (按位或);

  4. ^ (按位異或,XOR,相同為0,不同為1);

  5. ^~ (按位同或,相同為1,不同為0);

  6. ~& (與非,先按與的操作,然后結(jié)果取反);

  7. ~| (或非,先按或的操作,然后結(jié)果取反)。

  • 移位運算符

  1. <

  2. >> (右移,右移一位相當(dāng)于除以2)。

  • 拼接運算符

{s1,s2,s3,s4}:將兩個或者多個信號拼接起來。

  • 縮減運算符(一元簡約運算符)

縮減運算符對單個操作數(shù)進(jìn)行與、或、非遞推運算,最后的結(jié)果是1位的二進(jìn)制數(shù)。具體過程如下:

  1. 先將操作數(shù)的第1位和第2位進(jìn)行與、或、非運算;

  2. 運算的結(jié)果與第3位進(jìn)行與、或、非運算;

  3. 一次類推,知道最后一位。

例子:
reg    [3:0]     a;reg              b;b = &a;   等同于   b = ((a[0]&a[1])&a[2])&a[3]。
審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110100
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136821

原文標(biāo)題:Verilog基礎(chǔ)知識學(xué)習(xí)筆記(三)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    煉獄傳奇-移位和位拼運算符之戰(zhàn)

    運算符,就會使程序編寫起來變得簡單了。代碼的意思就是,每次把最低位放到最高位,讓前三位放到后面,這樣邏輯“1”就實現(xiàn)了移位,形成了循環(huán)。
    發(fā)表于 04-30 09:43

    求一道MATLAB編程題。要求: 使用循環(huán)語句編程,但不能使用數(shù)組運算符和sum

    求求求~~~要求: 使用循環(huán)語句編程,但不能使用數(shù)組運算符和sum; 使用數(shù)組運算符和sum編程,不能使用循環(huán)結(jié)構(gòu)。
    發(fā)表于 06-03 17:22

    Java基礎(chǔ)之Java運算符

    = 5.0f; long l = 5;f==l; 結(jié)果為true,浮點數(shù)與整數(shù)進(jìn)行比較,只要值相等就返回true。關(guān)系運算符主要用于條件語句循環(huán)語句中的判斷條件。而條件結(jié)構(gòu)就是根據(jù)
    發(fā)表于 05-18 15:39

    邏輯運算符是什么

    邏輯運算符:與或非條件結(jié)構(gòu)if -else及其嵌套循環(huán)結(jié)構(gòu)whilefordo-while
    發(fā)表于 07-14 07:50

    Bitwise 邏輯運算符進(jìn)行設(shè)計

    鎖定?! ND Bitwise 運算符  攝像頭滑塊的主要位運算符是 AND。該運算器使用 C 語言編程的安培 (&) 符號,使用圖 1
    發(fā)表于 04-02 17:39

    條件運算符是什么_條件運算符有哪些

    運算符優(yōu)先級高于賦值、逗號運算符,低于其他運算符。關(guān)系運算實際上是邏輯比較運算,它是
    發(fā)表于 11-16 16:02 ?1.1w次閱讀
    條件<b class='flag-5'>運算符</b>是什么_條件<b class='flag-5'>運算符</b>有哪些

    單目運算符是什么_單目運算符有哪些

    單目運算符是指運算所需變量為一個的運算符,又叫一元運算符,其中有邏輯運算符:!、按位取反
    的頭像 發(fā)表于 02-24 15:42 ?6.1w次閱讀
    單目<b class='flag-5'>運算符</b>是什么_單目<b class='flag-5'>運算符</b>有哪些

    淺析MySQL的各類運算符

    MySQL支持多種運算符,我們在寫SQL腳本時經(jīng)常會需要用到各種各樣的運算符,這些運算符可以用來連接表達(dá)式,進(jìn)而從數(shù)據(jù)庫查詢我們需要的結(jié)果集等。這些類型主要包括算術(shù)
    的頭像 發(fā)表于 05-03 17:41 ?2058次閱讀
    淺析MySQL<b class='flag-5'>中</b>的各類<b class='flag-5'>運算符</b>

    python運算符是什么

    python運算符 0. 什么是運算符? 本章節(jié)主要說明Python的運算符。舉個簡單的例子 4 +5 = 9 。 例子,4和5被稱為操作數(shù),“+”號為
    的頭像 發(fā)表于 02-21 16:44 ?2387次閱讀

    C語言總結(jié)_語句運算符

    當(dāng)前文章復(fù)盤C語言的: 位運算運算符、基本運算符、數(shù)據(jù)類型、變量、for語句、while語句、goto
    的頭像 發(fā)表于 08-14 09:39 ?1012次閱讀

    什么是邏輯運算符

    邏輯運算符對其操作數(shù)求值,并返回一個值,該值指示求值結(jié)果是真還是假(true or false)。例如,運算a && b測試a和b是否都為真,如果兩個操作數(shù)都為真,則運算符返回真。否則,運算符
    的頭像 發(fā)表于 02-09 15:55 ?2031次閱讀
    什么是<b class='flag-5'>邏輯運算符</b>

    KUKA機(jī)器人的邏輯運算符

    邏輯運算符用于布爾變量、常數(shù)和簡單的、借助比較運算符構(gòu)成的邏輯表達(dá)式的邏輯運算
    發(fā)表于 07-21 10:06 ?2533次閱讀
    KUKA機(jī)器人的<b class='flag-5'>邏輯運算符</b>

    verilog邏輯運算符

    寫在前面 之前曾經(jīng)整理過verilog的各類運算符的表達(dá)方式,但是在學(xué)習(xí)的過程并未深入研究關(guān)于邏輯運算符的相關(guān)知識,導(dǎo)致在實際使用過程
    的頭像 發(fā)表于 09-21 10:07 ?2422次閱讀
    <b class='flag-5'>verilog</b>的<b class='flag-5'>邏輯運算符</b>

    python運算符的優(yōu)先級大小

    解。 Python運算符可以分為以下幾類:算術(shù)運算符、比較運算符、邏輯運算符、位運算符、賦值
    的頭像 發(fā)表于 11-29 16:21 ?3422次閱讀

    Verilog語法運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?743次閱讀
    <b class='flag-5'>Verilog</b>語法<b class='flag-5'>中</b><b class='flag-5'>運算符</b>的用法
    主站蜘蛛池模板: 日本大片成人免费播放| 国产玖玖| 99热99热| 欧美亚洲综合一区| 91久久青草精品38国产| 国产免费的野战视频| 中文字幕不卡在线播放| 欧美高清在线播放| 天天射天天操天天| 日本一区二区三区在线 视频观看免费| 色色色色色色网| 亚洲午夜免费| 亚洲卡1卡2卡新区网站| 日本午夜三级| 午夜秒播| 日本边添边爱边摸边做边爱| 日本最色视频| 午夜美女视频在线观看高清| 亚洲一区精品中文字幕| 求毛片网站| 丁香六月婷婷在线| jlzzjlzz亚洲日本| 四虎影视免费看| 午夜影院毛片| 日本一区免费观看| 久久电影福利| 天天激情综合| 成人中文字幕一区二区三区| 久久婷婷一区二区三区| 国产欧美一区二区日本加勒比| 亚洲五月婷| 日本黄色大片在线观看| 天天爽天天操| 一本到卡二卡三卡视频| 成人精品一区二区不卡视频| 一区在线免费观看| 久久婷婷国产一区二区三区| 把小嫩嫩曰出白浆| 色黄网站成年女人色毛片| 天堂在线最新版www中文| 失禁h啪肉尿出来高h受|