Request for a MATLAB Code Segment equivalent to "always" construct of Verilog or Verilog-AMS
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I like to have an code segment in MATLAB equivalent to "always" construct in Verilog or Verilog-AMS. I am explaining the idea with the following example.
$$$$$$$$$$$ Verilog-AMS Code Segments $$$$$$$$$$$$$$$$$$$
always @(posedge start)
begin
TimeOfStart[NumberOfStart] = $abstime;
if ((NumberOfStart == 0) && expr)
begin
NumberOfStart = NumberOfStart + 1;
$display("Entered 0th NumberOfStart.\n");
$display("Delay calculation Initiated %f: \n", TimeOfStart[0]);
@(cross(($abstime - (TimeOfStart[0] + delay)), +1, TimeTolerance))
begin
if(((TimeEndExpr - TimeOfStart[0] ) < 0) || ((TimeEndExpr - TimeOfStart[0]) > delay))
begin
TimeOfMatch[0] = $abstime;
match = 1'b1;
$display("match is asserted. \n");
end
end
@(cross(($abstime - (TimeOfMatch[0] + KeepMatchHighTime)), +1, TimeTolerance))
begin
match = 1'b0;
end
end
end
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Here once the always block is entred after receiving a posedge of start, the code within the begin end executes sequentially. The execution is like a thread as another posedge of start will start another always block. Basically the posedge of the start event triggers the rest of the code segment. How can I implement this kind of stuff in MATLAB?
0 commentaires
Réponses (1)
Sean
le 31 Jan 2011
You should look in to using a timer object. A timer can be triggered at a regular period (analogous to a rising clock edge), and can then run a Matlab function. See the following discussion of timers in the Matlab documentation:
0 commentaires
Voir également
Catégories
En savoir plus sur Clocks and Timers dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!