帰らざるMOS回路(38) タイミングチャートにsetup/holdを書き込む

setup_hold_EC
Joseph Halfmoon

前回、JSONベースのテキストをパースしてタイミングチャートを描いてくれるWaveDrom(ローカル版)を使用してSPIのタイミングチャートを描いてみました。結構お楽にかけました。余勢を駆って?今回はセットアップ、ホールド・タイムなど数字を書き込もうとしてツボにハマってしまいました。思ったように矢印書くのはテクがいる?
“帰らざるMOS回路(38) タイミングチャートにsetup/holdを書き込む” の続きを読む

帰らざるMOS回路(37) SPIのタイミングチャートをWaveDromで描く

SpiMode0_LsbFirst_EC
Joseph Halfmoon

前回、フリーのタイミングチャート描画ツールを3種類お試し。どれも特徴があり一長一短デス。その中でWaveDromというツールを使って実際に「ありがち」なタイミングチャートを描いてみることにいたしました。JSONベースのテキストファイルをパースして「よくある」感じのタイミングチャートにしてくれるツールです。

“帰らざるMOS回路(37) SPIのタイミングチャートをWaveDromで描く” の続きを読む

帰らざるMOS回路(36) タイミングチャートを描きて~ ツールは何?

waveDromSample
Joseph Halfmoon

少し涼しくなったのでロジックを考える気力が戻って来た気がします。錯覚でないの、自分?そして回路考えるためには「タイミングチャート描きてぇ~」と考えました。近年、適当な「ドロー系」の画像ソフトでタイミング・チャートもどきを描くことが多かったです。なにかもっと適当なものはないの?今回はツールを調べるところから。
“帰らざるMOS回路(36) タイミングチャートを描きて~ ツールは何?” の続きを読む

帰らざるMOS回路(35) TC4520BP、4ビット・バイナリ・カウンタでリハビリ?

TC4520_TESTHEAD
Joseph Halfmoon

半年もロジックお休みしてしまいました。マイコンの御供とか、アナログの御供でロジックしても真剣さが足りませんな?お休みした後のリハビリとて(忘却力の年寄にはリハビリがいるのです)「出来合いの」ロジックICを何個か動かしてその動作を観察していきたいと思います。今回は4ビット・バイナリ・カウンタ TC4520BPです。
“帰らざるMOS回路(35) TC4520BP、4ビット・バイナリ・カウンタでリハビリ?” の続きを読む

帰らざるMOS回路(34) 2R1Wのレジスタファイル(仮)でっち上げ、Verilog

regfileResultWave
Joseph Halfmoon

前回、仮にも32ビットのALUを「でっち上げ」たので、次はALUの対面となるレジスタファイルです。「でっち上げる」にせよ32ビット。最低でも2R1W型のマルチポートで32本にするしかないんでないの。泥縄式に作っているので、今回は雰囲気だけ、同時に2個の32ビット値を呼び出せて、1個の32ビット値を書き込めるっと。 “帰らざるMOS回路(34) 2R1Wのレジスタファイル(仮)でっち上げ、Verilog” の続きを読む

帰らざる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してみる” の続きを読む