帰らざるMOS回路(33) 1bit ALUを32個並べて32bit化。Verilog

ALU32_CELLS
Joseph Halfmoon

前回、1ビット分のALUをVerilog化してみたので、今回はそれを32個ならべて32ビット化してみます。まあね、芸のないリップルキャリーなので接続は超簡単、並べるだけ(遅いけれども。)論理演算でも算術演算(加算と減算だけれども)でもどんとこいっと。でもまだレジスタとか必要なものは何も繋がってないっす。

“帰らざるMOS回路(33) 1bit ALUを32個並べて32bit化。Verilog” の続きを読む

帰らざるMOS回路(32) MOSFET、MUXとリップルキャリーでALUをVerilog化

ALU_assign
Joseph Halfmoon

前回はゲートレベルシミュレータ上で1bit分のALU(Arithmetic Logic Unit)を試作。全ての論理演算と加算(減算は2の補数)を行えるような「セル」です。算術演算時にはリップルキャリーなので実際に作ったら「遅い」ですが、とりあえず速度は考えないっと。今回は前回の回路をVerilogで書き直してみます。

“帰らざるMOS回路(32) MOSFET、MUXとリップルキャリーでALUをVerilog化” の続きを読む

帰らざるMOS回路(31) MOSFET、古式ゆかしい?MUXとリップルキャリーでALU

MOS_ALU_ADD_11_C1
Joseph Halfmoon

前回はVerilogで無理やりMOSトランジスタ・アレイCD4007をモデリングしてしまいました。MOSFETレベルでも「やれそうな」雰囲気が出てきたので、今回は1bit分のALU(Arithmetic Logic Unit)を試作。分かり易さ優先、正論理のみの「ゲートレベル原理回路」の動作確認をしてみたいと思います。

“帰らざるMOS回路(31) MOSFET、古式ゆかしい?MUXとリップルキャリーでALU” の続きを読む

帰らざるMOS回路(30) Icarus VerilogでCD4007をモデリング

CD4007_verilog
Joseph Halfmoon

注文してあったCD4007が到着。急遽こちらのシリーズをお休みしてCD4007の動作試験をやってました。CD4007は古いICですがMOSFETのソース、ドレイン、ゲートを個別に接続可能で変幻自在、まさにMOS回路を体現しています。そこでVerilogでもCD4007のモデリングを試みました。普通はやらんと思うケド。

“帰らざるMOS回路(30) Icarus VerilogでCD4007をモデリング” の続きを読む

帰らざるMOS回路(29) Icarus Verilog、検証用テキストファイル出力

Fout
Joseph Halfmoon

前回はモジュールをパラメータ化して再利用しやすくしてみました。今回は、シミュレーション結果をテキストファイルに落として機械的な照合や回帰テストをしやすくしたいと思います。作成した回路を最初観察するときは波形ビューワー使っても、シミュレーションは何度も行うものなので結果確認は自動化しておかないと後が大変。 “帰らざるMOS回路(29) Icarus Verilog、検証用テキストファイル出力” の続きを読む

帰らざるMOS回路(28) Icarus Verilog、ライブラリのパラメータ化

gtkwave
Joseph Halfmoon

前回、モジュールファイルの置き場所を決めたりして、作成済の部品を呼び出して使うのが便利になりました。すると即座に不満な点が出てきました。部品が「8ビット用」とかキメウチで応用が効かないことです。今回はシフトレジスタを題材にパラメタライズ、呼び出し時にビット幅を決められるようにしてみます。 “帰らざるMOS回路(28) Icarus Verilog、ライブラリのパラメータ化” の続きを読む

帰らざるMOS回路(27) Icarus Verilog小ネタ、ライブラリ、実行時パラメータ

vvpB0
Joseph Halfmoon

前回は、ROMのビットパターンを外部ファイルから読み取ってシミュレーションに使用してみました。ファイルからデータを入力できるのであれば、コマンドラインからちょいとテスト値などを読み込ませて使用することもしたいです。ついでにモジュール・ファイルの置き場所も所定の場所にまとめたいです。今回はiverilog使うときの小ネタ
“帰らざるMOS回路(27) Icarus Verilog小ネタ、ライブラリ、実行時パラメータ” の続きを読む

帰らざるMOS回路(26) ROMファイルをVerilogHDLとLogisimで共用する

ROM_LOGIC_LOADED
Joseph Halfmoon

前回はバイナリカウンタでしたが、今回はROMです。ROMは複数の用途に使うことを想定。ROMに記録すべきビットパターンは外部の「ROMファイル」に書いておいて必要に応じてファイルを切り替えて「ロード」するようにしたいです。またそのファイルはゲートレベルのLogisimとVerilogHDLで共用できるのが望ましいです。

“帰らざるMOS回路(26) ROMファイルをVerilogHDLとLogisimで共用する” の続きを読む

帰らざるMOS回路(25)今時ゲートレベルでもあるまいに。カウンタをVerilogしてみる

VerilogCounterEC
Joseph Halfmoon

前回はLogisimのライブラリから符号無整数の比較器「組み合わせ回路」をVerilogしてみました。今回はバイナリカウンタ「順序回路」をVerilogしてみます。端から部品を練習すれば、そのうち色々できるだろ~という勝手な思い込みです。記述のお作法もいろいろあるのだけれど、今のところ成り行き。徐々に修正する予定。

“帰らざるMOS回路(25)今時ゲートレベルでもあるまいに。カウンタをVerilogしてみる” の続きを読む

帰らざるMOS回路(24)今時ゲートレベルでもあるまいに。ライブラリをVerilogしてみる

LogicSim
Joseph Halfmoon

前回は、論理圧縮ツール Espresso を使うことができる LogicFriday を試してみました。今回は再びLogicsimへ戻ります。しかし後々のこと(なんだそれ)を考えるとライブラリがVerilogでも書けた方が安心。ということでVerilog化始めました。まずは組み合わせ回路、コンパレータから。 “帰らざるMOS回路(24)今時ゲートレベルでもあるまいに。ライブラリをVerilogしてみる” の続きを読む

帰らざるMOS回路(23)今時ゲートレベルでもあるまいに。ミニマイゼーションして論理合成

LF_generatedCircuit
Joseph Halfmoon

前回、Verilogを使えるようにしたので、さらに歯止めが効かなくなりました。普通なら、Verilog書いて、シミュレーションしてOKなら、論理合成デス。でもま、今回商用ツール使っている分けでもなく、またゲートレベルなので合成は無理、と思っていたら、面白いツールがありました。LogicFridayとな。

“帰らざるMOS回路(23)今時ゲートレベルでもあるまいに。ミニマイゼーションして論理合成” の続きを読む

帰らざるMOS回路(22)今時ゲートレベルでもあるまいに。ということでVerilogも?

VScodeSample
Joseph Halfmoon

ノスタルジックなゲートレベルのシミュレーションを楽しむ筈が、前回テストベンチもどきを取り付けたことで歯止めが効かなくなりました。やっぱりね~今時だからHDLも出来た方が良いよね~ ゲートレベルとHDLの橋渡しをどうするか、という問題は棚上げにして、今回はHDL環境を追加。

“帰らざるMOS回路(22)今時ゲートレベルでもあるまいに。ということでVerilogも?” の続きを読む

帰らざるMOS回路(21)今時ゲートレベルでもあるまいに。やっぱりTEST Benchはいる

TESTBENCH_MAIN
Joseph Halfmoon

今時ノスタルジックなゲートレベルのシミュレーションにハマりつつあります。前回はPWM回路を動かしてみましたが、素のSIM環境には不満が残りました。最低限の「テストベンチみたいなもの」がないと「シミュレーションやった感」が無いよな~と。あくまで「やった感」自己満足の世界ですが、そこが大事じゃないかと。

“帰らざるMOS回路(21)今時ゲートレベルでもあるまいに。やっぱりTEST Benchはいる” の続きを読む

帰らざるMOS回路(20)今時ゲートレベル論理SIMでもあるまいに。リハビリのPWM。

PWM_Schematic
Joseph Halfmoon

前回「昔懐かしいゲートレベル回路図の論理シミュレーション」結果をVCD波形ビューワーで観察。何十年ぶりかでゲートレベルのロジックを作って動かしてみるべし、と機運?が盛り上がりました。単なる年寄りのノスタルジーでないかい。忘却の彼方にあるものどもを黄泉の国から呼び起こさねば。リハビリの第1回はPWMであります。

“帰らざるMOS回路(20)今時ゲートレベル論理SIMでもあるまいに。リハビリのPWM。” の続きを読む