在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

一文詳解FPGA設計的七大原則

QuTG_CloudBrain ? 來源:FPGA驛站 ? 作者:FPGA驛站 ? 2022-04-15 16:59 ? 次閱讀

01面積與速度的平衡與互換原則

面積通常指一個設計消耗FPGA/CPLD的邏輯資源的數量,通常用可消耗的FF(觸發器)和LUT(查找表)來衡量。速度指設計在芯片上穩定運行所能達到的最高頻率,這個頻率由設計的時序狀況來決定,以及設計滿足的時鐘要求:PAD to PAD time 、Clock Setup Time、Clock Hold Time、Clock-to-Output Delay等眾多時序特征量密切相關,具體示意圖如下圖所示:

8bbb4aba-bc5e-11ec-aa7f-dac502259ad0.png

要求同時具備設計面積最小、運行頻率最高是不現實的。更科學的設計目標應該是在滿足設計時序要求(包括對設計頻率要求)的前提下,占用最小的芯片面積。或者在所規定的面積下,使設計的時序余量更大、頻率跑得更高。這兩種目標充分體現了面積和速度的平衡思想。

作為矛盾的兩個組成部分,面積和速度的地位是不一樣的。相比之下,滿足時序、工作頻率的要求更重要一些,當兩者沖突時,采用速度優先的準則。

02硬件和系統原則

硬件原則主要針對HDL代碼編寫而言:Verilog是采用了C語言形式的硬件的抽象,它的本質作用在于描述硬件;它的最終實現結果是芯片內部的實際電路。所以評判一段HDL代碼優劣的最終標準是:其描述并實現的硬件電路性能,包括面積和速度兩個方面。

評價一個設計的代碼水平較高,僅僅是說這個設計是由硬件向HDL代碼這種表現形式的轉換更加流暢、合理。而一個設計最終性能,在更大程度上取決于設計工程師所構想的硬件實現方案的效率以及合理性。(HDL代碼僅僅是硬件設計的表達形式之一)。

初學者片面追求代碼的整潔、簡短是錯誤的,是與HDL的標準背道而馳的。正確的編碼方法首先要做到對所需實現的硬件電路胸有成竹,對該部分的硬件的結構和連接十分清晰,然后再用適當的HDL語句表達出來即可。

系統原則包含兩個層次的含義:更高層面上看,是一個硬件系統,一塊單板如何進行模塊劃分和任務分配、什么樣的算法和功能適合放在FPGA里面實現、什么樣的算法和功能適合放在DSP/CPU里面實現、以及FPGA的規模估算數據接口設計等。具體到FPGA設計就要對設計的全局有個宏觀上的合理安排,比如時鐘域、模塊復用、約束、面積、速度等問題,在系統上模塊的優化最為重要。

一般來說實時性要求高,頻率快的功能模塊適合FPGA實現。而FPGA和CPLD相比,更適合實現規模較大、頻率較高、寄存器較多的設計。使用FPGA/CPLD設計時,應該對芯片內部的各種底層硬件資源和可用的設計資源有一個較深刻的認識。

03同步設計原則

異步電路的邏輯核心是用組合邏輯電路實現,比如異步的FIFO/RAM讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅動FF產生的。異步時序電路的最大缺點是容易產生毛刺,毛刺產生的機理主要有爭和冒險導致毛刺、組合延時和布線延時不平衡導致譯碼輸出毛刺以及線間的信號耦合導致毛刺。具體如下圖所示:

8bd2d18a-bc5e-11ec-aa7f-dac502259ad0.png

同步時序電路的核心邏輯是用各種各樣的觸發器實現,電路的主要信號、輸出信號都是由某個時鐘沿驅動觸發器產生出來的。同步時序電路可以很好的避免毛刺。

同步時序電路的延時一般是通過時序控制完成的,換句話說,同步時序電路的延時被當做一個電路邏輯來設計。對于比較大的和特殊定時要求的延時,一般用高速時鐘產生一個計數器,通過計數器的計數控制延遲;對于比較小的延時,可以用D觸發器打一下,這種做法不僅僅使信號延時了一個時鐘周期,而且完成了信號與時鐘的初次同步,在輸入信號采樣和增加時序約束余量中使用。

同步時序電路的時鐘如何產生?時鐘的質量和穩定性直接決定著同步時序電路的性能。輸入信號的同步時序電路要求對輸入信號進行同步化,如果輸入數據的節拍和本級芯片的處理時鐘同頻,并且建立保持時間匹配,可以直接用本級芯片的主時鐘對輸入數據寄存器采樣,完成輸入數據的同步化。如果輸入數據和本級芯片的處理時鐘是異步的,特別是頻率不匹配的時候,則要用處理時鐘對輸入數據做兩次寄存器采樣,才能完成輸入數據的同步化。

是不是定義為Reg型,就一定綜合成寄存器,并且是同步時序電路呢?答案是否定的。Verilog中最常用的兩種數據類型Wire和Reg,一般來說,Wire型指定輸數據和網線通過組合邏輯實現,而reg型指定的數據不一定就是用寄存器實現。

04乒乓操作及串并轉換設計

“ 乒乓操作 ”是一個常常應用于數據流控制的處理技巧。乒乓操作的處理流程為:輸入數據流通過“ 輸入數據選擇單元 ”將數據流等時分配到兩個數據緩沖區,數據緩沖模塊可以為任何存儲模塊,比較常用的存儲單元為雙口 RAM(DPRAM) 、單口 RAM(SPRAM) 、 FIFO 等。

在第一個緩沖周期,將輸入的數據流緩存到“ 數據緩沖模塊 1”;在第 2 個緩沖周期,通過“ 輸入數據選擇單元 ”的切換,將輸入的數據流緩存到“ 數據緩沖模塊 2”,同時將“ 數據緩沖模塊 1”緩存的第 1 個周期數據通過“ 輸入數據選擇單元 ”的選擇,送到“ 數據流運算處理模塊 ”進行運算處理;在第 3 個緩沖周期通過“ 輸入數據選擇單元 ”的再次切換,將輸入的數據流緩存到“ 數據緩沖模塊 1”,同時將“ 數據緩沖模塊 2”緩存的第 2 個周期的數據通過“ 輸入數據選擇單元 ”切換,送到“ 數據流運算處理模塊 ”進行運算處理。如此循環。

8beb39a0-bc5e-11ec-aa7f-dac502259ad0.png

典型的乒乓操作方法

乒乓操作的最大特點是,通過輸入數據選擇單元和輸出數據選擇單元進行運算和處理。把乒乓操作模塊當成一個整體,站在兩端看數據,輸入數據和輸出數據流都是連續不斷的,沒有任何停頓,因此非常適合對數據流進行流水線式處理。所以乒乓操作常常應用于流水線式算法,完成數據的無縫緩沖和處理。另外,巧妙運用乒乓操作還可以達到用低速模塊處理高速數據流的效果。如下圖所示:

8bfadc2a-bc5e-11ec-aa7f-dac502259ad0.png

從理論上講,如果一個設計時序余量較大,所能跑的速度遠遠高于設計要求,那么就通過功能模塊的復用來減少整個設計消耗的芯片面積,這就是用速度的優勢換取面積的節約。反之,如果一個設計的時序要求很高,普通方法達不到設計頻率,那么一般可以通過將數據流串并轉換,并行復制多個操作模塊,對整個設計采取乒乓操作和串并轉換的思想運行。

串并轉換是 FPGA 設計的一個重要技巧,它是數據流處理的常用手段,也是面積與速度互換思想的直接體現。串并轉換的實現方法多種多樣,根據數據的排序和數量的要求,可以選用寄存器、 RAM 等實現。

前面在乒乓操作的圖例中,就是通過 FIFO 實現了數據流的串并轉換,而且由于使用了 FIFO ,數據的緩沖區可以開得很大,對于數量比較小的設計可以采用寄存器完成串并轉換。如無特殊需求,應該用同步時序設計完成串并之間的轉換。比如數據從串行到并行,數據排列順序是高位在前,可以用下面的編碼實現:prl_temp<={prl_temp,srl_in}。其中, prl_temp 是并行輸出緩存寄存器, srl_in 是串行數據輸入。對于排列順序有規定的串并轉換,可以用 case 語句判斷實現。對于復雜的串并轉換,還可以用狀態機實現。串并轉換的方法比較簡單,在此不必贅述。

05流水線操作設計思想

流水線處理是高速設計中的一個常用設計手段。如果某個設計的處理流程分為若干步驟,而且整個數據處理是“ 單流向 ”的,即沒有反饋或者迭代運算,前一個步驟的輸出是下一個步驟的輸入,則可以考慮采用流水線設計方法來提高系統的工作頻率。

流水線設計的結構示意圖如圖所示。其基本結構為:將適當劃分的 n 個操作步驟單流向串聯起來。流水線操作的最大特點和要求是,數據流在各個步驟的處理從時間上看是連續的,如果將每個操作步驟簡化假設為通過一個 D 觸發器 ( 就是用寄存器打一個節拍 ) ,那么流水線操作就類似一個移位寄存器組,數據流依次流經 D 觸發器,完成每個步驟的操作。

8c17b50c-bc5e-11ec-aa7f-dac502259ad0.png

流水線設計的一個關鍵在于整個設計時序的合理安排,要求每個操作步驟的劃分合理。如果前級操作時間恰好等于后級的操作時間,設計最為簡單,前級的輸出直接匯入后級的輸入即可;如果前級操作時間大于后級的操作時間,則需要對前級的輸出數據適當緩存才能匯入到后級輸入端;如果前級操作時間恰好小于后級的操作時間,則必須通過復制邏輯,將數據流分流,或者在前級對數據采用存儲、后處理方式,否則會造成后級數據溢出。

流水線處理方式之所以頻率較高,是因為復制了處理模塊,它是面積換取速度思想的又一種具體體現。

06異步時鐘處理原則

許多系統要求在同一設計內采用多時鐘,最常見的例子是“兩個異步微處理器之間的接口”或“微處理器和異步通信通道的接口”。由于兩個時鐘信號之間要求一定的建立和保持時間, 所以上述應用引進了附加的定時約束條件, 它們會要求將某些異步信號同步化。

8c33283c-bc5e-11ec-aa7f-dac502259ad0.png

如果一個系統中存在多個獨立(異步)時鐘,并且存在多時鐘域(clock domain)之間的信號傳輸,那么電路會出現亞穩態。具體如下圖所示:

8c580efe-bc5e-11ec-aa7f-dac502259ad0.png

8c71f724-bc5e-11ec-aa7f-dac502259ad0.png

在許多應用中只將異步信號同步化還是不夠的,當系統中有兩個或兩個以上非同源時鐘的時候,數據的建立和保持時間很難得到保證,設計人員將面臨復雜的時間分析問題。最好的方法是將所有非同源時鐘同步化。這時就需要使用帶使能端的D觸發器, 并引入一個高頻時鐘來實現信號的同步化。具體如下圖所示:

8c85ce7a-bc5e-11ec-aa7f-dac502259ad0.png

07數據接口的同步原則

數據接口的同步是 FPGA/CPLD 設計的一個常見問題,也是一個重點和難點,很多設計不穩定都是源于數據接口的同步有問題。輸入、輸出的延時 ( 芯片間、 PCB 布線、一些驅動接口元件的延時等 ) 不可測,或者有可能變動的條件下,如何完成數據同步?對于數據的延遲不可測或變動,就需要建立同步機制,可以用一個同步使能或同步指示信號。另外,使數據通過 RAM 或者 FIFO 的存取,也可以達到數據同步目的。

8c99e1e4-bc5e-11ec-aa7f-dac502259ad0.png

設計數據接口同步是否需要添加約束?建議最好添加適當的約束,特別是對于高速設計,一定要對周期、建立、保持時間等添加相應的約束。這里附加約束的作用有兩點:提高設計的工作頻率,滿足接口數據同步要求;獲得正確的時序分析報告。

總 結

數字系統設計應該明確如下觀點:

無論是ASIC、FPGA還是DSP,都只是一種實現手段;

無論采用哪種HDL或哪種開發工具,都不能單純從語言或工具本身作出評價;

關鍵是看應用環境,只有選擇最適合于應用的實現方式和工具才是最好的設計方案;

設計應該注重硬件設計本身,只有先有了良好的設計,才可能有高效的描述和實現。

數字模擬電路、HDL語言等知識和實際經驗比了解軟件更重要。比如FPGA一般觸發器資源豐富,CPLD的組合邏輯資源更加豐富。FPGA/CPLD一般是由底層可編程硬件單元、BRAM、布線資源、可配置IO單元、時鐘資源等構成。

原文標題:幾個FPGA設計的重要原則

文章出處:【微信公眾號:云腦智庫】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

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

    關注

    1630

    文章

    21799

    瀏覽量

    606086
  • cpld
    +關注

    關注

    32

    文章

    1257

    瀏覽量

    169638
  • 數字系統
    +關注

    關注

    0

    文章

    145

    瀏覽量

    20907

原文標題:幾個FPGA設計的重要原則

文章出處:【微信號:CloudBrain-TT,微信公眾號:云腦智庫】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    fpga開發流程攻略與fpga器件選型七大原則分享

    主要的FPGA供應商有賽靈思公司、Altera公司、Lattic公司和Actel公司等,FPGA的發展速度非常快,很多型號的FPGA器件已不是主流產品,為了提高產品的生命周期,最好在貨源比較足的主流
    發表于 11-19 15:39 ?5551次閱讀
    <b class='flag-5'>fpga</b>開發流程攻略與<b class='flag-5'>fpga</b>器件選型<b class='flag-5'>七大原則</b>分享

    如何選擇IDC服務商十大原則

    如何選擇IDC服務商十大原則現在擁有網站的企業或者個人越來越多,對服務器的需求有增無減,如何選擇理想的IDC服務商,自然成了他們首要考慮的問題。筆者就此問題,介紹了些必要的技巧,并概括為選IDC
    發表于 01-21 12:03

    Python設計模式六大原則

    ,每個模式描述了個在我們周圍不斷重復發生的問題,以及該問題的核心解決方案,這也是它能被廣泛應用的原因。1、開閉原則(Open Close Principle)開閉原則就是說對擴展開
    發表于 05-07 18:10

    大原則,讓你選對繼電器

    。但是繼電器品類眾多,如何挑選優質的繼電器成了個難題。誰才是國民PICK?三大原則,選對繼電器在《創造101》中,女團的出道經過了導師和女團創始人的層層把關,綜合各方面考慮才篩選出最終的11位成員
    發表于 08-01 20:21

    匯總PCB電路設計的六大原則

    ,可能會出現些問題,甚至很可能帶來嚴重的電路性能問題。本文主要介紹的是PCB電路設計的六大原則,具體的跟隨小編來了解下。
    發表于 05-04 15:50 ?6417次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>匯總PCB電路設計的六<b class='flag-5'>大原則</b>

    制造業組裝線設計必須要納入的五大原則

    隨著全球制造業積極尋求競爭力后,許多業者也開始在運轉作過程中設法達到精益生產(Lean Manufacturing)目的。據Automation World報導,廠商在現有組裝線設計內可引進五大原則,將可達到避免制程浪費與提升產品質量的目的。
    發表于 07-22 09:39 ?1803次閱讀

    如何構造原型系統?八大原則不得不知

    就更好了,并得到關于創新價值的真實反饋,那么您獲得商業成功的可能性會大為提高。如果您希望創建企業實現自己的產品構思,請開發原型系統并牢記下列八大原則
    的頭像 發表于 07-29 11:16 ?5410次閱讀
    如何構造原型系統?八<b class='flag-5'>大原則</b>不得不知

    電路布線的七大原則

    選擇用單刀開關只控制火線。家庭電路般是進戶線先接入電度表,再由電度表反出來,接入總開關,由總開關分出,接入幾個回路分開關布線到各個房間。
    發表于 05-17 16:45 ?1.6w次閱讀
    電路布線的<b class='flag-5'>七大原則</b>

    電子元件選用的八大原則

    下仍能保證高可靠性的元器件的過程。 半導體集成電路選用八大原則 1 集成電路的優選順序為超大規模集成電路→大規模集成電路→中規模集成電路→小規模集成電路。 2 盡量選用金屬外殼集成電路,以利于散熱。 3 選用的集成穩壓
    的頭像 發表于 12-09 18:12 ?1194次閱讀

    設計模式(1)—什么是設計模式?設計模式的六大原則是什么?

    目錄1.什么設計模式2.設計模式的發展3.設計原則6大原則3.1 開閉原則3.2 里氏轉換原則3.3 依賴倒轉原則3.4 接口隔離
    發表于 11-07 09:51 ?8次下載
    設計模式(1)—什么是設計模式?設計模式的六<b class='flag-5'>大原則</b>是什么?

    軟件開發七大原則與策略分享 軟件開發的最流行的規律和原則

    11 波斯特定律 12 克奇霍夫原理 13 萊納斯(Linus)定律 14 沃斯定律 15 克努斯的優化原則 16 保持懷疑 人們在圍繞軟件開發的討論中,幾乎不可避免會隨口引用一兩條原則。 你可能聽過人們說:“這行不通,因為‘X法則’!”。或者“你不知道‘Y
    的頭像 發表于 10-10 16:08 ?1492次閱讀

    電路布線的七大原則

    選擇用單刀開關只控制火線。家庭電路般是進戶線先接入電度表,再由電度表反出來,接入總開關,由總開關分出,接入幾個回路分開關布線到各個房間。 ? 1、為了避免電視和電話等受干擾,布線時強弱電線不可在同根管內,距離至
    的頭像 發表于 11-25 01:35 ?1937次閱讀

    剖析發動機抖動七大原

    汽車發動機的保養直接關系到汽車的使用壽命,發動機抖動是生活中常見的發動機問題之,那發動機抖動是什么原因呢?下面起來看看發動機抖動七大原因。
    的頭像 發表于 05-09 14:44 ?1483次閱讀

    電路布線的七大原則

    電路布線的七大原則? 電路布線是電子設計中非常重要的環,它直接影響著電路的性能和穩定性。因此,在進行電路布線的時候,需要遵循七大原則,這些原則包括電磁兼容性、信號傳輸、電源噪聲、熱管
    的頭像 發表于 10-27 10:26 ?1342次閱讀

    分布式存儲系統的七大原則之二:區分環境數據與業務數據

    在之前討論的分布式存儲系統七大原則的第原則中,我們了解了容災切換和數據備份的差異。現在,我們繼續探索第二原則:區分環境數據與業務數據。這
    的頭像 發表于 03-11 09:42 ?405次閱讀
    主站蜘蛛池模板: 理论片国产 | 黑色丝袜美女被视频网站 | 午色| 亚洲日本久久久午夜精品 | 亚洲网站免费看 | 亚洲欧美国产高清va在线播放 | 成人国产三级精品 | 五月天婷婷在线观看高清 | 国产在线精品观看一区 | 黄色特级毛片 | 日韩欧美亚洲一区 | 不卡中文字幕在线 | 欧美另类网 | 特黄一级毛片 | a久久 | 图片区网友自拍另类图区 | 一区二区三区高清在线 | 欧美特黄三级在线观看 | 天天干天天爽天天射 | 717影院理论午夜伦八戒 | 欧美一级特黄视频 | 黄色大片a级 | 日日夜夜狠狠干 | 亚洲qingse | 女性一级全黄生活片在线播放 | 深夜网站免费 | 天天色天天射天天干 | 人人爱干 | 成人性生活免费视频 | 午夜亚洲视频 | 九九热精品在线观看 | 人人澡 人人澡 人人看 | 青草青青产国视频在线 | 成人影院在线观看视频 | 日本不卡毛片一二三四 | 五月婷花 | 午夜寂寞影院视频观看 | www你懂的| 午夜激情婷婷 | h录音 国产 在线 | 色中色在线视频 |