信号控制技巧

embedded/2024/11/25 10:08:18/
信号控制技巧
检查是否真正需要全局复位。
避免异步控制信号。
保持时钟、使能和复位信号极性一致。
勿将置位和复位编码到同一寄存器元件中。
如果确实需要异步复位,应务必与异步复位的解除保持同步。
掌握推断的结果
您的代码最终必须映射到器件资源上。应努力掌握所针对架构中的关键算术、存储和逻辑元件。因此在对设计功能进
行编码时,应预计可供代码映射的硬件资源。了解这种映射,可让您尽早洞察出任何潜在的问题。
下面的实例将证明掌握硬件资源和映射如何有助于弄清楚设计决策:
对大于四位的加法、减法和加减法,一般会使用进位链,而且每两位相加使用一个 LUT (即 8 位与 8 位相加使用
8 个寄存器和相关的进位链)。在三值相加时或把一个加法器的结果与另一个值且在其间不使用寄存器的情况下相
加时,每三位相加使用一个 LUT (即 8 位、 8 位、 8 位相加也使用 8 个寄存器和相关的进位链)。
如果需超过一次以上的相加,可以在每两级相加后设置寄存器以实现三值相加,从而将器件的占用率减半。
一般乘法针对的是 DSP 块。位宽不足 18x25 (在 UltraScale 器件中为 18x27 )的符号位映射到单个 DSP 块。会产
生更大乘积的乘法可映射到一个以上的 DSP 块。 DSP 块内部有流水线化资源。
适当地将推断到 DSP 块中的逻辑流水线化,能够显著提升性能和降低功耗。在描述乘法的时候,围绕其进行三级
流水线化可实现最佳的建立、输出相对于时钟时延 (clock-to-out) 和功耗特性。太浅的流水线化 (一或零级)可能
造成时序问题,增加这些块的功耗,同时 DSP 中的流水线寄存器未得到利用。
深度为 16 位或者更浅的两个 SRL 可以映射到一个 LUT ,高达 32 位的单个 SRL 也可以映射到一个 LUT 中。
对用条件代码得到标准 MUX 组件的情况:
°
4 1 MUX (4-to-1 MUX) 可实现在单个 LUT 中,产生一个逻辑层。
°
8 1 MUX (8-to-1 MUX) 可实现在两个 LUT 和一个 MUXF7 组件中,实际上仍然只产生一个逻辑 (LUT)
层。
°
16 1 MUX (16-to-1 MUX) 可实现在四个 LUT 及一个 MUXF7 MUXF8 组件组合中,实际上还是只产生
一个逻辑 (LUT) 层。
LUT MUXF7 MUXF8 组合在同一 CLB/slice 结构中,产生的组合延迟极低。因此这些组合可视为等同于仅一个逻
辑层。了解这一代码有助于更好地管理资源,也有助于更好地鉴别和控制逻辑层,设置合理的数据路径。
对通用逻辑而言,考虑给定寄存器具有唯一的输入数。根据这个数量,就可以估计出可能实现的 LUT 数量和逻辑层数
量。一般来说, 6 个或六个以下输入会产生一个逻辑层。理论上两个逻辑层可以管理多达 36 个输入。但实际上两个逻
辑层最多仅能管理 20 个输入。一般来说如果输入数量越多,逻辑等式越复杂,那么需要的 LUT 和逻辑层就越多。
重要提示: 检查硬件资源的可用性以及如何在设计周期早期高效率地加以运用,从而简化修改工作。这种方法与在时
序收敛过程中等待直到设计周期尾声相比,更能提供优质的结果。
推断 RAM ROM
可以用多种方式设定 RAM ROM 。每种方法都有各自的优势和不足。
推断
优势:
°
高度可移植
°
便于阅读取和理解
°
自我文档化
°
快速仿真
不足:
°
不能访问所有可用的 RAM 配置
°
可能产生不够理想的结果
由于推断一般能产生良好的结果,因此建议采用此方法,除非不支持指定的用途,或是产生的结果在性能、占位面
积或功耗上不令人满意。如果发生这种情况,建议尝试其它方法。
在推断 RAM 时,赛灵思建议使用 Vivado 工具中提供的 HDL 模板。如前文所述,使用异步复位会给 RAM 推断造
成不利影响,应避免使用。请参阅 使用 Vivado Design Suite HDL 模板
赛灵思可参数化宏 (XPM)
优势:
°
可在赛灵思器件系列之间移植
°
快速仿真
°
支持不对称宽度
°
可预测的 QoR
不足:
°
仅支持 XPM 选项
XPM 是基于不能修改的固定模板的推断构建的。因此,他们可以保证 QoR ,并且可以支持标准推断没有的功能。
当标准推断不支持所需的功能时,赛灵思建议您改用 XPM
注释: 当使用 compile_simlib 编译仿真库时, XPM 会自动编译。如需了解更多信息,请参阅《 Vivado Design
Suite 用户指南:逻辑仿真》 (UG900) [ 参照 14]
直接实例化 RAM 原语
优势:
°
对实现方案有最高控制权限
°
能访问块的各项功能
不足:
°
代码可移植性差
°
功能和用途冗长繁琐,难以理解
• IP 目录提供的 IP
优势:
°
在使用多个组件时一般能提供更优化的结果
°
设定和设置简单
不足:
°
代码可移植性差
°
需要管理核

http://www.ppmy.cn/embedded/140354.html

相关文章

阿里云VLDB顶会论文在Async-fork在redis中应用解读

1.背景 该论文主要是解决redis在持久化(RDB,AOD)以及主从全量同步时都会调用fork来创建子进程获取内存快照,由于fork需要复制父进程页表,此时如果内存比较大,也就是我们常说的大key过多,就会导…

一次成功尝试:旧电脑通过网线,连接带无线网卡电脑上外网

一 引言 最近,为一台旧电脑安装了ubuntu系统,需要连网安装一些软件。 但是电脑太旧了,也没有无线网卡,怎么办呢? 手头还有另外一台笔记本电脑,带无线网卡,于是,想尝试通过笔记本电…

游戏引擎学习第22天

移除 DllMain() 并成功重新编译 以下是对内容的详细复述与总结: 问题和解决方案: 在编译过程中遇到了一些问题,特别是如何告知编译器不要退出程序,而是继续处理。问题的根源在于编译过程中传递给链接器的参数设置不正确。原本尝试…

高级网络安全——移动IP (GSM认证和密钥协议)(week6)

文章目录 一、前言二、重点概念移动IP认证移动IP认证的重要性移动IP认证扩展安全参数索引(SPI)认证字段计算认证标签防重放机制移动系统安全移动环境移动系统安全的关键问题GSM认证与密钥协商GSM认证与密钥协商的步骤步骤0 - 设置步骤1步骤2步骤3步骤4步骤5步骤6问题探讨一、…

第十章JavaScript的应用课后习题

1.在网页中显示一个工作中的“数字时钟”。 参考代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>动态时钟</title><style>.all{width: 600px;height: 300px;margin: 100px auto;text-align…

JavaScript中的this指向绑定规则(超全)

JavaScript中的this指向绑定规则&#xff08;超全&#xff09; 1.1 为什么需要this? 为什么需要this? 在常见的编程语言中&#xff0c;几乎都有this这个关键字&#xff08;Objective-C中使用的是self),但是在JavaScript中的this和常见的面向对象语言中的this不太一样 常见面…

Puppeteer 和 Cheerio 在 Node.js 中的应用

Puppeteer 和 Cheerio 在 Node.js 中的应用 引言 在现代 Web 开发中&#xff0c;自动化测试、数据抓取和页面分析是常见的需求。Node.js 提供了丰富的工具和库来满足这些需求。本文将介绍两个在 Node.js 中常用的库&#xff1a;Puppeteer 和 Cheerio&#xff0c;它们分别用于…

学习ASP.NET Core的身份认证(基于Cookie的身份认证2)

采用基于Cookie的身份认证&#xff0c;在调用services.AddAuthentication注册服务时&#xff0c;可以通过CookieAuthenticationOptions对象按需设置Cookie属性&#xff0c;常用的包括以下属性&#xff08;更详细的介绍见参考文献2&#xff0c;微软的帮助文档中的介绍看的头大&a…