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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: cqugjw

[求助] Xilinx开发板Block RAM的使用

[复制链接]
 楼主| 发表于 2013-6-17 12:23:06 | 显示全部楼层
回复 9# yadog
我用core gen生成IP核的时候,RST这个pin是可选的,我就没有勾上。想先做个简单的实验。
发表于 2013-6-17 16:17:58 | 显示全部楼层
dual port的input不完整,看上去地址端口都没看到,把端口补完整,再驱动
 楼主| 发表于 2013-6-17 16:58:08 | 显示全部楼层
回复 12# yadog
我前20个clk是读数据的,clk,addrb,en也都给了,但是output还是没有输出。
 楼主| 发表于 2013-6-17 17:00:39 | 显示全部楼层
回复 12# yadog
我也加载了COE初始化值:ABCDEBDA;在iSim的Memory窗口也看的到初值,但就是无法读出。
发表于 2013-6-18 08:57:55 | 显示全部楼层
回复 13# cqugjw


前面的一问题是说,在dual port的testbench中,例化ip模块时似乎没看到地址端口?
 楼主| 发表于 2013-6-18 11:41:01 | 显示全部楼层
回复 15# yadog

地址端口在模块中定义为reg变量,模块中例化了IP并连接地址线。testbench例化的是模块的接口,地址端口是在内部的。
怎么测都仿真不出来,斑斑能给个simple dual port ram的例程不..可以奉上全部信元,虽然不多..实在是想不到办法了~~
发表于 2013-6-18 15:06:31 | 显示全部楼层
Verilog HDL Single-Clock Synchronous RAM with Two Read
Addresses
module dual_ram_infer (q, q2, write_address,
read_address, read_address2, d, we, clk);
output reg [7:0] q;
output reg [7:0] q2;
input [7:0] d;
input [6:0] write_address;
input [6:0] read_address;
input [6:0] read_address2;
input we, clk;
reg [7:0] mem [127:0];
always @ (posedge clk) begin
if (we)
mem[write_address] <= d;
q <= mem[read_address];
q2 <= mem[read_address2];
end
endmodule

dual port跟single port差不了太多,可以先调通一个port

或者把完整的ip、设计代码及testbench代码发上来,大家可以帮你跑一下
发表于 2013-6-18 15:19:25 | 显示全部楼层
module sdp_bram(
    input clk,
input rst_n,
input [7:0] dct_in,
output [7:0] dct_out
    );

这个设计代码部分应该包含你例化的ipcore的所有接口

同样的,uut部分要例化所有的接口,要不然连接关系建立不了

把两边的接口都补全了试试
 楼主| 发表于 2013-6-19 09:41:44 | 显示全部楼层
回复 18# yadog
sdp_bram.rar (676.52 KB, 下载次数: 29 ) 工程包上传,麻烦斑斑帮忙跑下看看~
发表于 2013-6-19 10:19:01 | 显示全部楼层
本帖最后由 yadog 于 2013-6-19 10:31 编辑

lz要认真读一下18、20楼的回复

我看了下你的IPcore生成文件,这里面的端口是这样的
module sdp_ram(
  clka,
  wea,
  addra,
  dina,
  clkb,
  addrb,
  doutb
);

input clka;
input [0 : 0] wea;
input [2 : 0] addra;
input [7 : 0] dina;
input clkb;
input [2 : 0] addrb;
output [7 : 0] doutb;

不论是设计还是仿真文件,这些端口必须全部例化,20楼已经说得非常直白了,呵呵
不过lz给的这个包里面的问题在于,设计和仿真中又将ena、wea、enb端口给干掉了,
更正就ok了
在设计文件中,如下定义,会让这些端口都“浪得虚名”,声明为input,必须得
reg ena;
reg wea;
//reg [2:0] addra;
reg enb;


另,顺便问下,lz为什么在设计文件中,要么将addr声明为reg,要么将使能控制信号声明为reg?
是因为对testbench和设计文件怎么建立连接关系不太明了?

不是太好理解lz的思维方向
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-27 05:19 , Processed in 0.027718 second(s), 7 queries , Gzip On, Redis On.

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