Warten posedge clk, bevor Sie einen job? — Wie
module DoorControl( clk, data, open,addressOftheMemory, outp );
localparam Size_ofTheWord = 32;
input open;
input [16:0] addressOftheMemory;
input [Size_ofTheWord-1:0] data;
input clk ;
output reg outp;
reg [WordSize-1: 0] Memory [65535: 0];
always @ ( open ) //open is 1 or 0
if ( open )
//i
outp = Memory[addressOftheMemory];
else if ( !open )
Memory[addressOftheMemory] = data;
endmodule
Linie gekennzeichnet mit (i), ich will warten, nur posedge clk vor dem senden outp an output port.Jedoch, Wenn ich versucht habe wie ;
if ( posedge clk )
es gibt Fehler
while ( clk != 1 ) begin
end
gibt es absurb Antwort/simulation output.
Was(s) soll ich zu dieser Linie zu warten, posedge clk vor dem senden der Ausgabe ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Verzögerung der Ausführung bis zu der Taktflanke wie diese:
Kann oder kann nicht das erreichen, was Sie wollen. Es ist nicht synthetisierbare, und die
always
block nicht verschoben werden, während er ausgeführt wird oder angehalten, so dass, wennopen
wechselt mehrmals in einer taktperiode, dass der code wahrscheinlich nicht gehen, um zu tun, was Sie wollen.Mehr hintergrund: Sie können eine Verzögerung festlegen/Ereignis Steuerung auf jede Aussage, einschließlich einer null-Aussage. (z.B. in
@(posedge clk);
, das Semikolon ist eine null-Aussage.) In der Tat, die syntax-definition einesalways
Konstrukt ist:Bedeutung, dass es nichts Magisches an
always @(open)
oderalways @(posedge clk)
, Sie sind einfach die Einführung einer Anweisung und Angabe der Ereignis-Steuerung. Wenn der delay-regler (#
) befestigt ist, um eine Anweisung, die Ausführung der Anweisung wird so lange verzögert, bis eine Feste Zeit in der Zukunft. Wenn Ereignis-Steuerung (@
) befestigt ist, um eine Anweisung, die Ausführung der Anweisung wird so lange verzögert, bis die Ereignis-Bedingung erfüllt ist.Die Sie haben zu denken ein wenig mehr kritisch über das, was Sie versuchen zu modellieren. Es sieht aus wie Sie sind nur versuchen, zu Modell ein Speicher mit "öffnen" die Steuerung der lese/schreib-operation.
Haben Sie asynchrone schreiben von Daten & synchrone Einlesen von Daten. Für memory access ist es besser, nur um vollständige synchrone Verhalten.