私が知っているのはreport
とseverity
です。Modelsimは、そのメッセージの一部としてシミュレーション時刻をコンソールに表示します。この「時刻」文字列で自分のメッセージを印刷できるように、文字列変数としてこの瞬間を「取得」する方法はありますか?シミュレーションの時刻を文字列変数としてモデル化するには?
答えて
シミュレーション時間は、now
関数を介して利用できます。これは、time
タイプの値を返します。 time
タイプのimage
属性を使用して、time'image(now)
でこれを文字列に変換することができます。
process is
variable sim_time_str_v : string(1 to 30); -- 30 chars should be enough
variable sim_time_len_v : natural;
begin
...
sim_time_len_v := time'image(now)'length;
sim_time_str_v := (others => ' ');
sim_time_str_v(1 to sim_time_len_v) := time'image(now);
report "Sim time string length: " & integer'image(sim_time_len_v);
report "Sim time string.......:'" & sim_time_str_v & "'";
...
:追加の文字列操作が必要な場合には、シミュレーション時間列は次のようにコードの変数で表すことができ:
report "This is the time: " & time'image(now);
追加:だから、あなたがあなた自身のメッセージでシミュレーション時間を印刷することができます
しかし、何らかの操作の結果を格納するには、その長さがわかっている必要があるため、VHDLはテキスト文字列操作に関して面倒です。より高度な文字列操作のためには、関数と組み合わせたaccess
タイプをシミュレーションで使用することができます。
@MortenZdk投稿を最初に読んでください。これは書式設定に関する長いコメントです。
イメージを使用するのではなく、VHDL-2008 to_string関数をお勧めします。あなたは組み込みの書き込み操作のファイルを一緒にこれを使用することができます:
write(OUTPUT, "This is the time: " & to_string(now) & LF) ;
代わりに、あなたもtextioでそれを使用することができ、それが文字列リテラル値を明確にします。例えば、何の型修飾子は、以下に必要とされない:
write(write_buf, "The time is:" & to_string(now)) ;
writeline(OUTPUT, write_buf) ;
あなたが本当にtextioを嫌う場合は、ちょうどあなたが「」他の言語でのprint文でを使用するように連結し、to_stringに使用することができます。最後にLF文字を忘れて行を終了しないでください。他の場所にLF文字を追加して、複数の行を印刷することもできます。
write(OUTPUT, "%%ERROR: RX value does not match expected value" &
"Received Value: " & to_hstring(RxVal) &
" Expected Value: " & to_hstring(ExpectedVal) &
" at time: " & to_string(now) & LF) ;
to_stringは、 '画像がサポートするもののスーパーセットをサポートしています。最も注目すべきは、配列の値(std_logic_vectorなど)です。オーバーロードが可能ですが、すでにVHDL-2008のtextioでサポートされているすべてのタイプでサポートされています。また、to_hstringとto_ostring(hwriteとowriteのように)の形式で16進数と8進数のオーバーロードをサポートしています。 VHDL-2008は、hwrite、owrite、hread、およびoreadの問題を取り除いたことに注意してください。
アクセスタイプの代わりに、VHDL-2008には値と長さの両方を返す文字列読み取りもあります。それは空白をスキップし、空白が見つかるまで文字を読み込みます(文字列変数の長さまで)。次の例では、文字列トークンを最大80文字にすることができます。
variable ReadVal : string(1 to 80) ;
variable ReadLen : integer ;
...
sread(ReadBuf, ReadVal, ReadLen) ;
- 1. UTC時刻文字列をUnix時刻に変換する
- 2. Python DateUtil文字列を日付と時刻に変換する
- 3. Javascriptのプロトタイプ関数:10進数の時刻を文字列に変換する
- 4. の文字列をcの時刻形式に変換する
- 5. 文字列を有効な日付時刻文字列に変換したい
- 6. ルビーのユーザータイムゾーンで時刻を文字列に変換する
- 7. java - 日付文字列をUTC時刻に変換する
- 8. 文字列を時刻に変換して挿入する方法MySQL
- 9. データと時刻の文字列を解析して日付にアクセスする値
- 10. タイムスタンプをPHPの日付/時刻文字列に変換するには?
- 11. 文字列をScalaの日付時刻に変換するには?
- 12. 今日の日付と時刻を文字列として取得する
- 13. DateTimePickerのカレンダーと時刻の文化に
- 14. Pythonは、私は、文字列と変数を連結しようとしている文字列と変数
- 15. PHP MySQLの文字列の日付と時刻を変換するDateTime
- 16. PHPExcel:すべての値(日付、時刻、数字)を文字列として読み込みます。
- 17. PHPののmssql_queryエラー時に、文字列から日付/時刻を変換
- 18. 変数としてのSSIS文字列
- 19. 文字列配列の日付時刻をソートする方法
- 20. C#でのUTC日付/時刻文字列の変換
- 21. この変数を文字列にカプセル化する方法は?
- 22. NumberFormatException文字列をトークン化して整数に変換するとき
- 23. Blackberry:「hhhh:mm:ss.ss」の文字列から時刻を「mm:ss」に変換する方法
- 24. 複数の文字列を同時にトークン化する
- 25. 文字列をインデックスとして使用する文字列変数のPHP isset()
- 26. Pythonで文字列を変数として渡すには?
- 27. コレクションを英数字の文字列としてシリアル化する方法は?
- 28. C#文字列から日付や時刻を変換したときに変換に失敗しました
- 29. アプリエンジンで、日付時刻までの時間の文字列表現を変換
- 30. は、文字列と変数をリンケージ文字列に連結します。
こんにちはモルテン:素晴らしい!ありがとう!! – bFig8
VHDL-2008はto_stringもサポートしています: –