北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)

北邮22信通一枚~

跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章

持续关注作者 迎接数电实验学习~

获取更多文章,请访问专栏:

北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客

 

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)_第1张图片

JK.v

module JK
(
	input clk,
	input J,
	input K,
	input set,
	input reset,
	
	output reg q
);

always @(posedge clk or negedge reset or negedge set)
	begin 
		if(!reset)			//异步清零
			begin
				q<=1'b0;
			end
		else if(!set)  //异步置1
			begin 
				q<=1'b1;
			end
		else
			begin
				case({J,K})
					2'b00:q<=q;
					2'b01:q<=0;
					2'b10:q<=1;
					2'b11:q<=~q;
				endcase
			end
	end
endmodule

JK_tb.v

`timescale 1ns/100ps
module JK_tb();
	reg clk;
	reg j;
	reg k;
	reg reset;
	reg set;
	
	wire q;

initial 
	begin 
		clk=0;
		j=0;
		k=0;
		reset=1;
		set=1;
		#50;
		set=0;
		#50;
		set=1;
		#50;
		reset=0;
		#50;
		reset=1;
	end
always #10 clk<=-clk;
always #20 j<=-j;
always #30 k<=-k;

JK JK_1
(
	.clk(clk),
	.J(j),
	.K(k),
	.set(set),
	.reset(reset),
	.q(q)
);
	
endmodule
		


 

你可能感兴趣的:(fpga开发)