next up previous contents
Next: MULTIDIVIDER Up: Verilog Software für das Previous: CAM4NAT

MEMWRITE

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