Wie verwende ich while () -Schleifen in Verilog (zur Synthese) NICHT?

Ich habe mir angewöhnt, viele Testbenches zu entwickeln und für () und while () Schleifen zu Testzwecken zu verwenden. Das ist gut. Das Problem ist, dass ich diese Angewohnheit auf das Codieren von Schaltkreisen übertragen habe, die synthetisierbar sein sollten. XST und andere lehnen es ab, Code zu synthetisieren (ohne zusätzliche Modifikation der Syntheseparameter), wie zum Beispiel:

while (num < test_number) 
     begin 
     . 
     . 
     . 
     num = num+1; 
     end

Dies ist ein schlechter Codierungsstil, da für den Synthesizer test_num ein Int mit dem Wert 2 ^ 32 ist! oder es sieht es als unbegrenzten Parameter. In jedem Fall ist es eine schlechte Codierungsgewohnheit. Aber ich bin es so gewohnt, dies in C und auf Testbänken zu tun. Was wäre die äquivalente Synthetisierbarkeit des Codes des obigen Codesegments?

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage