|
|
@@ -1,20 +1,39 @@
|
|
|
+//////////////////////////////////////////////////////////////////////////////////
|
|
|
+// Company: TAIR
|
|
|
+// Engineer:
|
|
|
+//
|
|
|
+// Create Date: 10/30/2023 11:24:31 AM
|
|
|
+// Design Name:
|
|
|
+// Module Name: Sync1bit
|
|
|
+// Project Name: S5443_V3_FPGA3
|
|
|
+// Target Devices: BOARD: BY5443v3. FPGA: xc7s25csga225-2
|
|
|
+// Tool Versions:
|
|
|
+// Description:
|
|
|
+//
|
|
|
+// Dependencies:
|
|
|
+//
|
|
|
+// Revision:
|
|
|
+// Revision 1.0 - File Created
|
|
|
+// Additional Comments:
|
|
|
+//
|
|
|
+//////////////////////////////////////////////////////////////////////////////////
|
|
|
module Sync1bit #(
|
|
|
- parameter WIDTH = 1,
|
|
|
- parameter STAGES = 3
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ parameter WIDTH = 1,
|
|
|
+ parameter STAGES = 3
|
|
|
)
|
|
|
(
|
|
|
- input ClkFast_i,
|
|
|
- input ClkSlow_i,
|
|
|
- input TxEn_i,
|
|
|
- input RstReg_i,
|
|
|
-
|
|
|
- output [WIDTH-1:0] TxEn_o,
|
|
|
- output [WIDTH-1:0] RstReg_o
|
|
|
+ input ClkFast_i,
|
|
|
+ input ClkSlow_i,
|
|
|
+ input TxEn_i,
|
|
|
+ input RstReg_i,
|
|
|
|
|
|
+ output [WIDTH-1:0] TxEn_o,
|
|
|
+ output [WIDTH-1:0] RstReg_o
|
|
|
);
|
|
|
+
|
|
|
+//================================================================================
|
|
|
+// REG/WIRE
|
|
|
+//================================================================================
|
|
|
//lauch registers
|
|
|
reg spiTxEnReg;
|
|
|
reg rstReg;
|
|
|
@@ -22,26 +41,27 @@ reg rstReg;
|
|
|
(* ASYNC_REG = "TRUE" *) reg [STAGES*WIDTH-1:0] spiTxEnReg_c;
|
|
|
(* ASYNC_REG = "TRUE" *) reg [STAGES*WIDTH-1:0] rstReg_c;
|
|
|
|
|
|
+//================================================================================
|
|
|
+// ASSIGNMENTS
|
|
|
+//================================================================================
|
|
|
assign TxEn_o = spiTxEnReg_c[STAGES*WIDTH-1:(STAGES-1)*WIDTH];
|
|
|
assign RstReg_o = rstReg_c[STAGES*WIDTH-1:(STAGES-1)*WIDTH];
|
|
|
|
|
|
+//================================================================================
|
|
|
+// LOCALPARAMS
|
|
|
+//================================================================================
|
|
|
|
|
|
+//================================================================================
|
|
|
+// CODING
|
|
|
+//================================================================================
|
|
|
always @(posedge ClkFast_i) begin
|
|
|
- spiTxEnReg <= TxEn_i;
|
|
|
- rstReg <= RstReg_i;
|
|
|
+ spiTxEnReg <= TxEn_i;
|
|
|
+ rstReg <= RstReg_i;
|
|
|
end
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
always @(posedge ClkSlow_i) begin
|
|
|
- spiTxEnReg_c <= {spiTxEnReg_c[(STAGES-1)*WIDTH-1:0], spiTxEnReg};
|
|
|
- rstReg_c <= {rstReg_c[(STAGES-1)*WIDTH-1:0], rstReg};
|
|
|
+ spiTxEnReg_c <= {spiTxEnReg_c[(STAGES-1)*WIDTH-1:0], spiTxEnReg};
|
|
|
+ rstReg_c <= {rstReg_c[(STAGES-1)*WIDTH-1:0], rstReg};
|
|
|
end
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
endmodule
|