当前位置: 首页 > news >正文

FPGA(现场可编程门阵列)笔记

*编程语言

- [Verilog]:硬件描述语言,语法风格类似于C语言,用于数字电路的设计。
- [SystemVerilog]:扩展自Verilog,增加了面向对象编程等特性,语法更接近于C++,适用于复杂系统设计。
- [VHDL]:另一种硬件描述语言,其语法结构与Pascal相似。

*与软件的区别

- 软件使用语言写流程,主要关注算法和流程控制,FPGA用语言写逻辑电路。

*FPGA厂商

- [Altera(Intel)]:提供Quartus开发环境。
- [Xilinx (AMD)]:提供Vivado开发环境。
- 国产有易灵思等等。

*FPGA分为时序电路和组合电路

- 时序电路是由时钟边沿触发。
- 组合电路由逻辑门与真值表组合而成,经过组合电路后需要重新进行时钟同步。

*CDC(Clock Domain Cross)

- 跨时钟域问题通常涉及如何安全地在不同的时钟域之间传输数据,避免亚稳态。使用多级触发器(如打两拍或三拍)是一种常见解决方案。
- 对于数据总线,低速信号先产生握手信号,然后发布数据到寄存器,等待一段时间后读取。
- 对于高速信号,使用异步FIFO和双口RAM进行同步。

*RTC步骤

1. 编写RTL代码,寄存器传输语言。
2. 逻辑综合(synthesis),只有RTL可以被综合,将RTL代码转换成门级网表。
3. 布局布线(implementation)将网表变成芯片上的电路实现。
4. 生成配置文件烧录到FPGA。

*仿真软件

- Synopsis,VCS,Verdi
- Mentor,ModelSim -> QuestaSim

*仿真流程

1. 首先编写test bench,test bench不局限于RTL语句。
2. 综合电路,将DUT(Design Under Test)和TB(Test Bench)变成网表。
3. 将网表变成可执行程序。
4. 运行仿真产生波形,test bench不仅用于生成测试激励,还可以包含检查机制来自动判断仿真的结果是否符合预期。

*电路调试

- 可以在电路中插入内置的逻辑分析仪,使用JTAG设置trigger看波形。
- 使用虚拟输入输出(VIO)模块,可以实时监控FPGA内部信号变化,辅助调试过程。


 

相关文章:

  • DDS Discovery数据
  • STL简介 + string【上】
  • Python环境中在线训练机器学习模型所遇到的问题及解决方案
  • 不确定与非单调推理的概率方法
  • 2025年大一训练-DP1
  • WebSocket:实现实时双向通信的技术
  • 网络安全-Burp Suite基础篇
  • 手持式三维扫描设备赋能智能汽车制造
  • 第五章 SQLite数据库:5、SQLite 进阶用法:JOIN、UNION、TRIGGER、INDEX、ALIAS、INDEXED BY 等模块
  • 大屏设计与汇报:政务服务可视化实践
  • RUI桌面TV版最新版免费下载-安卓电视版使用教程
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(二级)真题
  • LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, stream 流操作
  • Windows 11设置开机自动运行 .jar 文件
  • orcad csi 17.4 DRC规则设置及检查
  • 生成器模式深入解析与 Spring 源码应用
  • 新书速览|DeepSeek移动端AI应用开发:基于Android与iOS
  • AI数字人如何深度赋能政务场景?魔珐科技政务应用全景解读
  • 第十七届“华中杯”大学生数学建模挑战赛题目C题就业状态分析与预测完整 思路 代码 模型 结果 分享
  • Android守护进程——Vold (Volume Daemon)
  • 民生访谈|“AI推广是把学生教聪明还是教笨了?这个问题必须回答好”
  • 京东:自21日起,所有超时20分钟以上的外卖订单全部免单
  • 神舟二十号全系统合练今日展开
  • 加快从数量增长向品质跃升转变,促进生态空间与城市功能有机共生!龚正调研公园城市建设工作
  • 新闻1+1丨全球首场人机共跑马拉松,有何看点?
  • 译者手记|如何量化家庭历史