所谓综合。就是讲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使用教程总结(图文丰富,相当详细)

    转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ...

  2. 关于loader加载的东西必须是继承sprite

    如果不是继承sprite

  3. HDU2089 ------不要62(数位dp)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. docker桥接

    Ifconfig docker0 down Brctl delvr docker0 进入到网卡配置文件 修改eth0网卡参数 加入BIRDGE=br0 创建一个br0 其中ip为真实机的ip 更改do ...

  5. Codeforces Round #FF (Div. 1)-A,B,C

    A:DZY Loves Sequences 一開始看错题了. .sad. 题目非常easy.做法也非常easy.DP一下就好了. dp[i][0]:到当前位置,没有不论什么数改变,得到的长度. dp[ ...

  6. filter中的dispatcher解析

    两种include方式 我自己写了一个original.jsp,另外有一个includedPage.jsp,我想在original.jsp中把includedPage.jsp引进来有两种方式: 1.& ...

  7. ionic build android 失败 及 解决方案

    原因:没有接受以下SDK组件的许可协议 解决方案: install Android Support Repository

  8. ubuntu执行级别,设置单用户模式

    redhat的runlevel级别定义例如以下:   0:关机.不能将系统缺省执行级别设置为0,否则无法启动. 1:单用户模式.仅仅同意root用户对系统进行维护. 2:多用户模式.但不能使用NFS( ...

  9. C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质

    事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结果依旧是正确的.经过半小时的反汇编调试.证明了我的猜想,如今在博客里分享.也是对C语言编译原理的一 ...

  10. xtrabackup备份方式搭建一个mysql slave

    以前mysql搭建新备库都是在现在业务较小的备库上停止同步或停止数据库,然后拷贝数据库到新备库,配置好新备库后,再开启同步或数据库.然而,这次没有空闲备库用来搭新备库.需要从一个业务繁忙的数据库中搭建 ...