質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

解決済

新規のクロックを用意するべきか?イネーブルを設けるべきか?

porkpie
porkpie

総合スコア5

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

3回答

0リアクション

0クリップ

270閲覧

投稿2022/08/28 03:43

編集2022/08/28 06:56

前提

module hoge(CLK, RESET, INPUT, OUTPUT);
のようなIPモジュールを使いこなしたいと考えております。
このIPはVerilogで記述されていて、やや規模の大きな順序回路、パイプラインになっています。
毎クロックINPUT端子からデータを取り込みます。4096回繰り返します。
数クロックのレイテンシが発生したのち、
毎クロックOUTPU端子からデータを吐き出します。4096回繰り返します。

実現したいこと

実現したいことは、このIPモジュールを上位の回路よりも低周波(1/256)で動作させたい、という内容になります。
しかしながら、このIPがイネーブル信号を持っていないため、上位の回路と同じクロックを供給すると同じ周波数で動作してしまいます。そこで、1/256のクロックを新規に用意するべきなのか?もしくはIPに手を加えてイネーブル信号を設けるべきか?(上位の回路がカウンターを持って256カウントに1回だけイネーブルをアサートすることで1/256動作にする、という方法。)

安易にクロックドメインを増やすことは推奨されない?
検証済みのIPの中に手を加えることはあまり良いことではない?

簡単かつ安全に実現するにはどのように考えるべきでしょうか?どのような方法がおすすめでしょうか?

該当のソースコード

IPモジュールの中では、以下のように、すべてのFFが毎クロックposedgeで動作してしまう記述になっていることが問題の発端だと思っています。

always@(posedge CLK or negedge RESET) begin if(!RESET) begin FF1 <= 16'h0000; end else begin FF1 <= INPUT;

補足情報(FW/ツールのバージョンなど)

この実装作業はXilinx FPGAのzynq上で行っており、ツールはVivado v2019.1 (64-bit)を使用しています。

[補足]そもそもなぜ上記のことをやりたかったのか
先に作ってしまった上位の回路が速い動作クロックで動いているためです。
特に、他のモジュールとのやり取りにおいて、同一のデータを取り扱いますが、データラインのbit lengthが違ったりします。シリアルでデータをやりとりしているブロックも存在します。それに対して、本題のIPモジュールはINPUT/OUTPUTはパラレルで構成されています。
そういった、スループットの違いから待ち時間が発生する、このブロックについては遅い周期でサンプリングしたい、といった背景から質問させていただきました。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

ozwk

2022/08/28 06:23

どちらもあまりやりたくないので、そもそもなんでそれがやりたいのかを教えて下さい

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。