【转】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.mzph.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…