1© 2014 The MathWorks, Inc.
物理層&MAC層のマルチレイヤシミュレーションとコード生成
MathWorks Japan
アプリケーションエンジニアリング部
シニアアプリケーションエンジニア
田中明美
2
Go-Back-N (クロスレイヤモデル)
BER/PER特性の確認
Bitレベルで雑音を加えているため、PERだけでなく、BERも評価可能
3
Go-Back-N
振る舞い
送信側 受信側
Frame1
Frame2
Frame3
Frame4
Frame5
Frame6
Frame5
Frame6
ACK1
ACK2
ACK3
ACK4
未到達
timeout
ウィンドウサイズ
往復遅延時間
4
Go-Back-N (クロスレイヤモデル)
フレーム生成
1
OUT
IN OUT
Set Attribute
IN OUT
Sequence Number
OUT
Frame Generator
1
OUT
parity bitPKT_IN1
Set Parity Bit
IN1
IN2
IN3
OUT
Packet Generator
TRAILER
Generate Trailers
PAYLOAD
Generate Payloads
HEADER
Generate Headers
MACモデル
PHY/MAC クロスレイヤモデル
ヘッダ、ペイロード、トレイラ等、実際のフレーム構成をふまえてattribute情報を付加
各entityに付加するattribute情報は、シーケンシャル番号のみ
5
Go-Back-N (クロスレイヤモデル)
物理層付加
以下のattributeを取りだす seqNum(シーケンシャル番号) Payload(ペイロード) Parity Bit(CRCパリティ)
6
Go-Back-N (クロスレイヤモデル)
物理層付加
取り出したattribute “Payload”,
“Parity Bit”について、以下のPHYレイヤ処理を行う
BCH符号/復号 BPSK変復調 白色雑音付加
7
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
8
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
9
Simulink環境
SimulinkDiscrete
Event
(SimEvents)
パケットメモリ処理
Decision
Logic
(Stateflow)
シーケンス処理例外処理条件判定
Time-Driven Dynamics
(Simulink
DSP System Toolbox
Communications System
Toolbox
Phased Array System
Toolbox)
基本環境変復調エラー訂正チャネルビームフォーミング到来方向推定スペアナ表示
Frequency-Driven
(SimRF)
ミキサアンプLNA
マルチドメイン/マルチレイヤのシミュレーションCコード/HDLコード生成
Code Generation
(Simulink Coder
Embedded Coder
HDL Coder)
CコードHDLコード
LTE System Toolbox
10
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
11
Stateflowとは?
状態遷移図・状態遷移表・フローチャート機能を提供
Simulinkとシームレスに連携(Simulinkが必要)
階層化、並列化、関数化、時相論理に対応
コード生成、モデル検証等各種オプション機能に対応
上位階層
下位階層
Stateflow
12
主な機能
フローチャート 状態遷移図 状態遷移表
処理の流れで
ロジックを表現
状態の移り変わりで
ロジックを表現状態遷移図の表形式
13
Stateflow ブロック
エントリの方法
状態遷移図
状態遷移表
真理値表
ドラッグ&ドロップでモデルに配置
14
Stateflow エディタ オブジェクトパレット
上から順に
ズーム
表示範囲のフィッティング
状態
分岐点(コネクティブジャンクション)
遷移線(トランジション)
ボックス
Simulink関数
グラフィカル関数
MATLAB関数
真理値表
ヒストリージャンクション
15
状態のハイライト、MATLAB関数のコール
現在の状態がハイライトされどの状態に繊維しているか確認可能
MATLAB関数をチャートからコール
16
HUNTSYNC_FLG<=‘0’
LOSTSYNC_FLG<=‘1’
SYNCSYNC_FLG<=‘1’
FOUNDSYNC_FLG<=‘0’COUNT=FRAME
andCODE_HIT=‘0’
COUNT=FRAMEand
CODE_HIT=‘1’
COUNT=FRAMEand
CODE_HIT=‘0’
COUNT=FRAMEand
CODE_HIT=‘0’
COUNT=FRAMEand
CODE_HIT=‘1’
CODE_HIT=‘1’
Stateflowの活用例フレーム同期信号検出
DATAI
SYNC_FLG
FP
同じ機能のHDLコード完成まで2時間(モデリング 0.5h 検証 1.5h)
DATAO
参考文献CQ出版社 DesignWave BooksHDL サンプル記述集 まねして身につけるディジタル回路設計
17
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
18
Simulink/StateflowからのCコード生成
19
Simulink/StateflowからのHDLコード生成
20
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
21
SimEventsとは?
エンティティとは?サーバーとは?
パケット処理
22
ケンドール記号
22
D / D / 1
SimEvents標準デモ
到着間隔の分布
サービス時間の分布
サーバの数
D : 一定分布
M : ランダム分布
G : 一般分布
23
15分 8分
10分 9分
1 2
3
2 3
3
5分 4分
15分
4
10分
1
Server A
エンティティの到着する間隔: ランダム
サービス時間: ランダム
サーバの数: 1待ち状態が発生
イベント
ランダム時間
サービス時間ランダム時間
エンティティの到着
サービス時間
待ち状態
M/M/1 [到着分布/サービス分布/サービス窓口数」
ケンドールの記号
2 4
24
Precision Time Protocol とは?
出典:http://ja.wikipedia.org/wiki/Time_Protocol#PTP.28Precision_Time_Protocol.29
25
Precision Time Protocol とは?プロトコルメッセージ
Master Clock Sync
Master Clock Delay Response
Slave Clock Delay Request
少なくても1台のMasterと1台のSlaveが必要
タイムスタンプの位置One-step clock
Two-step clock
4種類のタイムスタンプT1:Masterが同期メッセージを送信した時間T2:Slaveが同期メッセージを受信した時間T3:SlaveからDelay Requestメッセージを送信した時間T4:MasterがDelay Responseメッセージを受信した時間
Master Clock Slave Clock
T1,Sync
Sync follow up
T4
Delay Response
T2
T3
Delay Request
26
Precision Time Protocol Systemのモデリング
Master Channel Slave
27
Master
SlaveへT1を含むパケット送信
Slaveからのパケット受信
Slaveへ返信
28
Channel
MasterからSlaveへ
MasterからSlaveへ
Slave からMasterへ
29
Slave
Masterへパケット送信
30
シミュレーション結果
片方向遅延 黄: 瞬間遅延 青: 平均遅延
遅延時間(Master to Slave)
遅延時間(Slave to Master)
31
アジェンダ
Simulink®シミュレーション環境
Stateflow®とは?
Stateflow®からのコード生成
SimEvents®とは?
アプリケーション例(CSMA/CD)
まとめ
32
CSMA/CDの概要
信号が流れていないか確認
信号がなければ伝送開始
信号を検出送信を待つ
信号がなければ伝送開始
同時に送信したため衝突
双方ランダム時間待って再送
バックオフは15回繰り返し、16回目にフレーム破棄
33
CSMA/CD
33
☆3台の端末によるCSMA/CDアルゴリズムのモデル(10Mbps)
☆端末(Entity生成、MAC、接続点)とケーブルにより構成
MACEntity生成
ケーブル長による遅延
端末
3434
Backoff (Stateflow)
CSMA/CD
CSMA/CD
3535
①親サブシステムのInfinite Server(Chanel State)内にあるentityの数を入力(I_states)
②I_statesの値が0→1の時、Server内に一つだけパケットがあると判断
→ st端子に0を出力(Collisionなし)
③I_statesの値が1→2の時、st端子に1を出力(Collisionあり)
① ②③
CSMA/CD
36
CSMA/CD
36
collision検出
Backkoff時間を計算
37
CSMA/CD
10Mb/s
パケットは可変長(64~1500byte)
パラメータ設定
38
CSMA/CD
38
パケット長情報を
attributeとして
伝送
パケット生成レート情報を、entity生成時間に設定
マスクパラメータの受け渡し
39
CSMA/CD
送出されたパケット数
検出されたコリジョン数
チャネル使用率スループット
Application(B)のパケットレート:200
チャネル使用率スループット
Application(B)のパケットレート:100
40
まとめ
物理層だけでなくMAC層のモデリング
物理層&MAC層のマルチレイヤモデリング
CSMA/CA,CSMA/CDなどを意識したサンプルモデル
独自のプロトコルの検討
仕様から直感的に理解できるモデリング
コード生成->実装まで幅広いフェーズをカバー
– ツールのトレーニング
– コンサルティングサービス
通信系システム設計、シミュレーションに便利なオプションとサービスをご利用いただけます。
41
デモブースのご案内
アナログ・デジタル設計からハードウェア実装
© 2014 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc.
See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names
may be trademarks or registered trademarks of their respective holders.
展示ブースデモダイジェスト
42
ワークショップ(体験型)
2014年12月2日
実際にMATLABを使用して簡単なモデル作成とBER測定までのワークフローをご体験頂けます
詳細はこちらからhttps://go2.mathworks.com/communications-workshop-sem-jp-58863?s_iid=evsem_sem_event_bod
43
ご聴講ありがとうございました!
© 2014 The MathWorks, Inc. MATLAB and Simulink are registered
trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for
a list of additional trademarks. Other product or brand names may be
trademarks or registered trademarks of their respective holders.