クラス(Class)

OOP(Object Oriented Programmingオブジェクト指向)のプログラミング言語としては、JAVAが有名なので、JAVAの表記がSVでどのようになるのか見ていきましょう。

-SV検証言語としての起源は、VERAや、JEDAになるらしいのですが、最初の言語設計者が、どの程度JAVAを意識していたかは分かりません。それはともかく、C++クラスよりもJAVAのクラスの方が親和性が高いと言えるでしょう。


JAVA入門のサイト

http://www.isl.ne.jp/pcsp/JavaToYou/java_07.html


こちらからJAVAの記述をSVで書き直してみました。雰囲気は、似ていることが分かります。

class Human ;
	// メンバ変数
	string name;
	int age;
	//コンストラクタ
	function new(string n, int a);
		name = n;
		age=a;
	endfunction

	// メソッド
	function void introduce() ;
		string str;
		str =$sformatf("私の名前は %sで年齢は %2d才です。",name,age);
		$display("%s ",str);
	endfunction
endclass

`ifdef MODEL_TECH
module human_test;
`else
program human_test;
`endif
	Human human1,human2;
		
		initial begin
			
			//オブジェクトの生成
			human1= new ("太郎", 10);
			human2 = new ("ポップ", 100);
			//自己紹介をさせる
			human1.introduce();
			human2.introduce();
		end
`ifdef MODEL_TECH
endmodule
`else
endprogram:human_test
`endif


この実行結果は、次のようになりました。

***** Veritak SV32 Engine Version 438 Build Mar  4 2013*****

私の名前は 太郎で年齢は 10才です。 
私の名前は ポップで年齢は 100才です。 

---------- シミュレーションを終了します。time=0ns