国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

在時序邏輯中使用阻塞賦值會怎么樣?

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-09-06 09:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【數字實驗室】在時序邏輯中使用阻塞賦值會怎么樣?

cc7e627a-2d84-11ed-ba43-dac502259ad0.png

阻塞賦值的使用

如之前介紹所述,建議使用阻塞賦值來描述組合邏輯設計。但是,如果在編碼時序邏輯行為時使用阻塞賦值,會發生什么?這是需要解決的最重要的問題之一,對后續討論很重要。

如果阻塞賦值用于編碼時序邏輯的行為,則可以觀察到綜合結果不是正確的功能設計意圖。

接下來介紹使用阻塞賦值對時序電路設計進行編碼的幾個設計方案。

阻塞賦值和多個“Always”進程

如例6.1所述,在多個“Always” 進程中使用阻塞賦值。程序塊“Always”在時鐘的正邊緣觸發,綜合器推斷時序邏輯。如前所述,所有阻塞賦值都在活動隊列中進行計算和更新。讀者請參閱之前分享的分層事件隊列一文。

如例6.1所述,這兩個“Always” 進程并行執行,并以兩位串行輸入串行輸出移位寄存器的形式生成輸出。首先,always進程生成一個輸出“b_in”從第一個“Always” 進程生成的輸出被另一個“Always” 進程用作輸入。因此,綜合器將其推斷為兩位串行輸入串行輸出移位寄存器。

示例6.1的綜合邏輯如圖6.1所示,并具有輸入“a_in”,“clk”和輸出“y_out”

cc9a8400-2d84-11ed-ba43-dac502259ad0.png

例6.1在多個always塊中阻塞賦值

ccae2dde-2d84-11ed-ba43-dac502259ad0.png

圖6.1多個always塊中阻塞賦值的綜合邏輯

同一“always”進程中的阻塞賦值

如果阻塞賦值用于描述時序邏輯,并且在同一“always”程序塊中使用多個分配,則預期需求可能與綜合邏輯匹配,也可能與綜合邏輯不匹配。原因是,在阻塞分配中,所有后續語句(下一個立即數)都被阻塞,除非直到當前語句被執行。這將導致硬件截斷,并可能推斷出不需要的綜合輸出。

考慮在示例6.2中描述的設計場景,其意圖是創建三位串行輸入和串行輸出移位寄存器,但是在綜合示例6.2之后,它推斷為單個觸發器。

可綜合邏輯如圖6.2所示,其輸入為“a”、“clk”和輸出為“y”。所需的功能是串行輸入、串行輸出移位寄存器,但上述示例由于使用阻塞賦值而推斷出單個觸發器。因此,建議在為時序功能編碼或描述RTL時使用非阻塞賦值。

ccc009fa-2d84-11ed-ba43-dac502259ad0.png

例6.2在always”進程中的阻塞賦值

cce3f00e-2d84-11ed-ba43-dac502259ad0.png

圖6.2同一always進程中阻塞賦值的綜合邏輯

阻塞賦值示例

考慮在示例6.3中描述的設計場景,其意圖是創建三位串行輸入和串行輸出移位寄存器,并且由于塊“begin” 和 “end”中使用的阻塞賦值語句,它順序生成三位串行輸入串行輸出移位寄存器。

綜合邏輯如圖6.3所示,其輸入為“a”、“clk”和輸出“y”。所需的功能是串行輸入串行輸出移位寄存器,它推斷串行輸入串行輸出移位寄存器。因此,需要記住的重要一點是,程序“always”塊中的阻塞賦值語句的順序是綜合中的決定性因素。

cd0451a0-2d84-11ed-ba43-dac502259ad0.png

例6.3同一always塊中的阻塞賦值(排序)

cd147e0e-2d84-11ed-ba43-dac502259ad0.png

圖6.3阻塞賦值重新排序后的可綜合邏輯

非阻塞賦值

如之前介紹的“分層事件隊列”一文所述,非阻塞賦值在活動事件隊列中評估,并在NBA隊列中更新。非阻塞賦值用于描述時序邏輯。這些指定在程序塊“always”中使用,以獲得所需的綜合結果。所有非阻塞賦值在“always”塊內并行執行。

如例6.4所述。非阻塞賦值用于多個“always”塊。程序塊“always”在時鐘的正邊沿觸發,綜合器推斷時序邏輯。綜合邏輯如圖6.4所示。

cd35dfae-2d84-11ed-ba43-dac502259ad0.png

例6.4不同always塊中的非阻塞賦值

cd70c4f2-2d84-11ed-ba43-dac502259ad0.png

圖6.4不同always塊中的非阻塞賦值的綜合邏輯

非阻塞賦值示例

如果使用非阻塞賦值來描述時序邏輯,并且在同一“always”程序塊中使用多個賦值,則綜合器始終推斷出所需的預期邏輯。原因是,在非阻塞賦值中,“begin-end”塊中寫入的所有語句都是“并行”執行的,這就產生了時序邏輯。

考慮示例6.5中描述的設計場景,意圖是創建三位串行輸入和串行輸出移位寄存器,使用非阻塞賦值。

綜合邏輯如圖6.5所示,其輸入為“a”、“clk”和輸出“y”。所需的功能是串行輸入串行輸出移位寄存器,它推斷串行輸入串行輸出移位寄存器。

cd954354-2d84-11ed-ba43-dac502259ad0.png

例6.5同一always塊中的非阻塞賦值

cdab7ca0-2d84-11ed-ba43-dac502259ad0.png

圖6.5同一always塊中非阻塞賦值的綜合邏輯

非阻塞賦值的排序

考慮在示例中描述的設計方案,其意圖是創建三位串行輸入和串行輸出移位寄存器,并使用非阻塞賦值。

上一節中的實例,在本例6.6中重新排序。

綜合邏輯如圖6.5所示,其輸入為“a”、“clk”和輸出“y”。所需的功能是串行輸入串行輸出移位寄存器,它推斷串行輸入串行輸出移位寄存器。所以,重要的一點是要記住,過程“always”塊中非阻塞賦值語句的順序不是推斷邏輯的決定性因素。

cdbce9ea-2d84-11ed-ba43-dac502259ad0.png

例6.6在同一always塊中具有順序更改的非阻塞賦值

總結

不總結了,例子很多建議自己測試。

審核編輯 :李倩

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

    關注

    31

    文章

    5608

    瀏覽量

    129968
  • 電路設計
    +關注

    關注

    6741

    文章

    2702

    瀏覽量

    219502
  • 時序邏輯
    +關注

    關注

    0

    文章

    39

    瀏覽量

    9552

原文標題:【數字實驗室】在時序邏輯中使用阻塞賦值會怎么樣?

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Vivado時序約束中invert參數的作用和應用場景

    Vivado的時序約束中,-invert是用于控制信號極性的特殊參數,應用于時鐘約束(Clock Constraints)和延遲約束(Delay Constraints)中,用于指定信號的有效邊沿或邏輯極性。
    的頭像 發表于 02-09 13:49 ?207次閱讀
    Vivado<b class='flag-5'>時序</b>約束中invert參數的作用和應用場景

    為什么FPGA設計中使用MicroBlaze V處理器

    各類行業與應用中,經常能看到許多 FPGA 設計。一個非常常見的現象是:設計者常常用復雜的有限狀態機(FSM)來實現 I2C、SPI、GPIO 時序控制等功能。
    的頭像 發表于 12-19 15:29 ?8321次閱讀
    為什么<b class='flag-5'>在</b>FPGA設計<b class='flag-5'>中使</b>用MicroBlaze V處理器

    有源邏輯探頭的具體應用

    及典型場景的詳細拆解: 一、數字電路研發與調試 此為有源邏輯探頭的核心應用場景,核心解決復雜數字系統中“信號觀測無干擾、多通道信號同步分析”的關鍵需求,為電路設計驗證提供精準的信號數據支撐。 時序邏輯驗證: 針對
    的頭像 發表于 12-16 10:29 ?193次閱讀
    有源<b class='flag-5'>邏輯</b>探頭的具體應用

    飛凌嵌入式ElfBoard-文件I/O的深入學習之阻塞I/O與非阻塞I/O

    操作,這是普通文件本質上決定的。 非阻塞式I/O,即使沒有數據可讀,也不會被阻塞、而是立馬返回。 1.4.1.2 實踐 從前面介紹的open函數可以看到,打開文件時可以使用O_NONBLOCK標志
    發表于 12-01 13:07

    vivado時序分析相關經驗

    vivado綜合后時序為例主要是有兩種原因導致: 1,太多的邏輯級 2,太高的扇出 分析時序違例的具體位置以及原因可以使用一些tcl命令方便快速得到路徑信息
    發表于 10-30 06:58

    MDD 邏輯IC的邏輯電平不兼容問題與解決方案

    現代電子系統中,MDD辰達半導體邏輯IC(集成電路)扮演著至關重要的角色,廣泛應用于數據處理、時序控制、信號轉換等各類電路中。隨著技術的進步,不同邏輯系列的IC(如TTL、CMOS、
    的頭像 發表于 10-29 09:39 ?467次閱讀
    MDD <b class='flag-5'>邏輯</b>IC的<b class='flag-5'>邏輯</b>電平不兼容問題與解決方案

    時序約束問題的解決辦法

    使用vivado對 Verilog 代碼進行綜合后,點擊“SYNTHESIS”下的“Report Timing Summary”,可以查看綜合后的時序報告,查看 Setup Time 和 Hold
    發表于 10-24 09:55

    FX3為什么無法Windows中使用Gstreamer?

    我正在開發 FX3,我可以 Linux 和 Windows 中使用 y8 格式的 ffmpeg 流式傳輸相機, Linux 中使用 y8 格式的 Gstreamer,但我無法
    發表于 05-29 06:59

    Pico示波器電源時序測試中的應用

    航天電子系統研發中,電源模塊時序一致性是保障設備穩定運行的核心指標。
    的頭像 發表于 05-15 15:55 ?960次閱讀
    Pico示波器<b class='flag-5'>在</b>電源<b class='flag-5'>時序</b>測試中的應用

    FPGA時序約束之設置時鐘組

    Vivado中時序分析工具默認會分析設計中所有時鐘相關的時序路徑,除非時序約束中設置了時鐘組或false路徑。使用set_clock_groups命令可以使時序分析工具不分析時鐘組中時
    的頭像 發表于 04-23 09:50 ?1340次閱讀
    FPGA<b class='flag-5'>時序</b>約束之設置時鐘組

    工業自動化中使用固態繼電器時應避免的5個錯誤

    固態繼電器(SSR)已成為工業自動化的無名英雄。它們安靜、可靠、速度快——這是繼電器應具備的所有特點。但就像高科技駕駛艙中的新手飛行員一,即使是經驗豐富的工程師使用SSR時也犯常見錯誤。本文讓我們來看看應如何避免
    的頭像 發表于 04-20 11:42 ?703次閱讀

    testbench中如何使用阻塞賦值和非阻塞賦值

    本文詳細闡述了一個testbench中,應該如何使用阻塞賦值與非阻塞賦值。首先說結論,建議t
    的頭像 發表于 04-15 09:34 ?1205次閱讀
    <b class='flag-5'>在</b>testbench中如何使用<b class='flag-5'>阻塞</b><b class='flag-5'>賦值</b>和非<b class='flag-5'>阻塞</b><b class='flag-5'>賦值</b>

    為什么“PWM Adc Dma 344 S32CT”示例中使用ISR塊來讀取dma adc通道?

    我正在 MBDT 中使用 S32K358 進行一個項目,我正在尋找啟用 DMA 傳輸類型的 ADC 模塊。 ADC 示例“PWM Adc Dma 344 S32CT”中,我發現要讀取配置為
    發表于 04-08 06:39

    S32DS上使用JLINK調試S32K341,被阻塞了,怎么處理?

    我正在嘗試使用 S32K341 新板上刷寫程序,但在 S32K3X4EVB 上運行并為 S32K341配置的相同代碼出現錯誤。具體來說,當我使用 S32DS 的 J-Link 探針運行調試時,它在此地址被阻塞,并且不會將其閃存到內存中。有人遇到同樣的問題或可以幫助我嗎?
    發表于 04-03 08:13

    數字電路—22、時序邏輯電路

    時序電路的邏輯功能可用邏輯表達式、狀態表、卡諾圖、狀態圖、時序圖和邏輯圖6種方式表示,這些表示方法
    發表于 03-26 15:03