首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存出现Quartus错误(10028)

内存出现Quartus错误(10028)
EN

Stack Overflow用户
提问于 2016-08-31 05:39:40
回答 1查看 156关注 0票数 1

我的目标是用Quartus编写这段代码,但问题是我不知道如何解决这个问题。我试着知道错误10028是什么意思,但我不知道如何处理它。有没有人可以教我如何修复它,或者有没有办法绕过它?

代码语言:javascript
复制
module mem (r_wb,addr,d,q);
input r_wb;//0write 1read
input [7:0] addr;
input [7:0 ] d;
output [7:0] q;
reg [7:0] q;
reg [7:0] mem_bank [0:255];
always @(r_wb)
 if (r_wb)  q=mem_bank[addr];
 else  mem_bank[addr]=d;
always @(addr)
 if (r_wb)  q=mem_bank[addr];
 else  mem_bank[addr]=d;
always @(d)
 if (r_wb)  q=mem_bank[addr];
 else  mem_bank[addr]=d;
endmodule
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 17:21:12

你在评论中输入的代码大部分都是正确的,因为你确实需要一个时钟信号。但是,您应该使用非阻塞赋值(<=)。

我建议将您的模型头改为ANSI样式,该样式自2001年以来一直存在。非ANSI样式要求q被识别三次;端口列表,方向,类型。ANSI风格将其压缩。非ANSI很容易理解,因为许多合成器和代码生成器在默认情况下仍然使用它。但任何现代模拟器或合成器都会接受ANSI风格的输入。

代码语言:javascript
复制
module mem (
  input clk, 
  input r_wb, //0write 1read
  input [7:0] addr, 
  input [7:0 ] d, 
  output reg [7:0] q) ;
  reg [7:0] mem_bank [0:255];

  always @(posedge clk)
    if (r_wb) q<=mem_bank[addr];
    else mem_bank[addr]<=d;
endmodule
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39237506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档