1,问题描述

使用BRAM存储数据,并且按照上一篇文章所叙述,对BRAM进行读操作,但是当复位信号复位时,输出的结果中出现了一段不定状态,并且这段不定状态的长度和复位之前已读出的数据的长度相同,仿真得到的波形图如图一所示:

Xilinx BRAM输出不定状态的问题描述与解决措施
图一,出现错误的波形图

检查了好久,也一直在看BMG IP核的说明文档,还是没有发现错误,后来不经意间发现,自己一直考虑读的问题,没有考虑到有可能在“写”的过程中出现了错误。下面是例化BRAM IP核的程序;

BRAM0 My_Bram (
	  .clka(clk1),    // input wire clka
	  .rsta(rsta),    // input wire rsta
	  .ena(temp),      // input wire ena
	  .wea(),      // input wire [0 : 0] wea
	  .addra(addra),  // input wire [11 : 0] addra
	  .douta(dout),  // output wire [15 : 0] douta
	  .dina()
	);

由于整个过程中并没有用到写,所以dina和wea引脚均悬空,思考,wea引脚状态未定,可能为0,也可能为1,因此尝试着将wea引脚置1,然后仿真得到的波形图如图二所示:
Xilinx BRAM输出不定状态的问题描述与解决措施
图二,对wea引脚置零后得到的输出波形
困扰了多天的问题就这样得到了解决。

相关文章:

  • 2022-12-23
  • 2021-12-28
  • 2021-09-03
  • 2021-08-02
  • 2022-12-23
  • 2021-12-22
  • 2021-09-07
  • 2021-04-10
猜你喜欢
  • 2021-07-17
  • 2022-12-23
  • 2021-08-14
  • 2021-07-06
  • 2021-06-09
  • 2021-12-24
  • 2021-04-03
相关资源
相似解决方案