【轉】Black Box

Introduction

BlackBox是FPGA設計中一個重要的技巧,不過覺得Xilinx的文檔沒有很好地將它講清楚。

BlackBox的主要想法就是把設計的某一個子模塊單獨綜合,綜合的結果作為一個黑盒子子模塊,上層設計不再對這個模塊進行優化,只能看到它的端口。

How To

要讓XST實現BlackBox,其實非常簡單,將一個子模塊單獨綜合后,會得到ngc文件或者edif文件。在使用這個網表時,在子模塊的描述文件中只要包含端口信息而不要實現的信息(這個文件通常稱為wrapper),這樣XST就會自動尋找project目錄下的網表文件了。不過HDL文件和網表文件的文件名得相同。

如果網表文件不在project目錄中,就要在Translate的Search Macro Path屬性中填寫尋找的路徑,多條路徑可以以|分割。如果使用命令行,則添加多個 -sd

Simple Example

頂層文件top.v/vhd,子模塊是ngc格式的網表module.ngc,子模塊有一個僅描述了端口的wrapper文件module.v/vhd.
HDL中不用包括任何blackbox屬性。綜合器會自動加上的。

在Reference的頁面中有for vhdl和verilog的詳細例子。敬請參閱。

Note

  • 說到wrapper,因為綜合工具綜合時其實是不讀ngc/edif網表的(分析時序除外),子模塊的端口完全是靠wrapper告訴綜合器的。而ngc/edif的網表是在translate(NgdBuild)的時候才將所有的網表組合為一個ngd文件的。
  • 生成用于子模塊的ngc網表時,要在XST屬性中選擇不添加IO Buffer。否則最后使用的時候由于這些不該有的buffer會在Translate的時候報錯。

Reference

Xilinx BlackBox Example

轉載于:https://www.cnblogs.com/sangreal/archive/2011/07/14/2105903.html

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

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

相關文章

Java Compiler disable()方法與示例

編譯器類disable()方法 (Compiler Class disable() method) disable() method is available in java.lang package. disable()方法在java.lang包中可用。 disable() method is used to cause the compiler to stop operation. disable()方法用于使編譯器停止操作。 disable() m…

【神經網絡計算】——神經網絡實現鳶尾花分類

本blog為觀看MOOC視頻與網易云課堂所做的筆記 課堂鏈接: 人工智能實踐:TensorFlow筆記 吳恩達機器學習 疑問與思考 為什么按照batch喂入數據 之前看的視頻里面處理數據都是一次性將所有數據喂入,現在看的這個視頻對數據進行了分組投入。這是為何&#…

第三章 染色動力學理論單元測試

1,準二級動力學模型認為,染色速率與()的二次方成正比 纖維上未被占滿的位置(空位)數量 2,研究染色動力學的意義有() 了解染料走向平衡的速率。 初染速率。 勻染性。 3,求出染料的擴散系數的意義有() 了解各因素對擴散系數的影響。 求出不同溫度下的擴散系數,計算…

CDOJ--1668

原題鏈接:http://acm.uestc.edu.cn/problem.php?pid1668 由于題目意思指的是將分數拆分成不同的單位分數之和,所以就不用考慮將2/3拆成1/31/3這種情況了;又由于好的拆分要求項數即len要少,最小的項要大,故可以采用迭代…

c# xaml語言教程,c#學習之30分鐘學會XAML

1.狂妄的WPF相對傳統的Windows圖形編程,需要做很多復雜的工作,引用許多不同的API。例如:WinForm(帶控件表單)、GDI(2D圖形)、DirectXAPI(3D圖形)以及流媒體和流文檔等,都需要不同的API來構建應用程序。WPF就是看著上面的操作復雜和…

(Android實戰)AsyncTask和Handler兩種異步方式實現原理和優缺點比較

1 AsyncTask實現的原理,和適用的優缺點 AsyncTask,是android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現異步操作,并提供接口反饋當前異步執行的程度(可以通過接口實現UI進度更新),最后反饋執行的結果給UI主線程. 使用的優點: l 簡單,快捷 l 過程可控 使用的缺點…

Java Collections list()方法與示例

集合類list()方法 (Collections Class list() method) list() method is available in java.util package. list()方法在java.util包中可用。 list() method is used to return an array list that contains all the elements returned by the given Enumeration and the way o…

第八章 異常

第八章 異常 異常事件可能是錯誤(如試圖除以零),也可能是通常不會發生的事情。 Python提供功能強大的替代解決方案——異常處理機制。 異常是什么? Python使用異常對象來表示異常狀態,并在遇到錯誤時引發異常。異常…

hdu 1564 Play a game

對于本題,若要當前的 player 贏,剩下所走的步數必須是奇數步。所以對于每步的 player 所放棄的選擇的步數為偶數步。因此,對于整個 game 來說,所放棄的步數 m 為偶數步,設所走的步數為 k ,則 n*n-1mk&…

【電設控制與圖像訓練題】【激光打靶】【opencv測試代碼以及效果】

博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 規則 激光槍自動射擊裝置(E題) 【本科組】 一、任務 設計一個能夠控制激光槍擊發、自動報靶及自動瞄準等功能的電子系統。該…

.NET 小結之內存模型

.NET 小結之內存模型 為什么要解.NET 的內存模型 在.NET下的內存管理、垃圾回收其實大部分不需要我們操心,因為大部分.NET已經幫我們做了,通常情況下也不需要考慮這些。但是如果想要了解一些.NET一些稍微“底層”的原理,如:“裝箱…

C ++ STL中的set :: upper_bound()函數

C STL set :: upper_bound()函數 (C STL set::upper_bound() function) set::upper_bound() function is a predefined function, it is used to get the upper bound of any element in a set. set :: upper_bound()函數是預定義的函數,用于獲取集合中任何元素的上…

c語言if不能判斷u8變量值,C語言變量名命規則.doc

C語言變量名命名規則一、程序風格:???????? 1、嚴格采用階梯層次組織程序代碼:???????? 各層次縮進的分格采用VC的缺省風格,即每層次縮進為4格,括號位于下一行。??? 要求相匹配的大括號在同一列,對…

【電設控制與圖像訓練題】【激光打靶】【openmv測試代碼以及效果】

9.4加入串口通訊,送出靶心坐標、激光坐標、激光所在環數、方位;加入防誤判操作 博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 目錄 規則坐標系代碼總結相關openmv使用文…

MVC3中的視圖文件

在MVC3中的視圖部分,Razor視圖引擎是與以往不同的地方之一,使用Razor的視圖文件再也不是以往的ASPX文件了,是cshtml文件,在新建視圖的時候也會發現增加多了幾類文件 由上到下分別是 MVC 3 Layout Page:與原來Web Form的…

第九章 魔法方法、特性和迭代器

第九章 魔法方法、特性和迭代器 構造函數 構造函數(constructor),它其實就是初始化方法,只是命名為__init__。 構造函數不同于普通方法的地方在于,將在對象創建后自動調用它們。 在Python中,創建構造函數…

PHP 代碼 加密

PHP 代碼 加密 此加密方法支持任意PHP版 代碼如下: <?php function RandAbc($length""){//返回隨機字符串 $str"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; return str_shuffle($str); } $filenameindex.php; $T_k1RandAbc();//隨…

Python字符串| join()方法與示例

join() is an in-built method in Python and it is used to join elements of the list, string etc with the given str separator. join()是Python中的一種內置方法&#xff0c;用于通過給定的str分隔符連接列表&#xff0c;字符串等元素。 Note: Method is called with th…

C語言 鏈表拼接 PTA,PTA實驗 鏈表拼接 (20point(s))

本題要求實現一個合并兩個有序鏈表的簡單函數。鏈表結點定義如下&#xff1a;struct ListNode {int data;struct ListNode *next;};函數接口定義&#xff1a;struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);其中list1和list2是用戶傳入的兩個按…

讀書筆記_Effective_C++_條款十九:設計class猶如設計type

這里初看到”class”和”type”&#xff0c;感覺他們是說的是同一樣東西&#xff0c;但仔細讀了一下&#xff0c;兩者在文中還是有區別的。class側重于自定義的類&#xff0c;而type側重于系統預定義的類&#xff08;像int、double、string、vector&#xff09;。設計好的class…