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

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

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

Verilog的塊語(yǔ)句fork...join 和 begin...end

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-06-09 10:30 ? 次閱讀

1. 塊語(yǔ)句有兩種,一種是 begin-end 語(yǔ)句, 通常用來(lái)標(biāo)志()執(zhí)行的語(yǔ)句;一種是 fork-join 語(yǔ)句,通常用來(lái)標(biāo)志()執(zhí)行的語(yǔ)句。

答案:順序,并行

解析:

(1)begin_end順序塊,用于將多條語(yǔ)句組成順序塊,語(yǔ)句按順序一條一條執(zhí)行(除了帶有內(nèi)嵌延遲控制的非阻塞賦值語(yǔ)句),每條語(yǔ)句的延遲時(shí)間是相對(duì)于由上一條語(yǔ)句的仿真時(shí)間而言;

(2)fork-join并行塊,塊內(nèi)語(yǔ)句同時(shí)執(zhí)行。

2. 塊語(yǔ)句,下面這段語(yǔ)句中,第 40 時(shí)刻上,A、B 的值各是多少?


reg A;reg B;initial begin    fork        begin            A = 1;            #20 A = 0;    #30A=1;            #50 A = 0;        end        begin            B = 1;            #20 B = 0;            #30 B = 1;            #50 B = 0;        end    joinend

答案:A = 0,B = 0

解析:

塊語(yǔ)句有兩種,begin...end 和 fork...join,其中 fork...join 是并行塊,begin...end 是順序執(zhí)行塊,可以相互嵌套

上面,兩個(gè) begin...end 之間是并行的,而各自 begin...end 內(nèi)部是順序執(zhí)行,A 和 B 的賦值邏輯是一樣的,所以要么都是 1,要么都是 0。

按照順序執(zhí)行,A 前 20 個(gè)時(shí)間單位是 1,然后持續(xù) 30 個(gè)時(shí)間單位的 0,所以 40 時(shí)刻是 0,同理 B 也是 0。

228548d8-e784-11ec-ba43-dac502259ad0.png

審核編輯 :李倩


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

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110193
  • 順序
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    22064

原文標(biāo)題:Verilog 的塊語(yǔ)句 fork...join 和 begin...end

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog HDL的基礎(chǔ)知識(shí)

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識(shí),重點(diǎn)介紹賦值語(yǔ)句、阻塞與非阻塞、循環(huán)語(yǔ)句、同步與異步、函數(shù)與任務(wù)語(yǔ)法知識(shí)。
    的頭像 發(fā)表于 10-24 15:00 ?522次閱讀
    <b class='flag-5'>Verilog</b> HDL的基礎(chǔ)知識(shí)

    GPIO Init函數(shù)結(jié)尾沒(méi)有begin end用戶編輯區(qū)域,為什么?

    MX_GPIO_Init初始換函數(shù)結(jié)尾沒(méi)有begin end用戶編輯區(qū)域,但是在其他初始化函數(shù)后有編輯區(qū)域,并且在main.c文件每個(gè)初始化后方也沒(méi)有用戶編輯界面,如果想要在初始化結(jié)尾做一些事情,在
    發(fā)表于 09-26 06:08

    命中順序仲裁verilog如何優(yōu)化設(shè)計(jì)?

    ; hit_ID <= 3\'d0; end else begin case (state) state_4: begin//第四列判斷 if(sync_valid[3]) beg
    發(fā)表于 09-22 20:56

    FPGA學(xué)習(xí)筆記---基本語(yǔ)法

    ... default ... endcase 7、連續(xù)賦值:assign, 問(wèn)號(hào)表達(dá)式(?:) 8、always模塊:敏感表可以是電平、邊沿信號(hào) 9、begin...end(代碼?) 10、任務(wù)定義
    發(fā)表于 06-23 14:58

    關(guān)于Verilog的一些基本語(yǔ)法

    ,因?yàn)閍lways語(yǔ)句是并行執(zhí)行的,會(huì)產(chǎn)生沖突。 always@(敏感信號(hào))begin 語(yǔ)句; end ②、assign和always
    發(fā)表于 05-31 18:31

    Verilog實(shí)現(xiàn)uart串口設(shè)計(jì)

    ; read2<= 1\'b1; read1<= 1\'b1; end else begin if (idle && !idle1
    發(fā)表于 04-01 14:41

    鴻蒙TypeScript入門學(xué)習(xí)第6天:【條件語(yǔ)句

    條件語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。 TypeScript 條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True 或 False)來(lái)決定執(zhí)行的代碼
    的頭像 發(fā)表于 04-01 13:51 ?779次閱讀
    鴻蒙TypeScript入門學(xué)習(xí)第6天:【條件<b class='flag-5'>語(yǔ)句</b>】

    8b10b編碼verilog實(shí)現(xiàn)

    state_next = START; data_out[9:8] = 2\'b10; // K28.5 end end START: begin state_next = DATA; data_out[2:0
    發(fā)表于 03-26 07:55

    verilog實(shí)現(xiàn)卷積運(yùn)算

    else begin data_a_reg <= data_in_a; data_b_reg <= data_in_b; end end // 執(zhí)行卷積運(yùn)算 always
    發(fā)表于 03-26 07:51

    Verilog 電子時(shí)鐘實(shí)現(xiàn)

    ;lt;= 0; end else begin if (sec_cnt == MAX_SECONDS) begin sec_cnt <= 0; if (min_cnt
    發(fā)表于 03-26 07:48

    verilog語(yǔ)音實(shí)現(xiàn)浮點(diǎn)運(yùn)算

    , mantissa} = a; // 將a中的符號(hào)位、指數(shù)部分和尾數(shù)部分提取到對(duì)應(yīng)變量中 end always @(posedge clk) begin if (reset == 1\'b1) begin sum
    發(fā)表于 03-25 21:49

    verilog調(diào)用模塊端口對(duì)應(yīng)方式

    Verilog中的模塊端口對(duì)應(yīng)方式,并提供示例代碼和詳細(xì)解釋,以幫助讀者更好地理解和應(yīng)用。 首先,我們來(lái)了解一下Verilog中的模塊和模塊端口。一個(gè)Verilog模塊被定義為包含一組聲明和語(yǔ)
    的頭像 發(fā)表于 02-23 10:20 ?1860次閱讀

    verilog中repeat必須用beginend

    Verilog中,repeat語(yǔ)句不需要使用beginend。repeat語(yǔ)句是一種循環(huán)控
    的頭像 發(fā)表于 02-23 10:14 ?1281次閱讀

    assign語(yǔ)句和always語(yǔ)句的用法

    Assign語(yǔ)句和Always語(yǔ)句是在硬件描述語(yǔ)言(HDL)中常用的兩種語(yǔ)句,用于對(duì)數(shù)字電路建模和設(shè)計(jì)。Assign語(yǔ)句用于連續(xù)賦值,而Always
    的頭像 發(fā)表于 02-22 16:24 ?2709次閱讀

    verilog中initial和always的區(qū)別

    Verilog是一種硬件描述語(yǔ)言(HDL),用于設(shè)計(jì)和模擬數(shù)字電路。在Verilog中,關(guān)鍵字initial和always都是用于描述電路行為的特殊語(yǔ)句。它們被用來(lái)生成仿真模型,并控制模擬器的啟動(dòng)
    的頭像 發(fā)表于 02-22 16:09 ?3051次閱讀