博客

FPGA组合逻辑设计技巧分享3

两个 N 位二进制数相加,为防止溢出,应将和设置为 N+1 位。对于无符号 N 位二进制数,最大值为2^N - 1


FPGA组合逻辑设计技巧分享2

采用if语句描述组合逻辑时,对于不完备的if语句,即缺少else分支的if语句要格外关注,因为综合工具会将其视为锁存器。

FPGA组合逻辑设计技巧分享1:互斥条件分支优先使用 case 语句

尽管当用互斥条件指定if-elsif-else语句和case语句等效,两者都会被综合为多路选择器(MUX),不再具有优先级,但仍建议优先使用case语句

DO‑254 鲁棒性测试到底应该怎么做?

如果说前面的物理测试是在证明“它能正常工作”, 那么鲁棒性测试要证明的是: ——当一切不正常时,它依然是安全的。在 DO‑254 DAL‑A 项目中, 鲁棒性测试不是“加分项”,而是硬门槛。


KRS(Kria Robotics Stack):Zynq / FPGA 机器人开发,迈向完整 ROS 2 系统的一步

在这个示例项目中,使用 AMD Kria™ KV260 Vision AI Starter Kit 结合 TurtleBot3 Waffle 移动机器人平台 来构建一个真实可运行的 ROS 2 系统。

仿真为什么抓不到 CDC?

仿真没抓到 CDC, 那工程验证到底该信谁?这一篇,我们把这件事彻底讲清楚。


DO‑254 物理测试到底在“测什么”?

“我们已经做了板级测试,也在 FPGA 上跑过程序了, 这还不算物理测试吗?”如果你在 DO‑254 项目里问过、或被问过这句话,那么这一篇文章,就是写给你的。


亚稳态到底是什么?它真的有那么可怕吗?

如果你做过跨时钟域设计,那“亚稳态”这三个字一定不陌生。但奇怪的是:教科书里把它说得非常吓人  


从网络接口到 DMA,一套面向工程师的 FPGA 网络开发框架

Liberouter的Network Development Kit(NDK) 是一套专门用来快速开发 FPGA 加速网络应用的开源框架,是连接高速网络接口、FPGA 逻辑与主机处理器 的工程级利器。

跨时钟域为什么这么容易出问题?

做FPGA的,大多数人第一次被 CDC(Clock Domain Crossing)教育, 往往不是在仿真阶段,而是在系统已经交付之后。

KRS(Kratos Robotics Stack):让 Zynq / FPGA 机器人开发真正“跑”起来

在机器人与自主系统开发中,ROS 2 已经成为事实标准,但当它遇到 FPGA / Zynq / Kria 这类异构平台时,工程复杂度往往直线上升。

Verilog 经典教程(8)If语句和Case语句

这篇文章将讨论 verilog 中两个最常用的结构----if语句和case语句。

入门新手必读!Xilinx FPGA在线支持资源使用指南

FPGA设计人员可根据自身项目的设计类型与当前所处阶段,参考本文提供的各种网站资源,精准匹配适用的支持渠道,提高FPGA项目开发效率。

Xilinx FPGA硬件设计:器件管脚手册

我们在设计FPGA硬件电路板时,器件管脚手册是非常重要的参考文档,本文我们介绍如何在Xilinx官网下载Pinout管脚手册及如何应用该手册。

FPGA 和 CPLD 到底差在哪?这是新手最容易踩的第一个坑

很多刚接触电子和嵌入式的同学,都会在一个问题上反复纠结:FPGA 和 CPLD 看起来都能“写逻辑”,它们到底有什么区别?我该先学哪个?


从 JTAG 启动 Zynq UltraScale+ 上的嵌入式 Linux 镜像:详细实战教程

本文则进一步讲解如何在 Zynq UltraScale+ MPSoC 平台上通过 JTAG 逐步启动 Linux,并提供了完整的过程与关键命令。

从 JTAG 启动 Zynq-7000 嵌入式 Linux:使用 XSCT 全流程教程

启动嵌入式系统是任何 FPGA 或嵌入式 Linux 开发流程中最常做、也最关键的一步。很多时候我们依赖 SD 卡、TFTP 或 NFS,但当你无法访问板载存储或以太网时

项目开发中常用的Vivado软件调试技巧(三)

在ILA核中,通常使用通过添加Marker线观察信号长度,如图1所示。如果删除Marker线,选中要删除的线然后右键,选择Delete Marker

FPGA 上实现电机矢量控制:一个开源 FOC 项目的硬核解析

今天我们介绍一个硬核开源项目:FPGA-FOC,它使用 Verilog 在 FPGA 上实现了完整的 FOC 电机控制系统。

项目开发中常用的Vivado软件调试技巧(二)

本文我们介绍如何从Vivado ILA核将抓取到的数据导出为文件,并通过Matlab软件存为.coe文件。