VivadoのSystemVerilog対応状況(シミュレーション編) のバックアップソース(No.2)
更新[[公開メモ]] #contents * 概要 [#rb5f9766] [[電気回路/HDL/VivadoのSystemVerilog対応状況(合成編)]] につづいてシミュレーション編を * 参考資料 [#wefbba45] Vivado Design Suite User Guide - Logic Simulation [UG900 (v2015.3) September 30, 2015] http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug900-vivado-logic-simulation.pdf こちらも頻繁に更新され、どんどん機能が追加されています。 主に、"Appendix D: System Verilog Constructs Supported by the Vivado Simulator" の内容についてです。 * まずは Verilog への非対応項目のうち気になった部分 [#p7de40a2] "Appendix B: Vivado Simulator Mixed Language Support and Language Exceptions" の "Verilog Language Support Exceptions" より - System Timing Check Commands --$skew_timing_check not supported --$timeskew_timing_check not supported --$fullskew_timing_check not supported --$nochange_timing_check not supported - Value Change Dump (VCD) Files --$dumpportson not supported --$dumpports not supported --$dumpportsoff not supported --$dumpportsflush not supported --$dumpportslimit not supported --$vcdplus not supported * 元となる資料 [#ea873720] マニュアルでは Synthesizable Set of System Verilog 1800-2009 との差分で表示されています。 現在、System Verilog は [[Accellera>http://accellera.org/]] という団体がその仕様を管理しています。 System C や OVL などもここが管理しているみたい。 実は 2015/10 現在の最新版は [[IEEE 1800-2012>http://accellera.org/downloads/ieee]] で、 [[IEEE 1800-2009>http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=5354133]] はその古いバージョン。 最新版は上記リンクから無料で落とせるけれど、古いバージョンは購入しないと読めないみたい。 仕方がないので最新版を見ながら考えることに・・・ * 合成可能部分について [#ge605b0a] 基本は Synthesizable Set of System Verilog 1800-2009 との差分なので、 合成不可能な部分については別途の記述になります。 とりあえず、unsupported の物を列挙してみます。 ** Chap 6: Data type [#zf422d99] $cast dynamic casting 6.24.2 Not Supported ** Chap 7: Aggregate data types [#df45c4a1] - Tagged unions 7.3.2 Not Supported ** Chap 9: Processes [#w7b5e4e9] - Parallel blocks 9.3.2 Not Supported - Sequence events 9.4.2.4 Not Supported ** Chap 10: Assignment statement [#d6b502f5] - Net aliasing 10.11 Not Supported ** Chap 11: Operators and expressions [#h3bdf1c5] - Streaming concatenation as an assignment target (unpack) 11.4.14.3 Not Supported - Streaming dynamically sized data 11.4.14.4 Not Supported ** Chap 12: Procedural programming statement [#nc4b0035] - Pattern matching conditional statements 12.6 Not Supported ** Chap 13.4: Function [#mcf5776e] - Background process spawned by function call 13.4.4 Not Supported ** Chap 13.5: Subroutine calls and argument passing [#h1507727] - Import and Export function 13.6 Not Supported ** Chap 23: Modules and hierarchy [#j19d2a5f] - Binding auxiliary code to scopes or instances 23.11 Not Supported ** Chap 25: Interfaces [#k418ca5f] - Clocking blocks and modports 25.5.5 Not Supported - Interfaces and specify blocks 25.6 Not Supported - Example of multiple task exports 25.7.4 Not Supported - Virtual interfaces 25.9 Not Supported ** Chap 26: Packages [#m5743710] - The std built-in package 26.7 Not Supported * Early Access [#he0ca5c6] Early Access として、Synthesizable でない部分も実装されています。 ** Dynamic Types [#aba0ac11] - String - Queue - Associative Array - Class - Non-synthesizable constructs このリストは徐々に拡充されてきているので、今後も楽しみです。
Counter: 8133 (from 2010/06/03),
today: 2,
yesterday: 0