FPGA从Xilinx 的7系列学起(9)

2.8 ram资源的应用
用户做设计的时候发现自己的设计的代码可能被识别为ram资源,这个时候感觉很爽。有的时候啥也推断不出来,可能会影响设计的性能。
那么什么样的资源才会被设计工具推断出来呢?
单端口,真双端口,简单双端口块ram可以推断.
rtl代码来描述希望ram功能的,将会被工具推断为ram的资源。
rtl描述必须有如下特点:
同步读写
每个时钟周期只有一个或两个地址被访问
同步输出复位
这就要求用户必须对自己的代码有一个非常清晰的认识才可以如此选择,一个不小心用户可能得到一个不是他想要的结果,这个对用户来说,是一个灾难性的选择。
综合策略也可以被用来帮助综合工具选择合适的资源。例如,当一个ram可以既可以在分布式selectram?存储器,又可以在blockram来实现时候,可以在综合策略里面选择使用blockram来选择使用的资源。
另外,切记fifo无法被工具推断出来。
可能很多用户非常想知道如何来正确编写hdl的代码。下面就啰嗦两句hdl代码风格的事情。因为这个也关系到上面说的一些问题,让用户得到他想使用的资源。特别是新用户面临的最大挑战是确保他们使用正确的推理最远。
首先,检查用户是否正确使用了推断的资源的最佳方法之一就是用户通过综合工具原理图查看器直观的进行观察。用户使用该观察器后会发现无论用户的功能如何变化,用户使用的最基本单元,有lut, 移位寄存器的lut,分布式ram和blockram是没有变化的。所有slice的资源都是可以通过综合器综合出来的。但是用户必须保证代码的正确性。这意味着,如果你是用的控制信号和底层的触发器原语需求不匹配,那么你就无法得到一个正确的触发器资源使用。可能还需要多一个lut来帮你实现功能。同样移位寄存器的lut不能提前赋值,不能有复位信号,而且只支持串行功能。当用户代码是并行处理,那么只会得到一个纯粹的寄存器,而不是移位寄存器,这个可能并不是用户想要的。同样多路复用器应该使用case语句,进行逻辑运算应该使用正确的算术运算符。例如,不能既使用了异或功能,又期望综合器综合出进位逻辑资源,它是不可能实现的。一般,我们的设计都是使用工具进行推断,这几乎是所有用户的首选。他既保障易读性,又增加了代码的可重复性。然而我们有时候不得不使用例化ip来实现自己想要的功能。
xilinx提供了两种途径来完成这个例化功能。
第一是原语例化。
用户可以发现,从该库指南可以帮助用户正确使用xilinx的原语。这也是始终是学习如何推断出相应的资源,并把它融入到用户的逻辑中的最有效的资源。
该库指南包含了xilinx的所有可能的基元和宏。所有原语和宏都详细列出并包括一个示意图,端口名(hdl实例),属性名称的功能描述,而对组件的行为的真值表描述。对使用的库指南的好处是,当一种资源的推理有时是具有挑战性的,用户可以随时例化它到他想要的原始设计中去。
core generator和 ip catalog提供了很多优秀的ip资源供用户选择和使用。虽然有一些可能需要付一点费用,但是大部分ip xilinx都是提供免费使用的。这个ip有功能简单应用,也有非常复杂的ip。这个架构导向的ip中最常用的之一就是时钟管理单元的例化。使用ip catalog可以帮助用户生成高层次的组件,这些ip对该功能进行优化,可以使用户设计的东西轻松的实现。

电源设计之拓扑选择
5G对车联网和无人驾驶的推动
M2M发展的概述,它与物联网的区别是什么
OpenHarmony基础
橙群微电子发布世界上最小的WLCSP封装蓝牙SoC
FPGA从Xilinx 的7系列学起(9)
电力负荷等级
苹果今日起正式在华开售白色iPhone 4
IBM CEO Arvind Krishna 在 2023 世界互联网大会乌镇峰会的致辞:与各方密切合作,共建开放 AI 生态
如何读取电容值?如何读取写在电容器上的电容器值?
需求激增 MCU解密成国产智能芯片主战场
官方新推出显卡控制中心Beta版,英特尔的独显将至
微软研究的新专利暗示HoloLens将具有眼球追踪技术
关于高精度磁感式磁环编码器的性能分析和应用介绍
电池充电器与电池的测试测量
Surface Go 2基准测试曝光 搭载Core m3-8100Y 双核 Amberlake 处理器
全球主要国家车企发展报告:2020年总结及趋势
数字隔离技术在新能源汽车中的应用
我国工业机器人领域也有望率先在控制器这一关键零部件上取得重要突破
马化腾在南方日报撰文:聚焦新基建,抢占大湾区数字经济发展先机