问题标签 [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 投票
4 回答
4558 浏览

verilog - 合成 Verilog 代码时如何摆脱敏感度列表警告?

我收到以下警告:

始终阻止的敏感度列表中缺少一个或多个信号。

我如何摆脱这个警告?

0 投票
1 回答
197 浏览

verilog - 如何重写 Verilog 代码以删除额外的 reg?

我怎样才能重写下面的代码,这样我就不需要额外的 reg mul。我只是想把得到的 32 * 32 位乘法的 32 位放入 Result

0 投票
6 回答
3756 浏览

verilog - 您应该删除 Verilog 或 VHDL 设计中的所有警告吗?为什么或者为什么不?

在(常规)软件中,我曾在使用 gcc 选项 -Wall 显示所有警告的公司工作。然后他们需要被处理。在 Verilog 或 VHDL 中进行非平凡的 FPGA/ASIC 设计时,通常会有很多警告。我应该担心所有这些吗?你有什么具体的技巧可以推荐吗?我的流程主要针对 FPGA(尤其是 Altera 和 Xilinx),但我假设相同的规则也适用于 ASIC 设计,可能更适用于在构建后无法更改设计。

2010 年 4 月 29 日更新:我最初考虑的是综合和 P&R(Place & Route)警告,但模拟警告也是有效的。

0 投票
1 回答
3326 浏览

verilog - 输出直到下一个时钟周期才更新

我有下面的代码模块

问题是输出,即 ForwardA 和 ForwardB 没有在时钟上升沿而不是在下一个时钟上升沿更新......这是为什么?如何解决,以便在相同的正时钟上升沿更新输出?

这就是我的意思: 替代文字 http://img693.imageshack.us/img693/8660/timing.jpg

ForwardA 在下一个时钟上升沿更新为 2,而不是在同一个时钟上升沿

0 投票
4 回答
979 浏览

verilog - 将 if else 语句转换为三元

我已经使用三元翻译了以下代码。然而,我知道它有问题。有人可以指出我正确的方向吗?

0 投票
3 回答
7107 浏览

algorithm - 二进制数比较

如果我有一个 32 位二进制补码并且我想知道知道两个数字相等的最简单方法是什么……知道这一点的最快按位运算符是什么?我知道对这两个数字进行异或并检查结果是否为零效果很好……还有其他的吗?

如果一个数字大于0怎么办?我可以检查第 31 位,看看它是否大于或等于 0..但是 bgtz 怎么样?

0 投票
3 回答
214824 浏览

arrays - 如何在 Verilog 中声明和使用一维和二维字节数组?

如何在 Verilog 中声明和使用一维和二维字节数组?

例如。如何做类似的事情

0 投票
1 回答
1380 浏览

verilog - Verilog 测试台可以与真实时钟一起使用吗?

我用 Verilog 写了一个计数器,然后用一个测试台来测试它。我的测试台给出了正确的结果,所以我的代码没问题。但它是否立即给出了很长一段时间的结果。

是否可以实时获取结果。我的意思是每一秒我的测试台都会产生一条新的结果??(如果有可能怎么办?)

0 投票
8 回答
9987 浏览

vhdl - VHDL/Verilog 相关的编程论坛?

如今,使用 VHDL 或 Verilog 进行硬件设计更像是编程。但是,我看到 SO 成员并没有那么积极地谈论 VHDL/Verilog 编程。

是否有任何论坛处理使用 Verilog/VHDL/SystemVerilog 或 SystemC 进行硬件设计?

0 投票
1 回答
1053 浏览

floating-point - Verilog 中的复杂浮点时序逻辑

我正在尝试在 Verilog/SystemVerilog 中编写一个可合成的 3D 光栅化器。现在的光栅化器并不是真正的 3D 光栅化器:它只接收 6 个 32 位浮点数用于顶点位置(vertA_pos_x、vertA_pos_y、vertB_pos_x、vertB_pos_y、vertC_pos_x、vertC_pos_y)和 9 个 8 位整数用于顶点着色(vertA_color_r、vertA_color_g、vertA_color_b , vertB_color_r, vertB_color_g, vertB_color_b, vertC_color_r, vertC_color_g, vertC_color_b)。

位置的范围是 0.0f ~ 1.0f,0.0f 代表屏幕的顶部/左侧,0.5f 代表屏幕的中间,1.0f 代表屏幕的底部/右侧。

光栅工作首先是计算需要多少光栅线。假设帧缓冲区高度为 240 像素,顶点 A 是顶部顶点,B 是左下角,C 是右下角,X 是最底部顶点(B 或 C;这必须计算),光栅线的数量由 给出(vertX_pos_y - vertA_pos_y) / 240

光栅化过程的这一部分非常复杂,足以暴露我的疑虑,所以我将停止解释我将如何在这里进行。

现在我想知道的是如何在 Verilog 中实现这种“复杂”的逻辑(它是“复杂的”,因为它是连续的并且需要多个时钟周期,这并不是用硬件设计的最令人愉快的事情描述语言)。

我正在使用 Altera 的 Quartus,所以我主要对 Altera 解决方案感兴趣。

Quartus 附带的浮点运算宏功能都需要一个以上的时钟周期才能完成,因此,为了实现类似的“简单”计算(vertX_pos_y - vertA_pos_y) / 240,我假设需要一个相当无聊且容易出错的状态机。我最大的期望是有人会告诉我我不需要那个,但如果不是这样,我仍然想知道人们通常如何设计这样的东西。

另请注意,我对 Verilog 和一般硬件设计非常陌生,所以如果我说一些愚蠢的话,我很抱歉。想法?