keyinterface.v

来自「数字钟可以说明的具体功能都在文件家中,请仔细参阅,希望大家可以相互学习,共同进步」· Verilog 代码 · 共 24 行

V
24
字号
`timescale 1ns / 100ps
module KeyInterface(Clk4096Hz,Clk100HzCE,Clk8HzTC,Reset,Key3,Key2,Key1,ModeKey,SetSelKey,SetKey,StartPause,HoldReset,SetCP,IsFastAdjust);
	input Clk4096Hz,Clk100HzCE,Clk8HzTC,Reset,Key3,Key2,Key1;
	output ModeKey,SetSelKey,SetKey,StartPause,HoldReset,SetCP,IsFastAdjust;
	reg [2:0] Count4Fast ; 
	
	KeyInput U_Key3(.KeyIn(Key3),.Clk(Clk4096Hz),.CE(Clk100HzCE),.Reset(Reset),.KeyOut(ModeKey),.KeyCP()) ;
	KeyInput U_Key2(.KeyIn(Key2),.Clk(Clk4096Hz),.CE(Clk100HzCE),.Reset(Reset),.KeyOut(SetSelKey),.KeyCP(StartPause)) ;
	KeyInput U_Key1(.KeyIn(Key1),.Clk(Clk4096Hz),.CE(Clk100HzCE),.Reset(Reset),.KeyOut(SetKey),.KeyCP(HoldReset)) ;
	
	assign IsFastAdjust= &Count4Fast;	//是否进入快调状态
	
	always @(negedge SetKey or posedge Clk4096Hz)
		begin 
			if(!SetKey)Count4Fast<=0; 
			else if(Clk8HzTC & ~IsFastAdjust )Count4Fast<=Count4Fast+1;
				//没进入快调就计数
		end	
	//进入快调就输出8Hz脉冲,否则就是输出按键的电平
	assign SetCP=(IsFastAdjust)? Clk8HzTC : (HoldReset & Clk100HzCE); 
endmodule
	
	
	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?