📄 shake.v
字号:
`timescale 1ns / 100ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 21:19:50 07/21/2007 // Design Name: // Module Name: shake // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module noshake(clk, b1, b2, b3, b4, noshakeb1, noshakeb2, noshakeb3, noshakeb4); input clk; input b1; input b2; input b3; input b4; output noshakeb1; output noshakeb2; output noshakeb3; output noshakeb4; parameter shaketime = 21'd1000000; //parameter shaketime = 18'h0000f; reg counten; reg[20:0] shakecount; reg sample; reg noshakeb2,noshakeb3,noshakeb4;
assign noshakeb1 = b1; always @( posedge clk or negedge b1) begin if(b1 == 0)begin shakecount<=0; sample <=0; end else begin if(shakecount == shaketime)begin shakecount<=0; sample<=1; end else begin shakecount<=shakecount+1; sample<=0;end end end always @(posedge sample or negedge b1) begin if(b1 == 0) begin
{noshakeb2,noshakeb3,noshakeb4}<=3'b111;
end
else begin
if(b4 == 0){noshakeb2,noshakeb3,noshakeb4}<=3'b110;
else if(b3 == 0){noshakeb2,noshakeb3,noshakeb4}<=3'b101;
else if(b2 == 0){noshakeb2,noshakeb3,noshakeb4}<=3'b011;
else {noshakeb2,noshakeb3,noshakeb4}<=3'b111;
end
endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -