設計一個JK 正反器 適用於DE2-70
// .J(SW[0]),
// .K(SW[1]),
// .Clk(KEY[0]),
// .Q(LEDR[0]) ,
// .Qnot(LEDR[1])
module JK_FF(SW,KEY,LEDR,CLOCK_50);
input [17:0]SW;
input [3:0]KEY;
input CLOCK_50;
output [17:0]LEDR;
JK_FlipFlop ( .J(SW[0]),
.K(SW[1]),
.Clk(KEY[0]),
.Q(LEDR[0]) ,
.Qnot(LEDR[1]) );
endmodule
module JK_FlipFlop ( J,K,Clk ,Q ,Qnot);
output Q,Qnot;
input J,K,Clk;
reg Q;
assign Qnot = ~ Q ;
always @ (posedge Clk)
case ({J,K})
2'b00: Q = Q;
2'b01: Q = 1'b0;
2'b10: Q = 1'b1;
2'b11: Q = ~ Q;
endcase
endmodule
/*
SW[0] PIN_N25 --> J
SW[1] PIN_N26 --> K
LEDR[0] PIN_AE23 -->Q
LEDR[1] PIN_AF23 -->Q_bar
KEY[0] PIN_G26 --> Clk
module jk_flip_flop(J, K, clk, Q);
input J, K, clk;
output Q;
reg Q;
reg Qm;
always @(posedge clk)
if(J == 1 && K == 0)
Qm <= 1;
else if(J == 0 && K == 1)
Qm <= 0;
else if(J == 1 && K == 1)
Qm <= ~Qm;
Q <= Qm;
endmodule
//=========================================================
// 範例:JK 正反器(Flip-Flop) [範例01]
// 目的:1.認識JK flip-flop FPGA硬體電路工作原理
// 2.認識Verilog HDL行為模型的JK Flip-Flop編寫應用
//=========================================================
`timescale 1ns / 1ps
//JK 正反器(Flip-Flop)
module JK_FF_example01_SD(J,K,CLK,Q,Qnot);
output Q,Qnot;
input J,K,CLK;
reg Q;
assign Qnot = ~ Q ;
always @ (posedge CLK)
case ({J,K})
2'b00: Q = Q;
2'b01: Q = 1'b0;
2'b10: Q = 1'b1;
2'b11: Q = ~ Q;
endcase
endmodule
*/


沒有留言:
張貼留言