verilogを用いて添付した写真に示されているD-FF回路を記述しました。
verilog
1module code25(D,clk,rst,a,b,Qn,Qnbar); 2 input D,clk,rst,a,b; 3 output reg Qn,Qnbar; 4 5 output wire A; 6 output wire B; 7 //前の状態 8 wire a; 9 wire b; 10 wire q; 11 12 assign A=~(~(a & ~(b&D)) & clk); 13 assign B=~(~(b&D) & clk & a); 14 assign q=Qn; 15 16 always @(posedge clk or negedge rst) 17 begin 18 if(rst==1'b0) 19 begin 20 Qn<=1'b0; 21 Qnbar<=1'b1; 22 end 23 else 24 begin 25 Qn=~( ~(B & q) & A); 26 Qnbar=~Qn; 27 end 28 end 29 30endmodule
※aはSR-FFへの入力Sの前状態、bはSR-FFへの入力Rの前状態としています。
これで動かしてみたのですが、Qnの値がずっと0のままで変化しません。
それぞれの要素を取り出して調べてみたのですが、どうやらAの値の計算が上手くいってないようでした。
(試しに~Aを出力させてみたところ、0の反転が0になっていました。)
どこに原因があるか教えていただきたいです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/06 09:49
2020/12/06 09:55
2020/12/06 12:11