gpt4 book ai didi

Verilog -- "and reduction"& 占空比

转载 作者:行者123 更新时间:2023-12-04 14:58:31 26 4
gpt4 key购买 nike

我正在研究这个 Verilog 文件:

`default_nettype none

module stroboscope(i_clk, o_led);

input wire i_clk;
output wire o_led;

reg [19:0] counter;
initial counter = 0;

always @(posedge i_clk)
begin
counter <= counter + 1'b1;
end

assign o_led = &counter[19:15];

endmodule

我已经发现,如果我将 assign 从其当前状态更改为显示的状态,低于闪烁 LED o_led 的频率将保持不变,同时它的占空比会增加到 100% (打开时):

assign o_led = &counter[19:19];

enter image description here

现在可以通过将同一行设置为:

assign o_led = &counter[19:17];

enter image description here

同样...通过将同一行设置为:

assign o_led = &counter[19:15];

enter image description here

最后设置如下所示的同一行将使占空比为 0%:

assign o_led = &counter[19:0];

enter image description here


那么代表“和归约”的一元&运算符如何在当前情况下实现这一点?

我知道这是如何工作的一个简单例子,即

&`4b1101 = 0

“和减少” 看起来像这样:

1101
101
01
0

但是,这个例子要复杂得多,我不明白。

最佳答案

&counter[19:15] 

等同于:

counter[19] & counter[18] & counter[17] & counter[16] & counter[15]

reduction-AND 运算符只是对它的每一位进行按位与运算。因此,只有当 counter 的所有这 5 位都为高时,您的 o_led 信号才为高,如下图中的光标之间(单击图像放大):

waves

o_led 的脉冲宽度与您的 reduction-AND 表达式中的 LSB 相匹配。在我上面的代码中,LSB 是 15。如果将 LSB 更改为 16,脉冲宽度会加倍。

关于Verilog -- "and reduction"& 占空比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67424587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com