sim: replace beating period error formula
This commit is contained in:
parent
5a9fa937ee
commit
39bb656f85
@ -120,7 +120,6 @@ class EventManager_IRQ(object):
|
|||||||
@jitclass
|
@jitclass
|
||||||
class Tag_Collector(object):
|
class Tag_Collector(object):
|
||||||
setpt_beating_period: int64
|
setpt_beating_period: int64
|
||||||
last_gtx: int32
|
|
||||||
|
|
||||||
gtx_tag_ready: bool
|
gtx_tag_ready: bool
|
||||||
gtx_tag: int32
|
gtx_tag: int32
|
||||||
@ -129,7 +128,6 @@ class Tag_Collector(object):
|
|||||||
|
|
||||||
def __init__(self, setpt_beating_period: int64):
|
def __init__(self, setpt_beating_period: int64):
|
||||||
self.setpt_beating_period = setpt_beating_period
|
self.setpt_beating_period = setpt_beating_period
|
||||||
self.last_gtx = 0
|
|
||||||
|
|
||||||
# for main PLL
|
# for main PLL
|
||||||
self.gtx_tag_ready = False
|
self.gtx_tag_ready = False
|
||||||
@ -138,7 +136,6 @@ class Tag_Collector(object):
|
|||||||
self.main_tag = 0
|
self.main_tag = 0
|
||||||
|
|
||||||
def collect_gtx_tag(self, tag: int32):
|
def collect_gtx_tag(self, tag: int32):
|
||||||
self.last_gtx = self.gtx
|
|
||||||
self.gtx_tag = tag
|
self.gtx_tag = tag
|
||||||
self.gtx_tag_ready = True
|
self.gtx_tag_ready = True
|
||||||
|
|
||||||
@ -147,7 +144,13 @@ class Tag_Collector(object):
|
|||||||
self.main_tag_ready = True
|
self.main_tag_ready = True
|
||||||
|
|
||||||
def get_period_error(self) -> int32:
|
def get_period_error(self) -> int32:
|
||||||
return self.set_phase_error_ready - (self.gtx - self.last_gtx)
|
# period_error = n * ideal_beating - GTX_tag(n)
|
||||||
|
period_error = (-self.gtx_tag) % self.setpt_beating_period
|
||||||
|
|
||||||
|
if period_error > self.setpt_beating_period / 2:
|
||||||
|
return period_error - self.setpt_beating_period
|
||||||
|
|
||||||
|
return period_error
|
||||||
|
|
||||||
def get_phase_error(self) -> int32:
|
def get_phase_error(self) -> int32:
|
||||||
# tag_diff = main_tag(n) - gtx_tag(n)
|
# tag_diff = main_tag(n) - gtx_tag(n)
|
||||||
|
Loading…
Reference in New Issue
Block a user