首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分段错误:用yosys编译时11次

分段错误:用yosys编译时11次
EN

Stack Overflow用户
提问于 2019-08-08 15:35:33
回答 1查看 126关注 0票数 0

我正在尝试实现一个Verilog模块,该模块使用Yosys UP5K块在格子SB_SPRAM256KA SPRAM硬件核中写入。请注意,几乎没有关于使用此黑匣子块的文档/示例。主要目的是在音频数字系统中实现回波或延迟。

我有两个时钟--帧时钟lrclk和位时钟bclk,注意每一个帧时钟周期都有64位时钟周期。

我尝试使用blck中的敏感列表来循环SPRAM中的读/写过程。我实施了一个国家机构:

  • S1:将输入数据放入RAM的输入端口,启用write_enable信号并将写入指针设置为RAM地址。
  • S2:(数据应该被写入)禁用write_enable信号并将读取指针设置为RAM地址。
  • S3:(数据应该加载到RAM的输出缓冲区中)。设置从RAM输出缓冲区输出的模块并重置状态机。

这是模块代码:

代码语言:javascript
复制
module echo(    
    input wire bclk,
    input wire lrclk,

    input wire [DATALEN-1:0] right_in,
    output reg [DATALEN-1:0] right_out,
);

localparam ADDRLEN = 14;
localparam DATALEN = 16;

reg [ADDRLEN-1:0] rd_ptr = 0;
reg [ADDRLEN-1:0] wr_ptr = (2**ADDRLEN)/2;

reg [2:0] sm = 0;

reg wren;
reg [ADDRLEN-1:0] memaddr;
reg [DATALEN-1:0] datain;
reg [DATALEN-1:0] dataout;

SB_SPRAM256KA M1 (
    .ADDRESS(memaddr),
    .DATAIN(datain),
    .MASKWREN(4'b1111),
    .WREN(wren),
    .CHIPSELECT(1'b1),
    .CLOCK(bclk),
    .STANDBY(1'b0),
    .SLEEP(1'b0),
    .POWEROFF(1'b0),
    .DATAOUT(dataout)
  );

always @(posedge lrclk) begin
    sm <= 1;
end

always @(posedge bclk) begin
    if (sm === 1) begin
        datain <= right_in;
        wren <= 1;
        memaddr <= wr_ptr;
        sm <= 2;
    end else if (sm === 2) begin
        wren <= 0;
        memaddr <= rd_ptr;
        sm <= 3;
    end else if (sm === 3) begin
        right_out <= dataout;
        wr_ptr <= (wr_ptr + 1);
        rd_ptr <= (rd_ptr + 1);
        sm <= 0;
    end
end

endmodule

我希望在合成时间上出现错误,或者实现出现错误,但是我得到了这个Y有机体错误:

代码语言:javascript
复制
5.11. Executing WREDUCE pass (reducing word size of cells).
Removed top 31 bits (of 32) from port B of cell main.$add$main.v:70$2 ($add).
Removed top 1 bits (of 32) from port Y of cell main.$add$main.v:70$2 ($add).
Removed top 2 bits (of 3) from FF cell main.$techmap\E1.$procdff$117 ($dff).
make: *** [main.bin] Segmentation fault: 11
EN

回答 1

Stack Overflow用户

发布于 2020-01-27 21:34:18

.POWEROFF(1'b0)应该是1'b1,对吗?

有关更多信息,请参见"iCE40 SPRAM使用指南“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57416201

复制
相关文章

相似问题

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