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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3218|回复: 1

[讨论] 关于quartus宏功能管理向导配置的RAM在modelsim仿真时出现的问题

[复制链接]
发表于 2014-10-28 16:42:11 | 显示全部楼层 |阅读模式

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

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

x
用quartusII 的宏功能管理向导配置了一个可同时读写的简单双口的RAM,实际需要48个单元,引了6根地址线,每个单元位宽为24,源程序中进行了例化赋初值,在modelsim中编写了testbench程序,但是仿真出来出现# Warning : Address pointed at port B is out of bound!# Time: 1381450000  Instance: vvram_control_tb.DUT.vvram_inst5.altsyncram_component

不是自己生成的RAM的Verilog程序吗?为什么会出错呢?
生成的RAM的程序为:
module vvram (
  rdclock,
  wrclock,
  rdaddress,
  wraddress,
  wren,

data,
   q);


input
[23:0]  data;

input
[5:0]  rdaddress;

input
  rdclock;

input
[5:0]  wraddress;

input
  wrclock;

input
  wren;

output
[23:0]  q;

parameter initial_file="vvram0.mif"; //change
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif

tri1
  wrclock;

tri0
  wren;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif


wire [23:0] sub_wire0;

wire [23:0] q = sub_wire0[23:0];


altsyncram
altsyncram_component (

.address_a (wraddress),

.clock0 (wrclock),

.data_a (data),

.wren_a (wren),

.address_b (rdaddress),

.clock1 (rdclock),

.q_b (sub_wire0),

.aclr0 (1'b0),

.aclr1 (1'b0),

.addressstall_a (1'b0),

.addressstall_b (1'b0),

.byteena_a (1'b1),

.byteena_b (1'b1),

.clocken0 (1'b1),

.clocken1 (1'b1),

.clocken2 (1'b1),

.clocken3 (1'b1),

.data_b ({24{1'b1}}),

.eccstatus (),

.q_a (),

.rden_a (1'b1),

.rden_b (1'b1),

.wren_b (1'b0));

defparam

altsyncram_component.address_aclr_b = "NONE",

altsyncram_component.address_reg_b = "CLOCK1",

altsyncram_component.clock_enable_input_a = "BYPASS",

altsyncram_component.clock_enable_input_b = "BYPASS",

altsyncram_component.clock_enable_output_b = "BYPASS",

//altsyncram_component.init_file = "../../../vvram0.mif",

altsyncram_component.init_file = initial_file,  //change

altsyncram_component.intended_device_family = "Cyclone IV E",

altsyncram_component.lpm_type = "altsyncram",

altsyncram_component.numwords_a = 48,

altsyncram_component.numwords_b = 48,

altsyncram_component.operation_mode = "DUAL_PORT",

altsyncram_component.outdata_aclr_b = "NONE",

altsyncram_component.outdata_reg_b = "UNREGISTERED",

altsyncram_component.power_up_uninitialized = "FALSE",

altsyncram_component.widthad_a = 6,

altsyncram_component.widthad_b = 6,

altsyncram_component.width_a = 24,

altsyncram_component.width_b = 24,

altsyncram_component.width_byteena_a = 1;


endmodule
发表于 2016-4-11 17:27:26 | 显示全部楼层
我也遇见诸如此类的问题,显示Warning : Address pointed at port A is out of bound!
# Time: 10611000  Instance: test_ctrl.uint.out_ram.altsyncram_component;请问你是怎样解决的的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-24 00:41 , Processed in 0.016231 second(s), 11 queries , Gzip On, MemCached On.

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