| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Company:
- // Engineer:
- //
- // Create Date: 10:02:35 04/20/2020
- // Design Name:
- // Module Name: PulseGen
- // Project Name:
- // Target Devices:
- // Tool versions:
- // Description:
- //
- // Dependencies:
- //
- // Revision:
- // Revision 0.01 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module RefSequenceGen
- #(
- parameter CmdRegWidth = 32
- )
- (
- input Rst_i,
- input Clk_i,
- input StartMeasEvent_i,
-
- input OpMode_i,
- input [CmdRegWidth-1:0] PulsePeriod_i,
-
- output Pulse_o
- );
- //================================================================================
- // LOCALPARAM
- //================================================================================
- reg [CmdRegWidth-1:0] periodCnt;
- reg pulsePreset;
- //================================================================================
- // ASSIGNMENTS
- assign Pulse_o = pulsePreset;
- //================================================================================
- // CODING
-
- always @(*) begin
- if (OpMode_i) begin
- if (!Rst_i) begin
- if (StartMeasEvent_i) begin
- if (periodCnt == 0) begin
- pulsePreset = 1;
- end else begin
- pulsePreset = 0;
- end
- end else begin
- pulsePreset = 0;
- end
- end else begin
- pulsePreset = 0;
- end
- end else begin
- pulsePreset = 0;
- end
- end
-
- always @(posedge Clk_i) begin
- if (!Rst_i) begin
- if (OpMode_i) begin
- if (StartMeasEvent_i) begin
- if (periodCnt != PulsePeriod_i-1) begin
- periodCnt <= periodCnt+32'd1;
- end else begin
- periodCnt <= 32'd0;
- end
- end else begin
- periodCnt <= 32'd0;
- end
- end else begin
- periodCnt <= 32'd0;
- end
- end else begin
- periodCnt <= 32'd0;
- end
- end
-
- endmodule
|