我在VHDL课程的中途,能够在Linux中使用ISE和Digilent工具链相对不错......直到尝试重新刷新PicoBlaze程序。有关详细信息,我目前正在运行并定位,
到目前为止,我已经能够运行ISE并使用iMPACT对Nexys2位文件进行编程,但目前这个项目是为PicoBlaze软核处理器编写汇编程序,编译和更新内存无需重新合成任何VHDL即可运行矢量。
使用Kris Chaplin's post中的步骤,我可以将PSM编译为HEX,然后将该HEX文件转换为dosbox中的SVF。从这里我可以在Windows中使用Digilent的Adept工具来编写一个top_level.bit文件,该文件已经合成了PicoBlaze,我也可以在ISE的Linux中使用iMPACT。设计运行后,我可以使用Adept将SVF文件编程到设计的运行内存中,一切都很好。但是,尝试在Linux中将SVF加载到iMPACT会引发异常,
EXCEPTION:iMPACT:SVFYacc.c:208:1.10 - 数据不匹配。
我在网上发现的唯一一个错误shows的问题是应该有一个' @'需要删除的符号,但我还没有在SVF中的任何地方看到过@。
我还尝试将SVF转换为XSVF。 iMPACT不会在加载XSVF时抛出错误,但编程/执行XSVF会冻结设计而不是运行新程序。
Adept在我所见过的Linux中没有类似的GUI,只是一个cmd行工具' djtgcfg'。就像iMPACT一样,我已经能够使用
对toplevel.bit文件进行编程$ djtgcfg prog -d Nexys2 -i 0 -f ../../ toplevel.bit
但是尝试使用相同的调用对svf文件进行编程并不会影响任何事情。它说应该花几分钟时间立即报告"编程成功"但我没有看到设备有任何变化。
如果可以的话,我真的很想将我的环境保存在Linux中,我的笔记本电脑上没有足够的空间来处理两个虚拟机。
是否可以使用iMPACT将SVF文件写入Nexus2?或者我可以/应该以不同的方式使用Adept实用程序吗?
有没有人让这个工作?万分感谢!
答案 0 :(得分:1)
有许多更好的方法可以重新配置PicoBlaze InstructionROM而无需重新合成:
JTAG_Loader_RH_64
二进制或JTAG_Loader_Win7_64.exe
通过JTAG将十六进制文件上传到PicoBlaze ROM中。manual from Ken Chapman提供了有关如何使用JTAG_Loader的几个页面。另外,请查看PicoBlaze discussions at forums.xilinx.com。关于JTAG_Loader的错误和问题以及如何解决它们有一些讨论。
另请参阅opbasm from Kevin Thibedeau作为替代和改进的PicoBlaze汇编程序。它还附带一个ROM补丁工具。
答案 1 :(得分:0)
我知道原版海报有点晚了,但我怀疑我正在上同一课程,我相信我找到了一个在linux上上传picoblaze代码的解决方案。
从Xilinx IP Download下载KCPSM3 zip文件,解压缩内容并将可执行文件从JTAG_loader文件夹移动到工作目录。
在dosbox中运行nexys2板的hex2svfsetup.exe选择菜单选项4 - 0 - 1 - 8 使用汇编程序创建.hex文件
在dosbox中运行hex2svf.exe以创建svf文件
然后运行svf2xsvf.exe -d -i< input.svf> -o< output.xsvf>
与初始zip文件中的JTAG_Loader_quick_guide.pdf相反,使用影响并使用xsvf文件打开xsvf文件和程序。