所谓综合。就是讲HDL语言、原理图等设计输入翻译成由与、或、非们和RAM、触发器登记本逻辑单元的逻辑连接(即网表)。并依据目标和要求(约束条件)优化生成的逻辑连接。

ISE-XST

XST是Xilinx公司自己的综合(Synthsize)工具。当我们完毕输入、仿真以及管脚分配之后就能够进行综合和实现。

双击Synthesize-XST。就能够完毕综合。

一般而言。会有三种结果:

  • 仿真完毕

  • Warn警告

  • ERROR错误

Warn会在Synthesize-XST出现黄色警示。而Error有红色标识。

综合完毕之后能够通过使用XST的View RTLSchematics工具查看RTL级结构图。



Synthesize Proprtties

  • [Optimization Goal]:优化的目标。该參数决定了综合工具对设计进行优化时,是以面积还是以速度作为优先原则。面积优先原则能够节省器件内部的逻辑资源,即尽可能地採用串行逻辑结构,但这是以牺牲速度为代价的。而速度优先原则保证了器件的总体工作速度,即尽可能地採用并行逻辑结构,但这样将会浪费器件内部大量的逻辑资源,因此。它是以牺牲逻辑资源为代价的。

  • [Optimization Effort]:优化器努力程度。这里有[normal]和[high]两种选择方式。对于[normal]。优化器对逻辑设计仅仅进行普通的优化处理,其结果可能并非最好的,可是综合和优化流程运行地较快。假设选择[high],优化器对逻辑设计进行重复的优化处理和分析,并能生成最理想的综合和优化结果,在对高性能和终于的设计通常採用这样的模式。当然在综合和优化时,须要的时间较长。

  • [Use Synthesis Constraints File]:使用综合约束文件。假设选择了该选项,那么综合约束文件XCF有效。

  • [Synthesis Constraints File]:综合约束文件。该选项用于指定XST综合约束文件XCF的路径。

  • [Global Optimization Goal]:全局优化目标。

    能够选择的属性包含有[AllClockNets]、[Inpad To Outpad]、[Offest In Before]、[Offest Out After]、[Maximm Delay]。

    该參数仅对FPGA器件有效,可用于选择所设定的寄存器之间、输入引脚到寄存器之间、寄存器到输出引脚之间,或者是输入引脚到输出引脚之间逻辑的优化策略。

  • [Generate RTL Schematic]:生成寄存器传输级视图文件。该參数用于将综合结果生成RTL视图。

  • [Write Timing Constraints]:写时序约束。该參数仅对FPGA有效,用来设置是否将HDL源码中用于控制综合的时序约束传给NGC网表文件。该文件用于布局和布线。

HDL语言选项

  • [FSM Encoding Algorithm]:有限状态机编码算法。该參数用于指定有限状态机的编码方式。选项有[Auto]、[One-Hot]、[Compact]、[Sequential]、[Gray]、[Johnson]、[User]、[Speed1]、[None]编码方式,默觉得[Auto]编码方式。

  • [Safe Implementation]:将加入安全模式约束来实现有限状态机,将加入额外的逻辑将状态机从无效状态调转到有效状态,否则仅仅能复位来实现,有[Yes]、[No]两种选择,默觉得[No]。

  • [Case Implementation Sytle]:条件语句实现类型。该參数用于控制XST综合工具解释和推论Verilog的条件语句。

    当中选项有[None]、[Full]、[Parallel]、[Full-Parallel],默觉得[None]。 对于这四种选项。差别例如以下:(1)[None]。XST将保留程序中条件语句的原型,不进行不论什么处理;(2)[Full],XST觉得条件语句是完整的,避免锁存器的产生;(3)[Parallel],XST觉得在条件语句中不能产生分支。而且不使用优先级编码器;(4)[Full-Parallel],XST觉得条件语句是完整的,而且在内部没有分支。不使用锁存器和优先级编码器。

  • [RAM Extraction]:存储器扩展。该參数仅对FPGA有效,用于使能和禁止RAM宏接口。

    默觉得同意使用RAM宏接口。

  • [RAM Style]:RAM实现类型。该參数仅对FPGA有效,用于选择是採用块RAM还是分布式RAM来作为RAM的实现类型。

    默觉得 [Auto]。

  • [ROM Extraction]:仅仅读存储器扩展。该參数仅对FPGA有效,用于使能和禁止仅仅读存储器ROM宏接口。默觉得同意使用ROM宏接口。

  • [ROM Style]:ROM实现类型。该參数仅对FPGA有效。用于选择是採用块RAM还是分布式RAM来作为ROM的实现和推论类型。默觉得[Auto]。

  • [Mux Extraction]:多路复用器扩展。该參数用于使能和禁止多路复用器的宏接口。依据某些内定的算法,对于每一个已识别的多路复用/选择器,XST能够创建一个宏,并进行逻辑的优化。能够选择[Yes]、[No]和[Force]中的不论什么一种,默觉得[Yes]。

  • [Mux Style]:多路复用实现类型。

    该參数用于胃宏生成器选择实现和推论多路复用/选择器的宏类型。能够选择[Auto]、[MUXF]和[MUXCY]中的不论什么一种,默觉得[Auto]。

  • [Decoder Extraction]:译码器扩展。该參数用于使能和禁止译码器宏接口,默觉得同意使用该接口。

  • [Priority Encoder Extraction]:优先级译码器扩展。

    该參数用于指定是否使用带有优先级的编码器宏单元。

  • [Shift Register Extraction]:移位寄存器扩展。

    该參数仅对FPGA有效,用于指定是否使用移位寄存器宏单元。默觉得使能。

  • [Logical Shifter Extraction]:逻辑移位寄存器扩展。

    该參数仅对FPGA有效,用于指定是否使用逻辑移位寄存器宏单元。

    默觉得使能。

  • [XOR Collapsing]:异或逻辑合并方式。该參数仅对FPGA有效。用于指定是否将级联的异或逻辑单元合并成一个大的异或宏逻辑结构。默觉得使能。

  • [Resource Sharing]:资源共享。该參数用于指定在XST综合时,是否同意复用一些运算处理模块。如加法器、减法器、加/减法器和乘法器。

    默觉得使能。

    假设综合工具的选择是以速度为优先原则的。那么就不考虑资源共享。

  • [Multiplier Style]:乘法器实现类型。该參数仅对FPGA有效。用于指定宏生成器使用乘法器宏单元的方式。选项有[Auto]、Block]、[LUT]和[Pipe_LUT]。默觉得[Auto]。选择的乘法器实现类型和所选择的器件有关。

特殊选项

Xilinx特殊选项用于将用户逻辑适配到Xilinx芯片的特殊结构中。不仅能节省资源,还能提高设计的工作频率

  • [Add I/O Buffers]:插入I/O缓冲器。

    该參数用于控制对所综合的模块是否自己主动插入I/O缓冲器。默觉得自己主动插入。

  • [Max Fanout]:最大扇出数。该參数用于指定信号和网线的最大扇出数。

    这里扇出数的选择与设计的性能有直接的关系,须要用户合理选择。

  • [Register Duplication]:寄存器复制。该參数用于控制是否同意寄存器的复制。对于高扇出和时序不能满足要求的寄存器进行复制,能够降低缓冲器输出的数目以及逻辑级数,改变时序的某些特性,提高设计的工作频率。默觉得同意寄存器复制。

  • [Equivalent Register Removal]:等效寄存器删除。

    该參数用于指定是否把寄存器传输级功能等效的寄存器删除。这样能够降低寄存器资源的使用。假设某个寄存器是用Xilinx的硬件原语指定的,那么就不会被删除。默觉得使能。

  • [Register Balancing]:寄存器配平。该參数仅对FPGA有效,用于指定是否同意平衡寄存器。可选项有[No]、[Yes]、 [Forward]和[Backward]。採用寄存器配平技术。能够改善某些设计的时序条件。当中。[Forward]为前移寄存器配平。[Backward]为后移寄存器配平。採用寄存器配平后,所用到的寄存器数就会对应地增减。

    默觉得寄存器不配平。

  • [Move First Flip-Flop Stage]:移动前级寄存器。该參数仅对FPGA有效,用于控制在进行寄存器配平时。是否同意移动前级寄存器。假设[Register Balancing]的设置为[No],那么该參数的设置无效。

  • [Move Last Flip-Flop Stage]:移动后级寄存器。该參数仅对FPGA有效。用于控制在进行寄存器配平时。是否同意移动后级寄存器。假设[Register Balancing]的设置为[No],那么该參数的设置无效。

  • [Pack I/O Registers into IOBs]:I/O寄存器置于输入输出块。

    该參数仅对FPGA有效,用于控制是否将逻辑设计中的寄存器用IOB内部寄存器实现。在Xilinx系列FPGA的IOB中分别有输入和输出寄存器。

    假设将设计中的第一级寄存器或最后一级寄存器用IOB内部寄存器实现,那么就能够缩短IO引脚到寄存器之间的路径,这通常能够缩短大约1~2ns的传输时延。默觉得[Auto]。

  • [Slice Packing]:优化Slice结构。该參数仅对FPGA有效,用于控制是否将关键路径的查找表逻辑尽量配置在同一个Slice或者CLB模块中,由此来缩短LUT之间的布线。这一功能对于提高设计的工作频率、改善时序特性是很实用的。

    默觉得同意优化Slice结构。

  • [Optimize Instantiated Primitives]:优化已例化的原语。该參数控制是否须要优化在HDL代码中已例化的原语。默觉得不优化。

以上三个部分分别用于设置综合的全局目标和总体策略、HDL硬件语法规则以及Xilinx特有的结构属性。

基于Xilinx的Synthesize的更多相关文章

  1. 基于Xilinx FPGA的视频图像采集系统

    本篇要分享的是基于Xilinx FPGA的视频图像采集系统,使用摄像头采集图像数据,并没有用到SDRAM/DDR.这个工程使用的是OV7670 30w像素摄像头,用双口RAM做存储,显示窗口为320x ...

  2. 基于Xilinx Zynq Z7045 SoC的CNN的视觉识别应用

    基于Xilinx Zynq Z7045 SoC的CNN的视觉识别应用 由 judyzhong 于 星期三, 08/16/2017 - 14:56 发表 作者:stark 近些年来随着科学技术的不断进步 ...

  3. 基于xilinx Zynq UltraScale MPSoC平台的核心板及开发板介绍-米尔科技

    近日,米尔科技推出国内首款基于xilinx Zynq UltraScale+MPSoC 平台的核心板及开发板.其优势主要有:采用16纳米制程,相比Znyq7000系列每瓦性能提升5倍,且单芯片融合4核 ...

  4. 基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡

    基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡 1. 板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片, ...

  5. 基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡

    基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡 1. 板卡概述   板卡主芯片采用Xilinx公司的XC7K325T-2FFG900 FPGA,pin_ ...

  6. 基于Xilinx Zynq的计算处理平台

    基于Xilinx Zynq XC7Z045 FFG 900的高性能计算模块 本模块基于Xilinx公司的FPGA XC7Z045 FFG 9000 芯片, 支持64bitDDR3, 容量2GByte: ...

  7. PCIE_DMA实例五:基于XILINX XDMA的PCIE高速采集卡

    PCIE_DMA实例五:基于XILINX XDMA的PCIE高速采集卡 一:前言 这一年关于PCIE高速采集卡的业务量激增,究其原因,发现百度"xilinx pcie dma",出 ...

  8. 番茄钟的实现(基于Xilinx EGO1学习板)

    番茄钟设计 一.总体设计 1.番茄工作法简介 番茄工作法由意大利的奇列洛创造.其内容就是:工作25分钟休息5分钟,循环四次后休息15分钟. 本项目就是基于Xilinx Ego1开发板实现一个计时器,该 ...

  9. FPGA课设-基于Xilinx Basys2开发板的除法器设计

    介绍一下Basys开发板: Basys2 FPGA开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路.Basys2是围绕着一个Spartan-3E FPGA芯片和一个Atmel ...

随机推荐

  1. 转: SVN和Git的一些用法总结

    转:http://www.codelast.com/?p=5719 转载请注明出处:http://www.codelast.com/ 以下都是比较基础的操作,高手们请绕道,不必浪费时间来看了. (A) ...

  2. Python——Shell编程关于Sha-Bang(#!)

    Q. #!的名字为什么叫Sha-Bang? A. Sha-Bang是Sharp和Bang的组合词.Sharp for #, Bang for ! 类似的情况是,C#通常被称为C Sharp Q. Sh ...

  3. c++中的继承和组合

    C++的“继承”特性可以提高程序的可复用性.正因为“继承”太有用.太容易用,才要防止乱用“继承”.我们要给“继承”立一些使用规则: 一.如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B  ...

  4. Java之JVM调优案例分析与实战(2) - 集群间同步导致的内存溢出

    环境:一个基于B/S的MIS系统,硬件为两台2个CPU.8GB内存的HP小型机,服务器是WebLogic 9.2,每台机器启动了3个WebLogic实例,构成一个6个节点的亲合式集群. 说明:由于是亲 ...

  5. 深度介绍Linux内核是如何工作的

    本文发表于Linux Format magazine杂志,作者从技术深度上解释了Linux Kernel是如何工作的.相信对Linux开发者来说有不小的帮助. 牛津字典中对"kernel&q ...

  6. iOS-仿智联字符图片验证码

    概述 随机字符组成的图片验证码, 字符位数可改变, 字符可斜可正排列. 详细 代码下载:http://www.demodashi.com/demo/10850.html 项目中有时候会有这种需求: 获 ...

  7. JS字符编码函数区别分析

    http://www.jb51.net/article/14657.htm js对文字编码有3个函数: escape,encodeURI,encodeURIComponent, 对应的解码函数:une ...

  8. 为MFC中的ListBox添加水平滚动条

    我们知道,MFC中的水平滚动条并不像垂直滚动条那样的智能.当文字超出ListBox的宽度时,水平滚动条并不会自己出现,我们需要手动的调用CListBox中的函数SetHorizontalExtent设 ...

  9. 常用RGB颜色表

      作者:张家珩2005-12-02 20:51分类:默认分类     R G B 值   R G B 值   R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF0 ...

  10. linux下利用shell脚本和mysqldump热备份和恢复mysql

    对mifeng数据库进行每周六3:33完全热备份,并可以完全恢复! 一.先建立备份脚本 #vi /mifengbackup/backup.sh #!bin/bash cd /mifengbackup ...