リムナンテスは愉快な気分

徒然なるままに、言語、数学、音楽、プログラミング、時々人生についての記事を書きます

Verilog

プロセッサの制御線

Verilogでマイクロプロセッサ設計第5回 あとでちゃんと書く どのレジスタアドレスを書き込みレジスタにするかというのを、前回デコーダー部に直書きした気がします(したっけ?)が、その判断はopの値で行いました(?)。 実は書き込みレジスタの判断以外にもop…

デコーダーを作る

Verilogでマイクロプロセッサ設計第4回 多忙でなかなか更新できなかったのですが、続き。 制作中のマイクロプロセッサ、現時点では計算らしいことは足し算くらいしかできませんが、第4回から第5回、第6回、と3回にわたり計算モジュールの拡張(ALUの実装)を…

レジスタファイル設置

Verilogでマイクロプロセッサ設計第3回 MIPSのレジスタは32bit×32個あります。 それぞれの使い方はここらへんを見ると、 名前 番号 用途 $zero 0 常に0(書き込み不可) $at 1 アセンブラ使用 $v0 - $v1 2-3 戻り値 $a0 - $a3 4-7 引数 $t0 - $t7 8-15 一時…

Adderのシミュレーション

Verilogでマイクロプロセッサ設計第2回 前回トップモジュール内のコードについて説明してなかったので、その補足から。 wireへの値の代入にはassignを使います。 assign in1 = 32'd1; assign in2 = 32'd2; このように。 CADツールなどが入っていれば簡単に波…

Adder(足し算器)を作る

Verilogでマイクロプロセッサ設計第1回 32bitの入力2つを足し合わせて、32bitの結果を出力する回路を作ります。 後々のことを考えて、ここではとりあえず桁溢れは考えないことにします。面倒なので。 もう少し丁寧に図示するとこうなります。in1+in2がresult…

Verilogでマイクロプロセッサ設計(コード付き)

実例で学ぶマイクロプロセッサ設計 Verilogを一通り勉強してはみたけどいまいち分かんない……wireとregって何が違うの……というレベルだったので、Verilogのおべんきょうも兼ねてマイクロプロセッサをシミュレートするプロジェクトです。Verilog書けたら大金稼…