问题标签 [system-verilog]

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 回答
5118 浏览

arrays - 使用 Verilog 查找数字数组中的最小值以实现优先级队列

我是 Verilog 的新手,但我有一个 16 个元素的数组(每个元素长 16 位),我希望找到数组的最小条目,返回最小值,然后重新排列所有条目最小值之后的数组,以便该数组是一个连续的条目块。我知道我必须使用比较器,但我真的不知道从哪里开始比较一大组数字并确定最小值。

编辑:我实际上在做的是一个优先队列。我已经实现了队列功能,但是我不想返回队列头部的内容,而是希望返回具有最小值的条目,并保持存储连续。

0 投票
2 回答
1902 浏览

vhdl - 优化 fpga 实现的流水线吞吐量的最佳实践是什么?

例如,如何充分利用重定时和/或 c-slow 来充分利用给定的管道。

通过重定时,一些模块通过将移位寄存器放在输入上(前向寄存器平衡)获得更好的结果,而其他模块在输出上使用移位寄存器(后向寄存器平衡)做得更好。

现在我使用以下方法:

  • 代码 hdl(在 verilog 中)
  • 为特定模块创建时序约束
  • 合成、映射、布局和路由(使用 ISE 13.1)
  • 查看待改进模块的布局布线时序,以及最大逻辑电平数。
  • 取这个数量的逻辑电平,并对要插入的触发器的数量进行有根据的猜测。
  • 插入触发器,启用寄存器平衡,希望最好

就目前而言,这种方法是命中注定的。有时它会得到很好的结果,有时它是垃圾。那么,有什么好的方法可以提高这种重定时的成功率呢?

有什么工具可以帮助解决这个问题吗?此外,链接、论文和书籍推荐将不胜感激。

0 投票
2 回答
45461 浏览

constants - 如何在verilog中使用const

而不是使用

我要使用

或者同样的事情

我可以在 verilog 中实现这个愿望吗?

0 投票
2 回答
20288 浏览

verilog - 在工作之前等待posedge clk? - 如何

标有 (i) 的行,我想在将 outp 发送到输出端口之前等待 posedge clk。但是,当我尝试过类似 ;

它给出了错误

它给出了荒谬的答案/模拟输出。 在发送输出之前,我应该把什么东西放在那条线上等待 posedge clk ?

0 投票
3 回答
2366 浏览

verilog - 使用总是@* | 意义和缺点

你能说那是什么意思吗

  • 总是 @ *

使用该语句后是否有任何可能的副作用?

0 投票
5 回答
6000 浏览

c++ - 是否可以将 System Verilog 函数编译为 C 或 C++?

我为一些用 System Verilog 编写的硬件开发了一个用 C++ 编写的高级模拟器。

System Verilog 代码包括许多只包含逻辑的函数(即,没有任何耗时,没有触发器)。我想在我的 C++ 模拟器中重用这段代码。

有没有办法通过以下方式在 C++(或 C,很容易链接到 C++)中重用这些函数:

  • 在编译之前将系统 Verilog 转换为 C/C++?
  • 将系统 Verilog 编译为 C/C++ 可调用的函数?
  • 还有什么办法吗?
0 投票
1 回答
1708 浏览

arrays - Verilog中的随机数数组

我想测试verilog模块的所有可能输入组合。我已经能够通过构建一个带有嵌套 for 循环的数组来生成这些输入。但是我想以随机顺序遍历数组。如何做到这一点,或者有没有办法生成一个包含所有可能输入的数组,这些输入已经是随机顺序的?

0 投票
4 回答
24828 浏览

verilog - always_comb 构造的 Systemverilog 问题

我对这个 SystemVerilog 代码有疑问。这是代码:

我正在尝试使用 Booth 算法编写一个具有 32 位输入和 64 位乘积的乘法器。出现此错误:

always_comb 构造不会推断出纯粹的组合逻辑

为什么会发生这种情况?

0 投票
3 回答
3121 浏览

bash - 使用命名管道创建读/写环境

我正在使用 RedHat EL 4。我正在使用 Bash 3.00.15。

我正在编写 SystemVerilog,我想模拟标准输入和标准输出。我只能使用文件,因为环境中不支持普通的标准输入和标准输出。我想使用命名管道来模拟标准输入和标准输出。

我了解如何使用 mkpipe 创建 to_sv 和 from_sv 文件,以及如何在 SystemVerilog 中打开和使用它们。

通过使用“cat > to_sv”,我可以将字符串输出到 SystemVerilog 模拟。但这也会输出我在 shell 中输入的内容。

如果可能的话,我想要一个外壳,它的作用几乎就像一个 UART 终端。我输入的任何内容都会直接输出到“to_sv”,而写入“from_sv”的任何内容都会被打印出来。

如果我完全错了,那么一定要建议正确的方法!太感谢了,

纳楚姆·卡诺夫斯基

0 投票
1 回答
6497 浏览

hardware - 使用 for 循环在 Verilog 中指定变量范围

我正在尝试编写此代码:

基本上,我尝试写入 ( en) 的位的位置会根据我正在与之交谈的地址而变化,具体取决于i. 此代码不可合成,因为i它不是常数。

有没有其他解决方法?我知道的唯一解决方法是写出这三个语句 CONST 次。我希望我最终不必这样做。还有其他解决方案吗?