微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鎾儉婢舵劕绾ч幖瀛樻尭娴滅偓淇婇妶鍕妽闁告瑥绻橀弻锝夊箣閿濆棭妫勭紒鐐劤濞硷繝寮婚悢鍛婄秶闁告挆鍛缂傚倷鑳舵刊顓㈠垂閸洖钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�04闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫆闁芥ê顦純鏇㈡⒒娴h櫣甯涢柛鏃€娲熼獮鏍敃閵堝洣绗夊銈嗙墱閸嬬偤鎮¢妷鈺傜厽闁哄洨鍋涢埀顒€婀遍埀顒佺啲閹凤拷14闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫇闁逞屽墰缁絽螖娴h櫣顔曢梺鐟扮摠閻熴儵鎮橀埡鍐<闁绘瑢鍋撻柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛灞剧煯婢规洖鈹戦缁撶細闁告鍐f瀺鐎广儱娲犻崑鎾舵喆閸曨剛锛涢梺鍛婎殕婵炲﹪鎮伴鈧畷鍫曨敆婢跺娅屽┑鐘垫暩婵挳骞婃径鎰;闁规崘顕ч柨銈嗕繆閵堝嫯鍏岄柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄С閸楁娊寮婚悢铏圭<闁靛繒濮甸悘鍫㈢磼閻愵剙鍔ゆい顓犲厴瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 请教下$cast这个函数的用法

请教下$cast这个函数的用法

时间:10-02 整理:3721RD 点击:
对$cast的使用还是不太明白,看到这段代码,不知道是什么意思,或者说为什么这样写?这样写有什么好处?
virtual function bit compare(vmm_data actual , vmm_data expected);
abp_rw act,exp;
$cast(act,actual);
abp_rw 是一个extends vmm_data的一个class
求高人指教~

For specified example, act is an object of class apb_rw, extended from vmm_data. SystemVerilog std says that assignment of parent class object (Actual) to child class object (act) should be done through casting. Child class object by the way can be used anywhere, where a parent class object can be used without casting.

类似于C++中的dynamic_cast

$cast is used to pass arguments(or also we call it handle):
$cast(act,actual) means act points to the object referenced by actual
I think there is no big difference with direct passing method "act=actual" if you don't want to check type of object.

谢谢各位,学到不少~非常感谢!

顶两位高手的解答,很清楚,让这个也困扰我很久的问题得到解答!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top