首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过IceStorm在512x8读取模式下使用iCE40 4K块内存?

如何通过IceStorm在512x8读取模式下使用iCE40 4K块内存?
EN

Stack Overflow用户
提问于 2017-01-06 13:30:01
回答 0查看 3.1K关注 0票数 6

我正在尝试弄清楚如何使用我的iCE40HX-8K分支板上的块RAM。我想在512x8配置中访问它,据我从文档中可以看出,它是由项目IceStorm支持的,但我还没能让它像我预期的那样工作。

如果我没有理解错的话,用READ_MODE参数设置为1来初始化SB_RAM40_4K原语应该会将块设置为512x8读取模式,该模式使用9位读取地址,并在每个地址读取8位数据。

这是我能想到的最简单的例子。它设置一个带有一些预初始化存储器的SB_RAM40_4K,并直接读取板载发光二极管的引脚。

hx8kboard.pcf

代码语言:javascript
复制
set_io leds[0] B5
set_io leds[1] B4
set_io leds[2] A2
set_io leds[3] A1
set_io leds[4] C5
set_io leds[5] C4
set_io leds[6] B3
set_io leds[7] C3
set_io clk J3

top.v

代码语言:javascript
复制
module top (
  output [7:0] leds,
  input clk
);

//reg [8:0] raddr = 8'd0;
reg [8:0] raddr = 8'd1;

SB_RAM40_4K #(
  .INIT_0(256'h00000000000000000000000000000000000000000000000000000000_44_33_22_11),
  .WRITE_MODE(1),
  .READ_MODE(1)
) ram40_4k_512x8 (
  .RDATA(leds),
  .RADDR(raddr),
  .RCLK(clk),
  .RCLKE(1'b1),
  .RE(1'b1),
  .WADDR(8'b0),
  .WCLK(1'b0),
  .WCLKE(1'b0),
  .WDATA(8'b0),
  .WE(1'b0)
);

endmodule

raddr == 0时LED输出

代码语言:javascript
复制
           \|/             \|/
O   O   O   O   O   O   O   O 

raddr == 1时的LED输出

代码语言:javascript
复制
       \|/ \|/         \|/ \|/
O   O   O   O   O   O   O   O 

我认为512x8模式下的地址1应该是随机存取存储器的第二个8位,即8'h228'b0010010。相反,我得到的是8'h338'b00110011。经过一些实验,这似乎是16位读取的低8位。

我不确定我哪里出错了。任何帮助理解这里发生的事情的人都将不胜感激。谢谢!

EN

回答

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

https://stackoverflow.com/questions/41499494

复制
相关文章

相似问题

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