自作CPUのテストをPCと実機でやる方法の案
I/Oの信号変化
あるいは最終的なレジスタ値?
CPUの内蔵モジュールをテストする
入力はモジュールの入力信号、出力はモジュールの出力信号
まずはブラックボックステストをやりたい
システム全体の動作をテストできるから
テストを実行する場面
PCの回路シミュレーションで
CPU実機を動作させて
ブラックボックステストのやり方案
1. 機械語をPCからメモリに転送
CPUをFPGAで作る際、UART受信回路を加える
UART受信回路→RAM
2. 機械語を実行
CPUにクロックを供給すれば良い
3. 出力結果をCPUからPCに転送
レジスタXの値を「出力結果」だとみなす
どの時点のレジスタXの値が「出力」?
計算完了したことを知らせる命令を用意する?
レジスタXに「書き込んだ」ら出力と見なす?
レジスタXを「IOポート」と思えば後者が自然か
レジスタX→UART送信回路
メモリダンプについて
計算完了した時点メモリの内容をUARTで転送する?
機械語をメモリに転送する部分
物理的なUARTは不要、というか使えない
機械語をファイルから読んでメモリに転送すれば良い
Verilogのシミュレーションでは任意のファイル読み書きが可能
出力結果をPCに転送する部分
ここも同様にファイルへ書き出せば良さそう