3

以下の形でいくつかのステートメントを見ました。ここで#`DELとはどういう意味ですか? 特殊文字が含まれているため、意味を簡単に見つけることができません。

cmd <= #`DEL 32'b0
4

2 に答える 2

5

問題のコードは、割り当てをある程度遅らせます。#`DEL (バッククォートのためインライン コーディングを使用できません) には 3 つの部分があります。まず、# はこれが遅延ステートメントであることを示します。次に、バッククォート (~ の下の文字) は、Verilog でのプリプロセッサ定義を示します。コンパイルしているコードのどこかに、次の行に沿ったものがあります。

`define DEL 1ns

1ns は任意の時間値であり、これが遅延になります。ここで、DEL の前に (~ の下に) バックティックが必要であることを明確にする必要がありますが、32'b0 は単一引用符を使用します。

于 2013-11-05T20:40:41.400 に答える
4

遅延宣言です。

右側から左側への値の代入を定義された量だけ遅らせます。この場合、cmd がゼロになるのを遅らせます。

遅延は、任意の時間形式またはリアルタイム形式で指定できます#1。...

#1ns, #1us, #1msさらに、SystemVerilog で利用できます。

より典型的なケースは、右辺が一定でない場合です。

assign a = #1ns b;

ここで a は b に 1 ns 遅れます。

これへの参照は、Language Reference Manual LRMで「delay_value」を検索して見つけることができます。

于 2013-11-05T16:30:45.343 に答える