冬 卉
给时间以生命,而不是给生命以时间
展开
-
逻辑这回事(八)---- 时钟与复位
时钟设计总结时钟和复位是FPGA设计的基础,本章总结了一些逻辑时钟复位设计、使用中出现的问题,给出了设计要点,避免后续问题重犯。时钟和复位,本文都先从板级谈起,再到FPGA芯片级,最后到模块级别。仅在此做部分总结,不足或不正确之处,还望指正。板级时钟方案严禁出现 CPU接口时钟来源于片外锁相环且锁相环的初始化、配置同时依赖 FPGA。遇到这种情况必须硬件改板或修改时钟方案。【解析】localbus时钟依赖FPGA片外锁相环LMK04828,而LMK04828的初始化配置又同时依赖F原创 2024-07-06 01:00:00 · 1163 阅读 · 0 评论 -
逻辑这回事(七)---- 器件基础
Xilinx FPGA创建了先进的硅模块(ASMBL)架构,以实现FPGA具有针对不同应用程序领域优化的各种功能组合的平台。通过这一创新,Xilinx提供了更多的设备选择,使客户能够为其特定设计选择具有正确的功能和功能组合的FPGA。ASMBL体系结构通过以下方式突破了传统的设计障碍:消除几何布局约束,如I/O数量和阵列大小之间的依赖关系;允许将电源和接地放置在芯片上的任何位置,增强芯片上的电源和接地点分布;允许独立于彼此和周围资源对不同的集成IP块进行扩展。芯片主要由6部分完成,分别为:基本可编程原创 2024-06-30 17:31:29 · 393 阅读 · 0 评论 -
逻辑这回事(六)---- 数字基础
直接使用DSP中的patterndetect和patternbdetect,这两个是比较器的输出,作用就是把DSP输出端的任意bit和一个数的对应bit做比较,如果相等,则patterndetect = 1,如果按位相反,则patternbdetect =1.这个用于比较的数可以是参数设定的固定数,也可以是C端口的输入数据,而Bit选择也可以通过参数或C端口进行。非对称饱和就是一般的饱和,简称为饱和。,c2,c1,c0,对于32-bit,64-bit,128-bit等加法器,进位链将显得更加长。原创 2024-06-22 15:11:22 · 355 阅读 · 0 评论 -
逻辑这回事(五)---- 资源优化
通过分析定点化方案,发现加法器的输出结果不必全部保留,通过将u(57,47)饱和到u(47,37),可使参与加法运算数据的位宽减少到37bit,而不再是46bit。算法优化可以分为两类,一类是无损失性能的优化,例如复数乘法一般需要4个乘法器,但在某些位宽情况下,用3个乘法器能够达到一样的效果,性能无损失,但面积会更优。例如统计有效数据包的个数,假设数据中存在pkt_id,pkt_id为0~63,则ram的深度为64,pkt_id用于作为读写地址,当匹配到pkt_id后,相应的地址的内容加1。原创 2024-06-15 10:39:25 · 473 阅读 · 0 评论 -
逻辑这回事(四)----时序分析与时序优化
本文先从基本时序参数讲到时序分析的理论,然后由浅入深讲到时序约束,并根据项目经验给出具体实例;再讲到FPGA如何解决时序违约,最后给出FPGA高速设计的具体方法。原创 2024-06-08 12:54:41 · 563 阅读 · 0 评论 -
逻辑这回事(三)----功耗优化
Short-current功耗(Pshort)是指 CMOS电路的输入变化导致输出状态翻转的时候,在电源和地之间形成的短暂通路所消耗的功耗(可以理解为Q1、Q2的延迟不一致,当Q1导通时,Q2也导通,会形成一瞬间的VDD到GND的通路), Pshort = A*V*Isc*f,其中,A为反转活动因子,V为供电电压,Isc为短路电流,f为运行频率。对设计中的算术运算单元做操作数隔离设计,主要思想是:在不进行算术运算的时候,使这些模块的输入保持不变,不让新的操作数进来,使得输出结果不会翻转;原创 2024-06-01 19:10:32 · 3876 阅读 · 0 评论 -
逻辑这回事(二)----FPGA安全编码规范
安全编码的背景、定义FPGA攻击方式和攻击目的安全编码价值2020年4月,来自德国的研究者披露了一个名为“StarBleed”的漏洞,当时引起了业内一片轰动。这种漏洞存在于赛灵思的Virtex、Kintex、Artix、Spartan 等全部7系列FPGA中。通过这个漏洞,攻击者可以同时攻破FPGA配置文件的加密(confidentiality)和鉴权(authenticity),并由此可以随意修改FPGA中实现的逻辑功能。攻击者通过篡改bit流实现对FPGA加载关键配置寄存器的修改,通过蚂蚁搬原创 2024-05-25 23:11:23 · 1716 阅读 · 0 评论 -
逻辑这回事(一)----编码规范
基于ATPG的扫描测试要求被测试电路的所有触发器都使用特殊设计的具有扫描功能的触发器代替,使其在测试时链接成一个或多个移位寄存器链,这样,电路分成了可以分别进行测试的的纯组合电路和移位寄存器,电路中所有的状态可以直接从原始输入和输出端得到控制和观察,很明显,所有触发器的时钟都是要求外部可控的。使用generate/for和for循环结构时必须定义进程名(如果不命名,每次block综合的名字可能不一样,里面信号的hierarchy就会变化),使用进程名区分后,一个模块中的多个循环体可以使用同一个循环变量。原创 2024-05-25 19:33:18 · 1697 阅读 · 0 评论