微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柟缁㈠枟閸庡顭块懜闈涘缂佺嫏鍥х閻庢稒蓱鐏忣厼霉濠婂懎浜惧ǎ鍥э躬婵″爼宕熼鐐差瀴闂備礁鎲¢悷銉ф崲濮椻偓瀵鏁愭径濠勵吅闂佹寧绻傚Λ顓炍涢崟顓犵<闁绘劦鍓欓崝銈嗙箾绾绡€鐎殿喖顭烽幃銏ゅ川婵犲嫮肖闂備礁鎲¢幐鍡涘川椤旂瓔鍟呯紓鍌氬€搁崐鐑芥嚄閼搁潧鍨旀い鎾卞灩閸ㄥ倿鏌涢锝嗙闁藉啰鍠栭弻鏇熺箾閻愵剚鐝曢梺绋款儏濡繈寮诲☉姘勃闁告挆鈧Σ鍫濐渻閵堝懘鐛滈柟鍑ゆ嫹04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝曢梻浣藉Г閿氭い锔诲枤缁辨棃寮撮姀鈾€鎷绘繛杈剧秬濞咃絿鏁☉銏$厱闁哄啠鍋撴繛鑼枛閻涱噣寮介褎鏅濋梺闈涚墕濞诧絿绮径濠庢富闁靛牆妫涙晶閬嶆煕鐎n剙浠遍柟顕嗙節婵$兘鍩¢崒婊冨箺闂備礁鎼ú銊╁磻濞戙垹鐒垫い鎺嗗亾婵犫偓闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗26闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝栭梻渚€鈧偛鑻晶鎵磼椤曞棛鍒伴摶鏍归敐鍫燁仩妞ゆ梹娲熷娲偡閹殿喗鎲奸梺鑽ゅ枂閸庣敻骞冨鈧崺锟犲礃椤忓棴绱查梻浣虹帛閻熴垽宕戦幘缁樼厱闁靛ǹ鍎抽崺锝団偓娈垮枛椤攱淇婇幖浣哥厸闁稿本鐭花浠嬫⒒娴e懙褰掑嫉椤掑倻鐭欓柟杈惧瘜閺佸倿鏌ㄩ悤鍌涘 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閻樻爠鍥ㄧ厱閻忕偛澧介悡顖氼熆鐟欏嫭绀€闁宠鍨块、娆戠磼閹惧墎绐楅梻浣告啞椤棝宕橀敐鍡欌偓娲倵楠炲灝鍔氭繛鑼█瀹曟垿骞橀懜闈涙瀭闂佸憡娲﹂崜娑㈡晬濞戙垺鈷戦柛娑樷看濞堟洖鈹戦悙璇ц含闁诡喕鍗抽、姘跺焵椤掆偓閻g兘宕奸弴銊︽櫌婵犮垼娉涢鍡椻枍鐏炶В鏀介柣妯虹仛閺嗏晛鈹戦鑺ュ唉妤犵偛锕ュ鍕箛椤掑偊绱遍梻浣筋潐瀹曟﹢顢氳閺屻劑濡堕崱鏇犵畾闂侀潧鐗嗙€氼垶宕楀畝鍕厱婵炲棗绻戦ˉ銏℃叏婵犲懏顏犵紒杈ㄥ笒铻i柤濮愬€ゅΣ顒勬⒒娴e懙褰掓晝閵堝拑鑰块梺顒€绉撮悞鍨亜閹哄秷鍏岄柛鐔哥叀閺岀喖宕欓妶鍡楊伓闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻锝夊箣閿濆憛鎾绘煕閵堝懎顏柡灞诲€濆畷顐﹀Ψ閿旇姤鐦庡┑鐐差嚟婵敻鎳濇ィ鍐ㄧ厴闁瑰鍋涚粻鐘绘⒑缁嬪尅鏀绘い銊ユ楠炲牓濡歌閸嬫捇妫冨☉娆忔殘閻庤娲栧鍫曞箞閵娿儺娓婚悹鍥紦婢规洟姊绘担铏瑰笡濞撴碍顨婂畷鏉库槈濮樺彉绗夊┑鐐村灦鑿ゆ俊鎻掔墛缁绘盯宕卞Ο鍝勵潔濡炪倕绻掗崰鏍ь潖缂佹ɑ濯撮柤鎭掑劤閵嗗﹪姊洪棃鈺冪Ф缂佺姵鎹囬悰顔跨疀濞戞瑦娅㈤梺璺ㄥ櫐閹凤拷
首页 > 硬件设计 > FPGA和CPLD > 利用AMSVF进行混合信号SoC的全芯片验证

利用AMSVF进行混合信号SoC的全芯片验证

时间:11-09 来源:互联网 点击:
近年来,消费电子和个人计算市场的发展增加了对于更强大且高度集成的芯片产品的需求。低成本、低功耗、复杂功能和缩短上市时间的需要,让越来越多的IC设计采用了SoC技术。

在这些SoC电路中,由于包含了数据转换器、功率管理及其它模拟电路,混合信号设计不可避免并且越来越多。在混合信号SoC设计中,为了避免芯片重制,确保一次性流片成功,全芯片混合信号验证成为关键一环。传统上,在复杂的混合信号SoC设计中,不同团队分别独立验证数字和模拟组件,并不进行全芯片综合验证,其主要原因是没有足够强大的EDA工具能够完成这个重要任务。如果所有的集成和接口问题仅仅是在测试平台中进行解决,那么就很难保证混合信号的正确连接和时序匹配。随着高速SPICE模拟工具的出现,设计师可以在晶体管级执行整个芯片系统的验证,这是一种较为有效的验证方法。该方法具有很高的精确性,并能够进行全面的功能分析,但是,此类验证只能在设计周期的最后阶段进行,那时所有的单元和定制元件都已经设计完成。此外,这种方法的模拟速度有时非常缓慢,必须动用大量的硬件资源。对于包含微处理器、ROM、RAM、PLL等的复杂系统,由于其元件数量实在过于庞大,高速SPICE模拟器几乎不可能执行全芯片晶体管级模拟。

然而,验证方法学应该贯穿于整个设计阶段,而不能仅局限于最终的验证阶段。同时,为了实现混合信号SoC验证在精确性和速度之间的完美平衡,设计师可能想要保持某些重要的模拟模块(如ADC、PLL)作为SPICE网表,而其它部分为Verilog行为级模块。这时,设计师可以选择使用晶体管级电路去替代特定的行为模块,并及时高效地继续设计验证过程。

为了实现精确而快速的全芯片验证,全新的模拟解决方案应运而生。

AMS Designer与AMSVF

作为新一代的模拟器,AMS Designer基于Virtuoso Spectre和Ultrasim Simulator以及Incisive Unified Simulator引擎的可靠技术,是一种单一核心(Single Kernel)的混合信号模拟器。它提供了两种模拟求解器——Spectre和Ultrasim,并支持几乎所有的语言和SPICE网表规格。Ultrasim求解器性能较高,有着堪比SPICE的精确性,并且容量几乎无限,因此较适合大型全芯片设计。

虽然AMS Designer为DFII流程提供了友好的图形用户界面,然而对于混合信号验证,多数设计师更需要该应用在命令行模式下执行全芯片验证。其原因不仅是因为命令行模式提供了强大而方便的批量运行功能,还因为设计本身是基于没有原理图的文本文档,或没有GUI环境。对于这种应用方式,AMSVF(AMS验证流程)更加适合。

AMSVF的应用模式

继承了NC-Verilog,AMSVF的使用支持ncverilog单步模式,它主要面向Verilog-XL用户;而3步模式会调用ncvlog剖析输入文件,调用ncelab构建电路结构,然后调用ncsim模拟器模拟电路。

目前,AMSVF可以为数字测试平台提供支持,其应用模式如图1所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻濞戔懞鍥偨缁嬪灝鐎俊銈忕到閸燁偆绮诲☉妯忓綊鏁愰崨顔跨缂備礁顑勯懗鍓佹閹捐纾兼慨姗嗗厴閸嬫捇鎮滈懞銉モ偓鍧楁煥閺囨氨鍔嶉柟鍐茬焸濮婄粯鎷呴崨濠傛殘闂佽崵鍠嗛崕鎶藉箲閵忕媭娼ㄩ柍褜鍓欓锝嗙節濮橆厼浜滅紒鐐妞存悂寮查鍕拺闁圭ǹ娴风粻鎾寸箾鐠囇呭埌閺佸牊淇婇妶鍛櫤闁稿鍓濈换婵囩節閸屾稑娅e銈忕到閵堟悂骞冩禒瀣垫晬婵炴垶蓱鐠囩偤姊虹拠鈥虫灍闁荤噦濡囬幑銏犫攽鐎n亞鍊為梺闈浤涢崘銊ヮ洭濠电姷鏁告慨鐑藉极閹间礁纾规い鏍仜閻掑灚銇勯幒鎴濐仼缁炬儳顭烽弻鐔煎礈瑜忕敮娑㈡煟閹惧娲撮柟顔筋殜閺佹劖鎯旈垾鑼晼濠电姭鎷冮崘顏冪驳闂侀€涚┒閸斿秶鎹㈠┑瀣窛妞ゆ洖鎳嶉崫妤呮⒒娴e憡璐¢柟铏尵閳ь剚姘ㄦ晶妤佺┍婵犲洤绠瑰ù锝堝€介妸鈺傜叆闁哄啠鍋撻柛搴$-缁辩偤骞掑Δ浣叉嫽闂佺ǹ鏈悷銊╁礂瀹€鍕厵闁惧浚鍋呭畷宀€鈧娲滈弫璇差嚕娴犲鏁囬柣鎰問閸炵敻姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷...

图1 AMSVF的应用模式

Verilog/VHDL顶层也可以例示SPICE subckt,对于VHDL测试平台来说,需要提供Verilog wrapper。另外,顶层可以调用其它Verilog/VHDL模块。这种应用模式被命名为“Verilog on top”。中层SPICE subckt也可以例示最底层的Verilog/VHDL模块,这种应用模式被命名为“Sandwich”或“SPICE in middle”。另外,在一些复杂设计中,AMSVF还支持多个“Sandwich”应用模式,如“Verilog - SPICE - Verilog - SPICE - Verilog”。

这两种应用模式对于用户的全芯片验证应用是非常方便的。对于一个纯粹的数字系统设计,为了获得精确的结果,用户可以用SPICE网表替代一些Verilog模块,甚至使用寄生参数以获得更为精确的模拟结果。由于物理元件太多,模拟速度可能会变慢,这时,用户可以在SPICE网表中对基本门电路使用Verilog/VHDL行为级模块。那么,“Sandwich”应用模式就得以实现。这意味着用户可以自由而简单地切换应用模式。  

AMSVF的应用与重要功能

AMSVF中有许多实用而重要的功能,其中某些功能可用于减少建立测试用例所需的手工时间,而另外一些功能可用于验证性能。

自动总线连接

在HDL语言中,总线信号的使用非常普遍且不可或缺。但SPICE中并没有类似的概念或定义,连接到SPICE支电路的Verilog总线必须被分解到每一个单独的端口,而且必须按顺序连接。例如:

module verilog;

wire [0:5] v;

analog_top xana_top ( v[0], v, v, v, v, v );

endmodule

.subckt analog_top p<0> p<1> p<2> p<3> p<4> p<5>

...

.ends

为了准确地连接Verilog实例和SPICE subckt,总线信号v[0:5]必须被分离。通常,分离的过程需要极为耗时的手动编辑,尤其对于规模较大的总线更是如此。而在AMSVF中,通过自动总线连接功能,用户可以轻松地将实例写为:

analog_top xana_top ( v );

用户可以在SPICE网表中设置总线界定符,告知AMSVF哪个符号用于总线信号。这里符号<> 和[ ]为默认界定符,甚至也可以支持空总线界定符。

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

网站地图

Top