Lattice Diamond

出自 ArchWiki

Lattice Diamond 是用于 Lattice FPGA 架构的设计软件。

Arch Linux 没有得到 Lattice Diamond 的官方支持,但与其他 HDL 套件(如 Xilinx ISE WebPACKXilinx Vivado)一样,它的大部分功能可以通过一些技巧来使用。

安装

安装 lattice-diamondAUR。请注意,安装包大小约为 4 GB,因此由于压缩阶段,生成软件包可能需要一些时间。 如果您想缩短构建软件包的时间,请编辑 PKGBUILD 文件以避免压缩。

许可

您可以向 Lattice Semiconductor 申请免费许可证(需要注册)。 这些许可证是节点锁定的(绑定到您的以太网卡的 MAC 地址)。 获得许可证文件后,将其复制到 /usr/local/diamond/version/license/license.dat(确保将 version 更改为您系统中安装的版本号),以便能够启动 Diamond 程序。

请注意,如果用户确实拥有相关硬件,或者希望将 Diamond 与硬件解耦,则可以创建一个具有任意选择的 MAC 地址的虚拟以太网接口。 请参阅 MAC 地址欺骗#手动,或添加一个新的虚拟接口,如下所示

加载相关的内核模块并使用 MAC 地址创建接口

# modprobe dummy
# ip link add bond0 type dummy
# ifconfig bond0 hw ether 10:22:33:44:55:66

Diamond 退出后清理

# ip link delete bond0 type dummy
# rmmod dummy

故障排除

布局布线失败

如果布局布线失败并显示消息 ERROR - par: Switch "-msgsegset" is not allowed.,请尝试删除项目根目录中的 promote.xml 文件,然后再次启动它。 现在应该可以正常运行了。

使用 FTDI 电缆编程无效

如果加载了 ftdi_sio 内核模块,则使用基于 FTDI 芯片的电缆编程 FPGA 将不起作用。 在插入编程器之后运行

# rmmod ftdi_sio

现在编程器应该可以工作,直到您再次重新连接它(因此您每次插入编程器时都必须运行上述命令)。

Lattice 入门套件上存在基于 FTDI 的串行接口时 Diamond 崩溃

“Lattice Diamond 3.9 Linux 安装注意事项”文档描述了如何手动设置串行驱动程序,但按照该文档中解释的方式命名 udev 规则 无效。 以下是有效的说明。

  1. 找到您的用户名,该用户名在 /etc/group 文件中给出。 如果需要,请注销。 例如 
    username:x:1000:
  2. 创建一个名为 51-lattice.rules 的工作文件。
  3. 将以下信息添加到 51-lattice.rules 文件
    1. Lattice - 来自 Lattice Diamond 3.9 Linux 安装注意事项 p.20 和 https://github.com/jandob/lattice-diamond-archlinux,显示用于 .rules 文件的更高编号
      SUBSYSTEM=="usb",ACTION=="add",ATTRS{idVendor}=="1134",ATTRS{idProduct}=="8001",MODE=="0660",GROUP=="username:x:1000:",SYMLINK+="lattice-%n"
    2. FTDI
      SUBSYSTEM=="usb",ACTION=="add",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",MODE=="0666",GROUP=="username:x:1000:",SYMLINK+="ftdi-%n"
      SUBSYSTEM=="usb",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",RUN+="/bin/sh -c 'basename %p > /sys/bus/usb/drivers/ftdi_sio/unbind'"

编程器工具在 Diamond GUI 中呈灰色

这是由缺少依赖项引起的。 安装 libusb-compat 软件包。 如果这还不够,请直接启动编程器二进制文件以获取缺少库的报告 (/usr/local/diamond/3.12/bin/lin64/programmer)。