SlideShare a Scribd company logo
2019/11/09 1
RTL を語る会 (16)
Real Number Modeling
(RNM) 超・初級編
@wyamamo74212
2019/11/09 2
アナログ、素人です
● 現職 2019/7/29 〜
– アナログ(電源) IC メーカー
– Analog Mixed-Signal (AMS) シミュレーション担当チーム
– Real Number Modeling (RNM) の適用拡大を検討中
● 前職 2007/11 〜 2019/7
– 某 EDA ベンダ AE
– SystemVerilog / UVM / VIP あたりを担当
2019/11/09 3
見えるぞ!私にも敵が見える!
https://youtu.be/K0d_mZQdfpw
… という気分にさせてくれた
SystemVerilog サンプルにめ
ぐりあえた
引用元
RNM
=
そのエッセンスを、自作の
SystemVerilog サンプル
( 56 行)でお伝えします
2019/11/09 4
Modeling Tradeoffs
https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/solutions/mixed-signal-soc-verification-wp.pdf
Solver あり
Solver 無し
2019/11/09 5
Kirchhoff's Flow Law (KFL) / Potential Law (KPL)
Verilog-AMS Language Reference Manual Version 2.4.0 , May 30, 2014
Verilog-AMS
2019/11/09 6
Spice/AMS vs RNM 比較
DVCLUB Europe: Sept 2017; Real Value Modeling for Improving the Verification Performance, Mallikarjuna Reddy(T&V), Venkatramanarao (Mindlance Tech)
https://www.testandverification.com/conferences/dvclub/europe/sep2017/dvclub-real-value-modeling-improving-verification-performance
2019/11/09 7
テブナンの定理 (Thevenin's theorem )
高校物理の備忘録 https://physnotes.jp/em/ecir_thev/
2019/11/09 8
ノートンの定理 (Norton's theorem)
高校物理の備忘録 https://physnotes.jp/em/ecir_norton/
2019/11/09 9
ノートンの定理 〜 計算例
高校物理の備忘録 https://physnotes.jp/em/ecir_norton/
§ 例 2: 2 つの電源と 3 つの抵抗を含んだ回路
2019/11/09 10
IEEE 1800-2012 additional reserved keywords
● 22.14.8 IEEE 1800-2012 keywords
– implements
– nettype
– interconnect
– soft
本発表のサンプルで
は nettype のみ
を使います
IEEE Std 1800-2017 “22. Compiler directives”
ユーザ定義 struct 型
新しく定義する UDN 名
Resolution 関数
User-defined nettypes
2019/11/09 11
SystemVerilog : User-Defined Net-type
● 6.5 Nets and variables
– There are two main groups of data objects: variables and nets.
● 6.6 Net types
– There are two different kinds of net types: built-in and user-defined.
– built-in net types → Table 6-1
● resolving multiple drivers → Table 6-2
IEEE Std 1800-2017 “6. Data types”
2019/11/09 12
サンプルコード ( 全体 56 行 )
User-Defined Nets(UDN)
User-Defined
Resolutions(UDR)
2019/11/09 13
サンプルコード (1) “rnmvs_pkg” (resolution 関数除く )
User-Defined Nets (UDN)
User-Defined Resolutions (UDR)
: 中略(次のスライドへ)
電圧 (V) 、抵抗 (R) を定義した struct
VSnet
VSres
VSstruct
2019/11/09 14
サンプルコード (2) “rnmvs_pkg” (resolution 関数 )
入力: VSstruct 型の動的配列 drivers[]
drivers[] で与えられた各ドライバを処理
Ideal ソースはそのまま return
ノートンの定理に従う計算
( 電流 I, 抵抗 G)
I,G を V,R に直して return
User-Defined Resolutions (UDR) ”VSres” の詳細
戻値: VSstruct 型
2019/11/09 15
サンプルコード (3) Voltage source モデル
電圧 (V) を抵抗 (R)=0 でドライブする
Ideal Voltage Source
package を import して UDN “VSnet” をポート定義で使う
2019/11/09 16
サンプルコード (4) 抵抗素子モデル
2つのノード P,N の電圧 (V) を
相互にドライブする。これにより
Resolution 関数で各ノードの電
圧が計算される。
R[Ω]
N
P
P.V
N.V
2019/11/09 17
サンプルコード (5) テスト回路(テストベンチ)
vdd
res2
res1
res0
gnd
40Ω
10Ω
10Ω
5.0[V]
0.0[V]
n0
n1
n2
n3
? [V]
? [V]
各ノードの電圧の最終値をログへ出力
2019/11/09 18
サンプルコードの実行結果
===== Resolved voltages =====
n0 = 0[V]
n1 = 0.833333[V]
n2 = 1.66667[V]
n3 = 5[V]
= 5[V] * 10/(40+10+10) = 5[V] * 1/6
= 5[V] * (10+10)/(40+10+10) = 5[V] * 1/3
2019/11/09 19
Norton's theorem に基づく Resolution による電圧計算
vdd
res2
res1
res0
gnd
40Ω
10Ω
10Ω
n0
n1
n2
n3
res2res1
40Ω
10Ω
n1
n2
n3 =Vdd(5[V])
n2 ノードの resolution に着目
res1
40Ω 10Ω
n1.V
n2
n3.V
res2
=
ノートンの定理〜計算例
(P.9) と同じモデル
2019/11/09 20
各ノード計算値の収束の様子
2019/11/09 21
Summary
●
電圧・電流値の計算
– AMS (Spice) では Solver が電圧・電流の両方を解決
– RNM では電圧 or 電流を直接計算
●
SV-RNM のサンプル
– Norton の定理に基づく電圧の計算例
●
RNM によるシミュレーションの高速化
– Solver を使う必要の無い検証対象を高速化
– その検証対象を見つけ出すに必要な知識は?
– 初心者にはまだまだ先が長い…
2019/11/09 22
まだだ!まだ終わらんよ!
https://youtu.be/K0d_mZQdfpw
… という気分で、
地道に奮闘中
引用元
2019/11/09 23
Thank you so much
for your kind
attention

More Related Content

What's hot

CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
 
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
Shinnosuke Takamichi
 
FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状
Yukitaka Takemura
 
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
Tokyo Tech
 
AESについて 輪講資料
AESについて 輪講資料AESについて 輪講資料
AESについて 輪講資料
Sorasuke
 
なぜ系統を考慮するのか―演技する鳥類の進化―
なぜ系統を考慮するのか―演技する鳥類の進化―なぜ系統を考慮するのか―演技する鳥類の進化―
なぜ系統を考慮するのか―演技する鳥類の進化―
MikiSaijo
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
智啓 出川
 
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5Yosuke Onoue
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
 
Neural text-to-speech and voice conversion
Neural text-to-speech and voice conversionNeural text-to-speech and voice conversion
Neural text-to-speech and voice conversion
Yuki Saito
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the World
Omer Kilic
 
ひたすら楽してスライド作成
ひたすら楽してスライド作成ひたすら楽してスライド作成
ひたすら楽してスライド作成
Masanori Morise
 
第11回 配信講義 計算科学技術特論A(2021)
第11回 配信講義 計算科学技術特論A(2021)第11回 配信講義 計算科学技術特論A(2021)
第11回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
 
IBTA Releases Updated Specification for RoCEv2
IBTA Releases Updated Specification for RoCEv2IBTA Releases Updated Specification for RoCEv2
IBTA Releases Updated Specification for RoCEv2
inside-BigData.com
 
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
Nobukazu Yoshioka
 
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
shimadah
 
Arm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
Arm DynamIQ: Intelligent Solutions Using Cluster Based MultiprocessingArm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
Arm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
Arm
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
 
ch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdfch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdf
HoudaBezziane
 
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNTx86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
takesako
 

What's hot (20)

CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
雑音環境下音声を用いた音声合成のための雑音生成モデルの敵対的学習
 
FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状
 
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
辞書ベースのテキストマイニング ML-Ask, J-LIWC, J-MDFを例として
 
AESについて 輪講資料
AESについて 輪講資料AESについて 輪講資料
AESについて 輪講資料
 
なぜ系統を考慮するのか―演技する鳥類の進化―
なぜ系統を考慮するのか―演技する鳥類の進化―なぜ系統を考慮するのか―演技する鳥類の進化―
なぜ系統を考慮するのか―演技する鳥類の進化―
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
 
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
 
Neural text-to-speech and voice conversion
Neural text-to-speech and voice conversionNeural text-to-speech and voice conversion
Neural text-to-speech and voice conversion
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the World
 
ひたすら楽してスライド作成
ひたすら楽してスライド作成ひたすら楽してスライド作成
ひたすら楽してスライド作成
 
第11回 配信講義 計算科学技術特論A(2021)
第11回 配信講義 計算科学技術特論A(2021)第11回 配信講義 計算科学技術特論A(2021)
第11回 配信講義 計算科学技術特論A(2021)
 
IBTA Releases Updated Specification for RoCEv2
IBTA Releases Updated Specification for RoCEv2IBTA Releases Updated Specification for RoCEv2
IBTA Releases Updated Specification for RoCEv2
 
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
 
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
 
Arm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
Arm DynamIQ: Intelligent Solutions Using Cluster Based MultiprocessingArm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
Arm DynamIQ: Intelligent Solutions Using Cluster Based Multiprocessing
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 
ch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdfch1_introduction_aux_systemes_embarques.pdf
ch1_introduction_aux_systemes_embarques.pdf
 
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNTx86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
 

Similar to Real Number Modeling (RNM) 超・初級編

ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
 
Abc2012spring robot sammit - Kurimoto
Abc2012spring robot sammit - KurimotoAbc2012spring robot sammit - Kurimoto
Abc2012spring robot sammit - KurimotoKenichi Kurimoto
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料
Shin-ya Koga
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
Bee Style:vol.008
Bee Style:vol.008Bee Style:vol.008
Bee Style:vol.008
spicepark
 
無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
Toshi Harada
 
20分で理解するdisplaysystem
20分で理解するdisplaysystem20分で理解するdisplaysystem
20分で理解するdisplaysystemmagoroku Yamamoto
 
SensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoTSensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoT
Daisuke Tanaka
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Takeshi Yamamuro
 
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
Masayuki Akiyama
 
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Nobuhiko Sasaki
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
Deep Learning Lab(ディープラーニング・ラボ)
 
Intel AVX2を使用したailia sdkの最適化
Intel AVX2を使用したailia sdkの最適化Intel AVX2を使用したailia sdkの最適化
Intel AVX2を使用したailia sdkの最適化
HitoshiSHINABE1
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
Ryousei Takano
 
【テストレポート】Datrium DVXによるIOmark-VM性能テスト
【テストレポート】Datrium DVXによるIOmark-VM性能テスト【テストレポート】Datrium DVXによるIOmark-VM性能テスト
【テストレポート】Datrium DVXによるIOmark-VM性能テスト
デイトリウム
 
ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要
ADVENTURE Project
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
Shigeru Tsubota
 

Similar to Real Number Modeling (RNM) 超・初級編 (20)

ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
Abc2012spring robot sammit - Kurimoto
Abc2012spring robot sammit - KurimotoAbc2012spring robot sammit - Kurimoto
Abc2012spring robot sammit - Kurimoto
 
Abc2012spring slide
Abc2012spring slideAbc2012spring slide
Abc2012spring slide
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
Bee Style:vol.008
Bee Style:vol.008Bee Style:vol.008
Bee Style:vol.008
 
無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
 
20分で理解するdisplaysystem
20分で理解するdisplaysystem20分で理解するdisplaysystem
20分で理解するdisplaysystem
 
SensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoTSensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoT
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
 
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
Unityファンへ贈る! Unite12 & gamescom 2012 視察報告
 
Android/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニングAndroid/iOS端末におけるエッジ推論のチューニング
Android/iOS端末におけるエッジ推論のチューニング
 
Intel AVX2を使用したailia sdkの最適化
Intel AVX2を使用したailia sdkの最適化Intel AVX2を使用したailia sdkの最適化
Intel AVX2を使用したailia sdkの最適化
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
【テストレポート】Datrium DVXによるIOmark-VM性能テスト
【テストレポート】Datrium DVXによるIOmark-VM性能テスト【テストレポート】Datrium DVXによるIOmark-VM性能テスト
【テストレポート】Datrium DVXによるIOmark-VM性能テスト
 
ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
GNS3上の仮想アプライアンス+GitLabRunner+BDDによるテスト自動化
 

Real Number Modeling (RNM) 超・初級編