FPGA技术的一些基本概念(综合、BlackBox)(转)

摘要:
原文:http://blog.sina.com.cn/s/blog_6254a8ca0100i0wr.html原文也随之改变。哈哈,每个人都转得更多,转得更健康。Xilinx的一些内容已被删除。前言合成是将我们的设计转换为可由FPGA读取的配置文件的第一步。本文试图从基础知识开始向每个人解释全面的基础知识和高级技能。所有功能都有其应用程序环境。当我们知道按钮选项具有某种功能时,我们应该知道何时

原文:http://blog.sina.com.cn/s/blog_6254a8ca0100i0wr.html

原文也是转的,哈哈,大家多转转,转转更健康。删除了一些Xilinx的东西

前言

综合是将我们的设计转化为FPGA可以读懂的配置文件的第一个步骤。本文努力从0基础开始向大家说明综合的基本知识和高级技巧。
话说所有的功能都有它应用的环境。在了解某个按钮选项有某个功能的时候,我们更应该了解应该在什么时候什么情况使用它。
所以我以这种问答的形式,向大家展示综合过程中可能遇到的方方面面的问题以及解决的方法。

-----------基础知识--------------

1. 什么是综合?
综合就是把HDL语言/原理图转换为综合网表的过程。

2. 什么是综合网表?
综合网表就是综合的结果啦。
综合网表的业界标准是EDIF格式。文件后缀通常为.edn, .edf, .edif。EDIF网表是可以用文本编辑器打开的文本文件。
Xilinx自家的综合结果是NGC网表。NGC网表是二进制的文件,不能用文本编辑器打开观察。

3. 综合网表中包含一些什么内容?
综合网表中除了包含从HDL语言中infer(推断)出的与门、非门等组合逻辑寄存器等时序逻辑之外,还包含FPGA特有的各种原语(Primitive)比如LUT,BRAM,DSP48(Xilinx),甚至PowerPC(Xilinx),PCIe等硬核模块,以及这些模块的属性和约束信息。

4. 综合工具有哪些?
Xilinx自家的XST,Synopsys(收购了Synplicity)的Synplify,Mentor Graphic的Precision 都是使用最广泛的综合工具。

5. 这些综合工具有什么特点呢?
XST - 随ISE自带,免费,对新器件支持快。但是对loop循环支持不如Synpilfy。综合结果的时序有时没有Synplify好。
Synplify - 应用最广泛。综合结果的时序性能和占用面积都不错,大器件的综合时间也相比XST有优势。但是非常贵,对新器件支持比XST晚一拍。
Precison - 没用过,不发表评论。

--------复制寄存器相关事项--------

(Altera的参考,当需要产生大量的寄存器时)

1. 什么时候要复制寄存器?
- Fanout太多导致延时增大(在FPGA中不是最主要的因素)
- Fanout太分散相距太远导致布局布线后出现过长的走线

2. 复制寄存器有哪些方法?
- 手动作HDL Coding,并且为了防止这些寄存器再次被综合器优化合并,需要将“Equivalant Register Removal”设置为False。
- 让工具自动复制。为需要复制的寄存器添加Max_Fanout约束,并关闭Resource Sharing和Equivalent Register Removal。注意当Max_Fanout约束设置得过小时,可能不会生效。

--------使用BlackBox注意事项------------
1. 什么是BlackBox
- 一个大的设计中可以用到一系列网表文件作为输入的一部分而并不全部使用HDL文件
当综合这个大设计时综合器不需要知道这个网表文件是怎样实现的,而只需要知道它的输入输出接口就可以了。这样的网表就称为黑盒子,因为我们不需要看到它的内部情况。
- 通常付费IP都会以BlackBox的形式

2. 如何使用BlackBox
- BlackBox网表可以是EDIF或NGC文件。
- 每个BlackBox网表都需要有一个与之相对应的HDL文件来注明它的端口。这个HDL只说明BlackBox的端口信息,而不提供具体实现信息。这个只提供端口信息的HDL文件称为Wrapper。Wrapper的名字通常需要与BlackBox网表的名字相同。
- 在ISE工程中使用BlackBox时只需要将它的Wrapper添加到工程中。然后像普通的模块一样在其上层声明和例化就可以使用。
- BlackBox网表文件可以放在ISE工程目录中,也可以放在其他任意文件夹内。当不放在ISE工程目录时,需要在Translate属性中将Macro Search Path指向这个目录。多个目录使用"|"分割。

3. 如何制作BlackBox
- BlackBox只是普通网表而已。XST的综合结果就可以直接作为BlackBox使用。
- 通常BlackBox外部还会连接其他逻辑,所以BlackBox中一般不插入IOBUF。在XST属性中去除Insert IO Buffer的选项。

免责声明:文章转载自《FPGA技术的一些基本概念(综合、BlackBox)(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[ 伪装 ] 修改User-Agent伪装浏览器信息操作系统解决adb网络连接中出现的“由于目标计算机积极拒绝,无法连接”错误下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

深入理解CPU和异构计算芯片GPU/FPGA/ASIC (上篇)

随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已远远超出了传统CPU处理器的能力所及。摩尔定律失效的今天,关注“新“成员(GPUFPGAASIC)为数据中心带来的体系架构变革,为业务配上一台动力十足的发动机。 1 异构计算:WHY...

FPGA Verilog HDL 系列实例--------步进电机驱动控制

【连载】 FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心。那么,下面我们就了解下什么是步进电机,它是怎么控制的。 一、步进电机相关知识简介 1、步进电机概述 步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上...

黑金社区 FPGA 那些事儿--Verilog 建模设计 学习 试验九 VGA显示 试验

最近这段时间忙着搬家,然后准备生产相关事情,各种杂事~ 然后光棍节来,给自己和老爸老妈买点东西。。。 效率好低。。要检讨啊~ 不能找借口! 黑金的试验九 --VGA的用法 VGA 液晶显示 主要由5个信号控制 HSYNC : 列同步信号 VSYNC : 行同步信号 RED : 红分量 GREEN : 绿分量 BLUE : 蓝分量 VGA 的扫描是固定的。一...

2基于fpga实现5.0英寸的TFT显示屏的控制

实战描述:通过按键来切换TFT屏上的八种不同的颜色。 LCD的显示与VGA的显示时序基本一致。不过他们与fpga的引脚不一样,并且相对VGA,LCD与fpga多连接一个引脚,tft_de。VGA时序: 一行或一场(又称一帧)有四部分:低电平同步脉冲、显示后沿、有效数据、显示前沿。800*480是有效数据的区域。 行同步: 场同步: 输入数据的行时序参...

FPGA 移交代码学习——Map错误 ODDR2 使用问题

这段时间一直忙贴片生产相关事情,又是搬家,都没有什么时间好好整整。 前人移交过来的记录仪代码,发现一个BUG , 1 wire [8:0] fchk_shift_r1 = fenergy_chk<<1; 2 wire [9:0] fchk_shift_r2 = fenergy_chk<<2; 3 wire [10:0]fchk_sh...

用FPGA实现视频中物体边缘二值化

       对于高速视频图像中的物体轮廓提取中,图像的二值化,采用软件方式,速度无法满足需要,因此要采用FPGA方案,这样可以实现二值化速度和帧率一样,完全和视频同步。 一、算法原理:  边缘二值化的算法很多,象sobel法,roberts法,拉普拉斯法,导数法。为了简单化,采用导数法。        视频图像每帧扫描顺序如下图的黑色箭头所示     ...