問題タブ [e]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macros - Specman マクロ: オプションのタグを使用するには?
ポートを定義するためのマクロがあります。
ポートのリストをサポートするようにマクロを拡張したいと考えています。[<len'name>]
次のようなリストサイズを定義するオプションのタグを使用したいと思います。
** たとえば、サイズ 10 のポートのリストを定義すると、次のようになります。
Specman e Language Reference で、optional tag
( [<len'name>]
) が定義されているかどうかを知る方法を見つけることができません..「len が存在しない場合」ステートメントをマクロに実装する方法を知っていますか? ご協力ありがとうございました
specman - 2 つの異なる決定フィールド間の「型」制約
eの「型」制約のトピックについて読みました。次の例のように、構造体フィールドの型を制限できることがわかりました。
これは、 DATA パケットを扱っているときはいつでも、コンパイラーがこれを想定しているため、ヘッダーをCOP ヘッダーにキャストする必要がないことを意味します。
「タイプ」制約を使用して、2 つの異なる決定フィールドを関連付けようとしました。たとえば、オペコードをエンコードするkindフィールドと、命令が受け取る引数を決定するformatフィールドを含む命令 構造体があるとします。
たとえば、RRR形式には次の引数が必要です。
ADD命令はこの形式になります。のように単純な制約のみを使用してADDをRRR形式に関連付ける場合、 ADDkeep kind == ADD => format == RRR
の引数を制約するには、次の手順を実行する必要があります。
引数はRRRサブタイプで定義されているため、明示的にキャストする必要があります。各命令がどのような形式であるかを常に調べる必要があるため、これはかなり面倒です。ADD 命令にキャストするだけのほうが自然でした。
この目的のために「タイプ」制約を使用しようとしましたが、成功しませんでした。私が次のように書くと:
次のエラー メッセージが表示されます。
次のように書くと:
別のエラー メッセージが表示されます。
2 番目のエラーは、私がやろうとしていることを明確に禁止していますが、最初のエラーは解釈の余地があります。
引数を独自の構造体に抽出するだけです。
ドキュメントに示されているように、「タイプ」制約を設定します。
しかし、今では制約するときは常にすべての引数の前に.argsを付ける必要があります:
これは制約を書くときは大したことではありませんが、印刷するときは の内容はargs
印刷されません。これは許容できる回避策ですが、私はまだ最初のアイデアに興味があります。
同じ構造体のwhenサブタイプを関連付けることは可能ですが、適切な構文を使用していませんでしたか?
specman - Specman e スレッドが終了するまで待つ (時間がかからない方法)
unit3.thread() を他の 2 つのスレッドの後に実行する方法はありますか?
ユニット 1 とユニット 2 のスレッドを並行して実行し、両方のスレッドが完了した後にスレッド 3 を実行したいと考えています。ただし、run() は時間のかかるメソッドではないため、次のような解決策があります。
許可されていません。
前のスレッドが終了するまで unit3.thread() を待機させる方法はありますか?
specman - Specman: "define" と "#define" の違いは何ですか?
define
ハッシュマークがある場合とない場合の違いは何ですか? ご協力ありがとうございました
specman - リストのすべてのフィールドが 1 つの CFS に属しているか
生成可能な配列フィールドは常に同じ CFS に属しますか? リスト フィールドの 1 つに制約があり、別のフィールドに別の制約があり、それらが接続されていない場合。両方のフィールドが同じ CFS に属しますか?
specman - Specman: MAIN シーケンスが終了した後、テストが終了していないのはなぜですか?
MAIN シーケンスが終了した後、私が書いたテストが終了しません。私は TEST_DONE 異議を申し立てませんでした..私が提起した異議はすべて取り下げられました。実際には、すべてのシーケンスのフローが完了してからしばらくして、テストベンチのタイムアウトでテストが終了しました..何がテストの終了を妨げているのか分かりますか? あなたが提供できる助けに本当に感謝します。