问题标签 [yosys]

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.

0 投票
2 回答
190 浏览

verilog - 假设()不适用于初始语句

对于https://i.imgur.com/NCUjYmr.png,为什么信号“重置”最初不假定为“1”?任何人都知道为什么假设不起作用?

0 投票
0 回答
247 浏览

fpga - LUT 级联是否可以通过任何工具与 iCE40 FPGA 中的进位链同时使用?

我尝试构建以下内容:

我用 Verilog 编写,并实例化 SB_LUT4、SB_CARRY、SB_DFFESS 原语。为了尝试获得 LUT 级联,我编辑了一个 .pcf 约束文件(set_cascading...)。但是,综合 (Lattice IceCube 2017.01.27914) 忽略了约束: W2401:忽略 LUT 实例“filt.blk_0__a.cmbA.ll”的级联约束,因为它在 LogicCell 中与 DFF/CARRY 打包在一起

在令人钦佩的 Project IceStorm 中,我看不出为什么不能使用级联 LUT 和进位链的组合。

我知道有一个(稍微)更新的 IceCube2 可用。我知道 Yosys/arachne-pnr/icepack/iceprog 工具链。但在更改工具链之前,谨慎地询问是否有人已经解决了这个问题,或者是否确实不可能将进位链和 LUT 级联结合起来?

更新 - Yosys/arachne-pnr/icetools 的快速安装在没有警告的情况下合成了我的设计,但 ice40_viewer(和日志输出)中的可视化表明使用链式 lut。

0 投票
1 回答
229 浏览

yosys - 如何使用 Yosys 将 Verilog 总线展平到单独的电线

这里简单的问题。Yosys 中是否有一种方法可以展平阵列?IE:

wire [1:0] rdata;变成wire rdata_1; wire rdata_0;

0 投票
1 回答
1081 浏览

fpga - 莱迪思 iCE40 JTAG

我是 FPGA 新手,我正在尝试在 Lattice iCE40 FPGA 上安装一个有效的 JTAG。我使用的开发板来自 Olimex,具有 iCE40-HX8K FPGA。

我正在使用 urjtag 作为 PC 应用程序,并尝试使用 DirtJTAG 和 USB Blaster 克隆作为程序员(闪存到 STM32 BluePill 板上)。Olimex 板没有为 JTAG 填充上拉电阻,所以我焊接了它们(TMS、TDI 和 TCK 为 10k)。但最终结果是一样的:我无法让 jtag 识别 FPGA,错误是:

检查 JTAG 连接器的引脚排列,它是正确的。万用表测试表明没有短路,没有焊桥,上拉电阻值正确,工作正常,符合预期。

用 Altera FPGA 板尝试了我的设置,它正在工作,它将检测到 FPGA。此外,尝试了 eBay UsbBlaster 克隆,它不适用于 iCE40,但适用于 Altera FPGA。

我可以刷外部闪存(使用其他工具和编程器),但我希望能够使用 JTAG,这样我就可以刷入板载 SRAM。

任何想法/提示什么可能是错误的/接下来要尝试什么?

0 投票
1 回答
315 浏览

json - 如何在 YosysJS 中使用“write_json”命令

我是 Yosys 的新手,并尝试使用 YosysJS 生成输入 verilog 文件的 json 描述。有关于如何在 Yosys 中使用该命令的文档。但我不明白如何在 YosysJS 中使用它。我可以使用以下代码在综合的不同阶段之后绘制 RTL 图:

我想知道需要在 ys.run() 函数中作为参数运行什么命令。

谢谢你。

0 投票
0 回答
119 浏览

yosys - 使用真实模块参数的 yosys 错误

如果我在实例化模块时设置类型实参数,则 yosys 似乎存在错误。我在 Win7x64 上使用“官方”0.7 二进制版本。例如,我有以下模块:

如果我用两个参数的整数值实例化它,这个模块工作正常。但是如果我用实际值实例化它,我会收到关于字符串值的奇怪警告。例如,如果尝试为 in_freq 传递 12000000.0:

我收到警告:

警告:用 uart_top.v:45 处的字符串替换浮点参数 baud_clk_div.$1 = 12000000.000000。

然后该模块似乎将“字符串”解释为模块内的巨大实际值:

警告:在 freq_divider.v:18 将实际值 1.277202e+035 转换为二进制 0。

这是真正的错误还是我犯了一些新手错误。我只做了大约两个星期的verilog编码。

里克·摩尔

0 投票
1 回答
2099 浏览

vhdl - 如何在 VHDL 中编写具有输入相关范围的 std_logic_vector 赋值?

我正在尝试将 std_logic_vector 的某些部分复制到另一个位置(索引),具体取决于输入。这可以在 Vivado 中合成,但我想使用另一个工具(SymbiYosys,https://github.com/YosysHQ/SymbiYosys)进行形式验证。SymbiYosys 可以使用 Verific 作为前端来处理 VHDL,但 Verific 不接受这一点。这是重现问题的一小段代码。Verific 抱怨“左范围界限不是恒定的”。那么,是否有一种解决方法可以让 Verific 接受这样的变量范围分配?

我已经找到了这篇文章VHDL: slice a different part of an array建议使用循环并按位分配值,但现在我不想更改我的代码,因为它可以与 Vivado 一起使用。此外,我认为这样的循环会损害代码的可读性,可能还会损害实现效率。因此,我正在寻找一种不同的方法(也许是一种将这个错误变成警告的方法,或者是不那么激烈的代码修改)。

0 投票
1 回答
116 浏览

verilog - 使用yosys在verilog中的case状态下增加整数

我不知道它是否符合 Verilog-2005 标准,但我设法用 «synplify pro» 和 «icarus verilog» 编译了以下代码。

fsm_step_number 整数的增量不适用于晶格综合程序 (LSE),也不适用于 Yosys。我的 yosys 有语法错误:

你知道是否可以用 Yosys 做这样的思考(将整数递增到案例状态)?

0 投票
1 回答
255 浏览

yosys - Yosys 将而不是门解释为 nand 以进行可视化

我试图结合https://github.com/nturley/netlistsvg将 yosys 纯粹用于可视化。一个使用 yosys 生成的 json 文件并从中创建 SVG 的工具。如果我有verilog代码:

我想生成一个具有 NAND 门的 SVG 文件。我使用以下 Yosys 命令:

Yosys 将 assign 语句解释为 AND 门和 NOT 门,并输出以下 json:

是否有强制 yosys 将该行解释为 nand 门并输出 json 更像这样:

或者这不是可以做的事情。

0 投票
1 回答
252 浏览

yosys - Yosys:复位时触发器的可变初始值

我试图在重置时为 FF 分配一个初始值。初始值是电路的输入。在单元库中,我添加了以下 FF:

我试图合成到这个 FF 的部分 Verilog 代码是

但是,当我运行综合时,它使用来自 Yosys 库 ( ) 的内置 FF$_DFFSR_PPP_之一,而忽略了用户定义单元库中的一个。如果我在用户定义的库中包含一个 set-reset (SR) FF,如下所示,由 Yosys 拾取。

前一个适用于 Synopsys DC,但不适用于 Yosys。似乎 Yosys 中的方程clearpreset没有被拾取。

有什么办法让它工作吗?我错过了什么吗?

编辑:我正在添加一个完整的示例,以防有人想要运行它。

加速器

asic_cell_yosys.lib

会计文件