目录
背景
在数据手册 Spartan-6 Libraries Guide for HDL Designs中看到了有关buffer的一些介绍,这里就根据掌握简记之。
从手册的开头声明,或许可以看出看这些东西有什么用途:
This HDL guide is part of the ISE documentation collection. A separate version of this guide is available if you prefer to work with schematics.
This guide contains the following:
• Introduction.
• A list of design elements supported in this architecture, organized by functional categories.
• Individual descriptions of each available primitive.
此HDL指南是ISE文档集的一部分。 如果您更喜欢使用原理图,可以使用本指南的单独版本。
本指南包含以下内容:
• 介绍。
•此体系结构中支持的设计元素列表,按功能类别组织。
•每个可用原语的单独描述。
即便如此,即使我不喜欢用原理图设计,了解这部分知识也大有裨益,作为一个硬件工作中,怎么能不了解FPGA设计中支持的设计元素呢?并且一些原语的描述对于我们了解它们在FPGA电路中的作用是很有帮助的。
在正式介绍本部分知识之前,还有必要掌握一些前提性的知识:
For each design element in this guide, Xilinx evaluates the four options and recommends what we believe is the best solution for you. The four options are:
• Instantiation - This component can be instantiated directly into the design. This method is useful if you want to control the exact placement of the individual blocks.
• Inference - This component can be inferred by most supported synthesis tools. You should use this method if you want to have complete flexibility and portability of the code to multiple architectures. Inference also gives the tools the ability to optimize for performance, area, or power, as specified by the user to the synthesis tool.
• Coregen & Wizards - This component can be used through Coregen or Wizards. You should use this method if you want to build large blocks of any FPGA primitive that cannot be inferred. When using this flow, you will have to re-generate your cores for each architecture that you are targeting.
• Macro Support - This component has a UniMacro that can be used. These components are in the UniMacro library in the Xilinx tool, and are used to instantiate primitives that are complex to instantiate by just using the primitives. The synthesis tools will automatically expand the unimacros to their underlying primitives.
对于本指南中的每个设计元素,Xilinx评估了四个选项,并推荐我们认为最适合您的解决方案。 四个选项是:
•实例化 - 可以将此组件直接实例化到设计中。 如果要控制各个块的确切位置,此方法很有用。
buffer原语一般只需要实例化就可以用了。
•推理 - 大多数支持的综合工具都可以推断出该组件。 如果希望将代码具有完全的灵活性和可移植性,则应使用此方法。 推理还使工具能够根据用户对综合工具的指定来优化性能,面积或功率。
这个我还不是太了解,我们还是用到了再分析吧。
•Coregen和Wizards - 此组件可通过Coregen或Wizards使用。 如果要构建无法推断的任何FPGA原语的大块,则应使用此方法。 使用此方法时,您必须为要定位的每个体系结构重新生成核。
这个就比较常见了,就是产生一个IP核。
•宏支持 - 该组件具有可以使用的UniMacro。 这些组件位于Xilinx工具的UniMacro库中,用于实例化一些很难仅通过原语实例化的原语。 综合工具将自动将unimacros扩展到其底层原语。
宏就是赛灵思提供的一些硬件宏,例如MUX,RAM等。
好了,大致了解这么多就可以了,本博文是有关buffer的专题介绍,那就开始这块内容了。
BUFG
全局时钟Buffer