Artikel-ID: 000078174 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 13.10.2014

Warum führt das Anschließen von HPS-Peripherieuhren an externe Pins über FPGA Logik zu Quartus-Fitter-Fehlern®?

Umgebung

    Intel® Quartus® II Anmeldungs-Edition
    Takt-
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Die folgenden HPS-Peripherietakte können an die FPGA Logik geroutet werden:

  • emac0_md_clk
  • emac0_gtx_clk
  • emac1_md_clk
  • emac1_gtx_clk
  • qspi_sclk_out
  • spim0_sclk_out
  • spim1_sclk_out
  • i2c0_clk
  • i2c1_clk
  • i2c2_clk
  • i2c3_clk

Aufgrund eines Problems in den Quartus II Softwareversionen 13.0 und höher kann Quartus® fit eine Fehlermeldung generieren, wenn diese Uhren direkt an einen externen FPGA-Pin angeschlossen sind. Im Folgenden finden Sie ein Beispiel für das spim1_sclk_out Signal, das an einen externen Pin angeschlossen ist:

Fehler (14566): 1 Peripheriekomponente(n) konnte aufgrund von Konflikten mit bestehenden Einschränkungen nicht platziert werden (1 automatisch heraufgestufter Takttreiber)

Fehler (175020): Illegale Einschränkung des automatisch heraufgestuften Uhrtreibers, der Teil Arria V/Cyclone V Hard Processor System ist ghrd_hps_0 der Region (92, 67) bis (183, 137): keine gültigen Standorte in der Region

Info (14596): Informationen zur fehlerhaften Komponente:

Info (175028): Der automatisch heraufgestufte Name des Uhrtreibers: ghrd:soc_inst|ghrd_hps_0:hps_0|ghrd_hps_0_fpga_interfaces:fpga_interfaces|spim1_sclk_out[0]~CLKENA

Weitere Informationen zu diesen Taktfrequenzen finden Sie im Abschnitt "Periphere FPGA Uhren" des Cyclone® V or Arria® V Device Handbook, Band 3: Hard Processor System Technical Reference Manual (http://www.altera.com/literature/hb/cyclone-v/cv_5v4.pdf, Seite 27-12).

Lösung

Um diese Fehlermeldungen zu vermeiden, muss das Taktsignal zunächst durch eine LUT geleitet werden. Dies kann erreicht werden, indem ein lcell_comb Primitiv instanziiert wird, das für Ihre Gerätefamilie geeignet ist. Im Folgenden finden Sie ein Beispiel für lcell_comb Verilog-Instanziierung für die Arria® V SoC spim1_sclk_out Uhr:

arriav_lcell_comb wirelut( .dataa(spim1_sclk_from_hps), .combout(spim1_sclk_to_pin) );
defparam wirelut.lut_mask = 64\'hAAAAAAAAAAAAAAAA ;
defparam wirelut.dont_touch = "ein";

Im obigen Beispiel ist das spim1_sclk_from_hps Signal mit dem spim1_sclk_out Ausgangsport der HPS-Instanz verbunden. Das spim1_sclk_to_pin Signal kann an den Top-Level-Ausgangsport angeschlossen und einem FPGA Pin zugewiesen werden.

Durch die Verwendung eines lcell_comb Primitivs werden Ressourcen minimiert. Durch die Verwendung einer kleinen abgeleiteten booleschen Kombinationsfunktion wird dieser Fehler ebenfalls vermieden. Durch die Verwendung der booleschen Funktion wird vermieden, dass ein Primitiv instanziiert werden muss, kann jedoch zu einer etwas höheren Ressourcennutzung führen.

Im Folgenden finden Sie ein Beispiel für einen Verilog-Code, der einen abgeleiteten booleschen Wert zeigt, der ebenfalls einen Fehler vermeidet, indem er den Taktgeber mit einem aktiven, niedrigen Reset-Signal AND-verknüpft (was zu einer abgeleiteten LUT-Instanz führt):

assign spim1_sclk_to_pin = spim1_sclk_from_hps & resetn;

Dieses Problem wurde ab Version 15.1 der Quartus® II Software behoben.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 5 Produkte

Arria® V ST SoC-FPGA
Arria® V SX SoC-FPGA
Cyclone® V SE SoC-FPGA
Cyclone® V ST SoC-FPGA
Cyclone® V SX SoC-FPGA

1

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte es Widersprüche zwischen der englischsprachigen Version dieser Seite und der Übersetzung geben, gilt die englische Version. Englische Version dieser Seite anzeigen.