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

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

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

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

告訴你真正的verilog執(zhí)行順序,糾正你的思路偏差

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-08-31 16:45 ? 次閱讀

· 程序執(zhí)行順序 ·

和C/C++一類編程語言不同,HDL用于電路描述,代表著門電路和觸發(fā)器的組合。任何時刻,只要上電后,FPGA就等價于一堆數(shù)字電路,每個電路按照自己的條件執(zhí)行,不會因為某個模塊放在代碼前面,就會先工作。這就需要設(shè)計人員,按照每個模塊并行工作的思路來調(diào)整設(shè)計。這給軟件開發(fā)人員入門帶來了難度,但是同時也是FPGA的價值所在,正因為FPGA能夠并行執(zhí)行,所以很多算法和設(shè)計可以在低頻時鐘下高實時性,快速出結(jié)果。這是FPGA的優(yōu)勢,也是火起來的一個重要原因,所以希望大家好好去理解。

同時大家要明白verilog不是不能實現(xiàn)順序執(zhí)行,而是實現(xiàn)順序執(zhí)行并不像語法那么直觀,最簡單的順序執(zhí)行方法就是用狀態(tài)機去控制每一個寄存器的跳變,C/C++編程也可以認為本質(zhì)上就是大型的一個狀態(tài)機,verilog要做到那樣也只是做成狀態(tài)機去模擬他的工作。只要是數(shù)字電路能夠?qū)崿F(xiàn)的,F(xiàn)PGA都可以做到。

模塊內(nèi)部的執(zhí)行順序比較復(fù)雜,優(yōu)秀的設(shè)計中,模塊內(nèi)部是并行工作的,即使是begin end語句內(nèi)部,這里很多讀者會問,begin end不是串行語句塊嗎?下面詳細解釋這個問題。

begin end之間存在阻塞賦值和非阻塞賦值2種賦值方法,如果使用不當不僅僅會出現(xiàn)競爭冒險,還會導(dǎo)致你的理解和編譯器理解不一樣,最終生成的電路和自己想的天差地別,導(dǎo)致一些難修正的錯誤。所以必須按照以下兩條執(zhí)行準則使用賦值語句:

描述組合邏輯的always塊里面用阻塞式賦值

描述時序邏輯的always塊里面用非阻塞賦值

在組合邏輯中,阻塞賦值只和電平有關(guān),往往和觸發(fā)邊沿沒有關(guān)系,可以看成是并行運行的組合邏輯電路。而時序邏輯中,非阻塞賦值是本身就是并行執(zhí)行的。因此,優(yōu)秀的設(shè)計,其begin end內(nèi)部也是并行執(zhí)行的。大家為了加深理解,可以去看看實例說明里面的例子。

· 實例說明 ·

modulepara_demo(clk,reset,a,b);

inputclk;

inputreset;

input[3:0]a;

output[3:0]b;

reg[3:0]tempa1,tempa2,b;

always@(posedgeclk)

begin

if(!reset)begin

tempa1<=?0;??

tempa2<=?0;??

b<=?0;??

end

elsebegin

tempa1<=?a?+?1;??

tempa2<=?tempa1?+?1;??

b<=?tempa2?+?1;??????

end

end

endmodule

上述代碼的RTL級圖如下,可以看出代碼最終實現(xiàn)是一個3級累加結(jié)構(gòu),每級累加結(jié)構(gòu)中間有一個觸發(fā)器打拍。也就是說這是典型的流水線結(jié)構(gòu)。每一級都在一直工作,運行順序沒有先后,但是數(shù)據(jù)到達時間有先后,處理順序有先后。

大家再看仿真圖,tempa2 并不是等到a+1的結(jié)果給到tempa1后才執(zhí)行的tempa1+1,而是執(zhí)行a+1的同時也在執(zhí)行tempa1+1。三句累加都是同時進行,看下圖就知道都是對前一個數(shù)值基礎(chǔ)上加1。所以tempa1和tempa2相等,而不是相差1。

看此文之前請千萬很熟悉verilog語法,能區(qū)分可綜合,不可綜合語句。

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

    關(guān)注

    31

    文章

    5424

    瀏覽量

    123508
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1366

    瀏覽量

    111909
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1657

    瀏覽量

    49923

原文標題:面向硬件的設(shè)計思維——程序執(zhí)行順序

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    UBI告訴如何走向智能汽車

    UBI告訴如何走向智能汽車,UBI將會引爆整個車聯(lián)網(wǎng)市場,帶來車聯(lián)網(wǎng)大規(guī)模普及。
    發(fā)表于 10-21 08:13 ?1465次閱讀

    [公告]誰是真正的朋友?

    ,急忙奔上坡來,從草叢魚鱗病中閃出,一下咬住了狼的脖子,狼疼得直叫喚,趁狗換氣時,愴惶逃走了。  回到家,朋友牛皮癬醫(yī)院都來了,  牛說:怎么不告訴我?我的硬皮病角可以剜出狼的腸子。  馬說:怎么不
    發(fā)表于 11-15 08:39

    【LabVIEW我來告訴】 Webbrowser調(diào)用的隱患

    【LabVIEW我來告訴】 Webbrowser調(diào)用的隱患 LabVIEW為我們提供了豐富的程序接口,ActiveX,.net等等,但在調(diào)用它們的時候,是否注意過他們存在的一些問題呢?在
    發(fā)表于 10-31 10:48

    【labview我來告訴】labview編程可以很簡單

    功能,有各種各樣的引用規(guī)則,還有文本語言所不會涉及到的各種節(jié)點……”“學(xué)起來用起來其實很難……”“G語言也有G語言的缺點,真正做程序并不快”,等等我告訴他們,其實LabVIEW的各個功能不要太多的去
    發(fā)表于 11-11 14:17

    【labview我來告訴】用好控件的小技巧

    地使用 Picture控件的 Erase First屬性,將“1”連于此,這樣就可以擦除內(nèi)容一次,而不需要去改變真正的“Erase First”設(shè)定項。 ?在我的項目中,我在Picture控件中使用了很多拖拽的效果。有
    發(fā)表于 12-20 10:15

    【labview我來告訴】如何方便的知道事件運行順序

    ”選項設(shè)為不選……通過這樣,每當創(chuàng)建一個新的 Event 條件時,VI 就會破線,仍而提醒大家需要將線連在新的Case上。 好,現(xiàn)在我告訴大家為什么我要這么做,因為這樣做可以在我調(diào)試亊件結(jié)構(gòu)的亊件順序
    發(fā)表于 01-04 10:05

    labview心得體會之我來告訴匯總(持續(xù)更新)

    ://bbs.elecfans.com/jishu_215000_1_1.html【labview我來告訴】如何方便的知道事件運行順序https://bbs.elecfans.com/jishu_213347_1_1.html
    發(fā)表于 02-01 11:19

    告訴什么叫高逼格的LED

    仔細想想自己對運動LED最重要的需求是什么!若對來說,是用來跑步、集訓(xùn)、可穿戴,那么富思科技的LED將成為的首先。富思科技是第一個提供真正時尚型可穿戴的LED,內(nèi)嵌超高清亮度LED布料,可以通過
    發(fā)表于 03-23 16:34

    FPGA的幾點總結(jié),同意嗎?

    時鐘管理芯片。因此,要想學(xué)好FPGA,得用硬件的思維方式來編寫代碼,注重FPGA的系統(tǒng)結(jié)構(gòu)設(shè)計,好的系統(tǒng)結(jié)構(gòu)設(shè)計會帶來質(zhì)的飛躍,這就告訴我們RTL Coding其實是硬件結(jié)構(gòu)設(shè)計,而非基于處理器架構(gòu)
    發(fā)表于 11-22 14:35

    十個練習(xí)讓學(xué)會Verilog語言

    10個 Verilog 練習(xí),進階級教程 完整的pdf格式文檔電子發(fā)燒友下載地址(共26頁): 十個練習(xí)讓學(xué)會Verilog語言.pdf
    發(fā)表于 07-03 02:04

    怎樣架構(gòu)的單片機程序

    對于單片機程序來說,大家都不陌生,但是真正使用架構(gòu),考慮架構(gòu)的恐怕并不多,隨著程序開發(fā)的不斷增多,本人覺得架構(gòu)是非常必要的。前不就發(fā)帖與大家一起討論了一下怎樣架構(gòu)的單片機程序,發(fā)現(xiàn)真正使用架構(gòu)
    發(fā)表于 12-07 09:25

    基于Verilog順序狀態(tài)邏輯FSM的設(shè)計與仿真

    基于Verilog順序狀態(tài)邏輯FSM的設(shè)計與仿真  硬件描述語言Verilog為數(shù)字系統(tǒng)設(shè)計人員提供了一種在廣泛抽象層次上描述數(shù)字系統(tǒng)的方式,同時,為計算機輔助設(shè)計工具
    發(fā)表于 02-04 09:32 ?2010次閱讀
    基于<b class='flag-5'>Verilog</b>的<b class='flag-5'>順序</b>狀態(tài)邏輯FSM的設(shè)計與仿真

    5款手機告訴什么是真正的旗艦

    誰說安卓不如ios?這5部手機告訴什么是真正的旗艦。
    的頭像 發(fā)表于 08-16 16:27 ?3329次閱讀

    sql where條件的執(zhí)行順序

    SQL語句中的WHERE條件是用來篩選數(shù)據(jù)的,它決定了哪些數(shù)據(jù)會被返回給用戶。WHERE條件的執(zhí)行順序是影響SQL語句性能的一個重要因素,正確地理解和優(yōu)化WHERE條件的執(zhí)行順序可以提
    的頭像 發(fā)表于 11-23 11:31 ?2647次閱讀

    verilog中for循環(huán)是串行執(zhí)行還是并行執(zhí)行

    Verilog中,for循環(huán)是并行執(zhí)行的。Verilog是一種硬件描述語言,用于描述和設(shè)計數(shù)字電路和系統(tǒng)。在硬件系統(tǒng)中,各個電路模塊是同時運行的,并且可以并行執(zhí)行多個操作。因此,在
    的頭像 發(fā)表于 02-22 16:06 ?3782次閱讀
    主站蜘蛛池模板: 欧美性狂猛bbbbbxxxxx | 女人张开腿双腿让男人桶 | 韩国三级视频在线 | 亚洲精品在线视频观看 | 97色噜噜| 国产经典一区 | 综合网在线| 国产色吧| 男人和女人做爽爽视频在线观看 | 国产一区二区三区夜色 | 天天噜天天干 | 国产精品网址你懂的 | 天天躁狠狠躁 | 午夜一级福利 | 在线黄色免费网站 | 欧美大尺度aaa级毛片 | 国产精品久久久久久久久免费hd | 夜夜夜操| 美女扒开腿让男生桶爽网站 | 国模精品视频 | 波多野吉衣一区二区三区在线观看 | 亚欧人成精品免费观看 | 四虎永久在线精品免费观看地址 | 8888四色奇米在线观看不卡 | 亚洲第一成人在线 | 国产成人三级经典中文 | a级毛毛片看久久 | 欧美极品在线播放 | 大美女久久久久久j久久 | 亚洲综合色丁香婷婷六月图片 | 国产午夜三区视频在线 | 手机看片国产免费久久网 | 一区二区在线免费观看 | www.干| 日韩精品一区二区在线观看 | 狠狠色婷婷 | 久久久久88色偷偷 | 亚洲人成网站在线观看妞妞网 | 天天干天天干天天色 | 六月婷婷网视频在线观看 | 亚洲 欧美 综合 |