VHDL:1つのプロセスで複数のクロックを有効にする

ドナM

こんにちは私はVHDLに不慣れで、1つのプロセスに複数のクロックがあるこのようなプロセスを使用しても大丈夫かどうかを尋ねたいC256HzとC4Hzは50MHzクロックから駆動されるクロックイネーブルです

process (Reset, C50Mhz, Go, start_flag, C256Hz, C4Hz)
  begin
  if reset = '1' then
     start_flag <= '0';
  elsif rising_edge (C50Mhz) then
     if C4Hz = '1' then
        if count4 = "11" and single_run_flag = '0' then
           start_flag <= '0';
        end if;
     end if;
   if C256Hz = '1' then
      if Go = '1' and start_flag = '0' then
          start_flag <= '1';
      end if;
   end if;
  end if;
  end process;   `
サイモン・リヒター

それは大丈夫ですが、合成が良い結果を生み出すかどうかは生地に依存します。

感度リストには、とが含まれている必要がresetありC50MHzます。これは、これらが実際に信号を変更する唯一のイベントであるためです。ときC4Hzトグル、その後rising_edge(C50MHz)falseこれらが同期されないため、プロセスは、その後に実行した場合、何も起こりませんでしょう。

個別のイネーブルはどこでも利用可能であると想定できます。クロックファンアウトが非常に高いため、全員が個別のクロック分配ネットワークを実装しているため、レジスタでのイネーブルが必要になります。したがって、これは安全に使用できます。

非同期リセットはすべてのファブリックで使用できるとは限りませんが、通常は使用できます。一部のデバイスは非同期ロードをサポートし(つまり、リセット時に取得する値を決定できます)、他のデバイスはリセットのみをサポートします(つまり、レジスタをゼロのみに設定でき、1に初期化すると、反転テーブル、つまりリセット先のレジスタが生成されます。 -ゼロ、および次のLEのインバーター。

したがって、一般的に、これはかなり安全です。これは次のように合成できます。

-- intermediates
do_clear_start_flag := C4Hz = '1' and count4 = "11" and single_run_flag = '0';
do_set_start_flag := C256Hz = '1' and Go = '1' and start_flag = '0';

-- to register
enable_start_flag := do_clear_start_flag or do_set_start_flag;
new_start_flag := do_set_start_flag;

start_flaginの古い値のチェックは、以前にdo_set_start_flag設定されていても設定start_flagが効果がない場合でも、現在のクロックサイクルでリセットされる可能性があるため、最適化できません

で始まるブロックif C256Hz = '1'elsif代わりである場合、2番目の中間体は次のようになります。

do_set_start_flag := C256Hz = '1' and Go = '1' and do_clear_start_flag = '0'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MatLabで1つのハンドルを使用して複数のプロパティにアクセスする

分類Dev

XP SP 3で複数のプロセッサを有効にする方法は?

分類Dev

1つのプロセスでファイルをロックする

分類Dev

Ansibleで複数のタスクに対して1つの通知ブロックを定義する

分類Dev

多次元C ++配列に1つの連続したブロック(ヒープ上)としてアクセスすることは有効ですか?

分類Dev

VHDLのプロセス内で「ティック」を生成するにはどうすればよいですか?

分類Dev

1 つの VS プロジェクトで複数のツールセットを使用する - リスクはありますか?

分類Dev

jqueryを使用して送信ボタンの有効化/無効化でリスト内の複数のドロップダウンから1つのドロップダウンのみを選択するにはどうすればよいですか?

分類Dev

複数のOUT値を返すプロシージャから1つのOUT値にアクセスするにはどうすればよいですか?

分類Dev

1つの親プロセスに対して「フォーク」を介して複数のプロセスを作成する

分類Dev

1つのフォームjqueryで複数のチェックボックスを無効/有効にする方法

分類Dev

Pythonで1つのファイルに複数のプロセスを使用してログを記録する

分類Dev

1つのリクエストで複数のファイルをアップロードするDropzoneが2つのリクエストを送信する

分類Dev

Verilog-VHDLのように1つのブロックに複数のエッジがありますか?

分類Dev

複数のクラス値を1つのリストに追加し、そのプロンプトを繰り返しプロンプトで解析する方法

分類Dev

Pythonの複数のスレッドとプロセス間でデータを効果的に共有するにはどうすればよいですか?

分類Dev

1つのJavaScriptで複数のプロセスを実行する方法

分類Dev

プログラムで1つのトラックの複数のアートワークを削除する

分類Dev

Slurmクラスター上の複数のノード間でMPIPythonスクリプトを実行する方法は?エラー:警告:2つのノードで1つのプロセスを実行できず、nnodeを1に設定します

分類Dev

1つのリクエストで複数のファイルをアップロードするにはどうすればよいですか?

分類Dev

1つの基準で複数のロジックを使用するCountif関数

分類Dev

複数のnode.js HTTPプロセス間で1つのポートを共有する

分類Dev

1つのプロジェクトに複数のデータベースをロードする

分類Dev

ロック解除時に複数のスレッドに信号を送る1つのロック

分類Dev

1つのFirebaseプロジェクトで複数のプラットフォームをセットアップする

分類Dev

CSS:複数のクラスに対応する1つのプロパティ

分類Dev

1つのキャッチブロックで複数の例外タイプをキャッチする

分類Dev

1つのキャッチブロックで複数の例外タイプをキャッチする

分類Dev

1つのキャッチブロックで複数の例外タイプをキャッチする

Related 関連記事

  1. 1

    MatLabで1つのハンドルを使用して複数のプロパティにアクセスする

  2. 2

    XP SP 3で複数のプロセッサを有効にする方法は?

  3. 3

    1つのプロセスでファイルをロックする

  4. 4

    Ansibleで複数のタスクに対して1つの通知ブロックを定義する

  5. 5

    多次元C ++配列に1つの連続したブロック(ヒープ上)としてアクセスすることは有効ですか?

  6. 6

    VHDLのプロセス内で「ティック」を生成するにはどうすればよいですか?

  7. 7

    1 つの VS プロジェクトで複数のツールセットを使用する - リスクはありますか?

  8. 8

    jqueryを使用して送信ボタンの有効化/無効化でリスト内の複数のドロップダウンから1つのドロップダウンのみを選択するにはどうすればよいですか?

  9. 9

    複数のOUT値を返すプロシージャから1つのOUT値にアクセスするにはどうすればよいですか?

  10. 10

    1つの親プロセスに対して「フォーク」を介して複数のプロセスを作成する

  11. 11

    1つのフォームjqueryで複数のチェックボックスを無効/有効にする方法

  12. 12

    Pythonで1つのファイルに複数のプロセスを使用してログを記録する

  13. 13

    1つのリクエストで複数のファイルをアップロードするDropzoneが2つのリクエストを送信する

  14. 14

    Verilog-VHDLのように1つのブロックに複数のエッジがありますか?

  15. 15

    複数のクラス値を1つのリストに追加し、そのプロンプトを繰り返しプロンプトで解析する方法

  16. 16

    Pythonの複数のスレッドとプロセス間でデータを効果的に共有するにはどうすればよいですか?

  17. 17

    1つのJavaScriptで複数のプロセスを実行する方法

  18. 18

    プログラムで1つのトラックの複数のアートワークを削除する

  19. 19

    Slurmクラスター上の複数のノード間でMPIPythonスクリプトを実行する方法は?エラー:警告:2つのノードで1つのプロセスを実行できず、nnodeを1に設定します

  20. 20

    1つのリクエストで複数のファイルをアップロードするにはどうすればよいですか?

  21. 21

    1つの基準で複数のロジックを使用するCountif関数

  22. 22

    複数のnode.js HTTPプロセス間で1つのポートを共有する

  23. 23

    1つのプロジェクトに複数のデータベースをロードする

  24. 24

    ロック解除時に複数のスレッドに信号を送る1つのロック

  25. 25

    1つのFirebaseプロジェクトで複数のプラットフォームをセットアップする

  26. 26

    CSS:複数のクラスに対応する1つのプロパティ

  27. 27

    1つのキャッチブロックで複数の例外タイプをキャッチする

  28. 28

    1つのキャッチブロックで複数の例外タイプをキャッチする

  29. 29

    1つのキャッチブロックで複数の例外タイプをキャッチする

ホットタグ

アーカイブ