问题标签 [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.
verilog - 合成 Verilog 代码时如何摆脱敏感度列表警告?
我收到以下警告:
始终阻止的敏感度列表中缺少一个或多个信号。
我如何摆脱这个警告?
verilog - 如何重写 Verilog 代码以删除额外的 reg?
我怎样才能重写下面的代码,这样我就不需要额外的 reg mul。我只是想把得到的 32 * 32 位乘法的 32 位放入 Result
verilog - 您应该删除 Verilog 或 VHDL 设计中的所有警告吗?为什么或者为什么不?
在(常规)软件中,我曾在使用 gcc 选项 -Wall 显示所有警告的公司工作。然后他们需要被处理。在 Verilog 或 VHDL 中进行非平凡的 FPGA/ASIC 设计时,通常会有很多警告。我应该担心所有这些吗?你有什么具体的技巧可以推荐吗?我的流程主要针对 FPGA(尤其是 Altera 和 Xilinx),但我假设相同的规则也适用于 ASIC 设计,可能更适用于在构建后无法更改设计。
2010 年 4 月 29 日更新:我最初考虑的是综合和 P&R(Place & Route)警告,但模拟警告也是有效的。
verilog - 输出直到下一个时钟周期才更新
我有下面的代码模块
问题是输出,即 ForwardA 和 ForwardB 没有在时钟上升沿而不是在下一个时钟上升沿更新......这是为什么?如何解决,以便在相同的正时钟上升沿更新输出?
这就是我的意思: 替代文字 http://img693.imageshack.us/img693/8660/timing.jpg
ForwardA 在下一个时钟上升沿更新为 2,而不是在同一个时钟上升沿
verilog - 将 if else 语句转换为三元
我已经使用三元翻译了以下代码。然而,我知道它有问题。有人可以指出我正确的方向吗?
algorithm - 二进制数比较
如果我有一个 32 位二进制补码并且我想知道知道两个数字相等的最简单方法是什么……知道这一点的最快按位运算符是什么?我知道对这两个数字进行异或并检查结果是否为零效果很好……还有其他的吗?
如果一个数字大于0怎么办?我可以检查第 31 位,看看它是否大于或等于 0..但是 bgtz 怎么样?
arrays - 如何在 Verilog 中声明和使用一维和二维字节数组?
如何在 Verilog 中声明和使用一维和二维字节数组?
例如。如何做类似的事情
verilog - Verilog 测试台可以与真实时钟一起使用吗?
我用 Verilog 写了一个计数器,然后用一个测试台来测试它。我的测试台给出了正确的结果,所以我的代码没问题。但它是否立即给出了很长一段时间的结果。
是否可以实时获取结果。我的意思是每一秒我的测试台都会产生一条新的结果??(如果有可能怎么办?)
vhdl - VHDL/Verilog 相关的编程论坛?
如今,使用 VHDL 或 Verilog 进行硬件设计更像是编程。但是,我看到 SO 成员并没有那么积极地谈论 VHDL/Verilog 编程。
是否有任何论坛处理使用 Verilog/VHDL/SystemVerilog 或 SystemC 进行硬件设计?
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 和一般硬件设计非常陌生,所以如果我说一些愚蠢的话,我很抱歉。想法?