natuurlijk zijn wanneer u schrijf ze op een manier waarop ze moeten worden
een simpele aanwijzing is
omvatten geen vertraging in de lussen als vertragingen zullen niet worden synthesisable
For (i = 0, i <10, i )
Ik denk dat dit werkt .....
waar dit ......
For (i = 0, i <k, i )
waarbij k een variabele ......... veranderingen tijdens de simulatie .....
Ik denk niet dat het zal worden synthesisable ........
Ja!
Lus is synthetiseerbare alleen als "k" is constant variabele ..
nummer moet worden beperkt tot 32bit waarde!!of v moet gedefinieerde variabele lengte 32bit of 64bit terwijl verklaren ...
Het is synthetiseerbare maar het is altijd geadviseerd om voor de lussen niet mogen worden gebruikt in RTL codering.Dit is omdat het veel middelen verbruikt (zoals oppervlakte etc.etc).Maar u kunt het gebruiken in de gedrags codering becuse we synthetiseren niet gedrags-codes.
met behulp van lussen (voor en tijdens) verbruikt veel hardware en de toenmalige ontstaat totale frequentie verlies.daarom is het raadzaam om te voorkomen dat de lussen in RTL codering.en de synthese tool mojor speelt ook een rol.
voor Verilog HDL, zoals de naam al zegt, is een taal om een circuit te beschrijven.zodat je niet kan afhangen van de synthese tool om uw route te genereren voordat u het ontwerp van het circuit itselfe.
zoals de code
For (i = 0, i <k, i )
Heb je deze schakeling?Als u nog niet, hoe zou je kunnen vragen een mathine voor het genereren van een circuit voor u?
eigenlijk voor lus is synthetiseerbare omdat we de constat dat is het einde van de lus voor (1 = 0; i <= 10 worden mentionong; i )
maar in het geval van de tijdens het dynamisch; ex: while (i <k)
we dont weet de waarde van k
wanneer u verlenen constant wordt gesynthetiseerd.ankit12345 wrote:
Het is synthetiseerbare maar het is altijd geadviseerd om voor de lussen niet mogen worden gebruikt in RTL codering.
Dit is omdat het veel middelen verbruikt (zoals oppervlakte etc.etc).
Maar u kunt het gebruiken in de gedrags codering becuse we synthetiseren niet gedrags-codes.
Het is duidelijk dat men moet voorzichtig zijn om loops te maken voor synthetiseerbare (voornamelijk zorgen dat lus beëindiging op de set een constante).
Ik zou niet eens dat ze "niet mag worden gebruikt" ...zogenaamd omdat ze "overmatige gebied".Zij hebben hun plaats in de vereenvoudiging van codering.Een voorbeeld zou zijn het uitvoeren van rand-detectie in een matrix van waarden, bijvoorbeeld:
integer i;
altijd @ (posedge clk)
beginnen
for (i = 0, i <NUMBER_OF_PORTS, i = i 1)
beginnen
port_was <= port_is ;
if (port_was == 1'b0 & & port_now == 1'b1)
port_edge_hi_detected <= 1'b1;
anders
port_edge_hi_detected <= 1'b0
eindigen
eindigen
Merk op dat het altijd @ verklaring niet kan worden binnen de FOR-lus.
Dit is een handige codering stijl.Hij verbruikt niet meer dan logisch als ik had geknipt en geplakt kopieën van de clausules ...EN ...Het laat de constante als een parameter, zodat de code kan expand / collapse voor bepaalde gebruiken.NUMBER_OF_PORTS heeft op te lossen om een constante tijdens het compileren.
Deze dagen, moet elke synthese tool iets waard verwerken dit soort gebruik met geen enkel probleem.
Dit is synthesisable, maar niet nuttig code bij het gebruik van het blokkeren van opdracht.Het heeft het effect van het kopiëren van mem [0] om mem [1] ..mem [6] en zeroing mem [7].Een HDL-lus is nooit "opeenvolgend uitgevoerd", is het sequentieel wordt geëvalueerd, maar uitgevoerd in parallel.
Gebruik nonblocking "<=" opdracht, zou de code vormen in feite een verschuiving register, dat klinkt meer betekenis naar mijn mening.Overschrijven van mem [7] zou nog steeds voordoen, echter.
Dit is synthesisable, maar niet nuttig code bij het gebruik van het blokkeren van opdracht.
Het heeft het effect van het kopiëren van mem [0] om mem [1] ..
mem [6] en zeroing mem [7].
Een HDL-lus is nooit "opeenvolgend uitgevoerd", is het sequentieel wordt geëvalueerd, maar uitgevoerd in parallel.Gebruik nonblocking "<=" opdracht, zou de code vormen in feite een verschuiving register, dat klinkt meer betekenis naar mijn mening.
Overschrijven van mem [7] zou nog steeds voordoen, echter.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.