首先ram是存储器,是有大小限制的,这个可以根据数据总线和地址总线看出来。
地址信号需要你自己产生,你程序中应该还有一个控制模块,这个控制模块一方面接收你串口来的数据,一方面用来产生使能信号、写信号、地址信号。地址信号你可以用一个加法器,从0开始加,然后传递给ram就行了,先写地址总线,再写数据总线,这样稳定写。
这个问题似乎有点笼统,建议您描述的更具体或者对FPGA和RAM多学习。
通常来说,FPGA里面有固化RAM,你使用它的时候,需要例化,比如一个单端口RAM,有地址线、数据输入线、数据输出线、时钟线、ram使能线、写使能等,这样就相当于一块实际的RAM,就可以对它进行读写数据,当然需要根据地址来读写。不知你明白了没有?
如果你有fpga片内程序,那就很简单。只需要修改下输出引脚,将ram内数据输出到fpga外部引脚,然后用示波器、逻辑分析仪或者随便什么工具查看,也可以用signaltap直接观察。
要是你没有fpga片内程序,那我就没办法了,毕竟片内数据是无法调出查看的,一定要有检测或采样手段才行
希望对你有帮助,望采纳。
不知道你现在明白了没有,我是刚学完,感觉明白了,写入数据就是wea写使能为1,然后设置地址addra的同时,设置你要输入的dina即可完成写入,因为你要控制地址和输入数据,所以对于你来说,输入数据d,与a可以设成中间变量,不可以作为输入端口,因为输入端口你是不能设置的。比如wire [1:0]a, wire[1:0] d,然后写程序来控制a和d,达到写入数据的目的。这样顶层为 ram_top(clk,rst_n ,out)即可。其他都作为中间变量。读的话要是写使能wea变为0才能读的,输入你想读的地址即可输出欢迎分享,转载请注明来源:内存溢出
评论列表(0条)