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内部信号变化,辅助调试过程。**
相关推荐
遇乐的果园44 分钟前
前端学习笔记-vue状态管理优化
前端·笔记·学习
摇滚侠2 小时前
Java 全栈开发实战教程 课程笔记 29-33
笔记
AI的探索之旅2 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao2 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch2 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
whyTeaFo3 小时前
GAMES101: Lecture 9: Shading 3(Texture Mapping cont.) ppt笔记
笔记
Freedom_my3 小时前
STM32项目3
stm32·单片机·嵌入式硬件
chase。4 小时前
【学习笔记】PointWorld:迈向通用机器人操控的3D世界模型
笔记·学习·机器人
国科安芯4 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学6 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器