LCD制御モジュール用デュアルポートRAM
LCD制御モジュールで使用するデュアルポートRAMを作成します。
書き込みと読み出しは非同期に行えますので、書き込みは随時に、
読み出しは液晶の反応時間を考えながら周期的(定期的)に読み出すようにすることで
ちらつきを生じない速度で見やすく表示することができるようになります。
仕様は、
アドレスバス、データバス、書き込み制御ポートを各々二つ持ったモジュールとなります。
用途は、
LCD制御モジュールは読み出して、LCDモジュールでデータを出力する。
外部は、必要な文字データを書き込む。
次のようになります。
外部モジュール→(データを書き込み)→[このモジュール]→(データの読み出し)→LCD制御モジュール
コード自体は非常に簡単です。
外部モジュールが書き込むための処理。
ld_1に1をセットして、add_1にアドレス、da_1にデータをセットすると、書き込まれます。
外部モジュールからの書き込み
always @(posedge clk_in)
begin
if (ld_1)
begin
mem[add_1] <= da_1;
end
qda_1 <= mem[add_1];
end
LCD制御モジュールが読み出すための処理。
ld_2を0にして、add_2にアドレスをセットすると、qda_2からデータを読み出すことができます。
LCD制御モジュールの読出し処理
always @(posedge clk_in)
begin
if (ld_2)
begin
mem[add_2] <= da_2;
end
qda_2 <= mem[add_2];
end