Entity: ptp_clock_cdc
- File: ptp_clock_cdc.v
Diagram
Description
Language: Verilog 2001
Generics
Generic name | Type | Value | Description |
---|---|---|---|
TS_WIDTH | 96 | ||
NS_WIDTH | 4 | ||
FNS_WIDTH | 16 | ||
USE_SAMPLE_CLOCK | 1 | ||
LOG_RATE | 3 | ||
TS_NS_WIDTH | TS_WIDTH == 96 ? 30 : 48 | ||
PHASE_CNT_WIDTH | LOG_RATE | ||
PHASE_ACC_WIDTH | PHASE_CNT_WIDTH+16 | ||
LOG_SAMPLE_SYNC_RATE | LOG_RATE | ||
SAMPLE_ACC_WIDTH | LOG_SAMPLE_SYNC_RATE+2 | ||
DEST_SYNC_LOCK_WIDTH | 7 | ||
PTP_LOCK_WIDTH | 8 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
input_clk | input | wire | |
input_rst | input | wire | |
output_clk | input | wire | |
output_rst | input | wire | |
sample_clk | input | wire | |
input_ts | input | wire [TS_WIDTH-1:0] | * Timestamp inputs from source PTP clock */ |
input_ts_step | input | wire | |
output_ts | output | wire [TS_WIDTH-1:0] | * Timestamp outputs */ |
output_ts_step | output | wire | |
output_pps | output | wire | * PPS output */ |
locked | output | wire | * Status */ |
Signals
Name | Type | Description |
---|---|---|
period_ns_reg | reg [NS_WIDTH-1:0] | |
period_ns_next | reg [NS_WIDTH-1:0] | |
period_fns_reg | reg [FNS_WIDTH-1:0] | |
period_fns_next | reg [FNS_WIDTH-1:0] | |
src_ts_s_capt_reg | reg [47:0] | |
src_ts_ns_capt_reg | reg [TS_NS_WIDTH-1:0] | |
src_ts_fns_capt_reg | reg [FNS_WIDTH-1:0] | |
src_ts_step_capt_reg | reg | |
dest_ts_s_capt_reg | reg [47:0] | |
dest_ts_ns_capt_reg | reg [TS_NS_WIDTH-1:0] | |
dest_ts_fns_capt_reg | reg [FNS_WIDTH-1:0] | |
ts_s_sync_reg | reg [47:0] | |
ts_ns_sync_reg | reg [TS_NS_WIDTH-1:0] | |
ts_fns_sync_reg | reg [FNS_WIDTH-1:0] | |
ts_step_sync_reg | reg | |
ts_s_reg | reg [47:0] | |
ts_s_next | reg [47:0] | |
ts_ns_reg | reg [TS_NS_WIDTH-1:0] | |
ts_ns_next | reg [TS_NS_WIDTH-1:0] | |
ts_fns_reg | reg [FNS_WIDTH-1:0] | |
ts_fns_next | reg [FNS_WIDTH-1:0] | |
ts_ns_inc_reg | reg [TS_NS_WIDTH-1:0] | |
ts_ns_inc_next | reg [TS_NS_WIDTH-1:0] | |
ts_fns_inc_reg | reg [FNS_WIDTH-1:0] | |
ts_fns_inc_next | reg [FNS_WIDTH-1:0] | |
ts_ns_ovf_reg | reg [TS_NS_WIDTH+1-1:0] | |
ts_ns_ovf_next | reg [TS_NS_WIDTH+1-1:0] | |
ts_fns_ovf_reg | reg [FNS_WIDTH-1:0] | |
ts_fns_ovf_next | reg [FNS_WIDTH-1:0] | |
ts_step_reg | reg | |
ts_step_next | reg | |
pps_reg | reg | |
src_phase_reg | reg [PHASE_CNT_WIDTH-1:0] | |
dest_phase_reg | reg [PHASE_ACC_WIDTH-1:0] | |
dest_phase_next | reg [PHASE_ACC_WIDTH-1:0] | |
dest_phase_inc_reg | reg [PHASE_ACC_WIDTH-1:0] | |
dest_phase_inc_next | reg [PHASE_ACC_WIDTH-1:0] | |
src_sync_reg | reg | |
src_update_reg | reg | |
dest_sync_reg | reg | |
dest_sync_next | reg | |
dest_update_reg | reg | |
dest_update_next | reg | |
src_sync_sync1_reg | reg | |
src_sync_sync2_reg | reg | |
src_sync_sync3_reg | reg | |
dest_sync_sync1_reg | reg | |
dest_sync_sync2_reg | reg | |
dest_sync_sync3_reg | reg | |
src_sync_sample_sync1_reg | reg | |
src_sync_sample_sync2_reg | reg | |
src_sync_sample_sync3_reg | reg | |
dest_sync_sample_sync1_reg | reg | |
dest_sync_sample_sync2_reg | reg | |
dest_sync_sample_sync3_reg | reg | |
sample_acc_reg | reg [SAMPLE_ACC_WIDTH-1:0] | |
sample_acc_next | reg [SAMPLE_ACC_WIDTH-1:0] | |
sample_acc_out_reg | reg [SAMPLE_ACC_WIDTH-1:0] | |
sample_cnt_reg | reg [LOG_SAMPLE_SYNC_RATE-1:0] | |
sample_update_reg | reg | |
sample_update_sync1_reg | reg | |
sample_update_sync2_reg | reg | |
sample_update_sync3_reg | reg | |
input_ts_step_reg | reg | source PTP clock capture and sync logic |
edge_1_reg | reg | |
edge_2_reg | reg | |
active_reg | reg [3:0] | |
sample_acc_sync_reg | reg [SAMPLE_ACC_WIDTH-1:0] | |
sample_acc_sync_valid_reg | reg | |
dest_err_int_reg | reg [PHASE_ACC_WIDTH-1:0] | |
dest_err_int_next | reg [PHASE_ACC_WIDTH-1:0] | |
dest_ovf | reg [1:0] | |
dest_sync_lock_count_reg | reg [DEST_SYNC_LOCK_WIDTH-1:0] | |
dest_sync_lock_count_next | reg [DEST_SYNC_LOCK_WIDTH-1:0] | |
dest_sync_locked_reg | reg | |
dest_sync_locked_next | reg |
Processes
- unnamed: ( @(posedge input_clk) )
Type: always
- unnamed: ( @(posedge output_clk) )
Type: always
Description
CDC logic
- unnamed: ( @(posedge sample_clk) )
Type: always
- unnamed: ( @(posedge sample_clk) )
Type: always
- unnamed: ( @(posedge output_clk) )
Type: always
- unnamed: ( @(posedge output_clk) )
Type: always
- unnamed: ( @* )
Type: always