2020年1月1日 星期三

Verilog J K Flip Flop

Verilog J K Flip Flop 





module JK_FF(input reset, input clk, input j, input k, output reg q, output qnot);
assign qnot=~q;

always @(posedge clk)
  if (reset) q<=1'b0; else
  case ({j, k})
2'b00: q<=q;
2'b01: q<=1'b0;
2'b10: q<=1'b1;
2'b11: q<=~q;
 endcase
endmodule


// 時間單位 100ns, 時間精確度100 ps
`timescale 100ns/100ps
module Test_bench;
reg clk=0;
reg j=0;
reg k=0;
reg reset=1;

wire q, qnot;

  JK_FF DUT(.reset(reset),.clk(clk),.j(j),.k(k),.q(q),.qnot(qnot));

initial begin
$monitor(clk,j,k,q,qnot,reset);
 
j = 1'b0; k = 1'b0;
reset = 1;clk=1;
 
#120
reset=0;j=1'b1; k=1'b0;
 
#120
reset=0;j=1'b0;k=1'b1;
 
#120
reset=0;j=1'b1;k=1'b1;
 
#120
reset=0;j=1'b0;k=1'b0;
 
#120
reset=1;j=1'b1;k=1'b0;
 
end
always #25 clk <= ~clk;

initial
begin
  #580;   // 模擬終止時間  580 ns
    $stop;
end

endmodule  
 

沒有留言:

張貼留言

習題解答 (5/6)

  第五章 習題解答 一、 錯誤偵測技術 1. 何謂循環冗餘檢查法 (CRC)? 是一種根據傳輸資料產生簡短固定位數校驗碼的演算法。發送端將資料除以一個特定的多項式,得到的「餘數」即為 CRC 碼並隨資料發送;接收端以同樣多項式除之,若餘數為 0 則代表資料傳輸正確。 2. 何...