NcoTick
分数比から1クロック幅のtickを生成するNCO
phaseはDDSの位相ではなく、modulus未満の剰余を保持 そのため、tickの平均周波数はincrement / modulus * clkになる。
同じクロックで複数の制御がHighの場合、優先順位はupdate > restart > !enable > 通常の位相加算。updateとrestartはphaseを0へ戻してtickを抑止し、disable中もphaseを保持してtickだけをLow化
Parameters
| WIDTH | u32 | 位相・増分・modulusのビット幅 |
|---|
Ports
| clk | input | clock | システムクロック | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rst | input | reset | リセット | ||||||||||||||||
| enable | input | bbool | tick生成イネーブル | ||||||||||||||||
| update | input | logic | incrementとmodulusの更新要求 | ||||||||||||||||
| restart | input | logic | 位相を0へ戻す要求 | ||||||||||||||||
| increment | input | logic| 1クロックあたりの位相増分
|
modulus |
input |
logic | tick周期の法
|
tick |
output |
logic |
周期完了パルス
|
configured |
output |
bbool |
有効な設定が適用済み
|
config_error |
output |
bbool |
modulusが不正であることを示すフラグ
|
|