日記帳...か?を継承し、より柔軟でパワフルなBlogに変身しました。RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。今日は午後から授業がないので、MIG周りの回路を設計していた。今日は書き込みの回路を書き終わった。シミュレーションしないとちゃんと動くか分からん。あと、シミュレーションでは良くても実機では上手く動かない可能性もあるし厄介。ところでVerilogではポートにはinput,output,inoutの3種類がある。inputは入力ポート、outputは出力ポートなのはすぐわかるが、inoutってなんじゃとなる。inoutは入力にも出力にもなるポートですね。やって入力と出力を兼ねるのか、使い方が気になるポートだが、ちゃんとうまい使い方がある。//(略)endmoduleポートに信号を出力するというのは、ポートの電圧をHかLにすることだが、両方から同時に出力するとショートしたりしてまともに動かない。そこで片方が出力している時はもう片方はHにもLにもしない状態にする必要がある。その状態こそがハイインピーダンスですね。Verilogではzで表す。いうわけで出力するときだけ、X_OUTの値を出力し、それ以外の時はハイインピーダンスにしておく。ハイインピーダンスにしておけば、接続先の出力信号を読むことができる。読む時はそのまま読めばOKです。SDRAMのデータ端子はinoutでしたね。MIGがこのへんうまいことやってくれてるはず。同じことは接続された複数のモジュールのいずれかから出力する時にも言える。b4(DOUT,EN[3]);endmodule4つのBのDOUTを全部同じDOUTに接続しているので、いずれかのBからしかDOUTに出力することができない。そこでBでは出力するべきときだけDOUTから出力してそれ以外の時はハイインピーダンスしておけばいいと。いうときにもハイインピーダンスは役に立つ。このハイインピーダンスというやつ、コンピュータの中でも大活躍している。コンピュータのバスというのは、出力する時だけ出力して、それ以外の時はハイインピーダンスにすることで、1本の線を複数のモジュールの出力で共有できている。これがなければ、メモリからの出力用、CPUからの出力用など出力するところごとに用意する必要がある。ハイインピーダンスがなければ入力と出力を共用できない。メモリはデータ入力端子とデータ出力端子を別々に用意する必要が出てくると。実にハイインピーダンスがなければ不便なわけですわ。いうことを、以前のコンピュータ応用工学の授業でやった。実際にどうやってハイインピーダンスを実現するのかという話だが、スリーステートバッファを使う。スリーステートというのはHとLとハイインピーダンスという意味ですね。入力信号とハイインピーダンスにするかの信号線をつないで、それに応じてハイインピーダンスか入力信号と同じ値を出力するかするバッファですねVerilogでさっきのように書いて、論理合成して配線すると、出力をスリーステートバッファにつないでくれるんだと思いますよ。そんなことは気にせず書いているけど、実際にはそうなるはずです。アーカイブを参照してください。Lab(07/03)バスの経路を切ったり貼ったり周旋屋のをとっつぁんの気ままな日記。Bad↓(07/23)安いのがウリの茨城空港つくば日記(03/07)プロフィールHidemaro(4303)検索キーワードこの検索は2008年5月18日以前の記事は検索できません。アーカイブを参照してください。コピーライトなどこのページではBlognPlusを使用しています有用なスクリプトの提供ありがとうございます。0.417113秒)。