FPGA設計的用戶約束


FPGA設計的用戶約束


文章目錄

  • FPGA設計的用戶約束
    • FPGA設計的用戶約束
    • 綜合約束
    • 管腳約束
    • 位置約束
    • 時序約束
    • 小總結

FPGA設計的用戶約束

至此,HDL到門級網表的轉化已經完成,對于編譯器來說,下一步的任務就是要將門級網表轉換并映射到具體的FPGA硬件資源中去。不過在編譯器開始這一項任務之前,我們必須得提出一些我們對FPGA設計的要求,因為畢竟編譯器跟我們是沒有什么心靈感應的,所以有些事你不說編譯器怎么知道呢?

簡單地說,我們將我們的想法寫入到一個文件當中,然后把這個文件交給編譯器,這樣編譯器就可以參考我們的需求來實現最終的FPGA設計了,而這個文件就叫用戶約束文件。注意,編譯器僅僅是參考我們的需求,并不會保證最終的結果一定達到我們的預期,這主要有兩方面原因:

  • 編譯器向來是量力而行的;
  • 我們的需求有些時候可能不太現實。

因此,如果最終的結果并不能讓人滿意,通常的做法是返回到FPGA設計方案的制定或FPGA功能代碼的編寫環節進行修改,而不是去加大編譯器在布局布線時的努力程度。


綜合約束

其實這一工作應該是在FPGA功能代碼編寫與FPGA頂層模塊的門級仿真環節之間完成的,放在這里講是為了避免章節過于分散。綜合約束的作用顧名思義是用來指導編譯器如何將HDL代碼轉換為門級網表的,它有三種主要表現形式:

  • 編譯器的綜合工具配置選項;
  • 嵌入代碼中的約束語句;
  • 專門的綜合約束文件。

通常來說,編譯器已經預先設置好了一套默認的綜合工具配置選項,幾乎能夠應對絕大多數綜合任務。當然了,如果有特殊需要,可以進行一些調整。而嵌入代碼中的約束語句使用起來更加靈活、方便,對于綜合的約束性更加得細節和具體,例如可以針對代碼中某一個變量進行約束,不像綜合選項的作用域是整個FPGA設計。如果覺得嵌入代碼中的約束語句過于凌亂,不好管理和維護,那么也可以將這些語句集中寫在一個約束文件中,只不過此時需要指明被約束對象的層次化絕對路徑。


管腳約束

不和外界交互的FPGA設計是沒有任何存在意義的,因此,我們必須要為FPGA設計指定好具體的管腳約束信息。管腳約束主要完成兩件事情:

  1. 將FPGA設計中的輸入、輸出以及雙向端口和FPGA芯片的物理I/O管腳之間建立好一一對應的連接關系。通常情況下,FPGA設計中的端口數不能大于FPGA芯片所提供的物理I/O管腳數,否則無法分配成功。
  2. 為每一個已分配的物理I/O管腳指定特定的接口電平,從而使得設計能夠正確地跟外圍電路進行電信號交互通信,例如LVTTL、LVCMOS、LVDS等接口電平形式。

位置約束

位置約束主要影響的是編譯器如何將轉換后的資源網表布局到實際的FPGA芯片中。由于FPGA中有非常多的邏輯資源塊、BLOCK RAM、DSP核等等,并且這些資源是均勻分布在整個FPGA芯片當中的,如果我們對這些資源的使用有特殊的要求,例如某個邏輯必須使用FPGA芯片中最左上角的邏輯資源塊來實現,那么就需要編寫相應的位置約束。當然,位置約束的功能并不僅限于此。


時序約束

時序約束是我們對FPGA設計在時間性能指標上的期望,例如時鐘頻率要求、時間差要求以及各類時間參數指標要求等。當編譯器將資源網表布局到FPGA芯片當中并完成連線操作的時候,如果我們為其制定了時序約束,那么編譯器就會考慮到我們的需求來進行布局布線,這是因為布局布線會影響到線延遲的時間參數。因此,時序約束雖然不直接指明對布局布線的要求,但是它卻間接地對布局布線產生重大的影響。

以上四類約束中,除了綜合約束外,其余三個統稱為布局布線約束,因為它們都直接或間接地影響到同一個FPGA設計在FPGA芯片中的布局布線形式。也正是因為如此,布局布線約束方面的工作都是在門級網表生成后且后續轉換尚未開始前完成的。


小總結

  • 用戶約束文件是將設計要求傳達給編譯器的重要工具,但編譯器僅會參考這些要求,最終結果可能因編譯器能力和需求合理性而有所不同。
  • 綜合約束管腳約束位置約束時序約束是FPGA設計中常見的約束類型,其中綜合約束主要影響HDL代碼到門級網表的轉換,而其他三種約束則屬于布局布線約束,直接影響FPGA芯片的布局布線。
  • 布局布線約束的工作通常在門級網表生成后進行,以確保設計能夠在FPGA硬件上正確實現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912811.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912811.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912811.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring 生態創新應用:微服務架構設計與前沿技術融合實踐

在數字化轉型的深水區,企業級應用正面臨從 “單體架構” 向 “分布式智能架構” 的根本性躍遷。Spring 生態以其二十年技術沉淀形成的生態壁壘,已成為支撐這場變革的核心基礎設施。從 2002 年 Rod Johnson 發布《Expert One-on-One J2EE Design and Deve…

車牌識別與標注:基于百度OCR與OpenCV的實現(一)

車牌識別與標注:基于百度OCR與OpenCV的實現 在計算機視覺領域,車牌識別是一項極具實用價值的技術,廣泛應用于交通監控、智能停車場管理等領域。本文將介紹如何在macOS系統下,利用百度OCR API進行車牌識別,并結合OpenC…

【系統分析師】2021年真題:論文及解題思路

文章目錄 試題一:論面向對象的信息系統分析方法試題二:論靜態測試方法及其應用試題三:論富互聯網應用的客戶端開發技術試題四:論DevSecOps技術及其應用 試題一:論面向對象的信息系統分析方法 信息系統分析是信息系統生…

OFA-PT:統一多模態預訓練模型的Prompt微調

摘要 Prompt微調已成為模型微調的新范式,并在自然語言預訓練甚至視覺預訓練中取得了成功。參數高效的Prompt微調方法通過優化soft embedding并保持預訓練模型凍結,在計算成本低和幾乎無性能損失方面展現出優勢。在本研究中,我們探索了Prompt…

【硬核數學】2.5 “價值標尺”-損失函數:信息論如何設計深度學習的損失函數《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列硬核數學之旅的第十篇,也是我們對經典數學領域進行深度學習“升級”的最后一站。我們已經擁有了強大的模型架構(基于張量)、高效的學習引擎(反向傳播)和智能的優化策略(Adam等)。…

雷卯針對靈眸科技EASY EAI nano RV1126 開發板防雷防靜電方案

一、應用場景 1. 人臉檢測 2. 人臉識別 3. 安全帽檢測 4. 人員檢測 5. OCR文字識別 6. 人頭檢測 7. 表情神態識別 8. 人體骨骼點識別 9. 火焰檢測 10. 人臉姿態估計 11. 人手檢測 12. 車輛檢測 13. 二維碼識別 二、 功能概述 1 CPU 四核ARM Cortex-A71.5GHz 2 …

【記錄】Ubuntu|Ubuntu服務器掛載新的硬盤的流程(開機自動掛載)

簡而言之,看這張圖片就好(可以存一下,注意掛載點/data可以自定義,掛載硬盤的位置/dev/sdb要改成步驟1中檢查的時候查到的那個位置,不過這個圖的自動掛載漏了UUID,可以通過blkid指令查找)&#x…

六、軟件操作手冊

建議在飛書平臺閱讀此文。 我將沿著初來乍到的用戶的瀏覽路徑介紹“諍略參謀”應用。 目錄 一、用戶信息1.1 注冊、登錄、自動登錄、忘記密碼、修改用戶名、修改密碼、退出登錄與個性化設置1.2 認識主界面與任務系統1.3 語義審查、Knowledge Cutoff 審查1.4 重要內容未保存提醒…

電腦鍵盤不能打字了怎么解決 查看恢復方法

電腦鍵盤打不了字,這是我們電腦使用過程中,偶爾會遇到的電腦故障問題。一般來說,電腦鍵盤打不出字,可能是硬件故障、驅動問題或系統設置錯誤等多種原因引起。本文將詳細介紹一些常見的原因和解決方法,幫助用戶恢復正常…

基于STM32的土豆種植自動化灌溉系統設計與實現

?? 項目簡介 隨著農業現代化發展及水資源短缺問題日益突出,傳統土豆種植方式在澆灌效率與用水科學性方面暴露出諸多問題。本文基于STM32F103C8T6微控制器,設計并實現了一種智能化的土豆種植自動灌溉系統,集成多種環境傳感器(溫濕度、土壤濕度、光照)、控制設備(水泵、…

第8篇:Gin錯誤處理——讓你的應用更健壯

作者:GO兔 博客:https://luckxgo.cn 分享大家都看得懂的博客 引言 在Web應用開發中,錯誤處理是保證系統穩定性和用戶體驗的關鍵環節。Gin作為高性能的Go Web框架,提供了靈活的錯誤處理機制,但許多開發者在實際項目中仍會遇到錯誤處理混亂、異…

【PyCharm】Python安裝路徑查找

PyCharm應用筆記 第一章 Python安裝路徑查找 文章目錄 PyCharm應用筆記前言一、電腦設置查找二、資源管理器查找 前言 本文主要介紹幾種Python安裝路徑查找的方法。 一、電腦設置查找 簡述過程:設置》應用》安裝的應用》搜索框輸入Python。 注:電腦使用…

數據結構:遞歸:漢諾塔問題(Tower of Hanoi)

目錄 問題描述 第一性原理分析 代碼實現 第一步:明確函數要干什么 第二步:寫好遞歸的“結束條件” 第三步:寫遞歸步驟 🌳 遞歸調用樹 🔍復雜度分析 時間復雜度:T(n) 2^n - 1 空間復雜度分析 問題描…

synetworkflowopenrestydpdk

一.skynet 1. Skynet 的核心架構是什么?簡述其進程與服務模型。 Skynet 采用多進程多服務架構。主進程負責管理和監控,多個工作進程(worker)負責實際服務運行。每個服務(service)是一個獨立的 Lua 虛擬機&…

【甲方安全視角】安全防御體系建設

文章目錄 前言一、云安全防護能力第一階段:搭建安全防護設施第二階段:安全防護設施的精細化運營第三階段:安全運營周報輸出二、IT安全防護能力(一)辦公網安全設施建設(二)辦公網安全運營三、基礎安全防護能力(一)物理安全(二)運維安全(三)安全應急響應四、總結前言…

計算機組成原理與體系結構-實驗一 進位加法器(Proteus 8.15)

目錄 一、實驗目的 二、實驗內容 三、實驗器件 四、實驗原理 4.1 行波進位加法器 4.2 先行進位加法器 4.3 選擇進位加法器(嘗試猜測原理) 五、實驗步驟與思考題 一、實驗目的 1、了解半加器和全加器的電路結構。 2、掌握串行進位加法器和并行進…

react+antd Table實現列拖拽,列拉寬,自定義拉寬列

主要插件Resizable,dnd-kit/core,dnd-kit/sortable,dnd-kit/modifiers 其中官網有列拖拽,主要結合Resizable 實現列拉寬,isResizingRef 很重要防止拖拽相互影響 1.修改TableHeaderCell const isResizingRef useRef(…

光照解耦和重照明

項目地址: GitHub - NJU-3DV/Relightable3DGaussian: [ECCV2024] 可重新照明的 3D 高斯:使用 BRDF 分解和光線追蹤的實時點云重新照明 可優化參數 gaussians.training_setup(opt) if is_pbr:: direct_env_light.training_setup…

Kafka 運維與調優篇:構建高可用生產環境的實戰指南

🛠? Kafka 運維與調優篇:構建高可用生產環境的實戰指南 導語:在生產環境中,Kafka集群的穩定運行和高性能表現是業務成功的關鍵。本篇將深入探討Kafka運維與調優的核心技術,從監控管理到性能優化,再到故障排…

AR 地產互動沙盤:為地產沙盤帶來變革?

在科技飛速發展的今天,AR(增強現實)技術應運而生,為解決傳統地產沙盤的困境提供了全新的思路和方法。AR 技術,簡單來說,是一種將計算機生成的虛擬信息與真實環境相融合的技術。它通過攝像頭、傳感器等設備獲…