VivadoのSystemVerilog対応状況(シミュレーション編) の変更点
更新- 追加された行はこの色です。
- 削除された行はこの色です。
- 電気回路/HDL/VivadoのSystemVerilog対応状況(シミュレーション編) へ行く。
- 電気回路/HDL/VivadoのSystemVerilog対応状況(シミュレーション編) の差分を削除
[[公開メモ]]
#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
clocking が使えるとシミュレーションがはかどりそうなのに・・・
** 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: 8826 (from 2010/06/03),
today: 1,
yesterday: 2