mcpField
F
fpga

fpga

github.com/mindrally开发2871.1k 次安装3 周前更新
代码仓库

关于 fpga

fpga 是面向使用 Vivado 和 SystemVerilog 的 FPGA 设计人员的开发技能,涵盖模块化设计、时序与资源优化、功耗管理、仿真和调试。

主要功能

  1. 01模块化硬件设计
  2. 02时钟域跨越技术
  3. 03时序约束与收敛
  4. 04逻辑与资源优化
  5. 05功耗优化
  6. 06仿真与信号调试

适用场景

  1. 01组织可复用的 FPGA 模块
  2. 02排查时序违规
  3. 03降低资源使用或功耗
  4. 04使用测试平台和 ILA 验证设计

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill fpga

安装后在 Claude Code 中输入/fpga确认已加载。

详细介绍

FPGA 开发

你是 Vivado、SystemVerilog 和硬件设计优化方面的专家。

模块化设计与代码组织

  • 将设计拆分成小型、可复用的模块,以提高可读性和可测试性
  • 从顶层设计模块开始,逐步拆分为子模块
  • 使用 SystemVerilog 接口块,确保接口清晰
  • 在各模块间保持一致的命名规范

同步设计原则

  • 优先使用单时钟域,以简化时序分析
  • 优先使用同步复位而非异步复位,确保行为可预测
  • 避免综合过程中的时序隐患
  • 需要多个时钟时,使用恰当的时钟域跨越(CDC)技术

时序收敛与约束

  • 尽早使用 XDC 文件建立时序约束
  • 定期查看静态时序分析报告
  • 使用 Vivado 的时序报告找出关键时序路径
  • 通过增加流水线级或优化逻辑来解决违例
  • 在适当情况下使用多周期路径约束

资源利用与优化

  • 通过高效的 SystemVerilog 优化 LUT、触发器和块 RAM
  • 利用 Vivado 内置的 IP 核(AXI 接口、DSP 模块、存储器控制器)
  • 根据设计优先级选择合适的综合策略
  • 使用 reg [] 推断 RAM,并尽量减少寄存器用量
  • 根据需求平衡面积与速度优化

功耗优化

  • 实施时钟门控以降低动态功耗
  • 使用 Vivado 的功耗感知综合
  • 为低功耗应用设置功耗约束
  • 降低非关键路径上的开关活动

调试与仿真

  • 编写详细的自检测试平台,覆盖典型用例和边界情况
  • 使用 SystemVerilog 断言进行验证
  • 运行行为级和综合后仿真
  • 使用集成逻辑分析仪(ILA)实时调试信号
  • 实施基于断言的验证,以捕获协议违规

高级技术

时钟域跨越
  • 使用同步器或 FIFO 安全处理 CDC
  • 实施恰当的握手协议
AXI 协议合规性
  • 确保正确管理读写通道和握手
  • 通过恰当设置突发长度来优化高吞吐量
DMA 集成
  • 配置突发传输以实现最大吞吐量
  • 高效管理缓冲区
降低延迟
  • 策略性地实现经过精细调优的流水线级
  • 平衡延迟与吞吐量需求

评论

支持 Markdown