色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

Verilog仿真事件中的延時分析

FPGA設計論壇 ? 來源:CSDN技術社區 ? 2025-04-18 09:54 ? 次閱讀

1. 電路的延時

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

慣性延遲

定義:若元件的輸入信號的脈沖寬度小于一定值時,元件的輸出沒有響應,也就是說元件具有一定的慣性。

產生原因:當脈沖到達時,由于脈沖寬度小于元件本身的延遲,當脈沖結束時,元件的新輸出還未建立起來。考慮了電路中存在的大量分布電容

傳導延遲

定義:輸入信號變化到對應輸出信號變化經過的時間,類似于物理傳輸線的延遲。

產生原因:載流子運動的速度有限,通過導線需要一定的時間。

2. Verilog 中的時序模型

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

時序模型分為:門級時序模型、過程時序模型。

門級時序模型

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

特點:

任意時刻輸入發生變化,將重新計算輸出。

當之前的的事件未執行完畢時又發生的新的變化,則會撤銷之前的事件,開始新的事件。

過程時序模型

適用范圍:過程語句。

特點:

當敏感列表發生變化時觸發執行。

當之前的的事件未執行完畢時又發生的新的變化,則不撤銷原有事件,同時開始新的事件,如果同時有幾個更新事件,它們的執行順序是不確定的。

3. Verilog 中的仿真延遲語句

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

延時的添加方法有兩種:正規延遲和內定延遲

正規延遲 (#在外面)

#5 C = A +B

在 T 時刻執行到該語句時,等待 5 個時間單位,然后計算等號右邊的值賦給 C,此時使用的 A B 的值是 T+5 時刻的值。

內定延遲 (#在里面)

C = #5 A +B

在 T 時刻執行到該語句時,先計算 A+B 的值,計算后等待 5 個時間單位將值賦給 C,使用的 A B 的值是 T 時刻的值。

4. 在 Verilog 建模中增加延時

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

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

下面對這六種方式逐一分析:

連續賦值+ 正規延遲

在 T 時刻執行到該語句時,等待 5 個時間單位,然后計算等號右邊的值賦給 C1。

使用的 A B 的值是 T+5 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 assign block,根據 assign block 的門級時序模型特點,仿真器會撤銷先前的等待事件,然后重新執行語句。

當變化脈沖小于 5 個時間單位時,等待事件會被撤銷,該脈沖將不起作用。

仿真結果:

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

可以看出在 6ns、8ns、9ns、10ns 時刻 A 發生了變化,但皆因持續時間小于 5ns,所以都沒有對 C1 產生影響,只有在 12ns 和 18ns 的變化持續時間超過 5ns,作用到 C1 上。

連續賦值+ 內定延遲

在 T 時刻執行到該語句時,計算等號右邊的值,等待 5 個時間單位后賦給 C2。

使用的 A B 的值是 T 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 assign block,根據 assign block 的門級時序模型特點,仿真器會撤銷先前的等待事件,然后重新執行語句。

當變化脈沖小于 5 個時間單位時,等待事件會被撤銷,該脈沖將不起作用。

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

阻塞賦值 + 正規延遲

在 T 時刻執行到該語句時,等待 5 個時間單位,然后計算等號右邊的值阻塞賦給 C3。

使用的 A B 的值是 T+5 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 always block,根據 always block 的過程時序模型特點,此時還在等待過程,always 語句還未執行結束,不會開始新一輪的事件,仿真器不會對敏感列表反應。

仿真器忽略延遲時間段的數據變化。

仿真結果:

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

在 6ns 時刻 A 的值發生變化,always block 開始執行,經過 5ns,用 11ns 時刻的 A B 的值計算出結果賦給 C3,而忽略了 8ns 和 10ns 時刻的變化。

阻塞賦值 + 內定延遲

在 T 時刻執行到該語句時,計算等號右邊的值,等待 5 個時間單位后賦給 C4。

使用的 A B 的值是 T 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 always block,根據 always block 的過程時序模型特點,由于賦值方式為阻塞賦值,此時 always 語句還未執行結束,不會開始新一輪的事件,仿真器不會對敏感列表反應。

仿真器忽略延遲時間段的數據變化。

仿真結果:

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

在 6ns 時刻 A 的值發生變化,always block 開始執行,經過 5ns,用 6ns 時刻的 A B 的變化后的值計算出結果賦給 C4,而忽略了 8ns 和 10ns 時刻的變化。

非阻塞賦值 + 正規延遲

在 T 時刻執行到該語句時,等待 5 個時間單位,然后計算等號右邊的值非阻塞賦給 C5。

使用的 A B 的值是 T+5 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 always block,根據 always block 的過程時序模型特點,此時還在等待過程,always 語句還未執行結束,不會開始新一輪的事件,仿真器不會對敏感列表反應。

仿真器忽略延遲時間段的數據變化。

仿真結果:

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

在 6ns 時刻 A 的值發生變化,always block 開始執行,經過 5ns,用 11ns 時刻的 A B 的值計算出結果賦給 C5,而忽略了 8ns 和 10ns 時刻的變化。

非阻塞賦值 + 內定延遲

在 T 時刻執行到該語句時,計算等號右邊的值,等待 5 個時間單位后賦給 C6。

使用的 A B 的值是 T 時刻的值。

若在等待過程中 A B 的值發生變化再次觸發 always block,根據 always block 的過程時序模型特點,由于賦值方式為非阻塞賦值,將賦值事件放進事件隊列后,always 語句執行結束,等待下一次的觸發,觸發來到時開始新一輪的事件。

仿真器接受延遲時間段的數據變化,輸入的變化延遲會全部反應在輸出上。

仿真結果:

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

A B 的每一次變化都觸發 always block 的執行,每一次變化都延時 5ns 后反應在 C6 上。

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

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. 連續賦值+ 正規延遲assign#5C1 = A +B;// 3. 阻塞賦值 + 正規延遲always @(*) begin   #5 C3 = A +B; end // 4. 阻塞賦值 + 內定延遲 always @(*)begin  C4 =#5A +B;end// 5. 非阻塞賦值 + 正規延遲always @(*) begin   #5 C5 <= A +B; end ?// 6. 非阻塞賦值 + 內定延遲 always @(*)?begin? ? ?C6 <=?#5?A +B;endendmodule

5. 總結

根據上述分析,容易看出慣性延時對應于連續賦值中的正規延遲,而傳導延時對應于非阻塞賦值中的內定延遲。

所以仿真中常用 “連續賦值 + 正規延遲“ 模擬慣性延遲,用 ”非阻塞賦值 + 內定延遲“ 模擬傳導延遲。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真
    +關注

    關注

    51

    文章

    4245

    瀏覽量

    135358
  • Verilog
    +關注

    關注

    29

    文章

    1366

    瀏覽量

    111899
  • 時序
    +關注

    關注

    5

    文章

    397

    瀏覽量

    37800
  • 模型
    +關注

    關注

    1

    文章

    3499

    瀏覽量

    50049
  • 延時分析
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5642

原文標題:Verilog 仿真事件中的延時分析

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    北大Verilog課件四百多頁

    數字集成電路設計入門--從HDL到版圖于敦山北大微電子學系?介紹Verilog HDL,內容包括:–Verilog應用–Verilog語言的構成元素–結構級描述及仿真–行為級描述及
    發表于 08-03 00:23

    Verilog設計內外延時

    Verilog設計內外延時
    發表于 08-15 16:31

    時分復用的verilog

    現有4路fifo數據,要時分復用的存入SRAM里,請問用verilog怎么寫啊???新手,求賜教!!!
    發表于 10-27 13:28

    verilog乘法器延時問題

    剛剛學習verilog,夏宇聞的《verilog數字系統設計教程(第三版)》,P143圖10.3,乘法器延時為1個與門和8個全加器的
    發表于 10-10 23:04

    北大微電子verilog講義課件

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

    MSP430軟件精確延時分析與程序實現

    MSP430軟件精確延時分析與程序實現
    發表于 09-27 14:33 ?113次下載

    MIMO天線延時失衡性能分析

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

    單片機的C語言延時分析實例說明

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

    Verilog設計增加延時仿真技術

    作者:bleauchat 在設計仿真激勵文件時,為了滿足和外部芯片接口的時序要求,經常會用到延時賦值語句,由于不同的延時賦值語句在仿真過程中行為不同,會產生不同的激勵輸出,如果不認真區
    的頭像 發表于 11-25 15:29 ?2262次閱讀

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

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

    FreeRTOS高級篇9---FreeRTOS系統延時分析

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

    multisim 555觸摸延時仿真

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

    verilog仿真工具編譯

    Icarus Verilog(以下簡稱iverilog )號稱“全球第四大”數字芯片仿真器,也是一個完全開源的仿真器。
    的頭像 發表于 08-15 09:11 ?8812次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    指南: Verilog測試平臺設計方法 選擇仿真工具 : 選擇一款強大的仿真工具,如ModelSim、Xilinx ISE等。這些工具提供了豐富的功能,包括波形查看、調試功能、時序分析
    的頭像 發表于 12-17 09:50 ?1042次閱讀

    Verilog 電路仿真常見問題 Verilog 在芯片設計的應用

    。然而,在實際應用,設計師可能會遇到各種問題,這些問題可能會影響仿真的準確性和設計的可靠性。 Verilog電路仿真常見問題 仿真環境的搭
    的頭像 發表于 12-17 09:53 ?1096次閱讀
    主站蜘蛛池模板: 久久全国免费久久青青小草 | 黄桃AV无码免费一区二区三区 | 99爱免费视频| 国产精品麻豆AV | 我要色导航 | 亚洲精品成人在线 | 久久精品视频16 | 国产成人小视频在线观看 | 男女亲吻摸下面吃奶视频 | 向日葵视频app下载18岁以下勿看 | 亚洲高清国产拍精品5g | 欧美激情视频一区二区 | 欧美一区二区三区激情视频 | 亚洲免费视频在线观看 | 成人毛片大全 | 香港论理午夜电影网 | 成人国产亚洲欧美成人综合网 | 国产免费久久爱久久啪 | 免费xxx成年大片 | 欧美日韩永久久一区二区三区 | 久久内在线视频精品mp4 | 久草草在线视视频 | 水蜜桃亚洲一二三四在线 | 99re久久热在这里精品 | 久久中文字幕免费视频 | 黄色网址在线播放 | 手机在线播放成人亚洲影院电影 | 免费国产精品视频 | 日韩欧美视频一区二区在线观看 | YELLOW视频直播在线观看高清 | 天天插天天舔 | 国产51麻豆二区精品AV视频 | 又硬又粗又大一区二区三区视频 | 欧美黄色xxx | 在线播放免费人成毛片视频 | 好男人视频免费高清在线观看www | 亚洲网站视频在线观看 | 里番acg纲手的熟蜜姬训练场 | 2021精品乱码多人收藏 | 中文字幕久精品视频在线观看 | 欧美人与禽ZOZO性伦交视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品