FPGA-HLS
FPGA-HLS一、HLS(High Level Synthesis)简介1.1 什么是HLSHLS是Xilinx公司推出的一个开发工具,其可以将C/Cpp/System C代码进行C域综合,并将其转换成Verilog/HDL语句,最终可以将其逻辑功能与接口打包生成IP核,供后续FPGA开发使用。
1.2 为什么要用HLS做IP核开发加速设计开发的周期:
首先,很多设计原本就是使用C或者C++来设计的,算法移植的时候,如果每次都要重新按照C来写verilog,会复杂且不稳定,而且需要开发人员同时掌握这两种语法。
其次,使用HLS是“抽象层级的提升”,等于创建了一个黑箱工程,里面怎么操作开发人员不用管,只需要确保C的逻辑正确即可。
如图所示,FPGA设计从底层向上一共是四层抽象层级:结构性、RTL、行为性、高层。
其中最底层的结构性,包含各种底层硬件单元,比如逻辑门、LUT、触发器等等。
像我们经常做的Vivado中的Verilog开发,即是第二层RTL层开发,这个层级会隐藏底层的细节。
更上层的行为性的开发,是对电路的算法描述,也就是描述电路表现出什么样 ...
超声系统&高速采集设备
超声系统&高速采集设备xx 等长xxx 为什么要做等长
核心结论:AFE 前的信号本质上处在相对低频的模拟域,走线相位差与波长相比微不足道;AFE 后进入高速数字域(例如 LVDS/SerDes),走线差直接转化为采样时序偏差,超过眼图开口会导致位错与码错。
假设图上这样一个超声采集成像设备,前面是FPC电路,后面是成像设备,先通过AFE模拟转数字,再将数字信号传入到FPGA中。
在 PCB 介质中,电磁波速度约为 v≈cεeffv\approx \dfrac{c}{\sqrt{\varepsilon_{\rm eff}}}v≈εeffc。以 FR-4 为例,εr≈4.2 ∼ 4.8\varepsilon_r\approx4.2\!\sim\!4.8εr≈4.2∼4.8,故 v≈(1.4 ∼ 1.6)×108 m/sv\approx(1.4\!\sim\!1.6)\times10^8\ \mathrm{m/s}v≈(1.4∼1.6)×108 m/s。
波长 λ\lambdaλ 与频率 fff 的关系为 λ=vf\lambda=\dfrac{ ...
FPGA-功耗设计
FPGA-功耗设计在 FPGA 的选型与设计中,功耗是一个极为关键但又经常被忽略的指标。 与 MCU 或 ASIC 不同,FPGA 的功耗并不是固定的,而是由器件工艺、设计利用率、工作频率、GT(高速串行收发器)使用数量等多方面共同决定。 本篇文章将系统讲解 FPGA 功耗的构成、影响因素、估算与实测方法,以及在工程中如何科学比较不同 FPGA 的功耗表现。
一、FPGA 功耗的两大组成部分FPGA 的功耗通常可以分为 静态功耗(Static Power) 和 动态功耗(Dynamic Power) 两部分:
项目
含义
影响因素
典型大小
静态功耗
上电、配置完成后即使逻辑不运行也存在的功耗
工艺节点、芯片规模、电压、温度
mW ~ 几百 mW
动态功耗
运行时因逻辑翻转、时钟切换、GT口工作而产生
逻辑利用率、时钟频率、GT 通道数量、I/O 速率
几百 mW ~ 数 W,甚至十几 W
🤞总功耗 = 静态功耗 + 动态功耗
静态功耗主要取决于工艺与芯片体积;动态功耗则取决于设计实现情况,是后期优化的重点。
二、静态功耗的比较方法静态功耗 ...
FPGA-芯片分析
FPGA-芯片分析一、FPGA1.1 FPGA的IO口AMD 的器件把“可编程 I/O”与“高速串行 I/O”严格分层:
SelectIO(按 I/O Bank 供电影响电平与标准)承担绝大多数并行/中高速差分接口;
MGT SerDes(GTP/GTH/GTY/GTM/GTYP 等)承担 5–112 Gb/s 级的高速串行协议。
SoC 与 ACAP 系列(Zynq、Versal)另含 PS/PMC 侧 MIO/EMIO 与专用 SerDes。
设计的核心是:把接口速率/电平/通道数映射到合适的 Bank 或 SerDes Tile,并据此规划 VCCO/VREF/REFCLK 与约束。
1.1.1 总表:
SelectIO
常见于Bank64/65/44…..
接口
电压
速率级别
常见场景
备注
HR (High Range)
1.2–3.3 V
数十~数百 Mb/s
3.3V 外设、 ...
FPGA-DDR
FPGA-DDR
通信协议&电平协议
通信接口&电平标准一、通信接口 / 总线
这些定义帧格式、握手、链路管理;具体电平依赖下一节的物理层实现。
1.1 UART/USART(常配 TTL/RS-232/RS-485 物理层)1.2 SPI1.3 I²C1.4 SDIO1.5 eMMC1.6 LVDS1.7 JESD204B1.8 USB 2.0/3.x1.9 Ethernet 10/100/1G/10G/25G1.10 PCI Express Gen1–51.11 Aurora(Xilinx 轻量级高速串行)二、物理层 / 电平标准
这些定义电压摆幅、差分/单端、终端方式、速率能力;上层可承载多种协议。
2.1 单端逻辑电平2.1.1 TTL / LVTTL2.1.2 LVCMOS(3.3V / 2.5V / 1.8V / 1.5V / 1.2V)2.1.3 SSTL-I/II(1.5V/1.8V,DDR 存储接口)2.1.4 HS ...
超声概念与通识
超声概念与通识一、超声概念与声学方程1.1 超声成像原理
我们不去讲那些简单易懂的回波理论,这些都是较为常识的内容,这里讲的是如何从数学上剖析超声成像
目前我还没找到声学方程到底在超声成像研究有啥用,等悟了以后再补充
超声成像可以从两个角度来理解,这两个角度对应着两个不同的模型,他们之间彼此不同,但又有着递进关系。
第一个模型叫做图像域模型:g=f∗PSFg= f * \text{PSF}g=f∗PSF。关注的是成像系统成出来的那个“像素点”长什么样
第二个模型叫做数据域模型:Sx=PSx=PSx=P。关注的是“探头在数据层看到的是什么”
上来就这么说有些令人费解,接下来会先分别讲述从这两个不同角度出发的超声成像,然后最后再来看看他们的联系,还有为什么有着递进关系。
1.1.1 从PSF(图像域)来看超声成像过程可以很好地用*点扩散函数(Point Spread Function, PSF)*与卷积模型来描述。通过从一维、二维到三维的推导,可以清晰理解超声图像是如何由真实散射体分布*与系统特性*共同决定的。
时域中的卷积=频域中的乘积或内积
1.1.1.1 一维:两个散 ...
超声成像方法与波束形成Beamforming
超声成像方法与波束形成Beamforming一、超声成像方法超声成像方法指的是:发射端的方法
1.1 传统方法1.1.1 电子延迟线扫成像
只要一次发射,经过波束形成后,图像中生成的都是一条线(也就是扫描线,或者说是一个一维向量),那就都是线扫
通过施加电子延迟,实现线扫,
有没有焦点:有,虽然是线扫,但是也要发射聚焦到一个深度点上
1.1.2 电子延迟扇扫成像
只要一次发射,经过波束形成后,图像中生成的都是一条线(也就是扫描线,或者说是一个一维向量),那就都是线扫
1.2 新型方法1.2.1 合成孔径成像SA合成孔径成像启发于雷达的合成孔径,传统合成孔径成像可以参考jensen2006年的综述:Synthetic aperture ultrasound imaging - ScienceDirect
其使用一个一个阵元分别激励,使用全孔径接收,比如128阵元,就会产生128帧RF数据,之后在经过波束形成进行成像。
通过单个阵元激励合成孔径成像效果还是提升很大的
1.2.1.1 虚拟点源虚拟点源是为了提升超声换能器的成像孔径而提出的一种方法。
其工作原理示意图:
换能器阵 ...
FPGA-BRAM
FPGA-BRAM(pg058)一、什么是BRAMXlinx 系列FPGA,包含两种RAM:Block RAM 和分布式RAM(Distributed RAM),他们的区别在于:
Block RAM是内嵌专用的RAM,具有更高的时序性能;
Distributed RAM 需要消耗珍贵的逻辑资源组成,由于分布在不通的位置,延迟较大。
二、FPGA中为什么要用BRAM在 FPGA 设计中,存储资源 是非常关键的一部分。不同于传统 CPU 或 MCU 中统一规划的内存结构,FPGA 内部的存储需要由设计者自行规划与分配。Xilinx 系列 FPGA 中的 BRAM便是为了解决片上高速存储需求而设计的专用存储单元。
2.1 数据访问速度快BRAM 位于 FPGA 的内部逻辑区域,距离计算单元(如 DSP、ALU、逻辑单元)非常近,可以在 1~2 个时钟周期 内完成数据读写。 相比之下,如果从外部 DDR、SRAM 等访问数据,通常需要几十甚至上百个时钟周期。 因此,在高速信号处理、滤波、图像缓存、波束形成等场景中,BRAM 可以显著降低延迟。
2.2 降低对外部存储的依赖在许多设计中, ...
