问题标签 [lattice-diamond]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lattice - Lattice Diamond 中的 EBR 块
我有一个 MachXO3 芯片。系列数据表可在此处获得:http ://www.latticesemi.com/~/media/LatticeSemi/Documents/DataSheets/MachXO23/DS1047-MachXO3-Family-Data-Sheet.pdf?document_id=50121
数据表在第 2-10 页上说 EBR 由 9-kbit 组成。但是第 1-2 页上的表 1-1 列出了根本不能被 9 整除的数字……
另外,我有以下代码:
报告说需要 4 EBR。这听起来完全没有优化。这是为什么?如何制作我的 2*(2*128) 字节 = 512 字节 = 4096 位 = 4kbit 的表,它应该保存在 1 个 EBR 中?
ghdl - GHDL、预编译供应商原语和 Cocotb
我有一个使用 Lattice Diamond 生成的 IP 模块的设计。这使用了作为供应商库的 diamond 附带的 Macxo3l 库。
使用 GHDL,我可以使用https://ghdl.readthedocs.io/en/latest/building/PrecompileVendorPrimitives.html中的说明然后是命令来编译包括这个库的设计。
但是我一直无法使用 cocotb 进行编译。下面是我的make文件。我在哪里使用命令 VHDL_SOURCES_Lib,我在https://cocotb.readthedocs.io/en/latest/building.html找到了参考
然而,编译这个给了我错误:
我能够使用 GHDL 运行 cocotb 示例。我应该如何指示 cocotb 包含供应商原始文件。
感谢您提供任何帮助。
lattice-diamond - Linux 上的 Lattice Diamond v 3.11:ftdio_sio 的问题
在 Linux 上,从 v3.11 开始,如果内核驱动程序 ftdio_sio 已被删除,Lattice Diamond 似乎只能检测到 FTDI 电缆。
在 v3.10 及之前版本,可以使用 udev 规则解除 ftdi tty (ttyUSB*) 的绑定(许多解释如何在 Ubuntu 上安装 Diamond 的博客都提到了这样的过程 -示例),而不必删除 ftdio_sio 驱动程序.
有谁知道自 v3.11 以来无需删除 ftdio_sio 驱动程序即可运行 Lattice 程序员的方法?
lattice-diamond - Lattice Diamond 中的安全程序功能
我想使用 Lattice FPGA (Machxo3) 中的安全功能,目前卡在安全程序密码功能上。有两种选择:
- 安全程序密码密钥
- 带锁的安全程序密码钥匙
与莱迪思技术支持的对话让我一无所获。如果任何使用过这些功能的人可以帮助解释这两者之间的区别,我们将不胜感激。
这是他们网站上提供的常见问题解答:http ://www.latticesemi.com/en/Support/AnswerDatabase/5/6/2/5628
我的疑问是,由于密钥存储在功能行中,假设我只使用允许我擦除功能行的安全程序密码密钥,然后我可以擦除使设备再次不受保护的密钥。在与技术支持人员发送了几封电子邮件后,现在他告诉我选项 1 不能保护 UFM,但选项 2 可以;这与常见问题解答所说的完全不同。
如果有人可以提供一些启示,请欣赏它。
vhdl - 如何在 FPGA (Lattice MachXO3) 中使用内部振荡器?
我正在尝试为 Lattice MachXO3L 分线板制作 Blink-LED 程序。我相信我已经设置了内部振荡器,我只是不知道如何连接到它的输出并使用它,当我尝试时会出错。这是在具有 LED 和开关的分线板上。当开关单向翻转时,它应该以 1Hz 的频率振荡,而当开关翻转到另一向时,它会关闭。
我已阅读 PLL 使用指南并在互联网上搜索答案。我相信我已经很接近了,并且由于对 VHDL 和 FPGA 不熟悉而陷入了一些语法问题。基本上,我的主要代码是'进程和它下面的所有代码。上面的任何内容基本上都是来自 PLL 使用指南的内容。
如果我尝试分配osc_int
给进程的敏感度列表p_1Hz
,我会收到一条错误消息,指出我无法从输出中读取。
只是一个旁注,以防其他观众像我一样感到困惑,开车i_clock
似乎osc_int
不合逻辑,因为它使用的分配似乎暗示发生相反的情况osc_int <= i_clock
。如果我错了,请纠正我,但它是将输入分配给输出,这对非 hdl 程序员来说似乎很困惑,因为方向是由输入/输出类型决定的,而不是由赋值运算符本身决定的。
当我这样做(将 i_clk 链接到 osc_int)时,它会保存而不给我错误,直到我尝试合成它说有多个非三态驱动程序的代码i_clock
。我可以想象这是真的唯一方法是,如果名为 的“组件”部分中的“端口”OSC
被映射到osc_int
,会创建两个驱动信号,这两个驱动信号都链接到i_clock
该单个osc_int <= i_clock;
语句中。但如果这是真的,你将如何访问时钟的输出呢?
如果我只是删除该osc_int <= i_clock
语句,它就可以工作,只是 LED 常亮/常灭,而不是振荡/常灭。
c - 如何使用指针正确访问点阵 MachX02 SRAM 地址
我使用 Lattice Mico8 处理器作为我的 SoC 处理器,以及一个 UART 和一个 SRAM。我正在尝试创建一个软件来与我的 Verilog 代码对话。为此,我使用指针从 UART 获取值,存储在 SRAM 中,然后在硬件中检索。我用地址初始化指针,并根据需要递增。但是,我从 UART 获取的值似乎从未存储在 SRAM 地址中。我什至无法在拿到它后立即将其打印回来,即使我应用了一些延迟。我试图让指针指向另一个变量的地址,这样,我可以在得到它后打印回 UART。我在这里做错了什么吗?或者说SRAM有问题。我在需要帮助的地方发布了一小段代码。
至少我希望将值放在 UART 屏幕上,只是为了知道它在 SRAM 中。我尝试使用 Lattice Reveal System 通过将触发器设置为 SRAM 的 CS 来调试我的代码。那永远不会触发。
verilog - 如何在 Lattice Diamond Verilog 编译器中使用未绑定的 I/O 单元
只是想在 Lattice Mach XO2 芯片的一些 IO 单元中使用一些延迟功能(延迟、反序列化) - 任何线索如何配置它们?谢谢!!
vhdl - UART 发送器仅在嵌入式逻辑分析仪运行时起作用
我一直在尝试实现一个 UART,以便在我的 Lattice MachXO3D 板和我的计算机之间进行通信。目前我正在尝试实现来自 FPGA 的传输。
在硬件上进行测试时,我遇到了一个非常奇怪的问题。如果运行正常,它会运行几秒钟,然后突然停止运行(连接到我的电脑的CH340会报告它正在接收包含0x0的消息)。但是,如果我通过 Lattice Diamond 软件将逻辑分析仪嵌入到 FPGA 中,并运行该分析仪,它将在很长一段时间内完美运行。
遗憾的是,我没有逻辑分析仪,因此嵌入式逻辑分析仪是我了解实际传输内容的唯一机会。
这些是与我的实现相关的文件:
波特根
rs232_tx
试验台
编辑 我已经测试了我在网上找到的另一个 UART 设计@ 9600 bps,它以同样的方式失败。它可以向我计算机上的终端发送一个常量字符,在本例中为“a”,然后它突然停止发送任何内容。但是,如果我开始听我在 Lattice Diamond 中生成的软逻辑分析仪,它就可以正常工作并且不会失败。
vhdl - 在 VHDL [ lattice-diamond] 中添加 USER 库
我在 LSE 的基于 VHDL 的项目中使用 lattice diamond [3.11.2.446]。
问:是否可以包含一个用户库,如果可以,我可以在哪里设置用于搜索它的路径?
即使用 my_lib.all
我意识到我可以将我的文件添加到项目中,但这看起来很“粗鲁”,我试图在应用程序代码和可重用组件之间保持一点分离
有一个文件 "location.map" ["....\lscc\diamond\3.11_x64\synpbase\lib\vhd2008\location.map" ] 似乎设置库位置,并在开始时声明:
不幸的是,似乎缺少文档[或者更可能我没有在正确的地方寻找]而且我没有运气。
任何建议,将不胜感激..!