-1

我正在尝试此处提供的第一个示例:http: //www.clifford.at/icestorm/

我正在尝试使用 digilent adept 程序 https://reference.digilentinc.com/reference/software/adept/start?redirect=1#software_downloads在 Windows 中对 iCEblink40-HX1K 板进行编程

当我启动 Adept 时,程序说:

正在加载板信息... 警告:找不到特定的板信息 已加载默认信息。

当我从 iCEstorm 选择 example.bin 程序时,adept 程序显示“地址无效。地址必须输入为二进制、十进制或十六进制值。”。

于是我直接输入零,点击“文件>>设备”上传二进制文件,程序说:

成功从 F:\me\fpga\example.bin 读取 32220 字节。

然而,该板已经附带的“闪烁灯”演示仍在继续运行。似乎什么都没有改变。

我认为 example.bin 文件中不包含正确的地址,或者缺少 digilent adept 程序的板信息是问题的原因。

无论如何,有人知道它可能是什么地址吗?

4

2 回答 2

0

谢谢克利福德,现在可以了。

首先是一点小小的咆哮(针对布置 PCB 的人)。

  • HX1K 评估套件的标题行旁边有数字(第 4 页): http://www.mouser.com/pdfdocs/iCEblink40Datasheet.pdf 这些与 vq100 封装和数据表上的实际引脚不对应没有提到这些数字应该是什么意思。

  • 但是,在第 14 页上确实提到了哪些 fpga 引脚最终连接到了哪个连接器。

  • 原理图的家伙甚至懒得画 vq100 包?!

带有 vq100 引脚的简单图像或表格也很难找到。Lattice 确实提供了一张 excel 表: http ://www.latticesemi.com/~/media/LatticeSemi/Documents/PinPackage/iCE/iCE40PinoutHX1K.xlsx ?document_id=49383 但它假设您知道“IOL_1A”的含义。HX1K 数据表没有引脚概述。到底发生了什么?

无论如何,回到正题:我注意到 vq100 封装上的引脚 11 是电源引脚,因此 ice40stick 的示例永远无法使用相同的引脚排列。将 I/O 管脚重新分配给管脚 1、2 和 3 后,该示例运行正常!我使用 iceutil.exe 刷新它,由于某种原因,Adept 软件拒绝再刷新任何东西。

非常感谢,现在是时候开始使用代码了。

于 2017-01-24T10:14:49.200 回答
-1

我还没有解决方案,但 第 12 页的 iCE40ProgrammingandConfiguration.pdf http://www.latticesemi.com/view_document?document_id=46502说:

初始上电时,起始地址始终为 0x00_0000。在等待八个额外的时钟周期后,iCE40 设备开始从 SPI PROM 读取串行数据。

所以看起来从 0 开始编写 .bin 文件应该可以工作。

我已经尝试使用icecube2附带的iceutil程序员进行编程,如iCEblink40HX1KEvaluationKitUsersGuide.pdf http://www.latticesemi.com/view_document?document_id=45922中所述

FPGA 比特流配置文件 所需的比特流图像是 iCEcube2 项目的一部分。比特流的多个版本存储在 _Implmnt\sbt\outputs\bitmap 目录中。比特流的原始十六进制版本称为 _bitmap.hex。相同信息的替代格式是名为 _bitmap_int.hex 的 Intel 十六进制文件。原始十六进制命令示例 /iceutil -d iCE40 -res -cr -m M25P10A -fh -w _bitmap.hex 英特尔十六进制命令示例 /iceutil -d iCE40 -res -cr -m M25P10A -fi -w _bitmap_int.hex

我认为我的文件应该被编程为二进制文件,使用 -fb

iceutil -d iCE40 -res -cr -m M25P10A -fb -w <my path>/example.bin

这似乎已经编程,capsense 演示停止在板上工作,红色电源 LED 亮起,黄色“完成”LED 亮起,iceutil 工具说:

对闪存设备进行部分擦除将文件 /example.bin 写入闪存设备写入闪存的字节数:32220

但是,示例文件应该输入 1 和 10,并在 11 上产生输出。那是行不通的。所有的 LED 灯都暗淡地亮着,这似乎是错误的。

// example.v
module top (input a, b, output y);
  assign y = a & b;
endmodule

# example.pcf
set_io a 1
set_io b 10
set_io y 11

我已经尝试使用 iceutil 对 capsense 演示进行编程,并且效果很好。

开始看起来我不能将 yosys 二进制文件与 iceutil 程序员一起使用,除非我使用了错误的语法。

于 2017-01-13T08:34:44.400 回答