mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
remove MiSoC dependency
This commit is contained in:
parent
9326985e05
commit
52f5955dca
6 changed files with 66 additions and 37 deletions
23
README
23
README
|
@ -93,42 +93,35 @@ devel [AT] lists.m-labs.hk.
|
|||
python3 setup.py install
|
||||
cd ..
|
||||
|
||||
3. Obtain MiSoC and install it:
|
||||
git clone https://github.com/m-labs/misoc --recursive
|
||||
cd misoc
|
||||
python3 setup.py install
|
||||
cd ..
|
||||
|
||||
Note: in case you have issues with Migen/MiSoC, please retry
|
||||
with our forks at:
|
||||
Note: in case you have issues with Migen, please retry
|
||||
with our fork at:
|
||||
https://github.com/enjoy-digital/misoc
|
||||
https://github.com/enjoy-digital/migen
|
||||
until new features are merged.
|
||||
|
||||
4. Obtain LiteScope and install it:
|
||||
3. Obtain LiteScope and install it:
|
||||
git clone https://github.com/enjoy-digital/litescope
|
||||
cd litescope
|
||||
python3 setup.py install
|
||||
cd ..
|
||||
|
||||
5. Obtain LiteSATA
|
||||
4. Obtain LiteSATA
|
||||
git clone https://github.com/enjoy-digital/litesata
|
||||
|
||||
6. Build and load BIST design (only for KC705 for now):
|
||||
5. Build and load BIST design (only for KC705 for now):
|
||||
python3 make.py all (-s BISTSoCDevel to add LiteScopeLA)
|
||||
|
||||
7. Test design (only for KC705 for now):
|
||||
6. Test design (only for KC705 for now):
|
||||
go to ./test directory and run:
|
||||
change com port in config.py to your com port
|
||||
python3 bist.py
|
||||
|
||||
8. Visualize Link Layer transactions (if BISTSoCDevel):
|
||||
7. Visualize Link Layer transactions (if BISTSoCDevel):
|
||||
go to ./test directory and run:
|
||||
python3 test_la.py [your_cond]
|
||||
your_cond can be wr_cmd, id_cmd, rd_resp, ...
|
||||
(open test_la.py to see all conditions or add yours)
|
||||
|
||||
9. If you only want to build the core and use it with your
|
||||
8. If you only want to build the core and use it with your
|
||||
regular design flow:
|
||||
python3 make.py -t core build-core
|
||||
|
||||
|
|
|
@ -11,34 +11,33 @@ Download and install
|
|||
- python3 setup.py install
|
||||
- cd ..
|
||||
|
||||
.. note::
|
||||
In case you have issues with Migen, please retry with our fork at:
|
||||
https://github.com/enjoy-digital/migen
|
||||
until new features are merged.
|
||||
|
||||
3. Obtain LiteScope and install it:
|
||||
- git clone https://github.com/enjoy-digital/litescope
|
||||
- cd litescope
|
||||
- python3 setup.py install
|
||||
- cd ..
|
||||
|
||||
4. Obtain MiSoC and install it:
|
||||
- git clone https://github.com/m-labs/misoc --recursive
|
||||
- cd misoc
|
||||
- python3 setup.py install
|
||||
- cd ..
|
||||
|
||||
.. note::
|
||||
In case you have issues with Migen/MiSoC, please retry with our forks at:
|
||||
https://github.com/enjoy-digital/misoc
|
||||
https://github.com/enjoy-digital/migen
|
||||
until new features are merged.
|
||||
|
||||
5. Obtain LiteSATA
|
||||
4. Obtain LiteSATA
|
||||
- git clone https://github.com/enjoy-digital/litesata
|
||||
|
||||
6. Build and load BIST design (only for KC705 for now):
|
||||
5. Build and load BIST design (only for KC705 for now):
|
||||
- python3 make.py all
|
||||
|
||||
7. Test design (only for KC705 for now):
|
||||
6. Test design (only for KC705 for now):
|
||||
- go to ./test directory and run:
|
||||
- python3 bist.py
|
||||
|
||||
7. Visualize Link Layer transactions (if BISTSoCDevel):
|
||||
- go to ./test directory and run:
|
||||
- python3 test_la.py [your_cond]
|
||||
- your_cond can be wr_cmd, id_cmd, rd_resp, ...
|
||||
(open test_la.py to see all conditions or add yours)
|
||||
|
||||
8. If you only want to build the core and use it with your
|
||||
regular design flow:
|
||||
- python3 make.py -t core build-core
|
17
make.py
17
make.py
|
@ -6,13 +6,22 @@ from mibuild.tools import write_to_file
|
|||
from migen.util.misc import autotype
|
||||
from migen.fhdl import verilog, edif
|
||||
from migen.fhdl.structure import _Fragment
|
||||
from migen.bank.description import CSRStatus
|
||||
from mibuild import tools
|
||||
from mibuild.xilinx_common import *
|
||||
|
||||
from misoclib.gensoc import cpuif
|
||||
|
||||
from litesata.common import *
|
||||
|
||||
def get_csr_csv(regions):
|
||||
r = ""
|
||||
for name, origin, busword, obj in regions:
|
||||
if not isinstance(obj, Memory):
|
||||
for csr in obj:
|
||||
nr = (csr.size + busword - 1)//busword
|
||||
r += "{}_{},0x{:08x},{},{}\n".format(name, csr.name, origin, nr, "ro" if isinstance(csr, CSRStatus) else "rw")
|
||||
origin += 4*nr
|
||||
return r
|
||||
|
||||
def _import(default, name):
|
||||
return importlib.import_module(default + "." + name)
|
||||
|
||||
|
@ -124,7 +133,7 @@ BIST: {}
|
|||
subprocess.call(["rm", "-rf", "build/*"])
|
||||
|
||||
if actions["build-csr-csv"]:
|
||||
csr_csv = cpuif.get_csr_csv(soc.cpu_csr_regions)
|
||||
csr_csv = get_csr_csv(soc.cpu_csr_regions)
|
||||
write_to_file(args.csr_csv, csr_csv)
|
||||
|
||||
if actions["build-core"]:
|
||||
|
@ -141,7 +150,7 @@ BIST: {}
|
|||
tools.write_to_file("build/litesata.v", src)
|
||||
|
||||
if actions["build-bitstream"]:
|
||||
vns = platform.build(soc, build_name=build_name, run=False)
|
||||
vns = platform.build(soc, build_name=build_name, run=True)
|
||||
if hasattr(soc, "do_exit") and vns is not None:
|
||||
if hasattr(soc.do_exit, '__call__'):
|
||||
soc.do_exit(vns)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
import subprocess
|
||||
|
||||
from migen.fhdl.std import *
|
||||
from migen.bank.description import *
|
||||
|
||||
def get_id():
|
||||
output = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("ascii")
|
||||
return int(output[:8], 16)
|
||||
|
||||
class Identifier(Module, AutoCSR):
|
||||
def __init__(self, sysid, frequency, revision=None):
|
||||
self._r_sysid = CSRStatus(16)
|
||||
self._r_revision = CSRStatus(32)
|
||||
self._r_frequency = CSRStatus(32)
|
||||
|
||||
###
|
||||
|
||||
if revision is None:
|
||||
revision = get_id()
|
||||
|
||||
self.comb += [
|
||||
self._r_sysid.status.eq(sysid),
|
||||
self._r_revision.status.eq(revision),
|
||||
self._r_frequency.status.eq(frequency),
|
||||
]
|
||||
|
|
@ -8,7 +8,7 @@ from migen.genlib.cdc import *
|
|||
from migen.genlib.resetsync import AsyncResetSynchronizer
|
||||
from migen.bank.description import *
|
||||
|
||||
from misoclib import identifier
|
||||
from targets import *
|
||||
|
||||
from litescope.common import *
|
||||
from litescope.bridge.uart2wb import LiteScopeUART2WB
|
||||
|
@ -76,7 +76,7 @@ class GenSoC(Module):
|
|||
self.cpu_csr_regions = [] # list of (name, origin, busword, csr_list/Memory)
|
||||
|
||||
# CSR
|
||||
self.submodules.identifier = identifier.Identifier(0, int(clk_freq), 0)
|
||||
self.submodules.identifier = Identifier(0, int(clk_freq))
|
||||
|
||||
def add_cpu_memory_region(self, name, origin, length):
|
||||
self.cpu_memory_regions.append((name, origin, length))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
from migen.genlib.resetsync import AsyncResetSynchronizer
|
||||
|
||||
from targets import *
|
||||
|
||||
from litesata.common import *
|
||||
from litesata.phy import LiteSATAPHY
|
||||
from litesata import LiteSATA
|
||||
|
|
Loading…
Reference in a new issue