OpenCores
URL https://opencores.org/ocsvn/ha1588/ha1588/trunk

Subversion Repositories ha1588

[/] [ha1588/] [trunk/] [sim/] [top/] [ptp_drv_bfm/] [ptp_drv_bfm.c] - Blame information for rev 22

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 21 edn_walter
#include <stdio.h>
2
 
3
#include "svdpi.h"
4
#include "../dpiheader.h"
5
int ptp_drv_bfm_c(double fw_delay)
6
{
7
  int cpu_addr_i;
8
  int cpu_data_i;
9
  int cpu_data_o;
10
 
11 22 edn_walter
  // LOAD RTC PERIOD AND ACC_MODULO
12
  cpu_addr_i = 0x00000020;
13
  cpu_data_i = 0x8;
14
  cpu_wr(cpu_addr_i, cpu_data_i);
15
  cpu_addr_i = 0x00000024;
16
  cpu_data_i = 0x0;
17
  cpu_wr(cpu_addr_i, cpu_data_i);
18
  cpu_addr_i = 0x00000028;
19
  cpu_data_i = 0x3B9ACA00;
20
  cpu_wr(cpu_addr_i, cpu_data_i);
21
  cpu_addr_i = 0x0000002C;
22
  cpu_data_i = 0x0;
23
  cpu_wr(cpu_addr_i, cpu_data_i);
24
  cpu_addr_i = 0x00000000;
25
  cpu_data_i = 0x4;
26
  cpu_wr(cpu_addr_i, cpu_data_i);
27
  cpu_addr_i = 0x00000000;
28
  cpu_data_i = 0x0;
29
  cpu_wr(cpu_addr_i, cpu_data_i);
30
  // RESET RTC
31
  cpu_addr_i = 0x00000000;
32
  cpu_data_i = 0x10;
33
  cpu_wr(cpu_addr_i, cpu_data_i);
34
  cpu_addr_i = 0x00000000;
35
  cpu_data_i = 0x0;
36
  cpu_wr(cpu_addr_i, cpu_data_i);
37
  // LOAD RTC SEC AND NS
38
  cpu_addr_i = 0x00000010;
39
  cpu_data_i = 0x0;
40
  cpu_wr(cpu_addr_i, cpu_data_i);
41
  cpu_addr_i = 0x00000014;
42
  cpu_data_i = 0x1;
43
  cpu_wr(cpu_addr_i, cpu_data_i);
44
  cpu_addr_i = 0x00000018;
45
  cpu_data_i = 0x3B9AC9F6;
46
  cpu_wr(cpu_addr_i, cpu_data_i);
47
  cpu_addr_i = 0x0000001C;
48
  cpu_data_i = 0x0;
49
  cpu_wr(cpu_addr_i, cpu_data_i);
50
  cpu_addr_i = 0x00000000;
51
  cpu_data_i = 0x8;
52
  cpu_wr(cpu_addr_i, cpu_data_i);
53
  cpu_addr_i = 0x00000000;
54
  cpu_data_i = 0x0;
55
  cpu_wr(cpu_addr_i, cpu_data_i);
56
  // LOAD RTC ADJ
57
  cpu_addr_i = 0x00000030;
58
  cpu_data_i = 0x100;
59
  cpu_wr(cpu_addr_i, cpu_data_i);
60
  cpu_addr_i = 0x00000038;
61
  cpu_data_i = 0x1;
62
  cpu_wr(cpu_addr_i, cpu_data_i);
63
  cpu_addr_i = 0x0000003C;
64
  cpu_data_i = 0x20;
65
  cpu_wr(cpu_addr_i, cpu_data_i);
66
  cpu_addr_i = 0x00000000;
67
  cpu_data_i = 0x2;
68
  cpu_wr(cpu_addr_i, cpu_data_i);
69
  cpu_addr_i = 0x00000000;
70
  cpu_data_i = 0x0;
71
  cpu_wr(cpu_addr_i, cpu_data_i);
72
  // READ RTC SEC AND NS
73
  cpu_addr_i = 0x00000000;
74
  cpu_data_i = 0x1;
75
  cpu_wr(cpu_addr_i, cpu_data_i);
76
  cpu_addr_i = 0x00000000;
77
  cpu_data_i = 0x0;
78
  cpu_wr(cpu_addr_i, cpu_data_i);
79
  cpu_addr_i = 0X00000040;
80
  cpu_rd(cpu_addr_i, &cpu_data_o);
81
  cpu_addr_i = 0X00000044;
82
  cpu_rd(cpu_addr_i, &cpu_data_o);
83
  cpu_addr_i = 0X00000048;
84
  cpu_rd(cpu_addr_i, &cpu_data_o);
85
  cpu_addr_i = 0X0000004C;
86
  cpu_rd(cpu_addr_i, &cpu_data_o);
87
 
88
  // READ BACK ALL REGISTERS
89
  for (;;)
90 21 edn_walter
  {
91 22 edn_walter
    int t;
92
    for (t=0; t<=0x5c; t=t+4)
93
    {
94
      cpu_addr_i = t;
95 21 edn_walter
      cpu_rd(cpu_addr_i, &cpu_data_o);
96
 
97 22 edn_walter
      cpu_hd(10);
98
    }
99 21 edn_walter
  }
100
 
101
  return(0); /* Return success (required by tasks) */
102
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.