加藤/研究/進捗状況/検証状況
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[加藤/研究/進捗状況]]
*検証 [#l8b9d04b]
Bus Arbitrationの正しさの検証
**検証項目 [#gdaeba05]
***何をチェックするか? [#kf05f87c]
-各コアのPCの値
-stw0(0x44)が来た時、選択されていないコアのclockが止まっているか?
--counter_value(cpu_select)をチェック
---選択されているコアを確認
--two_or_moreが1になっているかチェック~
~↓上記の確認後
-適切なコアからのデータが出力されているかチェック
--Data_Out = コアからの値
--Address = 0x400
--Data_Inなど他の信号 = 不定値~
~↓
-次のクロックで、次のコアからのデータが来ているかチェック
***検証結果 [#w329d7d2]
アセンブリプログラム &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/Project/Core_System/Test_program/test_bus_arbitration.s,,test_bus_arbitration);
-各コアのPC, Instructionの値~
→フェッチユニットのレジスタから読み込まれているのでOK
-stw0(0x44)が来たときのcounter_valueの値
--0x3(11)~
→core3が選択されている
---波形 &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/waveform/counter_value,,waveform);
-two_or_moreの値は?
--1になっているのでOK~
~↓上記の確認OK
-適切なコア(core3)からのデータ(おそらく3)が出力されているかチェック
--Data_Out = 0x00000003
--Address = 0x00000400
--Data_In = zzzz~
→OK~
~↓
-次のクロックで、次のコアからのデータが来ているかチェック~
→問題なし
--波形 &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/waveform/clock_state,,waveform);
***追加検証 [#b2a80856]
-ldw命令の場合も行う
--アセンブリプログラム &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/Project/Core_System/Test_program/test2_bus_arbitration.s,,test2_bus_arbitration);~
→メモリをシステムに追加していないため、データを読み込むことができなかった
-別にInstruction Memoryを作ることができたら、それぞれのコアに違う命令を読み込ませて動きを見る
--メモリについて再度勉強をする!!
~
-''要求する結果''
--値3がMemoryにstoreされる(from_cpu, MEM_I_Data)~
→OK
--値9がMemoryからloadされる(to_cpu)~
→NG
---値が不定値
---値の読み込み時に、トップモジュールにイネーブル信号を送っていないことが原因か?
---同時に、アドレスも送っていない!!
---イネーブル信号は不定値。読み込めるわけないよな
---ちなみに書き込み時はイネーブル信号を送っている~
→OK
-''検証終了''
-------------------
Bus Arbitrationの動作は確認することができたので、全体のシステムとして検証を行っていく
-Instruction Memory, Data Memoryから適切に命令、データを読み込めるようにする
終了行:
[[加藤/研究/進捗状況]]
*検証 [#l8b9d04b]
Bus Arbitrationの正しさの検証
**検証項目 [#gdaeba05]
***何をチェックするか? [#kf05f87c]
-各コアのPCの値
-stw0(0x44)が来た時、選択されていないコアのclockが止まっているか?
--counter_value(cpu_select)をチェック
---選択されているコアを確認
--two_or_moreが1になっているかチェック~
~↓上記の確認後
-適切なコアからのデータが出力されているかチェック
--Data_Out = コアからの値
--Address = 0x400
--Data_Inなど他の信号 = 不定値~
~↓
-次のクロックで、次のコアからのデータが来ているかチェック
***検証結果 [#w329d7d2]
アセンブリプログラム &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/Project/Core_System/Test_program/test_bus_arbitration.s,,test_bus_arbitration);
-各コアのPC, Instructionの値~
→フェッチユニットのレジスタから読み込まれているのでOK
-stw0(0x44)が来たときのcounter_valueの値
--0x3(11)~
→core3が選択されている
---波形 &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/waveform/counter_value,,waveform);
-two_or_moreの値は?
--1になっているのでOK~
~↓上記の確認OK
-適切なコア(core3)からのデータ(おそらく3)が出力されているかチェック
--Data_Out = 0x00000003
--Address = 0x00000400
--Data_In = zzzz~
→OK~
~↓
-次のクロックで、次のコアからのデータが来ているかチェック~
→問題なし
--波形 &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/waveform/clock_state,,waveform);
***追加検証 [#b2a80856]
-ldw命令の場合も行う
--アセンブリプログラム &ref(http://aslweb.u-aizu.ac.jp/~s1150059/benz/research/MQSoC/Project/Core_System/Test_program/test2_bus_arbitration.s,,test2_bus_arbitration);~
→メモリをシステムに追加していないため、データを読み込むことができなかった
-別にInstruction Memoryを作ることができたら、それぞれのコアに違う命令を読み込ませて動きを見る
--メモリについて再度勉強をする!!
~
-''要求する結果''
--値3がMemoryにstoreされる(from_cpu, MEM_I_Data)~
→OK
--値9がMemoryからloadされる(to_cpu)~
→NG
---値が不定値
---値の読み込み時に、トップモジュールにイネーブル信号を送っていないことが原因か?
---同時に、アドレスも送っていない!!
---イネーブル信号は不定値。読み込めるわけないよな
---ちなみに書き込み時はイネーブル信号を送っている~
→OK
-''検証終了''
-------------------
Bus Arbitrationの動作は確認することができたので、全体のシステムとして検証を行っていく
-Instruction Memory, Data Memoryから適切に命令、データを読み込めるようにする
ページ名: