mirror of
https://github.com/litex-hub/litex-boards.git
synced 2025-01-03 03:43:36 -05:00
targets/pcie: remove soft reset.
This commit is contained in:
parent
1356ebb416
commit
e91a5d6b82
4 changed files with 4 additions and 40 deletions
litex_boards/targets
|
@ -26,7 +26,6 @@ import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
from migen.genlib.misc import WaitTimer
|
|
||||||
|
|
||||||
from litex_boards.platforms import acorn_cle_215
|
from litex_boards.platforms import acorn_cle_215
|
||||||
|
|
||||||
|
@ -52,10 +51,8 @@ from litepcie.software import generate_litepcie_software
|
||||||
|
|
||||||
# CRG ----------------------------------------------------------------------------------------------
|
# CRG ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CRG(Module, AutoCSR):
|
class CRG(Module):
|
||||||
def __init__(self, platform, sys_clk_freq):
|
def __init__(self, platform, sys_clk_freq):
|
||||||
self.rst = CSR()
|
|
||||||
|
|
||||||
self.clock_domains.cd_sys = ClockDomain()
|
self.clock_domains.cd_sys = ClockDomain()
|
||||||
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
||||||
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
||||||
|
@ -64,14 +61,8 @@ class CRG(Module, AutoCSR):
|
||||||
# Clk/Rst
|
# Clk/Rst
|
||||||
clk200 = platform.request("clk200")
|
clk200 = platform.request("clk200")
|
||||||
|
|
||||||
# Delay software reset by 10us to ensure write has been acked on PCIe.
|
|
||||||
rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
|
|
||||||
self.submodules += rst_delay
|
|
||||||
self.sync += If(self.rst.re, rst_delay.wait.eq(1))
|
|
||||||
|
|
||||||
# PLL
|
# PLL
|
||||||
self.submodules.pll = pll = S7PLL()
|
self.submodules.pll = pll = S7PLL()
|
||||||
self.comb += pll.reset.eq(rst_delay.done)
|
|
||||||
pll.register_clkin(clk200, 200e6)
|
pll.register_clkin(clk200, 200e6)
|
||||||
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
||||||
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
||||||
|
|
|
@ -9,7 +9,6 @@ import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
from migen.genlib.misc import WaitTimer
|
|
||||||
|
|
||||||
from litex_boards.platforms import aller
|
from litex_boards.platforms import aller
|
||||||
|
|
||||||
|
@ -35,10 +34,8 @@ from litepcie.software import generate_litepcie_software
|
||||||
|
|
||||||
# CRG ----------------------------------------------------------------------------------------------
|
# CRG ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CRG(Module, AutoCSR):
|
class CRG(Module):
|
||||||
def __init__(self, platform, sys_clk_freq):
|
def __init__(self, platform, sys_clk_freq):
|
||||||
self.rst = CSR()
|
|
||||||
|
|
||||||
self.clock_domains.cd_sys = ClockDomain()
|
self.clock_domains.cd_sys = ClockDomain()
|
||||||
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
||||||
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
||||||
|
@ -47,14 +44,8 @@ class CRG(Module, AutoCSR):
|
||||||
# Clk/Rst
|
# Clk/Rst
|
||||||
clk100 = platform.request("clk100")
|
clk100 = platform.request("clk100")
|
||||||
|
|
||||||
# Delay software reset by 10us to ensure write has been acked on PCIe.
|
|
||||||
rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
|
|
||||||
self.submodules += rst_delay
|
|
||||||
self.sync += If(self.rst.re, rst_delay.wait.eq(1))
|
|
||||||
|
|
||||||
# PLL
|
# PLL
|
||||||
self.submodules.pll = pll = S7PLL()
|
self.submodules.pll = pll = S7PLL()
|
||||||
self.comb += pll.reset.eq(rst_delay.done)
|
|
||||||
pll.register_clkin(clk100, 100e6)
|
pll.register_clkin(clk100, 100e6)
|
||||||
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
||||||
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
||||||
|
|
|
@ -9,7 +9,6 @@ import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
from migen.genlib.misc import WaitTimer
|
|
||||||
|
|
||||||
from litex_boards.platforms import nereid
|
from litex_boards.platforms import nereid
|
||||||
|
|
||||||
|
@ -34,10 +33,8 @@ from litepcie.software import generate_litepcie_software
|
||||||
|
|
||||||
# CRG ----------------------------------------------------------------------------------------------
|
# CRG ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CRG(Module, AutoCSR):
|
class CRG(Module):
|
||||||
def __init__(self, platform, sys_clk_freq):
|
def __init__(self, platform, sys_clk_freq):
|
||||||
self.rst = CSR()
|
|
||||||
|
|
||||||
self.clock_domains.cd_sys = ClockDomain()
|
self.clock_domains.cd_sys = ClockDomain()
|
||||||
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
||||||
self.clock_domains.cd_clk200 = ClockDomain()
|
self.clock_domains.cd_clk200 = ClockDomain()
|
||||||
|
@ -45,14 +42,8 @@ class CRG(Module, AutoCSR):
|
||||||
# Clk/Rst
|
# Clk/Rst
|
||||||
clk100 = platform.request("clk100")
|
clk100 = platform.request("clk100")
|
||||||
|
|
||||||
# Delay software reset by 10us to ensure write has been acked on PCIe.
|
|
||||||
rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
|
|
||||||
self.submodules += rst_delay
|
|
||||||
self.sync += If(self.rst.re, rst_delay.wait.eq(1))
|
|
||||||
|
|
||||||
# PLL
|
# PLL
|
||||||
self.submodules.pll = pll = S7PLL()
|
self.submodules.pll = pll = S7PLL()
|
||||||
self.comb += pll.reset.eq(rst_delay.done)
|
|
||||||
pll.register_clkin(clk100, 100e6)
|
pll.register_clkin(clk100, 100e6)
|
||||||
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
||||||
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
||||||
|
|
|
@ -9,7 +9,6 @@ import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
from migen.genlib.misc import WaitTimer
|
|
||||||
|
|
||||||
from litex_boards.platforms import tagus
|
from litex_boards.platforms import tagus
|
||||||
|
|
||||||
|
@ -35,10 +34,8 @@ from litepcie.software import generate_litepcie_software
|
||||||
|
|
||||||
# CRG ----------------------------------------------------------------------------------------------
|
# CRG ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CRG(Module, AutoCSR):
|
class CRG(Module):
|
||||||
def __init__(self, platform, sys_clk_freq):
|
def __init__(self, platform, sys_clk_freq):
|
||||||
self.rst = CSR()
|
|
||||||
|
|
||||||
self.clock_domains.cd_sys = ClockDomain()
|
self.clock_domains.cd_sys = ClockDomain()
|
||||||
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x = ClockDomain(reset_less=True)
|
||||||
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
self.clock_domains.cd_sys4x_dqs = ClockDomain(reset_less=True)
|
||||||
|
@ -47,14 +44,8 @@ class CRG(Module, AutoCSR):
|
||||||
# Clk/Rst
|
# Clk/Rst
|
||||||
clk100 = platform.request("clk100")
|
clk100 = platform.request("clk100")
|
||||||
|
|
||||||
# Delay software reset by 10us to ensure write has been acked on PCIe.
|
|
||||||
rst_delay = WaitTimer(int(10e-6*sys_clk_freq))
|
|
||||||
self.submodules += rst_delay
|
|
||||||
self.sync += If(self.rst.re, rst_delay.wait.eq(1))
|
|
||||||
|
|
||||||
# PLL
|
# PLL
|
||||||
self.submodules.pll = pll = S7PLL()
|
self.submodules.pll = pll = S7PLL()
|
||||||
self.comb += pll.reset.eq(rst_delay.done)
|
|
||||||
pll.register_clkin(clk100, 100e6)
|
pll.register_clkin(clk100, 100e6)
|
||||||
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
pll.create_clkout(self.cd_sys, sys_clk_freq)
|
||||||
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
pll.create_clkout(self.cd_sys4x, 4*sys_clk_freq)
|
||||||
|
|
Loading…
Reference in a new issue