我的目标是用Quartus编写这段代码,但问题是我不知道如何解决这个问题。我试着知道错误10028是什么意思,但我不知道如何处理它。有没有人可以教我如何修复它,或者有没有办法绕过它?
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发布于 2016-08-31 17:21:12
你在评论中输入的代码大部分都是正确的,因为你确实需要一个时钟信号。但是,您应该使用非阻塞赋值(<=)。
我建议将您的模型头改为ANSI样式,该样式自2001年以来一直存在。非ANSI样式要求q被识别三次;端口列表,方向,类型。ANSI风格将其压缩。非ANSI很容易理解,因为许多合成器和代码生成器在默认情况下仍然使用它。但任何现代模拟器或合成器都会接受ANSI风格的输入。
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;
endmodulehttps://stackoverflow.com/questions/39237506
复制相似问题