Forum: FPGA, VHDL & Co. Platform Designer: Problem mit PLL-Avalon


von Florian (flori_n)


Angehängte Dateien:

Lesenswert?

Moin,

es geht um den Intel Max 10 (10M08SA) unter Quartus Prime 22.1 auf 
Lubuntu.

Ich möchte im Platform Designer die ALTPLL nutzen, weil ich die für den 
ADC brauche. Die PLL hat ein Avalon Memory Mapped Slave Interface. Dafür 
habe ich in meiner eingebundenen Top-Level-Entity die entsprechenden 
Ports angelegt.

Der PLL-Slave hat eine Addressbreite von 2 Bit. Wenn ich in meiner 
Entity die Adressbreite auf 2 setze (1 downto 0), kommt die Warnung, 
dass die Addressbreite mindestens 3 sein muss 
(Warnung_Address_Width.png)

Setze ich sie auf 3 oder höher, kommt bei Generate HDL der Fehler 
"Master without waitrequest must match parameters and ports of slave" 
(Fehler_PLL_Slave.png)

Laut Avalonspezifikation ist Address Width 1-64. Es ist also keine 
grundsätzliche Einschränkung von Avalon. 
(https://www.intel.com/content/www/us/en/docs/programmable/683091/20-1/memory-mapped-interface-signal-roles.html)

Die Frage: Woran liegt das? Übersehe ich was? Ist das ein (weiterer) Bug 
im Platform Designer? Kann ich die Warnung ignorieren?

von Motopick (motopick)


Lesenswert?

Wenn dein ADC mit c0, c1 und locked zufrieden ist, und da auch
sinnvolles herauskommt, kannst du den Fehler wohl ignorieren.
Interessant waere allenfalls, was in den 2 (oder 3) Bit an
Information steht. Mehr als Reset und Locked kann es ja nicht sein.

von Florian (flori_n)


Lesenswert?

Was da drin steht, sieht man unter 
https://www.intel.com/content/www/us/en/docs/programmable/683130/21-4/register-definitions-and-bit-list.html
Ich habe lange gesucht, bis ich das gefunden habe.

Da das nur eine Warnung ist und die einzige Lösung, die mir einfällt, zu 
einem Fehler führt, werde ich die Warnung wohl ignorieren müssen. Ich 
würde aber gerne wissen, was die Warnung bedeutet.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Was da drin steht, sieht man unter
> 
https://www.intel.com/content/www/us/en/docs/programmable/683130/21-4/register-definitions-and-bit-list.html


Da steht in der note 2 was von 32 bit register da aber 16 bit register 
dort - ist das ominöse zusätzlich Address bit eigentlich ein upper/lower 
word select signal?

"The registers are 32-bit wide in the Avalon® ALTPLL core and 16-bit 
wide in the PLL core. "

: Bearbeitet durch User
von Motopick (motopick)


Lesenswert?

Da lag ich ja fast richtig. Das "Reset" ist ein "Enable", und
das "Locked" heisst "phasedone".
In allen unbenutzten 31 Avalonbits je Adresse steht eine "1".
Da die 16 Corebits immer in 32 Avalonbits passen, muss man da auch
nichts umschalten.
Die 2 Bit Adressbus, reichen ganz zweifellos fuer 4 Register.
Man koennte evtl. die Register im Design einfach nicht anschliessen.

Die Belegung der Bits haette man sicher auch in den Headerfiles
finden koennen.

von Florian (flori_n)


Lesenswert?

Bradward B. schrieb:
> "The registers are 32-bit wide in the Avalon® ALTPLL core and 16-bit
> wide in the PLL core. "
Das habe ich so interprestiert, dass es ALTPLL und PLL gibt, die man 
instanziieren kann, mit 16- ober 32 Bit. Die ALTPLL hat am Avalon einen 
32 Bit breiten Datenbus. Da ich das Interface sowieso nicht brauchen 
werde, ist mir das eigentlich egal.

Motopick schrieb:
> Die 2 Bit Adressbus, reichen ganz zweifellos fuer 4 Register.
> Man koennte evtl. die Register im Design einfach nicht anschliessen.
Die PLL macht ja auch keine Probleme, die hat zwei Bit Adressbreite. Die 
Warnung bezieht sich auf meine Top-Level-Entity.

Gerade habe ich es nochmal ausprobiert und jeweils einen neuen Avalon 
Memory Mapped Master und Slave angelegt und bei dem Master kam die 
gleiche Warnung. Es hat also anscheinend nichts mit der PLL zu tun. Da 
war ich auf der falschen Fährte.

von Florian (flori_n)


Lesenswert?

Falls es jemanden interessiert: Ich habe die Lösung zu der Warnung 
gefunden. Im Master-Interface kann man als "Burstcount Units" WORDS oder 
SYMBOLS wählen. Die Warnung ist weg, wenn man SYMBOLS wählt.
Wählt man WORDS, hängt die geforderte Adressbreite von der Datenbreite 
ab. Bei 32 Bit Datenbreite werden mindestens drei Bit in der Adresse 
gefordert, bei 64 Bit Datenbreite mindestens vier Bit Adressbreite.

Damit bekomme ich die Warnung aber trotzdem nicht weg, denn wenn ich im 
PLL-Interface Symbols wähle, gibt es wieder den Fehler, dass ohne 
Waitrequest die Parameter gleich sein müssen. Da werde ich aber jetzt 
erstmal nicht weitersuchen.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.