vivado学习之ram-单端口波形图显示

一、Single port RAM端口,写优先的波形图,延迟1个周期,写完之后,下个时钟周期立马读出来

文件代码

`timescale 1ns / 1ps
module ram_out(
input sysclk,
input rst_n,
output [7:0]douta
    );

	reg wea;
	reg [3:0]addra;
	reg [7:0]adina;
	reg ena;

always@(posedge sysclk)
if(!rst_n)
	begin
		wea<=0;
		addra<=0;
		adina<=0;
		ena<=0;
	end
else
	begin
		if(addra==15)begin
			ena<=0;
			wea<=0;
			adina<=adina;

			end
		else
			begin
			ena<=1;
			wea<=1;
			addra<=addra+1;
			adina<=adina+1;
			end
	end

blk_mem_test ram_test (
  .clka(sysclk),    // input wire clka
  .ena(ena),      // input wire ena
  .wea(wea),      // input wire [0 : 0] wea
  .addra(addra),  // input wire [3 : 0] addra
  .dina(adina),    // input wire [7 : 0] dina
  .douta(douta)  // output wire [7 : 0] douta
);
endmodule

运行代码

`timescale 1ns / 1ps
module ram_out_simulation();


reg sysclk;
reg rst_n ;
wire [7:0]douta;

ram_out ram_out_u(
.sysclk (sysclk),
.rst_n  (rst_n),
.douta (douta)
    );

initial
	begin
		sysclk = 0;
	end
always #10 sysclk=~sysclk;

initial
	begin
		#10 rst_n=1;
		#45 rst_n=0;
		#90 rst_n=1;
	end

endmodule

二、Single port RAM端口,读优先的波形图,等写完之后,再读出来(由于之前无值)

 

仿真波形

文件代码

`timescale 1ns / 1ps
module ram_out(
input sysclk,
input rst_n,
output [7:0]douta
    );

	reg wea;
	reg [3:0]addra;
	reg [7:0]adina;
	reg ena;

always@(posedge sysclk)
if(!rst_n)
	begin
		wea<=0;
		addra<=0;
		adina<=0;
		ena<=0;
	end
else
	begin
			ena<=1;
			wea<=1;
			addra<=addra+1;
			adina<=adina+1;
	end

blk_mem_test ram_test (
  .clka(sysclk),    // input wire clka
  .ena(ena),      // input wire ena
  .wea(wea),      // input wire [0 : 0] wea
  .addra(addra),  // input wire [3 : 0] addra
  .dina(adina),    // input wire [7 : 0] dina
  .douta(douta)  // output wire [7 : 0] douta
);
endmodule

 三、Single port RAM端口,无更改模式,查看波形图,由于之前未附值,所以一直保持初始化0

在无更改模式下,写入操作期间输出锁存保持不变,数据任然是以前的读取数据,不受同一个端口的写入操作的影响。

建议先赋值再看,否则效果不大

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值