Lattice ECP3 Serdes

Gast #3664702
Lesenswert?
• ▲
▼
Hallo Leute,

ich versuche gerade SERDES mit einem Lattice ECP3 in Betrieb zu nehmen.
Da ich bisher keine Erfahrung mit SERDES habe soll das ganze erst mal in 
der Simulation laufen.
Ich möchte 16-Bit Daten mit 8b10b-SERDES rausschicken.
Dazu habe ich unter IP-Express eine ipx-Datei erstellt (siehe 
IPExpress.png).

Im Quellcode habe ich ein Testbench dafür geschrieben (siehe unten).
In der Simulation (Active-HDL.png) läuft die State-Machine (Signale sind 
auch in Simulation mit sichtbar gemacht) für den Powerup-Reset 
erfolgreich durch, aber der SERDES-Ausgang läuft nicht an.
Egal wie lange man nach der Initialisierung noch wartet.
Weiß jemand Rat?
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.std_logic_unsigned.all;
4

5
entity top is
6
end top;
7

8
architecture behaviour of top is
9

10
  signal Reset       : std_logic := '1'; -- LVDS clock output pair
11
  signal Reset_n       : std_logic; -- LVDS clock output pair
12
  
13
  signal CLK_Tx       : std_logic := '0'; -- LVDS clock output pair
14
  signal refclkp       : std_logic := '0'; -- LVDS clock output pair
15
  signal refclkn      : std_logic := '1'; -- LVDS clock output pair
16
  
17
  signal data_in     : std_logic_vector(15 downto 0) := "0000010000000000";
18
  signal data_out_p  : std_logic := '0';
19
  signal data_out_n  : std_logic := '0';
20
  signal tx_half_clk_ch0  : std_logic;
21
  signal tx_full_clk_ch0  : std_logic;
22
  signal tx_pll_lol_qd_s  : std_logic;
23
  signal refclk2fpga  : std_logic;
24

25
  component PCS0
26
  GENERIC (
27
    USER_CONFIG_FILE    :  String := "PCS0.txt");
28
  port (
29
    -- CH0 --
30
    hdoutp_ch0      :   out std_logic;
31
    hdoutn_ch0      :   out std_logic;
32
    txiclk_ch0      :   in std_logic;
33
    tx_full_clk_ch0    :   out std_logic;
34
    tx_half_clk_ch0    :   out std_logic;
35
    txdata_ch0      :   in std_logic_vector (15 downto 0);
36
    tx_k_ch0      :   in std_logic_vector (1 downto 0);
37
    tx_force_disp_ch0  :   in std_logic_vector (1 downto 0);
38
    tx_disp_sel_ch0    :   in std_logic_vector (1 downto 0);
39
    tx_pwrup_ch0_c    :   in std_logic;
40
    tx_div2_mode_ch0_c  : in std_logic;
41
    
42
    ---- Miscillaneous ports
43
    fpga_txrefclk  :   in std_logic;
44
    tx_serdes_rst_c  :   in std_logic;
45
    tx_pll_lol_qd_s  :   out std_logic;
46
    refclk2fpga    :   out std_logic;
47
    rst_n      :   in std_logic;
48
    serdes_rst_qd_c  :   in std_logic
49
  );
50
  end component;
51

52
begin
53

54
  Reset_n <= not Reset;
55
  
56
  PCS0_inst: PCS0
57
    port map(
58
      -- CH0 --
59
      hdoutp_ch0 => data_out_p,
60
      hdoutn_ch0 => data_out_n,
61
      txiclk_ch0 => CLK_Tx,
62
      tx_full_clk_ch0 => tx_full_clk_ch0,
63
      tx_half_clk_ch0 => tx_half_clk_ch0,
64
      txdata_ch0 => data_in,
65
      tx_k_ch0 => "11",
66
      tx_force_disp_ch0 => "00",
67
      tx_disp_sel_ch0 => "00",
68
      tx_pwrup_ch0_c => '1',
69
      tx_div2_mode_ch0_c => '0',
70
      
71
      ---- Miscillaneous ports
72
      fpga_txrefclk => CLK_Tx,
73
      tx_serdes_rst_c => Reset,
74
      tx_pll_lol_qd_s => tx_pll_lol_qd_s,
75
      refclk2fpga => refclk2fpga,
76
      rst_n => Reset_n,
77
      serdes_rst_qd_c => Reset
78
    );
79

80
process
81
begin
82
  wait for 4ns;
83
  CLK_Tx <= not CLK_Tx;
84
end process;     
85

86
process
87
begin
88
  wait for 5ns;
89
  Reset <= '0';
90
end process;     
91

92
end behaviour;
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.