在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 10674|回复: 3

[求助] verilog 存储器赋初值和输出

[复制链接]
发表于 2013-1-27 11:17:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
各位大神,小弟写了一个存储器的小程序,但仿真结果却不对,不知为何,请指教
`timescale 1 ns/100 ps
module test_memory(clk,rst,out);
parameter LENGTH=20;
input clk,rst;
output [3:0] out;
reg [3:0] IX1 [0ENGTH-1];

integer i,j;

always @(posedge clk)
  if(!rst)  
  begin

j<=0;
    for(i=0;i<LENGTH;i=i+1)
      IX1[i]<=i+1;
  end
  else
  begin
      IX1[j]<=IX1[j]^4'b0010;
      j<=j+1;
  end

  assign out=IX1[j-1];

  endmodule
 楼主| 发表于 2013-1-27 16:03:53 | 显示全部楼层
回复 2# chen851112

谢谢你的回答,但我觉得那不是根本问题  问题可能出在输出方式上 但我现在还没搞明白  
程序改过以后可以输出正常结果了

`timescale 1 ns/100 ps
module test_memory(clk,rst,out);
parameter LENGTH=20;
input clk,rst;
output reg [3:0] out;
reg [3:0] IX1 [0ENGTH-1];

reg [4:0] i,j;

always @(posedge clk)
  if(!rst)  
  begin

j<=1'b0;
    for(i=1'b0;i<LENGTH;i=i+1'b1)
      IX1<=i+1'b1;
  end
  else
  begin
      out<=IX1[j]^4'b0010;
      j<=j+1'b1;
  end

  endmodule

这时前仿结果


这时后仿结果

   但感觉后仿延迟好大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-27 16:05:55 | 显示全部楼层
前仿 1.PNG

后仿
2.PNG
回复 支持 反对

使用道具 举报

发表于 2013-1-28 16:44:46 | 显示全部楼层
回复 3# flyingsheep


    后面对了应该是因为j的变量类型改为了reg,当j为整型时,out=IX[j-1]可能会有问题(j=0时,j-1为负数,超出IX的范围);后仿的话如果是读数据,应该存储器后面会接大的组合逻辑,所以都会有比较大的延迟,应该是正常现象
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-16 03:06 , Processed in 0.023432 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表