Namuru-Nanoでは、IF信号をサンプリングするクロックを6逓倍して
システムクロックとし、サンプリングクロックはenable信号にするという
少しトリッキーな実装をしています。
これは、オリジナルのNamaruのコードをできるだけ変更しないための
苦肉の策ですが、とりあえずこのままポートします。
Namuru-Nanoでは、システムクロックの生成にNios IIのPLLを使っていましたが、
ZynqではClocking Wizardを使って、MMCMを追加します。
![](https://blogimg.goo.ne.jp/user_image/1c/c6/71ab0de682654fd2023a67f8ba4e3657.png)
クロック入力の周波数は、とりあえずNamuru-Nanoと同じ16.368MHzとし、
それを6逓倍した90.208MHzのシステムクロックと、そのままのenable信号を
出力します。
![](https://blogimg.goo.ne.jp/user_image/0f/c2/326d0bb4dc0c10bc45d47cdd49034685.png)
![](https://blogimg.goo.ne.jp/user_image/04/d3/43f7117d2a4adc2d30df3ba586a10295.png)
![](https://blogimg.goo.ne.jp/user_image/04/64/68676cad45a0715b8b6af59dc84ebdef.png)
生成されたIPコアは、トップモジュールに組み込みます。
フロントエンドから供給されるサンプリング信号s_clkを入力とし、
システムクロックのclkと、enable信号のsample_clkを出力します。
MMCMのlocked信号も、basebandモジュールのリセット信号に追加しています。
![](https://blogimg.goo.ne.jp/user_image/43/6e/9827d784b6adf972997f6345dda4d533.png)
次は、basebandモジュールをIP化して、AXIバスに繋げよう。
システムクロックとし、サンプリングクロックはenable信号にするという
少しトリッキーな実装をしています。
これは、オリジナルのNamaruのコードをできるだけ変更しないための
苦肉の策ですが、とりあえずこのままポートします。
Namuru-Nanoでは、システムクロックの生成にNios IIのPLLを使っていましたが、
ZynqではClocking Wizardを使って、MMCMを追加します。
![](https://blogimg.goo.ne.jp/user_image/1c/c6/71ab0de682654fd2023a67f8ba4e3657.png)
クロック入力の周波数は、とりあえずNamuru-Nanoと同じ16.368MHzとし、
それを6逓倍した90.208MHzのシステムクロックと、そのままのenable信号を
出力します。
![](https://blogimg.goo.ne.jp/user_image/0f/c2/326d0bb4dc0c10bc45d47cdd49034685.png)
![](https://blogimg.goo.ne.jp/user_image/04/d3/43f7117d2a4adc2d30df3ba586a10295.png)
![](https://blogimg.goo.ne.jp/user_image/04/64/68676cad45a0715b8b6af59dc84ebdef.png)
生成されたIPコアは、トップモジュールに組み込みます。
フロントエンドから供給されるサンプリング信号s_clkを入力とし、
システムクロックのclkと、enable信号のsample_clkを出力します。
MMCMのlocked信号も、basebandモジュールのリセット信号に追加しています。
![](https://blogimg.goo.ne.jp/user_image/43/6e/9827d784b6adf972997f6345dda4d533.png)
次は、basebandモジュールをIP化して、AXIバスに繋げよう。
※コメント投稿者のブログIDはブログ作成者のみに通知されます