编程iceStorm二进制文件到哪个地址?
programming iceStorm binary file to which address?
我正在尝试此处提供的第一个示例:http://www.clifford.at/icestorm/
我正在尝试使用 digilent adept 程序在 windows 中对 iCEblink40-HX1K 板进行编程
https://reference.digilentinc.com/reference/software/adept/start?redirect=1#software_downloads
当我启动 Adept 时,程序显示:
Loading board information... Warning: Could not find specific board
information Default information loaded.
当我从 iCEstorm 选择 example.bin 程序时,专家程序显示 "Invalid address. Address must be entered as Binary, DEcimal, or Hexadecimal value."。
所以我只输入了零,点击"file>>Device"上传二进制文件,程序说:
Successfully read 32220 bytes from F:\me\fpga\example.bin.
然而,板子已经自带的"blinking lights"演示只保留运行。似乎什么都没有改变。
我认为 example.bin 文件中的地址不正确,或者 digilent adept 程序缺少板信息是问题的原因。
无论如何,有人知道地址是什么吗?
我还没有解决方案,但是 iCE40ProgrammingandConfiguration.pdf
http://www.latticesemi.com/view_document?document_id=46502
在第 12 页上说:
Upon initial power-up, the start address is always 0x00_0000. After
waiting eight additional clock cycles, the iCE40 device begins reading
serial data from the SPI PROM.
看来从 0 开始对 .bin 文件进行编程应该可行。
我已经尝试使用 icecube2 附带的 iceutil 编程器进行编程,如
iCEblink40HX1KEvaluationKitUsersGuide.pdf
http://www.latticesemi.com/view_document?document_id=45922
FPGA Bitstream Configuration File The required bitstream image is part
of the iCEcube2 project. Multiple versions of the bitstream are stored
in the _Implmnt\sbt\outputs\bitmap directory. The raw
hexadecimal version of the bitstream is called _bitmap.hex.
The alternate format of the same information is an Intel hexadecimal
file called _bitmap_int.hex.
Raw Hexadecimal Command Example
/iceutil -d iCE40 -res -cr -m M25P10A -fh -w
_bitmap.hex
Intel Hexadecimal Command Example
/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 亮起,黄色 "done" LED 亮起,iceutil 工具显示:
Doing partial erase of flash memory device
Writing file /example.bin to flash memory device
Bytes written to flash: 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 编程器一起使用,除非我使用了错误的语法。
谢谢克利福德,现在可以了。
首先是一点小小的吐槽(针对设计 PCB 的人)。
HX1K 评估套件(第 4 页)上的 header 行旁边有数字:
http://www.mouser.com/pdfdocs/iCEblink40Datasheet.pdf
这些与 vq100 封装上的实际引脚不对应,数据 sheet 也没有提及这些数字的含义。
但是,在第 14 页上它确实提到了哪个 fpga 引脚最终连接到哪个连接器。
原理图大佬连vq100封装都懒得画了?!
带有 vq100 引出线的简单图像或 table 也很难找到。
Lattice 确实提供了一个 excel sheet:
http://www.latticesemi.com/~/media/LatticeSemi/Documents/PinPackage/iCE/iCE40PinoutHX1K.xlsx?document_id=49383
但它假定您知道 "IOL_1A" 的含义。
HX1K 数据sheet 没有引出线概览。到底是怎么回事?
总之,言归正传:
我注意到 vq100 封装上的引脚 11 是电源引脚,因此 ice40stick 的示例永远不会使用相同的引脚分配。
将 I/O 引脚重新分配给引脚 1、2 和 3 后,该示例就可以正常工作了!
我用 iceutil.exe 刷了它,出于某种原因,Adept 软件拒绝再刷任何东西。
非常感谢,现在是时候开始尝试一下代码了。
我正在尝试此处提供的第一个示例:http://www.clifford.at/icestorm/
我正在尝试使用 digilent adept 程序在 windows 中对 iCEblink40-HX1K 板进行编程 https://reference.digilentinc.com/reference/software/adept/start?redirect=1#software_downloads
当我启动 Adept 时,程序显示:
Loading board information... Warning: Could not find specific board information Default information loaded.
当我从 iCEstorm 选择 example.bin 程序时,专家程序显示 "Invalid address. Address must be entered as Binary, DEcimal, or Hexadecimal value."。
所以我只输入了零,点击"file>>Device"上传二进制文件,程序说:
Successfully read 32220 bytes from F:\me\fpga\example.bin.
然而,板子已经自带的"blinking lights"演示只保留运行。似乎什么都没有改变。
我认为 example.bin 文件中的地址不正确,或者 digilent adept 程序缺少板信息是问题的原因。
无论如何,有人知道地址是什么吗?
我还没有解决方案,但是 iCE40ProgrammingandConfiguration.pdf http://www.latticesemi.com/view_document?document_id=46502 在第 12 页上说:
Upon initial power-up, the start address is always 0x00_0000. After waiting eight additional clock cycles, the iCE40 device begins reading serial data from the SPI PROM.
看来从 0 开始对 .bin 文件进行编程应该可行。
我已经尝试使用 icecube2 附带的 iceutil 编程器进行编程,如 iCEblink40HX1KEvaluationKitUsersGuide.pdf http://www.latticesemi.com/view_document?document_id=45922
FPGA Bitstream Configuration File The required bitstream image is part of the iCEcube2 project. Multiple versions of the bitstream are stored in the _Implmnt\sbt\outputs\bitmap directory. The raw hexadecimal version of the bitstream is called _bitmap.hex. The alternate format of the same information is an Intel hexadecimal file called _bitmap_int.hex. Raw Hexadecimal Command Example /iceutil -d iCE40 -res -cr -m M25P10A -fh -w _bitmap.hex Intel Hexadecimal Command Example /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 亮起,黄色 "done" LED 亮起,iceutil 工具显示:
Doing partial erase of flash memory device Writing file /example.bin to flash memory device Bytes written to flash: 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 编程器一起使用,除非我使用了错误的语法。
谢谢克利福德,现在可以了。
首先是一点小小的吐槽(针对设计 PCB 的人)。
HX1K 评估套件(第 4 页)上的 header 行旁边有数字: http://www.mouser.com/pdfdocs/iCEblink40Datasheet.pdf 这些与 vq100 封装上的实际引脚不对应,数据 sheet 也没有提及这些数字的含义。
但是,在第 14 页上它确实提到了哪个 fpga 引脚最终连接到哪个连接器。
原理图大佬连vq100封装都懒得画了?!
带有 vq100 引出线的简单图像或 table 也很难找到。 Lattice 确实提供了一个 excel sheet: http://www.latticesemi.com/~/media/LatticeSemi/Documents/PinPackage/iCE/iCE40PinoutHX1K.xlsx?document_id=49383 但它假定您知道 "IOL_1A" 的含义。 HX1K 数据sheet 没有引出线概览。到底是怎么回事?
总之,言归正传: 我注意到 vq100 封装上的引脚 11 是电源引脚,因此 ice40stick 的示例永远不会使用相同的引脚分配。 将 I/O 引脚重新分配给引脚 1、2 和 3 后,该示例就可以正常工作了! 我用 iceutil.exe 刷了它,出于某种原因,Adept 软件拒绝再刷任何东西。
非常感谢,现在是时候开始尝试一下代码了。