2017-06-08 1 views
-1
unbekannt ist

Ich versuche, 0 bis verketten „n“ aber „n‚ist bei der Kompilierung mir unbekanntSystemverilog: n-mal die verketten 0, wenn n bei der Kompilierung

. ‚N‘ berechnet wird mit einiger Berechnung, die auf zufällige Eingabe abhängt (temp_i)

string s=temp_i; 
     int n,d_zero; 
    int i=0; 
    int l=s.len()*8;//l=24 
    int k=447-l; 
    int T=0; 
    if(k<0) 
     k=512+k; 

    do 
    begin 
     d[i]=l%2; 
     i++;    
    end while(l>0); 

    T=l+1+k+d.size(); 
    n=T/512; 

Diese "n" Zahlen von null haben mit dem Eingang verkettet werden, um etwas wie:..

temp_out={temp_i,n'{1'b0}} 

Aber ich bekomme einen Syntaxfehler, der wie folgt verkettet.

Kann mir bitte jemand dabei helfen? Gibt es einen anderen Weg, wie ich das schaffen kann?


+1

Was die Art der temp_i und temp_out ist. Sind sie Saiten? –

+0

Wie wäre es mit dem Schichtoperator? 'temp_out = temp_in << n'? – Greg

+0

@Greg Diese Methode ist viel einfacher und direkter als die, die ich ausprobiert habe. Danke für Ihre Hilfe – Saurabh

Antwort

1

Haben Sie es funktioniert, indem Sie nur "n" als localparam deklarieren.

localparam n; 

und temp_out als

temp_out={temp_i,{n{1'b0}}}; 
Verwandte Themen