为什么步长只能为1?

2019-03-25 10:46发布

顶层模块为—— module ramout(
input          clkin,
input   [7:0]  addr_read,
output  [11:0] data_read ); reg  [ 7:0] cnt;
reg  [ 1:0] status; reg  [ 7:0] addr;
reg  [15:0] din;
wire [15:0] dout;
reg        we; paremeter step = 16'd1; //只要不是1就报错 parameter size1 = 8‘d166; assign data_read = dout[11:0]; ram1 ram11(.addr(addr),
    .clk(clkin),
    .din(din),
    .dout(dout),
    .we(we)
   ); always@(negedge clkin)
if(cnt != size1) cnt <= cnt + 8'd1; always@(negedge clkin)
if(cnt < 8'd6)     status <= 2'd0;
else if(cnt != size1) begin 
      status <= 2'd1;
    we     <= 1'b1;
    din    <= din + 16'd1;        addr   <= addr + 8'd1;      end
else   begin status <= 2'd2;
      we     <= 1'b0;     end always@(negedge clkin)
if(status == 2'd2 && addr_read < size1)   addr  <= addr_read; endmodule step为1时不报错,为2或3就报错—— ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr_cy<0>>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr2>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr4>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr6>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr8>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr10>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr12>
ERROR:Xst:528 - Multi-source in Unit <myad> on signal <Mcount_addr14> 我的片上存储器的宽度为16位,深度为256。 为什么? 先谢过! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
eeleader
1楼-- · 2019-03-25 16:45
 精彩回答 2  元偷偷看……
andyandy
2楼-- · 2019-03-25 20:46

在两个always语句操作了同一个变量addr。合并即可。

好几个月前就犯了这么一个错误。引以为戒!

一周热门 更多>