精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

關于FPGA中的設計思維

FPGA開源工作室 ? 來源:IC_learner ? 作者:IC_learner ? 2022-03-15 17:34 ? 次閱讀

一、邏輯設計

(1)組合邏輯設計

下面是一些用Verilog進行組合邏輯設計時的一些注意事項:

①組合邏輯可以得到兩種常用的RTL 級描述方式。第一種是always 模塊的觸發事件為電平敏感信號列表;第二種就是用assign 關鍵字描述的數據流賦值語句。

②always 模塊的敏感表為電平敏感信號的電路可幾乎可以完成對所有組合邏輯電路的建模。always模塊的敏感列表為所有判斷條件信號和輸入信號,但一定要注意敏感列表的完整性(注意通配符*的使用)。

由于賦值語句有阻塞賦值和非阻塞賦值兩類,建議讀者使用阻塞賦值語句“=”,原因將在“阻塞賦值和非阻塞賦值”中(現在還沒有寫)進行說明。

always 模塊中的信號必須定義為reg 型,不過最終的實現結果中并沒有寄存器。這是由于在組合邏輯電路描述中,將信號定義為reg 型,只是為了滿足語法要求。

③assign 語句的描述,利用條件符“?”可以描述一些相對簡單的組合邏輯電路,左邊的賦值信號只能被定義為wire 型。當組合邏輯比較復雜時,需要很多條語句assign 語句或者多重嵌套“?”,使得代碼可讀性極差,因此此時推薦always組合邏輯建模方式。

④設計時要注意不要出現組合邏輯環路:

77485d1e-9640-11ec-952b-dac502259ad0.png

不要在組合邏輯中引入環路,在組合邏輯中引入環路會導致電路產生振蕩、毛刺以及沖突等問題,從而降低設計的穩定性和可靠性,此外,環回邏輯的延時完全依靠組合邏輯門延遲和布線延遲。一旦這些傳播時延有所變化,則環路的整體邏輯將徹底失效。其次,環路的時序分析是個死循環過程。目前的EDA 開發工具為了計算環路的時序邏輯都會主動割斷時序路徑,引入許多不確定的因素。因此要徹底避免環路。

(2)時序邏輯設計

①時序電路的行為決定了其只能通過always 塊語句實現,通過關鍵詞“posedge”和“negedge”來捕獲時鐘信號的上升沿和下降沿。在always 語句塊中可以使用任何可綜合的標志符。

②在描述時序電路的always 塊中的reg 型信號都會被綜合成寄存器,這是和組合邏輯電路所不同的。

③時序邏輯中推薦使用非阻塞賦值“《=”,原因將后面詳細說明。

④時序邏輯的敏感信號列表只需要加入所用的時鐘觸發沿即可,其余所有的輸入和條件判斷信號都不用加入,這是因為時序邏輯是通過時鐘信號的跳變沿來控制的。

二、鎖存器

鎖存器是個“奇葩”的器件,在FPGA邏輯設計中很避諱;在ASIC設計中,以前很喜歡(因為面積小),現在不是很喜歡了。在這里就記錄一下關于鎖存器的一些事項吧。

(1)鎖存器的概述

①最常見最基本的鎖存器是SR鎖存器,然后常見常用的鎖存器是D鎖存器。在數字電路里面,SR鎖存器是最簡單的時序單元,它由一對交叉耦合的或非門構成。主要功能就是通過輸入的S、R端分別控制Q進行置位(set)和復位(reset)。SR鎖存器可以具有鎖存數據的功能。雖然SR鎖存器可以鎖存數據,電路結構也簡單,但是有一個毛病就是S和R同時有效時,輸出錯誤,使用不夠方便;還有一個問題就是某個時候存某個數據分不開,相當于時間和內容不夠清晰。因此就有了D鎖存器,D鎖存的功能是在時鐘高/低電平的時候通過數據,在時鐘低/高電平的時候鎖存數據。D鎖存器可以分為前級門電路(兩個與門和一個非門)和后級SR鎖存器組成。

②鎖存器是一種對脈沖電平敏感的存儲單元電路,可以在特定輸入脈沖電平作用下改變狀態,其本身也是一類常用的邏輯單元,有著特定的需求。

③鎖存器在數據未鎖存時,輸出端的信號隨輸入信號變化,就像信號通過一個緩沖器一樣,一旦鎖存信號有效,則數據被鎖住,輸入信號不起作用。因此,鎖存器也被稱為透明鎖存器,指的是不鎖存時輸出對于輸入是透明的。

④鎖存器和寄存器都是數字電路的基本存儲單元,但鎖存器是電平觸發的存儲器,觸發器是邊沿觸發的存儲器。

本質上,鎖存器和D 觸發器的邏輯功能是基本相同的,都可存儲數據,且鎖存器所需的門邏輯更少,具備更高的集成度。

⑤鎖存器具備下列三個缺點:

·對毛刺敏感,不能異步復位,因此在上電后處于不確定的狀態。

·鎖存器會使靜態時序分析變得非常復雜,不具備可重用性。

·在FPGA/CPLD芯片中,基本的單元是由查找表和觸發器組成的,若生成鎖存器反而需要更多的資源。

(2)鎖存器的產生

①鎖存器產生于組合邏輯的設計中,在基于always的組合邏輯描述語句中,可能產生鎖存器的情況具體可分為兩種:其一是在if 語句中,另一種是在case 語句中。

②在always 塊中使用if 語句,但缺乏else 分支而造成鎖存器。

③在always 塊中使用case 語句,由于缺乏default 分支而造成鎖存器。

④如果用到if 語句,最好有else 分支;如果用到case 語句,最好有default 語句。即使需要鎖存器,也通過else 分支或default 分支來顯式說明。

(3)鎖存器的應用

①在總線應用上,鎖存器能提高驅動能力、隔離前后級。

②地址鎖存器、數據鎖存器、復位信號鎖存器;門控時鐘鐘的應用等等。

三、設計思維

這個設計思維本來屬于設計技巧里面的,放在這里說明,是為了告訴自己,在進行電路描述的時候, 是基于這些準則的,在設計時能夠根據這些基本準則進行優化電路。下面是常見的設計思維,主要是基于FPGA的,關于ASIC其他設計技巧或者設計思維,我記錄在了“技巧”篇。

(1)速度面積互換準則

①速度與面積是設計時常考慮的的一個問題,因此在設計的時候要考慮怎么在這二者之間的權衡。當然,現在功耗也與速度、面積成為需要考慮的重大因素之一。

②面積和速度互換的具體操作很多,比如模塊復用、乒乓操作、串并轉換以及流水線操作等。在設計技巧策略和技巧那一章節中將會進行敘述。

③串并轉換乘法器:假設數據速率是乘法器模塊處理速度的3 倍,那么由于乘法器模塊的數據吞吐量滿足不了要求,在這種情況下,就利用面積換速度的思想,復制3 個乘法器模塊。首先將輸入數據進行串并轉換,然后利用這3 個模塊并行處理所分配到的數據,最后將處理結果并串轉換,達到數據速率的要求。

如下圖所示:

775a579e-9640-11ec-952b-dac502259ad0.png

(2)FPGA中的設計思維

①信號反相的處理策略

在處理反相信號時,設計時應盡可能地遵從分散反相原則。即應使用多個反相器分別反相,每個反相器驅動一個負載,這個原則無論對時鐘信號還是對其它信號都是適用的。

因為在FPGA設計中,反相是被吸收到CLB或IOB中的,使用多個反相器并不占用更多的資源,而使用一個反相器將信號反相后驅動多個負載卻往往會多占資源,而且延遲也增加了。

②首先,如果輸入信號需要反相,則應盡可能地調用輸入帶反相功能的符號,而不是用分離的反相器對輸入信號進行反相。

因為在使用自帶反相功能的器件中,由于函數發生器用查表方式實現邏輯,反相操作是不占資源的,也沒有額外延遲;而分開使用不同邏輯使用反相操作實現,從而消耗額外的資源,增加額外的延遲。

③其次,如果一個信號反相后驅動了多個負載,則應將反相功能分散到各個負載中實現,而不能采用傳統TTL電路設計,采用集中反相驅動多個負載來減少所用的器件的數量。

因為在FPGA設計中,集中反相驅動多個負載往往會多占一個邏輯塊或半個邏輯塊,而且延遲也增加了。分散信號的反相往往可以與其它邏輯在同一單元內完成而不消耗額外的邏輯資源。

原文標題:VerilogHDL 可綜合設計的注意事項

文章出處:【微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭菁

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

    關注

    1626

    文章

    21667

    瀏覽量

    601858
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120010
  • 電平
    +關注

    關注

    5

    文章

    359

    瀏覽量

    39855
  • 鎖存器
    +關注

    關注

    8

    文章

    904

    瀏覽量

    41444

原文標題:VerilogHDL 可綜合設計的注意事項

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    編程是一種思維方式,而代碼是一種表現形式,硬件只不過是對思維方式的物理體現

    編程是一種思維方式,而代碼是一種表現形式,硬件只不過是對思維方式的物理體現關于這句話,你怎么看?
    發表于 08-25 13:18

    先進的創新教育:AI 思維+設計思維

    的、可以非常有效地相輔相成。從教育視角而觀之,如何讓我們的兩種學生:機器學生與人類學生,兩者攜手共舞、一起創新,成為最新潮的創新教育思維。 再從邏輯思維視角而觀之,人類與生俱來的三項邏輯思維
    發表于 01-04 10:16

    什么是模型思維

    什么是模型思維?怎樣確定一個模型?
    發表于 09-18 06:41

    失效分析的模式思維方法

    失效分析的模式思維方法:對事故模式和失效模式的歸納總結,從中引伸出預防事故或失效的新認識或新概念.關健詞:失效模式;失效分析;安全性工程
    發表于 12-18 11:28 ?34次下載

    Altium Designer關于FPGA的PIN交換

    Altium Designer關于FPGA的PIN交換
    發表于 12-10 16:59 ?0次下載

    如何將MCU應用到FPGA:關于FPGA(1)

    最近,我接手一個項目,這個項目不僅要求我使用FPGA,而且還要求我使用功能更強大的ARM。這都是我從未接觸過的領域。在這個系列博客,我將介紹我是如何將自己現有的MCU知識和經驗運用到FPGA
    發表于 05-08 15:41 ?3895次閱讀

    關于FPGA的幾點問題,你了解嗎?

    因此,要想學好FPGA,你得用硬件的思維方式來編寫代碼,注重FPGA的系統結構設計,好的系統結構設計會帶來質的飛躍,這就告訴我們RTL Coding其實是硬件結構設計,而非基于處理器架構的C語言程序開發,好的RTL Coding
    發表于 07-04 14:12 ?2846次閱讀

    FPGA邏輯關于地址映射說明

    背景與問題 CPU+FPGA架構,CPU做RC、FPGA做EP; FPGA邏輯(Vivado -BD - Address Editor)如何設置PCIe to AXI Transla
    的頭像 發表于 11-20 15:28 ?6521次閱讀
    <b class='flag-5'>FPGA</b>邏輯<b class='flag-5'>中</b><b class='flag-5'>關于</b>地址映射說明

    FPGA設計經驗技巧,用數學思維來簡化設計邏輯!資料下載

    電子發燒友網為你提供FPGA設計經驗技巧,用數學思維來簡化設計邏輯!資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-01 08:55 ?22次下載
    <b class='flag-5'>FPGA</b>設計經驗技巧,用數學<b class='flag-5'>思維</b>來簡化設計邏輯!資料下載

    (網盤)關于SDRAM和錄音機等FPGA視頻

    (網盤)關于SDRAM和錄音機等FPGA視頻(android嵌入式開發教程)-關于SDRAM和錄音機等FPGA視頻,一步一步的講解,真的很詳細,適合大家自學研究。
    發表于 08-04 12:21 ?15次下載
    (網盤)<b class='flag-5'>關于</b>SDRAM和錄音機等<b class='flag-5'>FPGA</b>視頻

    射頻設計的思維方式——阻抗和諧振

    關于頻率思維,要記住電磁波的三角關系:頻率,波長和波速。波長是射頻設計對應的物理尺寸,所以一些常用的頻率的波長大家要熟記于心。
    發表于 10-06 06:23 ?562次閱讀

    關于數據通信的思維導圖

    思維導圖可以有效的幫助初學者建立更完整的知識體系,也有利于從業多年的老司機進行思維的展開。下面是數據通信的思維導圖 ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 10-28 09:28 ?1477次閱讀

    FPGA關于SPI的使用

    FPGA關于SPI的使用
    的頭像 發表于 04-12 10:13 ?879次閱讀

    FPGA朋友邏輯思維能力的學習

    Kevin一直認為學習FPGA的朋友的邏輯思維能力應該是比其他人要強很多的。在很多求職網站上都可以看到FPGA相關行業的招聘信息可能會有這樣的一條工作職責:負責項目的邏輯設計。
    的頭像 發表于 08-28 09:50 ?717次閱讀

    精益思維在PCB設計的應用實踐

    精益思維,源自豐田生產方式,強調“消除浪費,創造價值”。在PCB設計,這意味著通過優化流程、減少冗余、提高自動化水平等手段,實現設計周期縮短、成本降低、質量提升的目標。精益思維不僅關注最終產品
    的頭像 發表于 08-28 09:53 ?196次閱讀