Hallo zusammen, Ich soll 11 Registersätze (4KB/Register)in meinem FPGA für PCIe festlegen: - 6 UARTs - 2 CANs - GPIO - LED - SRAM Nun lautet meine Frage: Bei ALTERA PCIe Core gibt es BAR 0 bis 5 aber ich brauche bis zu 11 Registersätze? Wie kann am bestens die Aufteilung schaffen? Grüße
Am einfachsten ist es, wenn du einen BAR0 Bereich von 64 kiB fest legst. Innerhabl des BAR0-Bereichs dekodierst du dir deine Register-Sätze von je 4kiB. Ich habe einen BAR-Bereich für die Steuerung des PCI-Devices, also zum Setzen bestimmter Parameter die für alle Schnittstellen gleich sind. U.U. gibt es so etwas bei dir nicht. Der BAR1 Bereich dient dann zum Austausch der Prozessdaten. PCIe ist aber nichts was man mal so nebenbei macht. Da du schon bei den einfachsten Sachen Probleme hast, solltest du dir eine Schulung gönnen. Tom
Leg doch die UARTs und die CANs jeweils gemeinsam in einen Bereich. Das macht auch logisch Sinn.
Vielen Dank für deine Hinweise, Ich habe keine Erfahrung mit FPGA-PCIe und es kein passendes Buch dafür gibt. Ich dachte dass man keinen Adressdecoder bei PCIe braucht. Bitest du vielleicht eine Schulung dafür an oder kannst du mir Unterlagen oder Bücher empfehlen?
Raya Ngi schrieb: > Ich habe keine Erfahrung mit FPGA-PCIe Das ist wie wenn du sagst: "ich habe keine Erfahrung mit dem Ableiten von Funktionen." Das ist klar, denn vor dem Differenzieren mußt du erst mal die Grundrechenarten Addition...Division lernen. Und die "Grundrechenart" von PCIe ist PCI. Lies also erst mal ein PCI-Buch durch, denn dort ist dann die ganze Geschichte mit der Adressraumaufteilung hinreichend klar beschrieben. > Ich dachte dass man keinen Adressdecoder bei PCIe braucht. Du hast nicht GEDACHT, du hast ANGENOMMEN. Natürlich macht es für deine sinple Anwendung Sinn, nur dir 1 Adressraum (1 BAR) von (mindestens) 64kB vom System zuweisen zu lassen. Dort passen alle deine Register hinein. > Bücher? http://www.amazon.de/PCI-System-Architecture-Mindshare-PC/dp/0201309742/ref=pd_sim_b_1 http://www.amazon.de/PCI-Express-System-Architecture-Mindshare/dp/0321156307/ref=pd_bxgy_eb_text_b
Raya Ngi schrieb: > Ich dachte dass man keinen Adressdecoder bei PCIe braucht. Ganz im Gegenteil, du musst nicht nur Adressen dekodieren, zusätzlich sind auch noch die notwendigen Completions zu erstellen. PCIe erledigt man mal nicht im vorbeigehen. Tom
Hallo, Ich habe mit folgenden zu überwinden: Einsatz: Lattice ECP3 Ich habe im BAR0= 2 MB Nonprefectchable folgende Komponente: SRAM = 1 MB 6x UARTs CAN 4xLEDs INPUTs/OUTPUTs --------------------- 03:00.0 Communication controller: Lattice Semiconductor Corporation Device ec30 (rev 01) Subsystem: Lattice Semiconductor Corporation Device 3010 Flags: bus master, fast devsel, latency 0, IRQ 17 Memory at a0000000 (32-bit, non-prefetchable) [size=2M] Capabilities: [50] Power Management version 3 Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+ Capabilities: [90] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number 00-00-00-00-00-00-00-00 Kernel driver in use: ls4000fpga 00: 04 12 30 ec 07 00 10 00 01 00 80 07 10 00 00 00 ------------------------ Alles hat gut funktioniert. Nur es ist mir nicht gelungen Modemleitungen zu testen. Dann wollte ich setserial und danach Minicom benutzen um das Ziel zu erreichen. Aber es is mir gefallen dass, UART ein I/O Port dafür braucht. Frage 1: Ich möchte 6xUARTs als I/O Map in separat BAR0 festlegen und alle andere als Memory Map auf BAR1. Wo soll ich der Unterschied zwischen Zugriff auf BAR0 oder BAR1 definieren? Oder hat jemand ein besseren Vorschlag ?
Warum kaperst du mit deiner Frage alle möglichen Threads? Mach einen neuen Thread auf, stell alle Informationen zur Verfügung: Welche Cores? Woher? Was sind das für UARTS? keller thomas schrieb: > Wo soll ich der Unterschied zwischen Zugriff auf BAR0 oder BAR1 > definieren? Es gibt im "Receive TLP Interface" Ausgänge, die das Ansprechen eines BARs anzeigen: rx_bar_hit[6:0]
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.