月度归档:2022年12月

读书-FPGA相关(一)

边学便摘录,做个补充。以《Xilinx FPGA数字信号处理设计》,《扩频通信系统的FPGA设计》两本书为基础,在翻看时,遇到有趣的名词,加以网络搜索,以图深入了解与掌握。

1.功率谱密度

https://blog.csdn.net/yu1581274988/article/details/116903966

2.FPGA-相同电路,不同的逻辑功能

根据数字电路的知识,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等,最多只可能存在种结果。所以如果实现将相应的结果存放在一个存储单元,就相当于实现了与非门电路的功能。FPGA即通过烧写文件去配置查找表内容,从而在相同的电路情况下实现不同的逻辑功能。

3.FPGA最小系统电路

1.项目例子:https://darwinlearns.com/productinfo/1461705.html

2.介绍:FPGA最小系统是可以使FPGA正常工作的最简单的系统。它的外围电路尽量最少,只包括FPGA必要的控制电路。一般所说的FPGA的最小系统主要包括FPGA芯片、下载电路、外部时钟、复位电路和电源。如果需要使用SOPC软嵌入式处理器还要包括SDRAM和Flash。一般以上这些组件是FPGA最小系统的组成部分。

https://blog.csdn.net/weixin_39998795/article/details/110658121

4.普通的HDL和行为HDL

HDL语言输入法,利用文本描述设计,可以分为普通HDL和行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。而在大中型工程中,主要使用行为HDL,其主流语言是Verilog HDL和VHDL。这两种语言都是IEEE标准,其共同的突出特点是:语言同芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好(相较于原理图输入方式,更加易于维护),具有很强的逻辑描述和仿真功能,且输入效率高。

2.HDL的三种描述方式:https://blog.csdn.net/Reborn_Lee/article/details/104322281

5.单片机配置FPGA

在FPGA中,为达到设计的保密性和可升级性,利用FPGA的配置功能,可以实现硬件逻辑关系的改变,而不需要改变印制电路板的结构。

采用单片机,作为配置指令的输入(配置数据仍存在FPGA中),或作为配置指令及配置数据的输入,可以灵活实现"多任务电路结构重配置"技术,将不同设计的功能导入FPGA;此外,单片机若采用无线模块,可以实现FPGA系统的无线升级。

FPGA和单片机的结合,似在实际中有着一定的用途。

6.数据采集

数据采集在工业测控给领域有广泛应用,在传统的数据采集系统设计中,通常采用单片机或DSP作为主控制器来控制ADC、存储器及其他相关的外围电路来工作。

但是这些设计中存在一些不足,单片机的时钟频率较低且通过软件编程,难以实现高速、高性能、多通道数据采集系统;DSP虽然速度块,然其更加擅长复杂的数学运算,对数采系统的简单高速读写操作来说,是一种资源的浪费。

FPGA体积小,功耗低,时钟频率高,内部延迟小,全部控制逻辑由硬件完成,另外配置程序灵活;利用硬件描述语言也可实现程序的并行执行,适合于数据采集。

7.状态机

状态机是FPGA内部的指挥单元,它按照固定的节拍往复的运行(有限状态机)。

0.为什么使用状态机:

  1. 高效的顺序控制模型;
  2. 容易利用现成的EDA工具进行优化设计;
  3. 性能稳定,状态机容易构成性能良好的同步时序逻辑模块,这对于解决大规模逻辑电路设计中的竞争和冒险现象大有益处。与其他方案相比,在消除电路的毛刺现象、强化系统稳定性方面,FSM使设计者拥有更多的解决方法;
  4. 高速性能,在高速通信和高速控制方面,状态机更具有巨大优势;在顺序控制方面,一个状态机的功能更类似于CPU
  5. 高可靠性。状态机由纯硬件电路构成,运行不依赖软件指令的逐条执行,因此不存在CPU运行软件过程中许多固有缺陷;在状态机的设计中能够使用各种容错技术;当状态机进入非法状态并从中挑出进入正常状态所需时间十分短暂,通常只需要2-3个时钟既数十纳秒,对系统不会构成较大的危害。

链接:https://juejin.cn/post/6963615110468370468

1.概念:
https://blog.csdn.net/weixin_46188211/article/details/122792460

2.概念+相关说明:
https://www.cnblogs.com/wanghuaijun/p/8284697.html

  • 一般的状态机是使用Always语句和case语句组合来实现的
  • 不可以根据Always快的个数来判断他是属于几段的状态机
  • 一般情况下不建议使用一段式状态机,建议使用二和三段式状态机,二段式状态机使用时序逻辑处理状态变化,组合逻辑处理输入输出的变化,结构比较清晰,但容易产生毛刺
  • 三段式从输入到输出会比一、两段式状态机延时一个时钟周期

8.一种完整的数字信号处理FPGA设计过程:
先采用MATLAB对需要设计的工程进行仿真,一方面可以仿真算法过程及结果,另一方面还可以生成FPGA测试仿真所需的测试数据;之后在FPGA开发工具中编写Verilog HDL程序,对实例进行设计实现;接着编写测试激励文件,采用modelsim软件对Verilog HDL程序进行仿真,查看Modelsim仿真波形,验证程序功能的正确性;最后完成FPGA程序的综合及布线,将程序下载到开发板来验证FPGA设计的正确性。

验证工程实例程序是否正确,最直观的方式是使用示波器,观察信号处理前后波形的变化是否满足要求。
当缺少示波器,FPGA开发工具所提供的逻辑分析仪软件配合板测程序也是一个解决方法。
ILA(Integrated Logic Analyzer),集成逻辑分析仪,允许用户在FPGA设备上执行系统内的调试。作为一名FPGA工程师,掌握在线调试工具进行时序分析是必备的职业技能之一。ILA通过一个或者多个探针(Probe)来实时抓取FPGA内部数字信号的波形,分析逻辑错误的原因,帮助debug。
Eg.Vivado使用篇之ILA(逻辑分析仪):https://blog.csdn.net/m0_53606280/article/details/123600212