曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

Verilog仿真事件中的延時(shí)分析

FPGA設(shè)計(jì)論壇 ? 來源:CSDN技術(shù)社區(qū) ? 2025-04-18 09:54 ? 次閱讀

1. 電路的延時(shí)

在實(shí)際電路中存在兩種延遲,慣性延遲 (Inertial delay) 和傳導(dǎo)延遲 (Transport delay)

慣性延遲

定義:若元件的輸入信號(hào)的脈沖寬度小于一定值時(shí),元件的輸出沒有響應(yīng),也就是說元件具有一定的慣性。

產(chǎn)生原因:當(dāng)脈沖到達(dá)時(shí),由于脈沖寬度小于元件本身的延遲,當(dāng)脈沖結(jié)束時(shí),元件的新輸出還未建立起來??紤]了電路中存在的大量分布電容。

傳導(dǎo)延遲

定義:輸入信號(hào)變化到對(duì)應(yīng)輸出信號(hào)變化經(jīng)過的時(shí)間,類似于物理傳輸線的延遲。

產(chǎn)生原因:載流子運(yùn)動(dòng)的速度有限,通過導(dǎo)線需要一定的時(shí)間。

2. Verilog 中的時(shí)序模型

在分析 Verilog HDL 的仿真行為前,我們需要了解 Verilog 中時(shí)序模型。

時(shí)序模型分為:門級(jí)時(shí)序模型、過程時(shí)序模型。

門級(jí)時(shí)序模型

適用范圍:所有的連續(xù)賦值語句、過程連續(xù)賦值語句、門原語、用戶自定義原語。

特點(diǎn):

任意時(shí)刻輸入發(fā)生變化,將重新計(jì)算輸出。

當(dāng)之前的的事件未執(zhí)行完畢時(shí)又發(fā)生的新的變化,則會(huì)撤銷之前的事件,開始新的事件。

過程時(shí)序模型

適用范圍:過程語句。

特點(diǎn):

當(dāng)敏感列表發(fā)生變化時(shí)觸發(fā)執(zhí)行。

當(dāng)之前的的事件未執(zhí)行完畢時(shí)又發(fā)生的新的變化,則不撤銷原有事件,同時(shí)開始新的事件,如果同時(shí)有幾個(gè)更新事件,它們的執(zhí)行順序是不確定的。

3. Verilog 中的仿真延遲語句

Verilog 中的仿真延時(shí)語句為 #n,n 表示延時(shí)時(shí)間,將該語句加在語句中,延遲 n 個(gè)時(shí)間單位。

延時(shí)的添加方法有兩種:正規(guī)延遲和內(nèi)定延遲

正規(guī)延遲 (#在外面)

#5 C = A +B

在 T 時(shí)刻執(zhí)行到該語句時(shí),等待 5 個(gè)時(shí)間單位,然后計(jì)算等號(hào)右邊的值賦給 C,此時(shí)使用的 A B 的值是 T+5 時(shí)刻的值。

內(nèi)定延遲 (#在里面)

C = #5 A +B

在 T 時(shí)刻執(zhí)行到該語句時(shí),先計(jì)算 A+B 的值,計(jì)算后等待 5 個(gè)時(shí)間單位將值賦給 C,使用的 A B 的值是 T 時(shí)刻的值。

4. 在 Verilog 建模中增加延時(shí)

兩種延時(shí)的添加方式和三種賦值方式 (連續(xù)賦值、阻塞賦值、非阻塞賦值) 一共形成六中添加延遲的方式。

// 1. 連續(xù)賦值+ 正規(guī)延遲assign#5C = A +B;// 2. 連續(xù)賦值+ 內(nèi)定延遲assign C =#5A +B;// 3. 阻塞賦值 + 正規(guī)延遲always @(*) begin   #5 C = A +B; end // 4. 阻塞賦值 + 內(nèi)定延遲 always @(*)begin  C =#5A +B;end// 5. 非阻塞賦值 + 正規(guī)延遲always @(*) begin   #5 C <= A +B; end ?// 6. 非阻塞賦值 + 內(nèi)定延遲 always @(*)?begin? ? ?C <=?#5?A +B;end

下面對(duì)這六種方式逐一分析:

連續(xù)賦值+ 正規(guī)延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),等待 5 個(gè)時(shí)間單位,然后計(jì)算等號(hào)右邊的值賦給 C1。

使用的 A B 的值是 T+5 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) assign block,根據(jù) assign block 的門級(jí)時(shí)序模型特點(diǎn),仿真器會(huì)撤銷先前的等待事件,然后重新執(zhí)行語句。

當(dāng)變化脈沖小于 5 個(gè)時(shí)間單位時(shí),等待事件會(huì)被撤銷,該脈沖將不起作用。

仿真結(jié)果:

d6b960a6-1a9d-11f0-9310-92fbcf53809c.png

可以看出在 6ns、8ns、9ns、10ns 時(shí)刻 A 發(fā)生了變化,但皆因持續(xù)時(shí)間小于 5ns,所以都沒有對(duì) C1 產(chǎn)生影響,只有在 12ns 和 18ns 的變化持續(xù)時(shí)間超過 5ns,作用到 C1 上。

連續(xù)賦值+ 內(nèi)定延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),計(jì)算等號(hào)右邊的值,等待 5 個(gè)時(shí)間單位后賦給 C2。

使用的 A B 的值是 T 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) assign block,根據(jù) assign block 的門級(jí)時(shí)序模型特點(diǎn),仿真器會(huì)撤銷先前的等待事件,然后重新執(zhí)行語句。

當(dāng)變化脈沖小于 5 個(gè)時(shí)間單位時(shí),等待事件會(huì)被撤銷,該脈沖將不起作用。

該種方式有記憶屬性,與連續(xù)賦值原則不符,為非法語句,編譯不能通過。

阻塞賦值 + 正規(guī)延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),等待 5 個(gè)時(shí)間單位,然后計(jì)算等號(hào)右邊的值阻塞賦給 C3。

使用的 A B 的值是 T+5 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) always block,根據(jù) always block 的過程時(shí)序模型特點(diǎn),此時(shí)還在等待過程,always 語句還未執(zhí)行結(jié)束,不會(huì)開始新一輪的事件,仿真器不會(huì)對(duì)敏感列表反應(yīng)。

仿真器忽略延遲時(shí)間段的數(shù)據(jù)變化。

仿真結(jié)果:

d6cb3c86-1a9d-11f0-9310-92fbcf53809c.png

在 6ns 時(shí)刻 A 的值發(fā)生變化,always block 開始執(zhí)行,經(jīng)過 5ns,用 11ns 時(shí)刻的 A B 的值計(jì)算出結(jié)果賦給 C3,而忽略了 8ns 和 10ns 時(shí)刻的變化。

阻塞賦值 + 內(nèi)定延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),計(jì)算等號(hào)右邊的值,等待 5 個(gè)時(shí)間單位后賦給 C4。

使用的 A B 的值是 T 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) always block,根據(jù) always block 的過程時(shí)序模型特點(diǎn),由于賦值方式為阻塞賦值,此時(shí) always 語句還未執(zhí)行結(jié)束,不會(huì)開始新一輪的事件,仿真器不會(huì)對(duì)敏感列表反應(yīng)。

仿真器忽略延遲時(shí)間段的數(shù)據(jù)變化。

仿真結(jié)果:

d6e213de-1a9d-11f0-9310-92fbcf53809c.png

在 6ns 時(shí)刻 A 的值發(fā)生變化,always block 開始執(zhí)行,經(jīng)過 5ns,用 6ns 時(shí)刻的 A B 的變化后的值計(jì)算出結(jié)果賦給 C4,而忽略了 8ns 和 10ns 時(shí)刻的變化。

非阻塞賦值 + 正規(guī)延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),等待 5 個(gè)時(shí)間單位,然后計(jì)算等號(hào)右邊的值非阻塞賦給 C5。

使用的 A B 的值是 T+5 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) always block,根據(jù) always block 的過程時(shí)序模型特點(diǎn),此時(shí)還在等待過程,always 語句還未執(zhí)行結(jié)束,不會(huì)開始新一輪的事件,仿真器不會(huì)對(duì)敏感列表反應(yīng)。

仿真器忽略延遲時(shí)間段的數(shù)據(jù)變化。

仿真結(jié)果:

d6f302b6-1a9d-11f0-9310-92fbcf53809c.png

在 6ns 時(shí)刻 A 的值發(fā)生變化,always block 開始執(zhí)行,經(jīng)過 5ns,用 11ns 時(shí)刻的 A B 的值計(jì)算出結(jié)果賦給 C5,而忽略了 8ns 和 10ns 時(shí)刻的變化。

非阻塞賦值 + 內(nèi)定延遲

在 T 時(shí)刻執(zhí)行到該語句時(shí),計(jì)算等號(hào)右邊的值,等待 5 個(gè)時(shí)間單位后賦給 C6。

使用的 A B 的值是 T 時(shí)刻的值。

若在等待過程中 A B 的值發(fā)生變化再次觸發(fā) always block,根據(jù) always block 的過程時(shí)序模型特點(diǎn),由于賦值方式為非阻塞賦值,將賦值事件放進(jìn)事件隊(duì)列后,always 語句執(zhí)行結(jié)束,等待下一次的觸發(fā),觸發(fā)來到時(shí)開始新一輪的事件。

仿真器接受延遲時(shí)間段的數(shù)據(jù)變化,輸入的變化延遲會(huì)全部反應(yīng)在輸出上。

仿真結(jié)果:

d70f65e6-1a9d-11f0-9310-92fbcf53809c.png

A B 的每一次變化都觸發(fā) always block 的執(zhí)行,每一次變化都延時(shí) 5ns 后反應(yīng)在 C6 上。

下圖為 always block 中的四種延時(shí)方式的仿真流程:

d72d3aee-1a9d-11f0-9310-92fbcf53809c.png

// 仿真源碼`timescale1ns/1ps moduleTestbench;reg A,B;wire C1,C2;reg C3,C4,C5,C6;initialbeginA =0;B =0;C3 =0;C4 =0;C5 =0;C6 =0;#6A =1;#2A =0;#1A =1;#1A =0;#2A =1;#6A =0;end// 1. 連續(xù)賦值+ 正規(guī)延遲assign#5C1 = A +B;// 3. 阻塞賦值 + 正規(guī)延遲always @(*) begin   #5 C3 = A +B; end // 4. 阻塞賦值 + 內(nèi)定延遲 always @(*)begin  C4 =#5A +B;end// 5. 非阻塞賦值 + 正規(guī)延遲always @(*) begin   #5 C5 <= A +B; end ?// 6. 非阻塞賦值 + 內(nèi)定延遲 always @(*)?begin? ? ?C6 <=?#5?A +B;endendmodule

5. 總結(jié)

根據(jù)上述分析,容易看出慣性延時(shí)對(duì)應(yīng)于連續(xù)賦值中的正規(guī)延遲,而傳導(dǎo)延時(shí)對(duì)應(yīng)于非阻塞賦值中的內(nèi)定延遲。

所以仿真中常用 “連續(xù)賦值 + 正規(guī)延遲“ 模擬慣性延遲,用 ”非阻塞賦值 + 內(nèi)定延遲“ 模擬傳導(dǎo)延遲。

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

    關(guān)注

    51

    文章

    4216

    瀏覽量

    135147
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1364

    瀏覽量

    111570
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    395

    瀏覽量

    37736
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3471

    瀏覽量

    49869
  • 延時(shí)分析
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5639

原文標(biāo)題:Verilog 仿真事件中的延時(shí)分析

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    北大Verilog課件四百多頁

    數(shù)字集成電路設(shè)計(jì)入門--從HDL到版圖于敦山北大微電子學(xué)系?介紹Verilog HDL,內(nèi)容包括:–Verilog應(yīng)用–Verilog語言的構(gòu)成元素–結(jié)構(gòu)級(jí)描述及仿真–行為級(jí)描述及
    發(fā)表于 08-03 00:23

    Verilog設(shè)計(jì)內(nèi)外延時(shí)

    Verilog設(shè)計(jì)內(nèi)外延時(shí)
    發(fā)表于 08-15 16:31

    時(shí)分復(fù)用的verilog

    現(xiàn)有4路fifo數(shù)據(jù),要時(shí)分復(fù)用的存入SRAM里,請(qǐng)問用verilog怎么寫?????新手,求賜教?。?!
    發(fā)表于 10-27 13:28

    verilog乘法器延時(shí)問題

    剛剛學(xué)習(xí)verilog,夏宇聞的《verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第三版)》,P143圖10.3,乘法器延時(shí)為1個(gè)與門和8個(gè)全加器的
    發(fā)表于 10-10 23:04

    北大微電子verilog講義課件

    介紹Cadence Verilog仿真器, 內(nèi)容包括: 設(shè)計(jì)的編譯及仿真 源庫(kù)(source libraries)的使用 用Verilog-XL命令行界面進(jìn)行調(diào)試 用NC Verilo
    發(fā)表于 05-28 15:23 ?402次下載
    北大微電子<b class='flag-5'>verilog</b>講義課件

    MSP430軟件精確延時(shí)分析與程序?qū)崿F(xiàn)

    MSP430軟件精確延時(shí)分析與程序?qū)崿F(xiàn)
    發(fā)表于 09-27 14:33 ?113次下載

    MIMO天線延時(shí)失衡性能分析

    針對(duì)MIMO系統(tǒng),從理論上分析分布式天線系統(tǒng)延時(shí)失衡對(duì)MIMO系統(tǒng)帶來的影響。通過仿真,定量分析了MIMO上下行鏈路
    發(fā)表于 11-10 14:27 ?27次下載
    MIMO天線<b class='flag-5'>中</b>的<b class='flag-5'>延時(shí)</b>失衡性能<b class='flag-5'>分析</b>

    單片機(jī)的C語言延時(shí)分析實(shí)例說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)的C語言延時(shí)分析實(shí)例說明包括了:例1,12MHz晶振調(diào)試,例2:12MHz晶振調(diào)試,傳參數(shù),for循環(huán)只有1層,且是char類型。
    發(fā)表于 07-16 17:39 ?0次下載
    單片機(jī)的C語言<b class='flag-5'>延時(shí)分析</b>實(shí)例說明

    Verilog設(shè)計(jì)增加延時(shí)仿真技術(shù)

    作者:bleauchat 在設(shè)計(jì)仿真激勵(lì)文件時(shí),為了滿足和外部芯片接口的時(shí)序要求,經(jīng)常會(huì)用到延時(shí)賦值語句,由于不同的延時(shí)賦值語句在仿真過程中行為不同,會(huì)產(chǎn)生不同的激勵(lì)輸出,如果不認(rèn)真區(qū)
    的頭像 發(fā)表于 11-25 15:29 ?2212次閱讀

    如何使用Icarus Verilog+GTKWave來進(jìn)行verilog文件的編譯和仿真

    本文將介紹如何使用Icarus Verilog+GTKWave來進(jìn)行verilog文件的編譯和仿真。 Icarus Verilog Icarus V
    的頭像 發(fā)表于 07-27 09:16 ?5764次閱讀
    如何使用Icarus <b class='flag-5'>Verilog</b>+GTKWave來進(jìn)行<b class='flag-5'>verilog</b>文件的編譯和<b class='flag-5'>仿真</b>

    FreeRTOS高級(jí)篇9---FreeRTOS系統(tǒng)延時(shí)分析

    FreeRTOS提供了兩個(gè)系統(tǒng)延時(shí)函數(shù):相對(duì)延時(shí)函數(shù)vTaskDelay()和絕對(duì)延時(shí)函數(shù)vTaskDelayUntil()。相對(duì)延時(shí)是指每次延時(shí)
    發(fā)表于 01-26 17:34 ?6次下載
    FreeRTOS高級(jí)篇9---FreeRTOS系統(tǒng)<b class='flag-5'>延時(shí)分析</b>

    multisim 555觸摸延時(shí)仿真

    multisim 仿真 555觸摸延時(shí)仿真資料分享。
    發(fā)表于 04-15 14:30 ?15次下載

    verilog仿真工具編譯

    Icarus Verilog(以下簡(jiǎn)稱iverilog )號(hào)稱“全球第四大”數(shù)字芯片仿真器,也是一個(gè)完全開源的仿真器。
    的頭像 發(fā)表于 08-15 09:11 ?8738次閱讀

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開發(fā)指南

    指南: Verilog測(cè)試平臺(tái)設(shè)計(jì)方法 選擇仿真工具 : 選擇一款強(qiáng)大的仿真工具,如ModelSim、Xilinx ISE等。這些工具提供了豐富的功能,包括波形查看、調(diào)試功能、時(shí)序分析
    的頭像 發(fā)表于 12-17 09:50 ?890次閱讀

    Verilog 電路仿真常見問題 Verilog 在芯片設(shè)計(jì)的應(yīng)用

    。然而,在實(shí)際應(yīng)用,設(shè)計(jì)師可能會(huì)遇到各種問題,這些問題可能會(huì)影響仿真的準(zhǔn)確性和設(shè)計(jì)的可靠性。 Verilog電路仿真常見問題 仿真環(huán)境的搭
    的頭像 發(fā)表于 12-17 09:53 ?957次閱讀