SystemVerilogの機能紹介

SystemVerilogの機能についての紹介です。
4
Vengineer@ @Vengineer

ドキュメントに、「SYSTEMVERILOG REFERENCE GUIDE」なるものがある。#aldec

2011-12-03 10:54:09
Vengineer@ @Vengineer

SystemVerilogのDPI-Cにおける、function/taskの引数にinput/output/inoutを省略したときは、input。たぶん、SystemVerilogのコードでも同じ。#aldec

2011-12-03 11:00:00
Vengineer@ @Vengineer

SystemVerilogのDPI-Cにおけるimport taskのC側の戻り値の型は、intです。#aldec

2011-12-03 11:03:17
Vengineer@ @Vengineer

引数の方には、reg だけでなく、reg[31:0]とかもできる。DPI-C #aldec #systemverilog

2011-12-03 11:05:07
Vengineer@ @Vengineer

DPI-Cのfunction/taskは、C++で実装してもよいが、例外を使ったときの動作は保障しない。#aldec #systemverilog

2011-12-03 11:08:52
Vengineer@ @Vengineer

SystemVerilogからはC側のメモリ空間にはアクセスできません! #aldec #systemverilog

2011-12-03 11:09:44
Vengineer@ @Vengineer

`define test(my) testbench``my をマクロ定義すると、test(3)は、testbench3 になる。 知っていた?皆さん。#systemverilog #aldec

2011-12-03 11:13:09
Vengineer@ @Vengineer

$psprintfって、システム関数、知っている?IEEE 1800-2005にてサポート。 #systemverilog #aldec

2011-12-03 11:17:13
Vengineer@ @Vengineer

%p を使うと、配列とかきれいに表示してくれるとか。#systemverilog #aldec

2011-12-03 11:18:38
Vengineer@ @Vengineer

%p にて、unionを表示すると、親切な表示にならない。そのときは、%0p を使う。 #systemverilog #aldec

2011-12-03 11:21:56
Vengineer@ @Vengineer

ANSI-Cのような $rtoi $itor $realtobits $bitstoreal $shortrealtobits $bitstoshortreal などもある。bitsへの変換は便利#systemverilog #aldec

2011-12-03 11:25:35
Vengineer@ @Vengineer

ちなみに、realはdouble、shortrealはfloatと同義 #aldec #systemverilog

2011-12-03 11:25:41
Vengineer@ @Vengineer

Configuration Librariesは、サポートしていない。#aldec #systemverilog

2011-12-03 11:27:52
Vengineer@ @Vengineer

#systemverilog での Design/Verification ともに便利な機能である interface 。 まずは、この interfaceを勉強するのがいいと思います。 #aldec

2011-12-03 11:29:53
Vengineer@ @Vengineer

interface の modport を大いに利用しよう! #systemverilog #aldec

2011-12-03 11:31:10
Vengineer@ @Vengineer

interface 内でも task や function が使えます。 #systemverilog #aldec

2011-12-03 11:32:56
Vengineer@ @Vengineer

Parameterized Interfaces なることもできます。 #systemverilog #aldec

2011-12-03 11:34:50
Vengineer@ @Vengineer

基本的には、interface は、 module と同じ。ただし、initial や alwaysは使えません。 #systemverilog #aldec

2011-12-03 11:35:40
Vengineer@ @Vengineer

virtual interfaces と clocking blocks を使えば、 itf_var.cb.req <= ## 2 1'b1; という記述ができる。 ##2 は、2単位時間遅延するのではなく、2クロック遅延する。 #systemverilog #aldec

2011-12-03 11:46:15
Vengineer@ @Vengineer

package も #systemverilog で導入された機能。とっても便利。 typedef funtion などが使える。 #aldec VHDLの package のようなもの!

2011-12-03 11:48:20
Vengineer@ @Vengineer

packageを使うには、import package名::* や import package名::xxx とやって使います。 DPI-C と同じ感じです。 #systemverilog #aldec

2011-12-03 11:50:13
Vengineer@ @Vengineer

$root を使えば、トップ階層のインスタンスを扱えます。 #systemverilog #aldec

2011-12-03 11:51:09
Vengineer@ @Vengineer

module のネストもできます。これでモジュール名のぶつかりを防げます。 #systemverilog #aldec

2011-12-03 11:51:53
1 ・・ 4 次へ