gpt4 book ai didi

verilog - 带有 JK 触发器的 Verilog 中的分频器

转载 作者:行者123 更新时间:2023-12-02 03:35:17 34 4
gpt4 key购买 nike

这是我的 JK_FF 代码:

module JK_FF(j,k,clk,Q);

input j,k,clk;
output reg Q;

always @(posedge clk)
begin
if (j==0 && k==0)
Q=Q;
else if (j==0 && k==1)
Q=0;
else if (j==1 && k==0)
Q=1;
else
Q=~Q;
end
endmodule

这是我的分频器
module freqDivider(clk,Q);
input clk;
output reg Q;
reg j2;

JK_FF f1(.j(~Q),.k(0),.clk(clk),.Q(j2));
JK_FF f2(.j(j2),.k(0),.clk(clk),.Q(Q));


endmodule

这是电路:

enter image description here

输出不正确,始终为 1:

enter image description here

我的代码有什么问题?

回答后编辑(已解决):

如此愚蠢的错误,将 VCC 与 JND 混淆了!我将 .k(0) 更改为 .k(1),结果:
enter image description here

最佳答案

使用 JK 触发器和 k绑定(bind)到 0 你只能设置输出或保持状态。

JK 状态表是:

J  K | Q
--------
0 0 | Q (Maintain)
0 1 | 0 (Reset)
1 0 | 1 (Set)
1 1 | ~Q (Toggle)

将 k 绑定(bind)到 0 你现在有:
J  K | Q
--------
0 0 | Q (Maintain)
1 0 | 1 (Set)

这就是为什么一旦你的输出达到 1 它就会停留在那里。

不过,使用标准 D-Type 可以轻松完成数字分频器。其实是个好小 animation on wikipedia .或其他网站 here .

基本上每个翻牌都将 D 连接到 Q_BAR。 Q_BAR 成为下一阶段的时钟。

关于verilog - 带有 JK 触发器的 Verilog 中的分频器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890658/

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