Next: MULTIDIVIDER
Up: Verilog Software für das
Previous: CAM4NAT
Das Timing zum Beschreiben des Speichers wird durch einen
2Bit-Zähler 'Clockcounter' organisiert, der mit
jeder steigenden Flanke von 'Sysclock' erhöht wird.
Somit ergeben sich 4 verschiedene Zustände von 'Clockcounter',
die in folgender Case-Anweisung behandelt werden:
always @(posedge sysclock)
begin
if(_sysreset)
begin
case(clockcounter)
0 : begin
memdataout <= datain;
// read date from camera in register 'memdataout'
end
1 : begin
memctr <= 5'b00001;
// set #WE = 0; other controls not used
end
2 : begin
memctr <= 5'b00011;
// set #WE = 1; other controls not used
end
3 : begin // handle the address
if (pagerdy)
begin
memaddr <= 0;
end
else
begin
memaddr <= memaddr +1;
end
end
endcase
clockcounter <= clockcounter +1;
end
end
Die vier Zustände sind in Abb. 2.16 wiederzufinden. Das low-aktive
Steuersignal 'WriteEnable' wird zum Beschreiben des SRAMs in dem Beispiel aus
Abb. 2.16 für 20ns aktiviert. Diese Zeitspanne muß laut Datenblatt des
CMOS SRAMs (siehe [8]) mindestens 10ns betragen. Einen Takt später
wird die neue Speicheradresse an den Bus 'Addr' angelegt.
Dann werden die Daten,
die ins SRAM geschrieben werden sollen, dem Adreßbus 'Dataout' zugewiesen.
Der Zyklus beginnt danach wieder von vorne.
Abbildung 2.16:
Beschreiben des SRAMs
|
|
Thorsten Thormaehlen
2000-03-28