tag 标签: fpga

相关博文
  • 2024-12-27 10:26
    134 次阅读|
    0 个评论
    发明阶段(20世纪80年代至90年代) 起源:当时ASIC设计成本高,周期长,流片失败率高,业界需要一种通用的半导体器件进行流片前测试和验证,可编程逻辑器件就此产生。 诞生:1980年,Xilinx公司成立。1985年,Ross Freeman制造了第一片PFGA芯片XC2064,采用4输入,1输出的LUT和FF结合的基本逻辑单元。 发展阶段(1992年至1999年) 容量提升:FPGA容量不断上涨,芯片面积逐渐增大,为架构穿心提供空间,复杂功能可以实现。 布线问题凸显:缩着芯片复杂度增加,片上资源的互连复杂性取代了逻辑结构的复杂性,成为需要优先解决问题。 设计工具兴起:出现了针对FPGA进行优化设计的自动综合,布局和布线的EDA工具,逐渐成为FPGA开发的主流方法。 累积阶段(21世纪至今) 向可编程片上系统转变:FPGA从单纯的可编程门阵列,逐步转变为拥有复杂功能的可编程片上系统,很多专用的逻辑单元被添加到FPGA器件中,如AI引擎,可变精度的DSP等针对AI应用开发的IP核也被固化到FPGA中。 工艺与性能提升:随着芯片制造工艺的不断进步,FPGA的集成度,性能和速度不断提高,功耗不断降低,门数量从最初的1200个可利用门发展到数百万门甚至更高。 应用领域拓展:FPGA在通信、数字信号处理、视频图像处理、高速接口设计、人工智能、IC设计等领域得到了广泛应用,并在云计算、航空航天,国防、汽车、电信等行业持续拓展。
  • 热度 2
    2024-12-6 15:53
    483 次阅读|
    0 个评论
    学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4,对比 FPGA、GPU、CPU 的性能,助力 AIoT 边缘计算应用。(文末有彩蛋) 一、 为什么选择 FPGA:应对 7nm 制程与 AI 限制 在全球半导体制程限制和高端 GPU 受限的大环境下,FPGA 成为了中国企业发展的重要路径之一。它可支持灵活的 AIoT 应用,其灵活性与可编程性使其可以在国内成熟的 28nm 工艺甚至更低节点的制程下实现高效的硬件加速。 米尔的 ZU3EG 开发板凭借其可重构架构为 AI 和计算密集型任务提供了支持,同时避免了 7nm 工艺对国产芯片设计的制约。通过在 ZU3EG 上部署 Tiny YOLO V4,我们可以为智能家居、智慧城市等 AIoT 应用提供高效的解决方案。 CPU GPU FPGA 架构对比 二、 了解 Tiny YOLO 模型及其适用性 YOLO(You Only Look Once)是一种实时物体检测模型,它通过一次性扫描整个图像,实现高效的对象识别。 而其简化版 Tiny YOLO V4 更适合嵌入式设备,具有较少的层数和参数。其轻量化特性更适合在资源受限的设备上运行,尤其在低功耗、实时检测的边缘计算设备中表现出色。 相比传统 GPU,FPGA 能在小面积和低功耗下实现类似的推理性能,非常契合 AIoT 应用。像米尔 ZU3EG 这样的 FPGA 开发板,通过底板和丰富接口的载板设计,非常适合高效的嵌入式低功耗数据处理。 Yolo V4 网络结构图 Tiny Yolo V4 网络结构图 (通过优化网络结构和参数,保持较高检测精度的同时,降低模型的计算量和内存占用) 三、 获取数据集和模型 可下载开源训练集或预训练模型。为了确保兼容性,建议将模型转换为 ONNX 格式,以便后续能在 FPGA 上完成优化。 1. 下载 Tiny YOLO V4 模型 :从 Darknet 的 GitHub 仓库 获取 Tiny YOLO 的预训练权重,或者在 COCO 等数据集上自行训练模型。自定义的模型适用于特定应用场景(如车辆检测、人脸检测等)。 2. 数据准备 :若要自定义模型,可使用LabelImg等工具对数据集进行标注,将数据转为 YOLO 格式。之后,可将 YOLO 格式转换为 ONNX 格式,以便兼容 FPGA 优化工具链。 Tiny YOLO 在 Darknet 上训练的截图 四、 通过 Vivado HLS 为 FPGA 准备模型 要将模型部署到 FPGA,需要将神经网络操作转换为硬件级描述。使用 Xilinx 的 Vitis HLS(高级综合)可以将 Tiny YOLO v4 的 C++ 模型代码的转化为 Verilog RTL(寄存器传输级)代码,从而将模型从软件世界带入硬件实现。 详细步骤 : 1. 模型层映射和优化 : 将 YOLO 的每一层(如卷积层、池化层)映射为硬件友好的 C/C++ 结构。例如,将卷积映射为乘累加(MAC)数组,通过流水线实现并行化。 2. 算子加速与指令优化 : 流水线(Pipelining) :利用流水线来处理多项操作并行,减少延迟。 循环展开(Loop Unrolling) :展开循环,以每周期处理更多数据,尤其在卷积操作中有效。 设置 DATAFLOW 指令,使层间独立处理。 3. 量化与位宽调整 : 将激活值和权重量化为定点精度(例如 INT8),而非浮点数。这在维持准确度的同时显著降低计算量,尤其适合 FPGA 的固定点运算支持。 Tiny YOLO 模型在 Vivado HLS 中的层层转化流程图 五、 使用 Vivado 综合与部署 Verilog 到 米尔的ZU3EGFPGA开发板 当 HLS 生成的 RTL 代码准备就绪后,可以使用 Vivado 将模型部署到 FPGA。 1. Vivado 中的设置 : 将 HLS 输出的 RTL 文件导入 Vivado。 在 Vivado 中创建模块设计,包括连接AXI 接口与 ZU3EG 的 ARM 核连接。 2. I/O 约束与时序 : 定义 FPGA 的 I/O 引脚约束,以匹配 ZU3EG 板的特定管脚配置。配置时钟约束以满足合适的数据速率(如视频数据 100-200 MHz)。 进行时序分析,确保延迟和响应速度达到实时要求。 3. 生成比特流并下载到 ZU3EG : 生成的比特流可以直接通过 JTAG 或以太网接口下载到 ZU3EG。 将 Tiny YOLO 处理模块连接到 米尔ZU3EG开发板 的外设和接口 六、 在 FPGA 上测试并运行推理 现在 Tiny YOLO 已部署,可以验证其实时对象检测性能。 1. 数据采集 : 通过连接的相机模块捕捉图像或视频帧,或者使用存储的测试视频。 使用ZU3EG 的 ARM 核上的OpenCV对帧进行预处理,再将它们传入 FPGA 预处理后进行推理。 2. 后处理与显示 : 模型检测对象后,输出边框和类别标签。使用 OpenCV 将边框映射回原始帧,并在每个检测到的对象周围显示类别和置信度。 3. 性能测试 : 测量帧速率(FPS)和检测准确度。微调量化位宽或数据流参数,以优化实时需求。 Tiny YOLO 模型在 ZU3EG 上显示检测结果的实时输出,视频帧中标注了检测到的对象 七、 性能优化与调试技巧 为提高性能,可以进行以下调整: 内存访问 :设计数据存储方式,最大限度利用缓存并减少数据传输,降低内存瓶颈。 降低延迟 :重新评估关键路径延迟。若延迟过高,调整 Vitis HLS 中的流水线深度,并验证层间的数据依赖性。 量化改进 :尝试 INT8 量化。Xilinx 的 Vitis AI 可帮助微调量化参数,以平衡准确性与速度。 不同优化配置对资源使用的影响 米尔MYC-CZU3EG/4EV/5EV-V2核心板及开发板 在MYIR 的 ZU3EG 开发平台上提供了一种高效的解决方案。利用 FPGA 独特的灵活性和低功耗优势,助力未来 AIoT 设备的普及和智能升级。 关注米尔电子公众号,后台回复FPGA,获取完整Tiny Yolo V4教程。
  • 2024-11-1 16:38
    270 次阅读|
    0 个评论
    1.引言 随着网络视频平台的发展,用户对于4K高清画质的需求日益增长。然而,许多用户发现,即使购买了视频平台的会员,观看4K内容时画质却不如预期,有时甚至还会出现模糊、卡顿的情况。这种现象背后涉及到视频编码、网络带宽、和视频传输的诸多因素。 近期“影视飓风”发布的视频《清晰度不如4年前!视频变糊是你的错觉吗?》因讨论视频平台降低码率和改变编码格式以压缩视频画质,影响了内容表达。 4K视频清晰度下降的一个主要原因是平台为了节省带宽而压缩视频流,有时导致比特率降低,无法发挥4K分辨率的全部潜力。 在这种背景下,如何 高效地压缩和传输4K视频成为了一个关键技术难题 。本文将探讨如何通过 米尔电子的ZU4EV MPSoC平台, 接入真4k 60UHD-SDI视频源后,使用VCU进行高效H.265编解码,再通过 SGMII万兆以太网 实现 网络推流,以确保高质量4K视频的流畅传输。 2.视频质量下降的原因与优化方法 1) 带宽瓶颈 :在用户数量增加的情况下,服务器和网络的带宽常常无法满足4K视频流的需求。 2) 压缩算法不足 :传统的视频压缩技术在高分辨率内容上表现不佳,容易导致画面模糊。 3) 视频流传输的优化 在推流过程中,网络带宽和视频压缩效率直接决定了视频播放的清晰度与流畅度。为了确保4K视频在万兆以太网上的高效传输,本设计采用以下优化措施: 合理的码率控制 :在保证视频清晰度的前提下,调整H.265编码的目标码率,避免过低的码率影响视频质量或过高的码率导致带宽浪费或。通过CBR或VBR模式可以根据网络情况动态调整码率。 低延时模式 :VCU支持低延时编码模式,确保视频在压缩和传输过程中保持尽可能低的延迟,提升用户的观看体验。 网络传输协议选择 :根据应用场景选择合适的传输协议。对于实时性要求较高的场景,可选择UDP传输,而对于数据可靠性要求较高的场景,则推荐使用TCP协议。 3.MPSoC与VCU架构在4K UHD音视频广播领域的优势 1. 高性能与低功耗的结合 :Zynq UltraScale+ MPSoC采用了16nm FinFET工艺,集成了多核处理器和可编程逻辑,能够在提高性能的同时降低功耗,这对于音视频广播领域来说至关重要,因为它可以在保证高清晰度视频传输的同时,减少能源消耗。 2. 实时压缩与解压缩能力 :集成的VCU支持H.264/AVC和H.265/HEVC标准,能够实现高达4K UHD分辨率的视频的实时压缩和解压缩。这意味着在广播应用中,可以利用VCU进行高效的视频编码,减少存储空间和带宽的需求,同时保持视频质量。 3. 多视频流处理能力 :VCU能够同时处理多达八个不同的视频流,这对于需要同时广播多个视频源的4K UHD广播应用来说非常有用。这种多任务处理能力使得MPSoC成为多媒体中心和视频服务器的理想选择。 4. 灵活性和可扩展性 :MPSoC的可编程逻辑(PL)提供了任意到任意高速视频/音频接口的灵活性,可以为多媒体管道带来定制图像及视频处理功能的差异化效果。这种可编程性使得系统能够适应不断变化的音视频广播需求。 5. 专用硬件加速 :MPSoC提供了专用的处理引擎,如基于ARM Cortex A53的APU、Mali图形处理单元等,这些专用硬件能够加速图形和视频处理任务,提高系统的整体性能。 6. 支持多种视频格式 :VCU支持高达4:2:2 10位UHD-4K的视频格式,适合专业和高端消费级的制作与后期制作解决方案。这种广泛的格式支持使得MPSoC可以应用于各种不同的音视频广播场景。 7. 集成的多媒体框架支持 :MPSoC结合常见的多媒体框架GStreamer,可以开发硬件加速型多媒体应用。这种集成支持简化了开发过程,使得开发者能够快速实现复杂的音视频处理任务。 8. 优化的功耗管理 :Zynq UltraScale+ MPSoC将处理引擎、硬件编解码器等组件放置在具有独立电轨的不同电源域中,这种配置可用于为整个系统设计优化功耗管理方案,进一步降低系统功耗。 9. 高速互联外设 :MPSoC提供高速互联外设,如集成式DisplayPort接口模块,支持高达6 Gb/s的工作速率,这有助于处理来自PS或PL的实时音视频流,进一步降低系统BOM成本。 10. 支持新一代地面数字电视广播技术 :随着超高清电视时代的到来,MPSoC与VCU架构能够支持新一代地面数字电视广播技术,如DVB-T2、ATSC 3.0和DTMB-A等,这些技术支持更高的视频质量和新的广播应用模式。 综上所述,MPSoC与VCU架构在4K UHD音视频广播领域提供了高性能、低功耗、实时压缩解压缩、多视频流处理、灵活性、硬件加速、广泛格式支持、多媒体框架集成、优化的功耗管理和高速互联外设等多重优势,使其成为该领域理想的解决方案。 4.系统架构概述 在本设计中,我们使用Zynq UltraScale+ MPSoC平台(具体型号为MYIR XCZU4EV),通过FPGA实现对SDI视频的H265压缩,并通过SGMII接口推送到万兆以太网上。系统架构主要包括以下几个部分: 1. 视频输入 :输入源可以是SDI摄像机、SDI信号发生器或通过HDMI转SDI设备从电脑接入的HDMI信号。视频信号通过TI公司的LMH1219芯片做均衡处理,并将单端信号转换为差分信号后输入FPGA。 2. SDI视频解码 :FPGA中的UHD-SDI GT IP核用于SDI视频的解串,并将视频信号转换为AXI4-Stream格式供后续处理。通过SMPTE UHD-SDI RX SUBSYSTEM IP核,SDI视频被解码为RGB格式。 3. 视频帧缓存与处理 :解码后的视频信号存储在PS侧的DDR4中,通过Xilinx提供的Video Frame Buffer Write IP核实现。在这一阶段,可以对视频帧进行颜色转换、缩放等处理。 4. H.265视频压缩 :使用Zynq UltraScale+ VCU IP核对存储的RGB视频帧进行H.265编码压缩。VCU支持YUV420格式的视频,编码分辨率最高可达到4K@60fps。 5. SGMII万兆以太网传输 :经过H.265压缩后的视频流通过SGMII接口推送至万兆以太网。通过PetaLinux系统,利用TCP/UDP协议将压缩后的码流传输到PC或服务器端,用户可以通过VLC播放器等软件实时播放接收到的H.265码流。 5.工程设计主要流程 1. SDI输入 :通过LMH1219进行信号均衡,SDI信号转换为AXI4-Stream格式。 通过HDMI转SDI盒子,通过12G UHD-SDI输出4K 60FPS视频给FPGA,用户也可以使用SDI 工业相机; 2. 视频解码 :UHD-SDI GT IP核完成视频解串,SMPTE UHD-SDI RX SUBSYSTEM IP核将视频解码为RGB信号。 3. 视频缓存 :使用Video Frame Buffer Write IP核将视频写入DDR4。 用户可以选择在这里做出customer ISP,例如图像缩放,拼接 4. 视频压缩 :通过Zynq UltraScale+ VCU IP核对视频进行H265压缩。 5. 网络传输 :通过SGMII万兆以太网接口,将压缩后的H265视频流通过UDP协议推送至PC端,使用VLC播放器播放。 6.结论 在视频内容不断向4K发展的大背景下, 通过Zynq UltraScale+ MPSoC平台,基于VCU实现的SGMII万兆以太网视频压缩推流方案,不仅能够高效地压缩和传输4K视频,还可以确保较低的延迟和高质量的图像输出。该方案适用于视频监控、医疗影像、工业自动化等对高分辨率视频有需求的应用场景。 对于希望在网络视频平台上获得更好观看体验的用户来说,视频平台和服务提供商则需要在视频编码、网络传输等方面进行优化,以满足用户对于4K视频的画质需求。 7.互动环节 在SGMII网兆以太网推流到PC端,因为是万兆网,CPU无法负担这里的高速吞吐率,这里我们需要用到网络卸载,米尔电子的MYC-J7A100T双芯设计核心板可通过SFP采集SGMII万兆以太网数据后,PC通过PCIE读取视频源,实现万兆网口数据包卸载,我们会在后续系列文章中做出分享基于米尔MYC-J7A100TSFP采集后PCIE XDMA中断读取。
  • 热度 1
    2024-8-23 11:00
    76 次阅读|
    0 个评论
    本文主要介绍瑞芯微RK3562J的实时性测试,开发环境如下: U-Boot:U-Boot-2017.09 Kernel:Linux-RT-5.10.198 LinuxSDK: LinuxSDK- (基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) RK3562J实时性测试数据 本文使用Cyclictest延迟检测工具测试Linux系统实时性,分别在CPU空载、满负荷(运行stress压力测试工具)、满负载-隔离CPU3核心(运行stress压力测试工具)三种情况下运行指令测试12小时。 图 1 RK3562J实时性测试数据 根据3种状态的测试结果可知,当程序指定至隔离的CPU3核心上运行时,Linux系统延迟最低,可有效提高系统实时性。故推荐对实时性要求较高的程序(功能)指定至隔离的CPU核心运行。 RK3562J典型应用领域 图 2 Cyclictest系统实时性测试 本文通过创龙科技TL3562-EVM工业评估板(基于RK3562J)的硬件平台进行演示。为了简化描述,本文仅摘录部分方案功能描述与测试结果, 本次测试以隔离CPU3核心为例,通过降低系统上所运行的其他进程对隔离CPU3产生的延迟影响,确保CPU3进程的正常运行,进而评估Linux-RT内核的系统实时性。 评估板上电启动后,在U-Boot倒计时结束之前按下空格键进入U-Boot命令行模式,执行如下命令,修改环境变量,隔离CPU3核心。 U-Boot# setenv bootargs storagemedia=sd androidboot.storagemedia=sd androidboot.mode=normal isolcpus=3 U-Boot# saveenv U-Boot# reset 图 3 评估板重启后,执行如下命令,查看环境变量。 Target# cat /proc/cmdline 图 4 进入评估板文件系统,执行如下命令,修改内核printk日志等级,避免内核打印信息影响实时测试。 Target# /proc/sys/kernel/printk 调整内存分配策略为“2”,禁用内存过度使用。避免出现OOM(Out-of-Memory) Killer攻击某些进程而产生延迟,影响测试结果。 Target# /proc/sys/vm/overcommit_memory 图5 执行如下命令,运行stress压力测试工具,使得CPU处于满负荷状态。再使用taskset工具将Cyclictest测试程序运行在CPU3核心,测试CPU3核心满负荷状态下的系统实时性能。测试指令需运行12小时,请保持评估板长时间稳定工作,测试完成后将生成统计结果iso_overload_output文件。 Target# stress-ng --cpu 4 --cpu-method=all --io 4 --vm 4 --vm-bytes 64M --timeout 43200s & Target# iso_overload_output 图 6 对测试结果文件的数据进行分析,使用脚本生成直方图,得到隔离CPU核心状态下的统计结果如下所示。本次测试中,CPU1核心Max Latencies值最大,为244us,隔离CPU3核心的Max Latencies值最小,为33us。 图7 表 1
  • 热度 1
    2024-8-2 11:38
    305 次阅读|
    0 个评论
    数字芯片设计验证经验分享:将ASIC IP核移植到FPGA上——明了需求和详细规划以完成充满挑战的任务
    作者:Philipp Jacobsohn,SmartDV首席应用工程师 Sunil Kumar,SmartDV FPGA设计总监 本文从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用预先定制功能即IP核的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素,用八个重要主题详细分享了利用ASIC所用IP来在FPGA上开发原型验证系统设计时需要考量的因素。 本篇文章是SmartDV数字芯片设计经验分享系列文章的第一篇,作为全球领先的验证解决方案和设计IP提供商,SmartDV的产品研发及工程应用团队具有丰富的设计和验证经验。 在国产大容量 FPGA 新品不断面市的今天, SmartDV 及其中国全资子公司“智权半导体”愿意与国内 FPGA 芯片开发商合作,共同为国内数字芯片设计公司开发基于本地 FPGA 的验证与设计平台 。 明了设计需求 半导体IP核提供商支持复杂的ASIC项目,其中一些项目在时钟速度、片芯面积占用、功耗、可靠性、功能安全和可重用性方面有极高的要求,所有这一切都带来了对半导体IP这种预先定制的电路部件的很高期望。一旦有人决定自己不去开发某项功能,而是通过合作伙伴获得该功能,都会将购买该组件的功能视为必然结果。如果所使用的IP核来自诸如SmartDV这类信誉良好的供应商,该过程将顺利进行。 由于同一IP核的最终应用领域可能完全不同,因此IP核提供商必须将所有可能的应用领域考虑在内,以避免让客户失望。例如像MIPI CSI-2接收器/发射器IP或USB接口这样的预定制功能,在用于一款已经被销售数百万次的消费性产品中时,它的要求就与该功能被用于数量有限的喷气战斗机这样的“热点领域”有所不同。 对一位用户来说,成功的产品定义可能是片芯面积的缩小。而对另一位用户来说,它也可能意味着即使在恶劣的运行条件下,也可以实现最低的功耗或最高的可靠性。在大多数情况下,还有另外一个关键点需要考虑。IP核不仅应该只在ASIC上“实现功能”,而且还可用作基于FPGA的原型设计的一部分。众所周知,在开发ASIC的过程中需要非常谨慎,但遗憾的是,我们常常低估了FPGA也需要非常特别的关注,并且还有其独特的集成方式。 SmartDV 的部分已获车规或航规认证的设计 IP 和 VIP 坦率地来讲,将ASIC IP核移植到FPGA中并不是一件容易的任务,但如果这个过程有条不紊,成功是可以实现的!本文全面讲述了将ASIC IP核移植到FPGA中时必须考虑到的所有要点,并通过使用SmartDV的USB3.2 Gen2x1 Device IP实例来进一步说明这些要点。 对于芯片设计工程师的关键价值 • 将一款IP核部署到ASIC和FPGA两种架构中具有挑战性,但值得一试。 • 将ASIC IP移植到FPGA中时,需要考虑的相关因素包括在需求、性能、时钟、功能等方面的差异。 • 最佳的芯片设计解决方案是用FPGA来作为原型工具,以及它和经过流片验证的IP核的结合,以保证正确无误地实现设计。 • 无论目标是ASIC还是FPGA,快速且成功完成项目的一个关键因素是涉及该项目的专家团队的经验水平,因此选择一个可靠的IP合作伙伴也是设计团队取得成功的又一关键! 使用预先定制功能即 IP 核的必要性 集成电路设计团队的最终目标是能够更快速地交付一款有效用的最终产品,以便于不错过更早进入市场的机会,并确保在竞争对手面前建立自己的竞争优势。多年来,使用IP核一直是最大限度地缩短复杂电路的开发时间,以及减少验证电路组件所需工作量的一种通用方法。 使用预先定制的电路组件消除了“重新创造轮子”的需要,但是IP核需要能够在提高可靠性和避免错误这两个方面之外提供额外的优势,因为它们(通常)已经被其他工程师们部署在其项目中。一段时间以来,业内已经用了一个恰当的术语“左移”来描述这一现象,即在产品生命周期的早期阶段就执行测试。从产品规格的创建到ASIC模块设计的流片,时间窗口在整个时间轴上都朝着项目开始的方向移动。 同样,在设计过程中使用FPGA早已被确立为一种标准方法,以便能够在可提供ASIC之前就对数字电路进行测试。这个理念导致了使用一个现成可用的、可重新编程或可重新配置的FPGA硬件组件来以实时速度运行设计,以在设计流程的早期阶段检测出错误。 与最终的ASIC相比,FPGA绝不是成本低廉的解决方案,但它可为设计团队带来实实在在的价值,从而支持设计团队去有效地发现在电路创建过程中已经产生的错误,这些错误无法通过仿真或其他基于软件的验证方法检测到。通过扩展,它还支持在验证过程中发现和消除缺陷。 此外,在ASIC芯片开始供货之前,通常希望有一个可用的功能平台,以便能够在开发硬件的同时,去实现和测试运行所需的软件和固件。因此,可以安全地假设IP核的使用和FPGA的使用都是经过验证的电路实现和验证方法,其应用不会造成任何困难。然而,实际设计过程也经常是“细节决定成败”。 面向 ASIC 原型验证的 IP 核考量因素 实际上,提供一款IP并将其无缝地用于ASIC和FPGA是一项极具挑战性的任务。在本节中,我们将讨论在考虑原型设计任务时就开始出现的最普遍的问题。 原型设计:各种考量因素的总体概述 主题 1 :一款原型和最终 ASIC 实现之间的要求有何不同? 主题 2:当使用FPGA进行原型设计时会立即想到哪些基本概念? 主题3:在将专为ASIC技术而设计的IP核移植到FPGA架构上时通常会遇到哪些困难? 主题4:为了支持基于FPGA的原型,通常需要对ASIC IP核进行哪些更改? 主题5:我们如何确保在FPGA上实现所需的性能? 主题6:在时钟方面必须加以考量的因素有哪些? 主题7:如果目标技术是FPGA,而不是ASIC,那么需要如何测试IP核的功能? 主题8:设计团队还应该牢记什么? 图1:在电路设计中嵌入IP核经常被误解为与搭乐高®积木的原理相同,其中的道理就是简单地组装预先定制的构建模块——然而在实际工作中,这只说出了事实的一半(图片来源:iStock/Getty Images) 认为只需要将打算实例化的IP模块和集成该模块的实例之间的物理接口进行匹配就行的这种理念就是不现实的。为了能够成功地集成预先定制的电路功能,需要考虑更多的问题。 事实上,嵌入IP核远非易事!有各种各样的参数可能需要调整:例如,必须确保时钟信号与频率匹配,还必须特别注意复位的分布规律。输入和输出信号必须与电路的其余部分同步;甚至可能需要应用带有延迟的时钟和数据信号。IP核的集成也改变了整个系统的延迟,额外的功能也影响电路的时序行为,逻辑门利用以及诸如存储单元的使用等等。 事实是一款IP核必须为不同的目标架构提供相同的功能——例如,来自不同制造商的ASIC和FPGA产品,它们具有不同的工艺节点和结构,这给功能实现的质量提出了特殊挑战;同时,也对IP供应商用于验证和物理确认电路功能的方法提出了特殊挑战。 主题 1 :一款原型和最终 ASIC 实现之间的要求有何不同? 通常,与基于FPGA的原型设计相比,在ASIC设计的后期会提出各种不同的要求。例如,除了提供实际的电路功能之外,ASIC规范的主要关注点可以是降低功耗,也可能是占用最小的片芯面积,甚至是实现最高的时钟频率。此外,必须提供测试结构方案来支持功能测试,重点是能识别已流片的ASIC的物理缺陷。 所有这些要求都与在原型设计期间如何在FPGA中使用IP几乎无关,进一步的解释如下所述: • 片芯面积占用(使用逻辑门数量)在原型设计中扮演着次要的角色。当然,我们希望所使用的FPGA器件的复杂度越低越好,这样原型的性价比更高且可减少总体支出。然而,在许多情况下,从一开始就有一个“尽可能大”的可重构的模块是非常明智的,这样就能够覆盖可能导致面积占用量增加的电路变化,而不需要在原型设计进行期间将FPGA器件切换到更复杂的FPGA。切换很可能需要重新设计,或者在使用预先定制的FPGA开发板的情况下,重新购买一个基于FPGA的原型验证平台。 • 功耗对于一个目标仅为实现单一功能的原型设计来说根本不重要,但是开发人员也期望部署专为ASIC降低功耗开发的方法,并将其包含在原型设计中则可能是明智的做法。关于该话题的更详细的讨论,可以在接下来的主题8的答案下找到:我们还应该牢记什么? • ASIC RTL可能包含测试结构,以实现数字部件的大规模量产测试,目的是找出有缺陷的单元。为了支持相关的测试,需要实现测试结构。然而,这些类型的测试结构通常不在FPGA中实现,因为根本不需要它们。FPGA组件已经经过了充分的测试。 本系列文章的目标是全面分享如何利用 ASIC IP来实现完美的FPGA验证原型的经验,本篇在讲述了如何了解ASIC IP与FPGA验证原型的区别并提前做相应规划之后,还将详细介绍与之相关的另外七大主题。下一篇将介绍使用FPGA进行原型设计时会立即想到哪些基本概念?在将专为ASIC技术而设计的IP核移植到FPGA架构上时通常会遇到哪些困难?以及为了支持基于FPGA的原型,通常需要对ASIC IP核进行哪些更改?欢迎关注SmartDV全资子公司“智权半导体”微信公众号继续阅读。 最后,SmartDV在相关介绍和分析之后,还提供实际案例:用基于FPGA的方法来验证USB 3.2 Gen2x1 Device IP USB 3.2 Gen2x1 Device IP:实现、验证和物理验证 USB 3.2 Gen2x1 Device IP的实现挑战 关于作者 Philipp Jacobsohn Philipp Jacobsohn是SmartDV的首席应用工程师,他为北美、欧洲和日本地区的客户提供设计IP和验证IP方面的支持。除了使SmartDV的客户实现芯片设计成功这项工作,Philipp还是一个狂热的技术作家,乐于分享他在半导体行业积累的丰富知识。在2023年加入SmartDV团队之前,Philipp在J. Haugg、Synopsys、Synplicity、Epson Europe Electronics、Lattice Semiconductors、EBV Elektronik和SEI-Elbatex等担任过多个管理和现场应用职位。Philipp在瑞士工作。 Sunil Kumar Sunil Kumar是SmartDV的FPGA设计总监。作为一名经验丰富的超大规模集成电路(VLSI)设计专业人士,Sunil在基于FPGA的ASIC原型设计(包括FPGA设计、逻辑综合、静态时序分析和时序收敛)和高速电路板设计(包括PCB布局和布线、信号完整性分析、电路板启动和测试)等方面拥有丰富的专业知识。在2022年加入SmartDV团队之前,Sunil在L&T Technology Services Limited担任过项目经理和项目负责人职位。Sunil在印度工作。 关于智权半导体 智权半导体科技(厦门)有限公司是SmartDV Technologies™在华设立的全资子公司,其目标是利用SmartDV全球领先的硅知识产权(IP)技术和产品,以及本地化的支持服务来赋能中国集成电路行业和电子信息产业。目前,SmartDV在全球已有300家客户,其中包括十大半导体公司中的七家和四大消费电子公司。 通过将专有的SmartCompiler™技术与数百位专家工程师的知识相结合,SmartDV可以快速、经济、可靠地定制IP,以实现您独特的设计目标。因此,无论您是为下一代SoC、ASIC或FPGA寻找基于标准的设计IP,还是寻求验证解决方案(VIP)来测试您的芯片设计,您都会发现SmartDV的IP非常容易集成,并在性能上可力助您的芯片设计实现差异化。 了解更多关于SmartDV和智权半导体的信息,请浏览:www.smart-ip.cn,或发邮件到: chinasales@smart-ip.cn
相关资源