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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4653|回复: 12

[求助] 调用ROM出错

[复制链接]
发表于 2011-3-11 13:42:22 | 显示全部楼层 |阅读模式

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

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

x
我想用查表法生成一个正弦波形,可是在调用的时候总是不成功,也就是总是读不出ROM中的数据
显示的warning是:Xst:2036 - Inserting OBUF on port <sinwave<0>> driven by black box <core>. Possible simulation mismatch.其中sinewave是我定义的sine波数据输出口,core是我的rom核。
读出的数据总是显示XXXXX,到底是怎么回事?
QQ截图未命名.jpg
发表于 2011-3-11 14:10:39 | 显示全部楼层
仔细看下ROM的的时序,地址,时钟都按要求给了吗
发表于 2011-3-11 14:16:53 | 显示全部楼层
你生成的ROM没有添加到工程里面,找不到文件,所以 black box 了。
发表于 2011-3-11 14:19:35 | 显示全部楼层
ROM的数据你按要求制作的吗?另外,HEX文件的路径,在CORE生成文件中是什么样路径?最好是当前路径,然后仿真的时候你把HEX放在仿真work目录下
 楼主| 发表于 2011-3-11 15:04:25 | 显示全部楼层
感谢楼上3位,你们说的问题我检查了,应该不是出在这些方面的
 楼主| 发表于 2011-3-12 16:40:08 | 显示全部楼层
继续等高手的建议!可能是自己哪地方疏忽了,贴出程序来请过路高手帮忙看下,程序很短。


module genwave(
    input clk,
    input rst,
         input [22:0]freq,//固定的分频值
    output [5:0] sinwave
    );

reg rom_read;
reg [5:0]cnt,cnt1;


always@(posedge clk)begin//计数器
if(rst)
rom_read<=0;
else
if(cnt1==freq-1)//
rom_read<=1;
else
rom_read<=0;
end



always@(posedge clk)begin //对系统时钟分频产生读ROM时钟
if(rst)
cnt1<=0;
else if(cnt1==freq-1)//
cnt1<=0;
else
cnt1<=cnt1+1;
end

always@(posedge rom_read)begin//每读一次ROM就计数一次,ROM中共50个数据,只需50个时钟就可以读完一次,以计数器的值作为ROM的地址
if(rst)begin
cnt<=0;
end
else
if(cnt==49)
cnt<=0;                                                                                                              
else
cnt<=cnt+6'd1;
end


core sine(
                .clka(rom_read),
                .addra(cnt),
                .douta(sinwave)
        );
       
endmodule
发表于 2011-3-13 10:46:14 | 显示全部楼层
去掉最后一个always并改成下面试试,:
always@(posedge clk)begin//计数器
if(rst)
rom_read<=0;
cnt<=0;
else
if(cnt1==freq-1)//
rom_read<=1;
cnt<=cnt+1;
else
rom_read<=0;
end

PS:建议用低电平复位
 楼主| 发表于 2011-3-13 14:27:04 | 显示全部楼层
感谢7楼,我昨天改成这个了,还是不行,问题应该不是出在这里
发表于 2011-3-13 19:00:14 | 显示全部楼层
楼主用的不是altera,呵呵,我也不太明白,不过帮你查了一个,警告类似,最后仿真的结果输出是高阻,结论可能是版本不对,仅作为提示。
给不了链接,你自己去google上查吧
 楼主| 发表于 2011-3-14 09:59:30 | 显示全部楼层
多谢各位,问题昨天解决了,确实是在计数上出了问题,我换了一种方式编程就好了,至于上面的分频和计数有什么问题我还没想出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 17:21 , Processed in 0.022420 second(s), 8 queries , Gzip On, Redis On.

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