本文主要是介绍FPGA中的存储器--学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.某芯片,有500个寄存器,需要在上电的时候由FPGA向这些寄存器中写入初始值,初始值已经通过相应的文档给出具体值(已知的)
问题:数据量大、数据值已知、数据内容固定
解决方案:需要寄存器将这些数先存储起来,使用时直接读取存储器。此存储器只需支持读功能--ROM
应用:CMOS摄像头初始化应用、DDS信号发生器(固定波形数据)
2.某芯片,一次完整的输出需要1024个14位数据,该芯片工作后会循环持续的输出这1024个数据,但用户希望通过串口来改变这1024个数据的内容,让芯片工作在不同的状态,获得不同的数据内容。
问题:数据量大、数据要求能被修改、数据要求能重复使用
解决方案:可读可写 RAM
应用:DDS信号发生器(可调波形)
3.信号源(例如ADC)以1us一个的速率产生12位的数据,现要求获得连续1ms内的数据,通过串口以115200的波特率发送到电脑
问题:
数据量:1000个
数据内容未知
数据使用速率低于数据传输速率
1s发115200哥字节的数据,每个数据发送需要868us(1000000000/115200)
数据生产速度:0.5us一个字节
解决方案:数据速率不匹配,数据消耗速率慢于数据生产速率,总的数据量是有限的,数据的生产和消耗时的位宽不一样
应用:高速数据采集系统
4.信号源(例如AADC)以1ms一个速率产生12位的数据,现要求获得连续1s内的数据,通过某通信接口以100MB/S发送到电脑,该通信接口一次发送至少需要连续的512哥字节的数据。
问题:数据速率不匹配,数据消耗数率高于数据生产速率,且数据消耗时要求是连续的
解决方案:使用一个管道,每产生一个数据往管道里面存储一个,数据生产存储满512个字节后,再让数据消耗模块开始一次发送,数据消耗模块以其数据消耗速率从管道中读取出数据并发送。--FIFO
应用:以太网、USB传输数据的应用
这篇关于FPGA中的存储器--学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!