Florent Kermarrec
8d161a47cf
build/xilinx/vivado: remove with_phys_opt
2019-08-14 19:02:01 +02:00
enjoy-digital
f6638ded13
Merge pull request #243 from sergachev/master
...
build/xilinx/vivado: improve directive support
2019-08-14 18:58:15 +02:00
Ilia Sergachev
861eea8a07
build/xilinx/vivado: improve directive support
2019-08-14 17:49:13 +02:00
chmousset
db4c609a33
[fix] prevent Vivado from inferring DSP48 in AXIBurst2Beat
2019-08-14 11:30:39 +02:00
Florent Kermarrec
6d5fddc160
cores/spi_flash/S7SPIFlash: make cs_n optional in pads (when driven externally)
2019-08-14 07:35:45 +02:00
Daniel Kucera
a5eaf172c5
more understandable error when missing a memory
2019-08-13 10:14:16 +02:00
Gabriel L. Somlo
6c298cb708
build/lattice/trellis: use abc9 techmapping pass with yosys
...
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-08-09 09:12:22 -04:00
Florent Kermarrec
31bfb54667
software/libbase/mdio: set data before clock, revert two cycle turnaround and test with different phys
2019-08-09 13:26:31 +02:00
Florent Kermarrec
e670cb9176
cores/cpu: add riscv-none-embed toolchain support to riscv32 cpus
2019-08-09 12:33:10 +02:00
Florent Kermarrec
6d94c07d70
software/libase/mdio: cleanup and reduce raw_turnaround by 1 cycle
2019-08-09 10:33:42 +02:00
Florent Kermarrec
0c287b11ba
cores/clock/S7PLL: fix -1/-3 speedgrade vco max freq swap
2019-08-09 09:27:32 +02:00
Florent Kermarrec
82cd557c24
software/bios: add Ethernet PHY MDIO read/write/dump commands
2019-08-09 09:26:41 +02:00
Florent Kermarrec
0ba9ab92b4
altera/common: fix AsyncResetSynchronizer polarity and simplify
2019-08-08 16:19:22 +02:00
Florent Kermarrec
124dff8f3f
build/xilinx/common: improve presentation
2019-08-08 16:08:55 +02:00
Florent Kermarrec
60873a5b73
microsemi/common: improve presentation
2019-08-08 16:06:40 +02:00
Florent Kermarrec
36d9d78c5e
build/altera/common: improve presentation
2019-08-08 16:02:34 +02:00
Florent Kermarrec
95953d2928
platforms/default_clk_period: use 1e9/freq
2019-08-07 08:36:04 +02:00
Florent Kermarrec
f1d8c70bd8
targets/minispartan6/crg: only keep S6PLL code
2019-08-07 08:29:59 +02:00
Florent Kermarrec
d3d0a6231c
cores/clock: juse use 1e9/freq instead of period_ns
2019-08-07 08:29:20 +02:00
Florent Kermarrec
a881817fb3
cores/clock/s6pll: add phase support
2019-08-07 08:18:54 +02:00
Florent Kermarrec
6b7ca0cff7
cores/clock/xilinx: change clkfbout_mult loop order to select highest vco_freq
2019-08-07 08:17:44 +02:00
Florent Kermarrec
1884649de1
litex_term: make sure to unconfigure console when board is unplugged
2019-08-06 08:46:25 +02:00
Florent Kermarrec
e052d7f645
soc/integration/builder: -x
2019-08-06 07:56:45 +02:00
Florent Kermarrec
236070fdcf
cores: -x on spi.py
2019-08-05 10:36:43 +02:00
Florent Kermarrec
a9fe2788a2
wishbone/SRAM: make read_only emited verilog code compatible with all tools
...
Quartus was not able to implement ROM correctly, see #228
2019-08-05 09:08:56 +02:00
Florent Kermarrec
ce5c58592b
soc/cores/uart: add FT245 FIFO mode support (sync & async)
2019-08-04 12:22:35 +02:00
Florent Kermarrec
a496760cb6
build/altera/quartus: use .bat on win32/cygwin
2019-08-02 10:27:38 +02:00
Florent Kermarrec
7e0ea07076
build/xilinx/vivado: change severity of Common 17-55 critical warning to warning
2019-08-01 21:03:05 +02:00
Florent Kermarrec
92d93ad221
cores/pwm: remove default CSR reset values.
2019-07-29 08:38:28 +02:00
Florent Kermarrec
25ca0a8b71
soc: generate git header and show migen/litex git sha1 in bios
2019-07-27 20:27:53 +02:00
Ilia Sergachev
fdb119cb7b
support vivado incremental implementation
2019-07-25 19:18:11 +02:00
Mateusz Holenko
932475a29b
cpu/vexriscv: bump submodule
2019-07-25 08:43:35 +02:00
Florent Kermarrec
bc7ab637dd
bios/sdram: fix compilation warning
2019-07-25 07:46:14 +02:00
Florent Kermarrec
1cfb36e1e4
soc_core: round memory regions size/length to next power of 2 (if not already a power of 2)
2019-07-23 20:35:28 +02:00
Mateusz Holenko
3e89c56468
cpu/vexriscv: bump submodule
2019-07-23 11:49:18 +02:00
Florent Kermarrec
e673fce445
bios/boot: fix default EMULATOR_RAM_BASE
2019-07-23 10:28:19 +02:00
Florent Kermarrec
0acacbaa82
cores/clock: cleanup
2019-07-23 09:54:30 +02:00
Florent Kermarrec
edf8aa8cfd
cores/clock: add initial iCE40 support
2019-07-23 09:27:20 +02:00
Florent Kermarrec
6d54335839
cores/spi_flash/add_clk_primitive: return if clk primitive is not needed
2019-07-22 21:55:07 +02:00
Florent Kermarrec
462d12bacc
bios/boot: define EMULATOR_RAM_BASE if not defined, add KERNEL_IMAGE_RAM_OFFSET
2019-07-22 21:54:24 +02:00
Florent Kermarrec
fc12961e7e
soc_core: fix cpu_variant definition
2019-07-22 12:46:39 +02:00
Florent Kermarrec
af61688d1d
bios/boot: fix booting rework
...
- keep emulator.bin in a specific ram (for now)
- print message when falling back to boot.bin
- print destination on tftp download (to ease debug)
2019-07-22 11:47:41 +02:00
Florent Kermarrec
4b686dbdb2
soc_core: fix cpu_variant config (we don't want the extension)
2019-07-22 11:44:32 +02:00
enjoy-digital
7d9cf1d2bd
Merge pull request #216 from antmicro/booting_vexriscv_linux
...
Rework booting Linux on VexRiscv
2019-07-22 11:44:20 +02:00
Florent Kermarrec
95cfd0b9e5
cores/spi_flash: add SpiFlashCommon and use it to add clk primitives (7-Series/ECP5 support for now)
2019-07-22 10:28:03 +02:00
Florent Kermarrec
bfdcf4b2a0
platforms/versa_ecp5: add spiflash pads
2019-07-22 10:25:55 +02:00
Florent Kermarrec
41eb21b343
soc_core: optimize mem_decoder
...
Non-optimized version was tested on 7-series and was additional resource usage
was not noticeable. This does not seems to be the case on iCE40 (see #220 ), so
hand optimize it. On 256MB aligned addresses, it should be equivalent to the
old decoder used by previously in LiteX.
The only requirement is that to have address aligned on size, which was already
the case. An assertion will trigger it this condition is not respected.
2019-07-22 08:53:54 +02:00
Florent Kermarrec
0eff65bb31
cores/up5ksram: optimize bus.adr decoding
2019-07-22 07:55:47 +02:00
Florent Kermarrec
bb99c4685a
cores/up5kspram: simplify and add support for all width/depth configurations
2019-07-21 19:28:31 +02:00
Florent Kermarrec
eaf84b8581
cores/pwm: remove clock_domain support (better to use ClockDomainsRenamer), make csr optional
2019-07-20 12:57:32 +02:00
Florent Kermarrec
ea619e3afe
cores/spi: rename add_control paramter to add_csr
2019-07-20 12:56:37 +02:00
Florent Kermarrec
ec411a6ac1
soc_core: add SoCMini class (SoCCore with no cpu, sram, uart, timer) for simple designs
2019-07-20 12:52:44 +02:00
Mateusz Holenko
8335f13fb1
bios/boot: rework netboot/flashboot for VexRiscv in linux variant
...
Get rid of NETBOOT_LINUX_VEXRISCV/FLASHBOOT_LINUX_VEXRISCV defines
and use information about CPU_TYPE and CPU_VARIANT instead.
Use common kernel/rootfs/device tree/emulator images layout
when booting over network and from flash.
2019-07-15 16:02:58 +02:00
Mateusz Holenko
a19bdd0e6a
soc_core: generate extra string-based config defines
...
C preprocessor does not allow to compare strings, so
the current defines are not usable at the compile time.
This adds new defines that can be ifdefed.
2019-07-15 15:58:54 +02:00
Mateusz Holenko
005c07769b
soc_core: include information about cpu variant in csv and headers
2019-07-15 15:58:54 +02:00
Francis Lam
c6c743915a
soc: cores: fix name of EHXPLLL output clock in ECP5PLL
2019-07-14 12:27:28 -07:00
Florent Kermarrec
d3aaaf5e6c
cores/spi: fix/simplify loopback
2019-07-13 13:10:27 +02:00
Florent Kermarrec
769d15d433
cores/spi: move CSR control/status to add_control method, add loopback capability and simple xfer loopback test
...
Moving control/status registers to add_control method allow using SPIMaster directly with exposed signals.
Add loopback capability (mostly for simulation, but can be useful on hardware too).
2019-07-13 12:55:19 +02:00
Florent Kermarrec
ee8fec10ff
soc/cores: add ECC (Error Correcting Code)
...
Hamming codes with additional parity (SECDED):
- Single Error Correction
- Double Error Detection
2019-07-13 11:44:29 +02:00
Florent Kermarrec
7dbddb3a56
platforms/tinyfpga_bx: add serial extension
2019-07-13 11:43:16 +02:00
enjoy-digital
95796c5b29
Merge pull request #218 from railnova/zynq
...
[fix] Slave interface HP0 clk name
2019-07-12 18:00:03 +02:00
chmousset
dcf55ad4f3
[fix] Slave interface HP0 clk name
2019-07-12 16:37:23 +02:00
Ilia Sergachev
dacec6aa86
spi: change CSR to CSRStorage
2019-07-12 14:12:51 +02:00
Florent Kermarrec
be280bed5e
soc_zynq: use zynq fabric reset as sys reset
2019-07-12 09:52:50 +02:00
Florent Kermarrec
220f43753b
soc_zynq: add missing axi hp0 clock
2019-07-10 16:51:08 +02:00
Florent Kermarrec
9c8c037108
soc_zynq: move axi gp0 clock connection to add_gp0 method
2019-07-10 16:50:06 +02:00
Florent Kermarrec
b0192e5f8b
soc_core: use fixed 16MB CSR address space
...
Using too small CSR address space cause a regression on PCIe SoC, this would
need to be understood if we want to reduce CSR address space under 16MB.
2019-07-10 10:39:00 +02:00
Florent Kermarrec
68a503174c
soc_sdram: limit main_ram to 512MB for now
...
Otherwise breaks linux-on-litex-vexriscv for targets with 1GB of ram, could
be removed when mem_map will be reworked on linux-on-litex-vexriscv.
2019-07-09 12:14:50 +02:00
Florent Kermarrec
21a5aaa4a6
soc_core: declare csr address size when registering csr, fixes #212
2019-07-08 22:58:07 +02:00
Florent Kermarrec
41b6fbde42
soc_cores: fix typos
2019-07-08 22:56:14 +02:00
Gabriel L. Somlo
e42f33ede1
soc_core: additional csr_alignment follow-up fixes
...
- Update a few additional places to use DFII_ADDR_SHIFT instead of
a hard-coded 4, which assumed 32-bit alignment.
- Force 64-bit alignment Rocket -- the only supported configuration!
This is a fixup for commit f4770219
, tested on Rocket and 64bit Linux.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-07-08 10:15:14 -04:00
Florent Kermarrec
f4770219fa
soc_core: add csr_alignment to allow 64-bit alignment with 64-bit CPUs
2019-07-08 10:20:51 +02:00
Florent Kermarrec
927b7c13a2
soc/integration: uniformize configuration constants declaration in SoCs (use self.config instead self.add_constant)
2019-07-08 08:57:05 +02:00
Florent Kermarrec
96f45bbd87
software/libbase/id: update code (length is now fixed to 256)
2019-07-06 17:18:34 +02:00
Florent Kermarrec
282ae96354
cores: add simple PWM (Pulse Width Modulation) module
2019-07-05 19:39:08 +02:00
Florent Kermarrec
77e7f9b3c1
core/spi: make cs_n optional (sometimes managed externally)
2019-07-05 19:18:52 +02:00
Florent Kermarrec
e726ad80ac
cores/spi_flash: add non-memory mapped S7SPIFlash modules based on SPIMaster (for design were we only want to re-program the bistream)
2019-07-05 19:01:55 +02:00
Florent Kermarrec
4c18c991bc
cores: add ICAP core (tested with reconfiguration commands)
2019-07-05 18:30:34 +02:00
Florent Kermarrec
6b82f23ce1
cores: add simple and minimal hardware SPI Master with CPOL=0, CPHA=0 and build time configurable data_width and frequency.
2019-07-05 15:50:58 +02:00
Florent Kermarrec
ada70e8c52
soc/cores/spi: remove too complicated and does not seem reliable in all cases.
2019-07-05 14:38:09 +02:00
Florent Kermarrec
7cd5c0f39b
cores: add bitbang class with minimal hardware for I2C/SPI software bit-banging
2019-07-05 14:26:10 +02:00
Florent Kermarrec
d29b841997
cores: remove nor_flash_16 (obsolete, most of the boards are now using SPI flash)
2019-07-05 13:13:31 +02:00
Florent Kermarrec
3f6bd266d9
cores/gpio: remove Blinker
2019-07-05 13:09:21 +02:00
Florent Kermarrec
4ee9c53f18
csr: add assert to ensure CSR size < busword (thanks tweakoz)
2019-07-03 13:44:15 +02:00
Florent Kermarrec
0116b2b708
soc_core: update default RocketChip mem_map
2019-06-28 23:40:01 +02:00
Florent Kermarrec
9d170b0944
soc_core: rearrange default mem_map
2019-06-28 23:27:23 +02:00
Florent Kermarrec
05b667bb95
bios/main: fix #ifdefs for fw command
2019-06-28 22:42:02 +02:00
Florent Kermarrec
37687579e0
libnet/tftp: fix compilation warning
2019-06-28 22:32:45 +02:00
Florent Kermarrec
9f3c8a9b8a
bios/main: fix spiflash compilation warnings
2019-06-28 22:18:24 +02:00
Florent Kermarrec
2da59b29e2
soc_sdram: allow main_ram_size > 256MB (limitation no longer exists)
2019-06-28 22:10:25 +02:00
Florent Kermarrec
b8d45af5c3
targets: use new prefered way to add wishbone slave
2019-06-28 22:10:20 +02:00
Florent Kermarrec
7618b84533
soc_core: use new way to add wisbone slave (now prefered)
2019-06-28 22:10:15 +02:00
Florent Kermarrec
740629ba53
soc_core: remove 256MB mem_map limitation
...
mem_map was limited to 8 256MB for simplicity but has become an issue for
complex SoCs. Default mem_map size is still 256MB (retro-compatibility) but
size can now be specified.
2019-06-28 22:10:02 +02:00
Florent Kermarrec
b65968c329
soc/core: remove #!/usr/bin/env python3
2019-06-28 21:37:52 +02:00
Gabriel L. Somlo
5a42dbf333
BIOS: TFTP: ASCII spinner progress indicator (cosmetic)
2019-06-27 10:31:33 -04:00
enjoy-digital
d5177d72ac
Merge pull request #204 from antmicro/write_to_flash
...
fw (flash write) command
2019-06-25 19:10:17 +02:00
Florent Kermarrec
cef2369015
core/spi_flash: re-integrate bitbang write support
2019-06-25 19:09:30 +02:00
Mateusz Holenko
2ee194b259
bios: add fw (flash write) command
2019-06-25 16:58:12 +02:00
Florent Kermarrec
dc03b7fab9
boards: community supported boards are now located at https://github.com/litex-hub/litex-boards
2019-06-24 12:05:02 +02:00
Florent Kermarrec
0af017e67c
liteeth: update mac imports (olds still works, but that's now the prefered way)
2019-06-24 11:45:01 +02:00
Florent Kermarrec
ecf999b8c7
soc/cores: add usb_fifo with FT245 USB FIFO PHY from LiteUSB, deprecate LiteUSB
...
LiteUSB was not up to date was not a real USB PHY but was just providing USB FIFO PHYs.
New true USB cores are now available: Daisho, ValentyUSB, so it's better using
then for true USB support. We only keep the FT245 FIFO PHY in LiteX that can be
useful to interface with USB2/USB3 USB FIFOs.
2019-06-24 10:58:36 +02:00
Florent Kermarrec
8f6e66ca52
make sure #!/usr/bin/env python3 is before copyright header
2019-06-24 07:29:24 +02:00
Florent Kermarrec
daa4307d9e
add CONTRIBUTORS file and add copyright header to all files
2019-06-23 23:23:56 +02:00
Florent Kermarrec
361f9d0dff
bios/sdram: set init_done/error when DDRCTRL is present (litedram_gen)
2019-06-22 10:55:15 +02:00
Tim 'mithro' Ansell
d8ac936206
Convert top level comment to a docstring.
2019-06-21 12:03:30 -07:00
William D. Jones
7656f54d0a
soc: cores: add up5kspram module
...
The ICE40UP5K has 128 kB of SPRAM that's designed to be used
as memory for a softcore. This memory is actually 4 16-bit
chunks that we can gang together to give us either 64 kB or
128 kB.
Add a module that will allow us to use this memory in an ICE40.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-06-20 11:12:46 -07:00
Florent Kermarrec
73dbffe8f2
cores/frequency_meter: allow passing clk to be measured as a parameter
2019-06-20 09:03:30 +02:00
Gabriel L. Somlo
ab827d210d
tools/litex_sim: fix default endianness for mem_init
...
Initializing ROM and/or RAM content requires knowing the CPU
endianness before the SimSoC->SoCSDRAM->SoCCore constructor
sequence is invoked (before the SoC's self.cpu.endianness
could be accessed). Given that the majority of supported CPU
models use "little", set it as the new default, and override
only for the two models that use "big" endianness.
2019-06-18 16:55:58 -04:00
Gabriel L. Somlo
f75863fc31
cpu/rocket: add "linux" (MMU) and "full" (MMU & FPU) variants
2019-06-18 06:46:24 -04:00
Florent Kermarrec
c0df9e0823
cpu/rocket: update submodule
2019-06-18 09:44:13 +02:00
Florent Kermarrec
87118d509c
integration/soc_core: move cpu_variant checks/formating to cpu
2019-06-17 09:55:27 +02:00
Florent Kermarrec
f6b67a6dae
cpu/vexriscv: add "linux+no-dsp" variant
2019-06-17 09:54:17 +02:00
Florent Kermarrec
95b1b454f4
cpu/vexriscv: update
2019-06-17 09:24:57 +02:00
Florent Kermarrec
e46d287b64
targets/ulx3s: use CAS latency of 3 to be compatible with production boards
2019-06-17 09:20:21 +02:00
Ambroz Bizjak
ca70ea91e4
bios: Fix build when ethphy is present but ethmac is not.
...
While testing my Ethernet DMA, I renamed the `ethmac` module to `ethmac_dma` so that it wouldn't be used from the BIOS, but I got an undefined reference to `eth_init` because `bios.c` checks different CSR defines than the code that defines `eth_init`.
2019-06-13 01:02:22 +02:00
enjoy-digital
33d7cc5fc8
Merge pull request #198 from TomKeddie/tomk_20190610_artyspi
...
boards/arty : Add directly connected spi clk pin
2019-06-11 15:50:02 +02:00
Tom Keddie
5346c3684f
boards/arty : Add directly connected spi clk pin to avoid need for STARTUPE2
2019-06-10 08:33:02 -07:00
Florent Kermarrec
243d7c7696
soc/cores: add PRBS (Pseudo Random Binary Sequence) Generator/Checker
...
Imported from LiteICLink. PRBS can be useful for different purposes, so is
better integrated in LiteX.
2019-06-10 16:05:36 +02:00
Florent Kermarrec
cfa952b062
tools/litex_term: exit on 2 consecutive CTRL-C
...
When running OS with LiteX and when LiteXTerm is use, we want to be able to
send CTRl-C to the OS. Ensure a specific sequence is sent to close the terminal.
2019-06-10 15:06:57 +02:00
Florent Kermarrec
1c34b4a015
cpu/vexriscv: update submodule
2019-06-10 12:57:21 +02:00
Florent Kermarrec
850b311d04
cpu/vexriscv: update submodule
2019-06-07 18:36:46 +02:00
Florent Kermarrec
755a2660ba
build/sim: allow configuring verilator optimization level
2019-06-07 12:28:20 +02:00
Florent Kermarrec
4b6ad8aa0d
build/sim: allow defining start/end cycles for tracing
2019-06-07 11:50:57 +02:00
Florent Kermarrec
ecb60f6e43
build/sim: use -O0 for verilator compilation
...
In most of the case, execution speed is already fast enough with -O0 and
with complex design -O0 is a lost faster to compile than -O3. In the future
we could add a switch to choose which optimization we want.
2019-06-07 11:16:39 +02:00
Florent Kermarrec
c64129dc69
soc/integration/soc_core: list rocket as supported CPU
2019-06-07 11:14:36 +02:00
Florent Kermarrec
ca4e7811e9
software/bios: change prompt to "litex" in green.
2019-06-07 11:13:36 +02:00
Florent Kermarrec
8d0f008a3b
integration/soc_core: improve readibility (add separators/comments)
2019-06-05 23:43:16 +02:00
enjoy-digital
e545b15f66
Merge pull request #196 from msloniewski/de10lite_support
...
De10lite support
2019-06-05 19:44:54 +02:00
msloniewski
04ce479035
boards/targets: add target for de10lite platform
2019-06-05 18:57:59 +02:00
msloniewski
f2a740d51d
boards/platforms: add de10lite Terasic platform support
2019-06-05 18:57:59 +02:00
msloniewski
a826aacac0
build/altera: Add possibility to turn off generation of .rbf file
...
For some FPGAs (e.g. MAX10) .rbf file cannot be generated.
Add possibility to turn off that feature for those chips.
2019-06-05 18:57:59 +02:00
Mateusz Holenko
93b61a65bf
integration/builder: generate flash_boot address to csv
2019-06-05 17:37:23 +02:00
Mateusz Holenko
d0b019b1f0
integration/builder: generate shadow_base address to mem.h and csv
2019-06-05 17:37:09 +02:00
Gabriel L. Somlo
f88b85a31c
software/libbase: memcpy: simple, arch-width agnostic implementation
...
Remove optimizations targeted specifically at rv32 architecture,
allowing memcpy to work on all word sizes.
Since this is "only" the BIOS, it is also arguably better to
optimize for size rather than performance, given that control
will be quickly handed over to some other program being loaded.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-06-04 14:48:51 -04:00
Tim Ansell
42e9d09755
Merge pull request #192 from sutajiokousagi/pr_c99_types
...
fix signed char type to be explicitly signed
2019-06-02 16:54:20 -07:00
bunnie
ab0b2cac2e
fix signed char type to be explicitly signed
2019-06-03 06:01:13 +00:00
bunnie
200d413def
update stdint.h to include c99 types
...
needed for some third party libraries to compile
2019-06-02 22:27:12 +00:00
Ilia Sergachev
db890736ea
fix csr_name in add_csr()
2019-06-02 20:56:02 +02:00
Ilia Sergachev
40cbe3a952
fix interrupt_name
2019-06-02 20:52:31 +02:00
Florent Kermarrec
220e2bdc6e
boards/platform/arty: add Arty A7-100 variant
2019-06-02 19:10:44 +02:00
enjoy-digital
8e6ecfb974
Merge pull request #189 from open-design/terasic-boards
...
Add support for Terasic DE2-115 and Terasic DE1-SoC boards
2019-06-02 18:40:57 +02:00
Antony Pavlov
6cf1a814eb
boards: add Terasic DE2-115 initial support
...
See https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=502&PartNo=1
for board details.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
2019-06-02 11:33:10 +03:00
Antony Pavlov
037259917a
boards: add Terasic DE1-SoC Board support
...
See https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=836
for board details.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
2019-06-02 11:26:21 +03:00
Gabriel L. Somlo
273a3ea15d
soc/integration/cpu_interface: improve code legibility
...
Factor out code appearing in both branches of an if/else.
2019-05-29 10:07:43 -04:00
Florent Kermarrec
08a811b1a5
soc/interconnect/gearbox: add msb_first/lsb_first order
2019-05-29 10:25:25 +02:00
Florent Kermarrec
675f78304e
boards/targets/arty: generate 25MHz ethernet clock with S7PLL
...
Allow ethernet to work when sys_clk_freq != 100MHz
2019-05-28 09:55:06 +02:00
Antony Pavlov
26e6355fd6
litex/boards/targets: don't use tab for indentation
...
Fix pep8 E101 "indentation contains mixed spaces and tab" error.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
2019-05-26 12:00:03 +03:00
Florent Kermarrec
5109511259
soc/interconnect/axi: add round/robin arbitration between writes/reads
2019-05-25 10:02:31 +02:00
Florent Kermarrec
961101d809
bios/irc: remove compilation workaround
2019-05-25 09:24:48 +02:00
Florent Kermarrec
712977a0cf
software/bios/isr.c: workaround compilation issue (need to be fixed)
2019-05-24 10:18:50 +02:00
Florent Kermarrec
28ba8b3201
soc/integration/soc_core: revert default mem_map (do specific RocketChip remapping for now)
2019-05-24 10:18:32 +02:00
Florent Kermarrec
cf369c437c
boards/targets: revert default sys_clk_freq on nexys4ddr/versa_ecp5 (but add parameter to configure it)
2019-05-24 10:18:26 +02:00
Gabriel L. Somlo
019fd94005
fixup: generated-verilog submodule for experimental Rocket support
...
FIXME: This patch uses https://github.com/gsomlo/rocket-litex-verilog ,
however in the long term it would perhaps be better if enjoy-digital
hosted the generated-verilog repository.
Once that's in place, I'd be happy to re-spin (and squash) this patch
on top of its parent -- GLS
2019-05-23 18:22:37 -04:00
Gabriel L. Somlo
1a530cf27d
soc/cores/cpu/rocket: Support for 64-bit RocketChip (experimental)
...
Simulate a Rocket-based 64-bit LiteX SoC with the following command:
litex/tools/litex_sim.py [--with-sdram] --cpu-type=rocket
NOTE: Synthesizes to FPGA and passes timing at 50MHz on nexys4ddr
(with vivado) and ecp5versa (with yosys/trellis/nextpnr), but at
this time does not yet properly initialize physical on-board DRAM.
On ecp5versa, using '--with-ethernet', up to 97% of the available
TRELLIS_SLICE capacity is utilized.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-05-23 15:59:51 -04:00
Gabriel L. Somlo
e90caa8683
tools/litex_sim: restore functionality of '--with-sdram' option
...
After LiteDRAM commit #50e1d478, an additional positional argument
('databits') is required by the PhySettings() constructor.
The value used here (32) will generate a 64MByte simulated SDRAM.
2019-05-23 08:56:50 -04:00
Sean Cross
014c950580
remote: usb: print "access denied" error
...
When we get an error with errno 13, it means that the user doesn't
have access to the USB device. Rather than silently eating this
error and returning -1, print out a message to aid in debugging.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-05-21 09:36:18 +08:00
Sean Cross
faf6554c89
remote: usb: use 0x43/0xc3 for packet header
...
The previous value -- 0xc0 -- is used by Windows all the time to query
special descriptors. This was causing a conflict when using the USB
bridge on a Windows device.
Change the magic packet from "Vendor: Device" queries to "Vendor:
Other" by setting the bottom two bits.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-05-21 09:14:18 +08:00
Florent Kermarrec
10670e22ac
soc/cores/minerva: update to latest
2019-05-17 22:21:57 +02:00
Gabriel L. Somlo
5707bdc0a4
boards/nexys4ddr: ethernet support fix-up
...
Commit 5f6e7874
added ethernet support, let's now also expose it via
the "--with-ethernet" command line argument.
2019-05-17 10:06:12 -04:00
Florent Kermarrec
0a8699f1e6
Merge branch 'master' of http://github.com/enjoy-digital/litex
2019-05-16 15:15:30 +02:00
Florent Kermarrec
526ba1b165
soc_core: remove csr_expose and add add_csr_master method
...
This could be useful in specific case were we don't have a wishbone master
but just want to have a csr bus and allow the user to define it.
/!\ Since there is no arbitration on between the CSR masters, use this with
precaution /!\
2019-05-16 15:14:55 +02:00
Florent Kermarrec
1ea22d49b7
software/include/base/csr-defs.h: add specific CSR_IRQ_MASK/PENDING for Minerva
2019-05-15 22:40:32 +02:00
Florent Kermarrec
f25707012f
software/bios/boot: remove specific linux commands (not needed with device tree)
2019-05-14 11:45:16 +02:00
Florent Kermarrec
938d00c283
boards/targets/de0nano: reduce to 50MHz sys_clk, simplify CRG
2019-05-14 11:45:12 +02:00
Florent Kermarrec
11838bae20
platforms/de0nano: change serial pins (put then next to the GND pin)
2019-05-14 11:45:06 +02:00
Florent Kermarrec
eb6fa45833
cpu/vexriscv/core: update
2019-05-13 10:59:26 +02:00
Florent Kermarrec
0cad80e935
cpu/vexriscv: update submodule (new linux variant)
2019-05-13 10:59:03 +02:00
Florent Kermarrec
5f6e787494
boards/nexys4ddr: add ethernet support (RMII 100Mbps)
2019-05-13 10:18:23 +02:00
Florent Kermarrec
0ba1cb8756
boards/targets/netv2: +x
2019-05-11 12:39:02 +02:00
Florent Kermarrec
2f2b9b319f
soc/cores: remove cordic
...
Cordic is useful for DSP cores but not as a Soc building block.
2019-05-11 09:36:53 +02:00
Florent Kermarrec
6e4ac1c493
LICENSE: clarify
2019-05-11 09:26:51 +02:00
Florent Kermarrec
67159349d6
soc/interconnect: remove axi_lite
...
axi_lite code was defining AXI4Lite signals and doing a AXI4Lite bridge to the
CSR bus when LiteX was not having proper AXI support. LiteX now has proper AXI
support and it also cover what axi_lite was doing: To create a AXILite to CSR
bus, user can create an AXILite2Wishbone bridge and then connect the CSR bus
directly to the wishbone bus as done in the others non-AXI SoC.
2019-05-11 09:12:20 +02:00
Florent Kermarrec
745d83a332
boards: add initial NeTV2 support (clocks, leds, dram, ethernet)
2019-05-10 18:55:40 +02:00
Florent Kermarrec
a49d170a6d
soc/integration/soc_sdram: simplify/fix main_ram_size computation using new databits value of the phy
2019-05-10 15:46:22 +02:00
Florent Kermarrec
7445b9e2e0
soc/integration/soc_core: allow user to defined internal csr/interrupts
...
For some designs with different capabilities, we want to run the same software
and then have the CSRs/Interrupts defined to a specific location.
2019-05-10 11:05:34 +02:00
Florent Kermarrec
f333abcfcb
boards/targets: use new add_csr method
2019-05-09 23:50:43 +02:00
Florent Kermarrec
d76a2c7db2
tools/litex_sim: add uart csr (required when with_uart=False with new add_csr method)
2019-05-09 23:33:08 +02:00
Florent Kermarrec
b6be534cd6
soc/integration/soc_core: rework csr assignation/reservation
...
Similar refactor than on interrupts. Adds a add_csr method but still
retro-compatible with old way to declare CSRs.
2019-05-09 23:32:22 +02:00
Florent Kermarrec
3f09af6d6e
boards/targets: declare ethmac interrupt with new add_interrupt method
...
The previous way to define interrupt is still valid, but using add_interrupt
method will ease maintenance
2019-05-09 12:13:15 +02:00
Florent Kermarrec
2abb3e809c
Merge branch 'master' of http://github.com/enjoy-digital/litex
2019-05-09 11:57:19 +02:00
Florent Kermarrec
47dc87584f
integration/soc_core: rework interrupt assignation/reservation
...
The CPUs can now reserve specific interrupts with reserved_interrupts property.
User can still define interrupts in SoCCore.interrupt_map (old way) or use
add_interrupt method. Interrupts specific to SoCCore internal modules are
allocated automatically on the remaining free interrupt ids.
Priority for the interrupts allocation:
- 1) CPU reserved interrupts.
- 2) User interrupts.
- 3) SoCCore interrupts.
2019-05-09 11:54:22 +02:00
Florent Kermarrec
435cdad083
boards/targets: fix ulx3s/versa_ecp5 build
2019-05-09 11:48:32 +02:00
Mateusz Holenko
8caa38bc25
cpu: add `reserved_interrupts` property
2019-05-09 09:00:06 +02:00
Gabriel L. Somlo
c264a00964
soc/integration/cpu_interface: more arch-specific address size fixes
...
When generating arch-specific include files (generated/[mem|csr].h)
ensure address literal defines are suffixed by 'L', denoting their
'unsigned long' type. This inhibits compiler warnings when values
computed based on these constants are cast to pointers.
Also ensure csr_[read|write][b|w|l]() function declarations have
'unsigned long' address arguments.
Finally, restore the correct (32-bit, (unsigned *)) expected
behavior of the MMPTR() macro, inadvertently converted to an
arch-specific sized access (unsigned long *) by commit 5c2b8685
.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-05-08 16:03:36 -04:00
Florent Kermarrec
ff5179153c
boards/targets: make sys_clk_freq a parameter
...
Most of the targets can now generate an abritrary sys_clk_freq from onboard XO.
2019-05-07 18:44:03 +02:00
Florent Kermarrec
a8cbe4ad84
boards/targets/minispartan6: for now revert experimental s6pll clocking
2019-05-07 13:05:28 +02:00
Florent Kermarrec
6fcbf10eb9
boards/plarforms/minispartan6: default to xc6slx25
2019-05-07 12:48:36 +02:00
Florent Kermarrec
b7e3713388
bios/boot/ update linux memory mapping
2019-05-07 11:59:28 +02:00
Florent Kermarrec
190ff89aaa
tools/litex_term: add json support to load images to memory, allow passing speed as float
...
example json file (serialboot.json):
{
"binaries/Image": "0xc0000000",
"binaries/rootfs.cpio": "0xc2000000",
"binaries/rv32.dtb": "0xc3000000",
"emulator/emulator.bin": "0x20000000"
}
example command:
lxterm --images=serialboot.json /dev/ttyUSBX
2019-05-06 23:56:33 +02:00
David Shah
a048ba47c4
vexriscv: Fix some floating signals
...
Signed-off-by: David Shah <dave@ds0.me>
2019-05-04 17:27:21 +01:00
Florent Kermarrec
fcd518b5d0
bios/boot: add specific flash_boot for linux with vexriscv
2019-05-04 11:27:01 +02:00
Florent Kermarrec
1ba1ad9a00
bios/boot: rename MM_RAM to EMULATOR_RAM
2019-05-03 19:47:36 +02:00
Florent Kermarrec
fbb24720f0
soc/get_mem_data: add direct support for regions
...
We now support passing filename (offset=0), json file and regions
2019-05-03 13:24:06 +02:00
Florent Kermarrec
0714816f31
soc/interconnect/axi: add AXI2AXILite converter and use it in AXI2Wishbone
2019-05-03 11:59:06 +02:00
Florent Kermarrec
c6d0d23445
soc/interconnect/axi: add AXI Lite definition
2019-05-03 09:43:12 +02:00
Florent Kermarrec
9fab4752c4
soc/interconnect/axi: add comment on axi signas that are present but not used
2019-05-03 09:30:59 +02:00
Florent Kermarrec
5989076346
cores/cpu/vexriscv: add VexRiscvTimer and use it for the linux variant
2019-05-03 09:30:26 +02:00
Florent Kermarrec
21bf10383d
bios/boot: add liftoff banner just before booting
2019-05-02 18:26:35 +02:00
Florent Kermarrec
8f4685b3b1
bios/boot/netboot: only get boot.bin as default, add linux_vexriscv netboot config
2019-05-02 16:34:41 +02:00
Florent Kermarrec
6cf1ff091c
soc/interconnect/axi: connect axi.ar/aw when selecting write or read
2019-05-02 09:58:55 +02:00
Florent Kermarrec
6affc56a09
soc/interconnect/axi: wishbone address shift is not always 2, make it generic
2019-05-02 09:35:07 +02:00
Florent Kermarrec
698bc88296
soc/interconnect/wishbone: allow setting adr_width (default to 30)
2019-05-02 09:34:30 +02:00
Florent Kermarrec
4dccb8a9eb
soc/interconnect/axi/AXI2Wishbone: add buffer on axi command to be sure command is accepted before response is sent
2019-05-01 12:59:04 +02:00
Florent Kermarrec
9f8f0eb18e
build/sim: update tapcfg
2019-05-01 12:34:12 +02:00
Gabriel L. Somlo
5c2b8685fc
software: use "unsigned long" for address values, also 8-byte alignment
...
Enable future support for 64-bit CPU models.
2019-04-29 15:03:38 -04:00
Florent Kermarrec
5c1d980540
soc/interconnect/axi: add burst support to AXI2Wishbone
2019-04-29 16:49:20 +02:00
Florent Kermarrec
6de2713524
soc/interconnect/axi: add capabilities to AXIBurst2Beat and simplify/optimize
2019-04-29 14:02:05 +02:00
Florent Kermarrec
305b8879de
integration/soc_core: use cpu name as cpu-type for all cpus (mor1kx was instanciated with or1k)
...
Keep or1k retro-compatibility for now but add a warning
2019-04-29 10:14:30 +02:00
Florent Kermarrec
4e50f36b72
build/tools: add deprecated_warning
2019-04-29 10:12:54 +02:00
Florent Kermarrec
b40d1b73c4
cpu_interface: default to gcc for all cpus unless told otherwise (mor1kx default was clang)
2019-04-29 10:00:04 +02:00
Florent Kermarrec
dbb71af189
cpu: use property methods to return name, endianness, gcc triple/flags, linker output format
2019-04-29 09:58:51 +02:00
Florent Kermarrec
d828c3a596
cpu: integrate nmigen version of Minerva, add submodule
2019-04-28 23:40:33 +02:00
Kurt Kiefer
bf27869ad9
fix vexriscv build
2019-04-28 11:10:20 +02:00
enjoy-digital
2d5bae3def
Merge pull request #175 from mithro/cpu-docs
...
Standardizing `cpu_variants` and adding lots of documentation
2019-04-27 21:24:06 +02:00
Tim 'mithro' Ansell
5cbc5bc199
Adding testing of cpu variants.
2019-04-26 18:57:49 -05:00
Tim 'mithro' Ansell
71a837315a
Work with no `cpu_variant` provided.
2019-04-26 17:44:36 -05:00
Tim 'mithro' Ansell
39c579baa2
Standardize the `cpu_variant` strings.
...
Current valid `cpu_variant` values;
* minimal (alias: min)
* lite (alias: light, zephyr, nuttx)
* standard (alias: std) - Default
* full (alias: everything)
* linux
Fully documented in the [docs/Soft-CPU.md](docs/Soft-CPU.md) file
mirrored from the
[LiteX-BuildEnv Wiki](https://github.com/timvideos/litex-buildenv/wiki ).
Also support "extensions" which are added to the `cpu_variant` with a
`+`. Currently only the `debug` extension is supported. In future hope
to add `mmu` and `hmul` extensions.
2019-04-26 17:44:30 -05:00
Florent Kermarrec
3a2e283613
.gitmodules: use our VexRiscv-verilog
2019-04-27 00:00:55 +02:00
Florent Kermarrec
78c09125be
soc/integration/soc_core: fix get_mem_data when not file is not multiple of 4 bytes
2019-04-25 23:43:10 +02:00
Florent Kermarrec
0175f86cb2
soc/integration/soc_core: fix get_mem_data for json files
2019-04-25 18:36:47 +02:00
Florent Kermarrec
4443b5075b
soc/integration/soc_core: add integrated_sram_init
2019-04-25 17:30:03 +02:00
Florent Kermarrec
f27084c6c0
soc/integration/cpu_interface: fix banner in get_mem_header
2019-04-24 22:44:37 +02:00
Gabriel L. Somlo
d21cba2f17
build: handle exceptional case when litex/migen not deployed as git repo
2019-04-24 12:50:47 -04:00
Florent Kermarrec
27fbb814ab
tools/remote/csr_builder: allow comments in csv file and cleanup
2019-04-24 12:25:49 +02:00
Florent Kermarrec
e8f3c49127
software/libnet/microudp: rearrange send_packet, add comments and remove txlen padding
2019-04-24 11:32:40 +02:00
Florent Kermarrec
44e0cdda9a
software/libnet/microudp: speed-up ARP by changing timeout/tries
...
First ARP request does not seem to be transmitted (the link is probably not
fully established). Reduce the timeout between tries and increase number of
tries.
2019-04-24 09:55:41 +02:00
Florent Kermarrec
3ee78a5b70
build/tools: fix typo
2019-04-23 18:10:51 +02:00
Florent Kermarrec
9ded2eb20b
tools/litex_term: change TERM prompt to LXTERM
2019-04-23 17:46:02 +02:00
Florent Kermarrec
475deb51ac
build: add migen and litex git revision to generated file
2019-04-23 17:40:24 +02:00
Florent Kermarrec
8b5cf29542
build/tools: git_revision is not doing what we want, return "--------" for now
2019-04-23 17:15:43 +02:00
Florent Kermarrec
0f60ec35e2
tools/litex_server: fix comms import
2019-04-23 14:25:27 +02:00
Florent Kermarrec
68f12495cf
soc/integration: also add sha-1/date to generated software files
2019-04-23 13:17:54 +02:00
Florent Kermarrec
425741226c
build: add sha-1/date to generated verilog, change git_version to git_revision
2019-04-23 12:59:25 +02:00
Florent Kermarrec
818dfae1e8
boards/platforms/ulx3s: fix default clock
2019-04-23 11:37:29 +02:00
Florent Kermarrec
17b6164cd9
boards/platforms/sp605: apply same simplifications than on others platforms
2019-04-23 11:21:55 +02:00
Michael Betz
24bf02934e
boards/platforms: add SP605
2019-04-23 11:15:42 +02:00
Florent Kermarrec
10cf0fdea3
cores/cpu/vexriscv: fix wrong revert
2019-04-23 11:13:29 +02:00
Florent Kermarrec
d2ad14417a
targets/ac701: cleanup and make it similar to others targets.
...
Still supports EthernetSoC with RGMII and 1000BaseX.
2019-04-23 11:10:35 +02:00
Florent Kermarrec
a24bf72fc7
targets/xilinx: remove keep attribute on clock going to idelayctrl
...
Causes P&R issues with Vivado.
2019-04-23 10:51:36 +02:00
Florent Kermarrec
ea8dbff86e
boards/platform/ac701: add proper copyright, cleanup to be similar to others platforms
2019-04-23 10:50:19 +02:00
Florent Kermarrec
0122982e09
boards/platforms/kc705: provide only one default programmer as others platforms
2019-04-23 10:00:52 +02:00
Vamsi K Vytla
89a590263f
boards: Xilinx ac701 dev board support
2019-04-23 09:48:16 +02:00
Michael Betz
88b882c7e0
build/xilinx/ise.py: write .v file for post synthesis sim
2019-04-23 09:22:48 +02:00
Florent Kermarrec
7396ebbb38
build/xilinx/programmer: cleanup XC3SProg position parameter
2019-04-23 09:20:59 +02:00
Michael Betz
f579cbc603
build/xilinx/programmer: add position parameter to XC3SProg
2019-04-23 09:16:42 +02:00
Florent Kermarrec
535d86727a
targets/minispartan6: use S6PLL in CRG
2019-04-23 06:44:29 +02:00
Florent Kermarrec
40342404f2
cores/clock: add divclk_divide_range on S6PLL/S6DCM
2019-04-23 06:43:48 +02:00
Florent Kermarrec
0d282f38f9
cores/clock: use common XilinxClocking class for all Xilinx clocking modules
2019-04-23 06:35:39 +02:00
Michael Betz
83699ea0a5
cores/clock: add initial Spartan6 PLL/DCM support
2019-04-23 06:23:00 +02:00
Florent Kermarrec
eff141da2d
build: add git version (sha-1) used to create the scripts
2019-04-23 06:03:12 +02:00
Florent Kermarrec
cc141a64b9
build: scripts are generated by LiteX
2019-04-23 05:38:33 +02:00
Florent Kermarrec
115c842ef0
build/xilinx/vivado: cleanup pull request #170
2019-04-23 05:33:56 +02:00
Larry Doolittle
fda18fd6ef
build/xilinx/vivado: only try Xilinx setup if vivado is not already in the path
...
Only affects the non-Windows code path.
Uses python distutils, already used elsewhere.
2019-04-22 15:42:31 -07:00
Florent Kermarrec
7d278854d5
global: switch to VexRiscv as the default CPU
...
VexRiscv can now replace LM32 for almost all usecases and we now have better
software support with RISC-V.
2019-04-22 09:41:07 +02:00
Florent Kermarrec
8c78997089
boards/platforms: add separators, cleanup imports
2019-04-21 00:44:23 +02:00
Florent Kermarrec
cb8c26d1b8
boards/platforms: provide only one default programmer per platform.
...
create_programmer is not really longer used, so try to keep it simple.
2019-04-21 00:17:03 +02:00
Florent Kermarrec
e1d202df02
boards/platforms/kc705: only keep Vivado support
...
There is no reason still using ISE on 7-Series.
2019-04-21 00:04:56 +02:00
Florent Kermarrec
53c7be6e46
boards: always define timing constraints the same way (1e9/freq_mhz)
2019-04-20 23:56:27 +02:00
Florent Kermarrec
02ffbed5e3
boards/targets/ulx3s: allow running test_targets on it
2019-04-20 23:47:05 +02:00
Florent Kermarrec
5a1925df2e
boards/targets: add keep attribute directly in crg
...
This makes it systematic and avoid having to add it later.
2019-04-20 23:43:44 +02:00
Sean Cross
f71b8d4f57
litex_server: check socket flags exist before using them
...
Some flags are only available on certain platforms. Verify these flags
exist prior to using them when opening a socket.
See
https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t
for more information
Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-20 17:28:26 +08:00
Florent Kermarrec
9ee6c35b42
tools: move from litex.soc.tools to litex.tools and fix usb.core import
2019-04-20 10:44:53 +02:00
enjoy-digital
49fd93ae83
Merge pull request #165 from xobs/vexriscv-cpu-reset-address
...
Vexriscv cpu reset address
2019-04-19 19:16:16 +02:00
enjoy-digital
ca6065a6a1
Merge pull request #164 from xobs/litex-usb-server
...
Litex usb server support
2019-04-19 19:14:15 +02:00
Sean Cross
c69183648f
utils: litex_server: add usb support
...
Add `--usb` and associated arguments to create a litex bridge over
USB. This makes use of the new CommUSB module.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-19 18:02:42 +01:00
Sean Cross
9dd59d6301
tools: remote: add usb communications protocol
...
This adds a USB communications protocol to the suite of litex-supported
wishbone bridge protocols.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-19 17:29:50 +01:00
Florent Kermarrec
9cbed91b3e
soc/interconnect/axi: add AXIBurst2Beat
...
Converts AXI bursts commands to AXI beats.
2019-04-19 12:13:16 +02:00
Florent Kermarrec
5a8115d9e1
soc/interconnect/avalon: add description
2019-04-19 11:43:15 +02:00
Sean Cross
c780fb22b7
Merge branch 'master' of https://github.com/enjoy-digital/litex
2019-04-19 16:47:55 +08:00
Florent Kermarrec
fa95608694
soc/integration/soc_zynq: fix HP0 connections
2019-04-19 10:21:56 +02:00
Florent Kermarrec
a78ca2de92
build/xilinx/vivado: only set library for vhdl files (not supported for verilog/system-verilog)
2019-04-19 09:18:25 +02:00
Sean Cross
e2cf45b8a9
cpu: vexriscv: allow cpu_reset_address to be overridden
...
Allow the cpu_reset_address value to be overridden, for example allowing
it to be a signal. That way the reset address can be modified after
synthesis, in dual-core or debug situations.
Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-19 13:04:57 +08:00
Florent Kermarrec
a92e90b215
soc/interconnect: add avalon with converters to/from native streams
2019-04-18 18:42:29 +02:00
enjoy-digital
d860eeea4f
Merge pull request #162 from antmicro/full-conf-vexriscv
...
Add full and full_debug CPU variant of VexRiscv
2019-04-17 19:01:55 +02:00
Gabriel L. Somlo
e1683078ec
build/sim/core: Initialize Verilator commandArgs
...
Required when DUT is using plusargs. Prevents Verilator simulation
from crashing with "Verilog called $test$plusargs or $value$plusargs
without testbench C first calling Verilated::commandArgs(argc,argv)".
2019-04-17 10:39:35 -04:00
Joanna Brozek
40de01bcb0
vexriscv: Add full and full_debug CPU variant
2019-04-17 09:09:35 +02:00
Florent Kermarrec
017147c623
build/altera: switch to sdc constraints, add add_false_path_constraints method
2019-04-16 16:57:23 +02:00
Florent Kermarrec
1275e2f150
build/xilinx/vivado: set quiet property on MultiReg/AsyncResetSynchronizer constraints
...
MultiReg/AsyncResetSynchronizer are not necessarily present in all design, set
quiet property to avoid generating false warnings.
2019-04-15 16:48:47 +02:00
Florent Kermarrec
c252972bef
soc/cores/clock: add divclk_divide/vco_margin support on S7/Ultrascale
2019-04-15 11:36:42 +02:00
Florent Kermarrec
f986974d60
soc/cores/clock: improve presentation
2019-04-15 10:57:00 +02:00
Florent Kermarrec
538ca59ab6
build/xilinx/vivado: round period constraints to lowest picosecond
...
Vivado will do the opposite if we don't do it, with this change we ensure the applied period constraints will always be >= to the requested constraint.
2019-04-15 10:51:17 +02:00
Florent Kermarrec
a2bc4bb777
litex_server: set socket.SO_REUSEPORT to avoid waiting 60s in case of unclean termination
2019-04-15 08:23:27 +02:00
Florent Kermarrec
be99083e2b
litex_server: add message and exit when mandarory arguments are missing.
2019-04-14 14:00:35 +02:00
Florent Kermarrec
db11aec961
litex_server: allow setting bind port, remove auto-incrementing on bind_port
2019-04-14 12:48:49 +02:00
Florent Kermarrec
76bc57851b
litex_server: refactor parameters and to allow setting bind address
...
In some cases, it can be useful to bind to "0.0.0.0" instead of "localhost".
While adding bind address support, parameters passing has also been refactored
to ease adding parameters in the future.
2019-04-14 09:00:08 +02:00
Florent Kermarrec
13a76ec7fb
software/libnet/microudp: simplify txbuffer managment
2019-04-12 18:47:31 +02:00
Florent Kermarrec
3441eb05cb
software/libnet/microudp: cleanup eth_init
2019-04-12 17:15:09 +02:00
Florent Kermarrec
92a79c6dc1
software/libnet/microudp: simplify rxbuffer managment
2019-04-12 17:14:07 +02:00
Florent Kermarrec
fdeff7f64f
software/libnet/microudp: set raw frame size to ETHMAC_SLOT_SIZE
2019-04-12 17:09:50 +02:00
Florent Kermarrec
1569e2e0cf
software/libnet: remove use of ethmac_mem.h
2019-04-12 17:08:29 +02:00
Florent Kermarrec
c7ac96761c
bios/sdram: add __attribute__((unused)) on cdelay
2019-04-11 22:26:58 +02:00
Florent Kermarrec
792245f196
boards/targets/kcu105: add Ethernet (with 1Gbps SFP adapter)
2019-04-10 16:36:49 +02:00
Florent Kermarrec
f8dcdb70d2
software/libnet: add #ifdef on eth_init
2019-04-10 16:16:47 +02:00
vytautasb
04939990ac
litex/build/altera/quartus: changes to make top level assigment in .qsf file with build name
2019-04-08 14:07:10 +03:00
vytautasb
8558065fca
litex/build/altera/common: added reset synchronizer
2019-04-08 14:06:24 +03:00
Florent Kermarrec
866fa34493
integration/soc_zynq: fix missing SoCCore.do_finalize
...
Signed-off-by: Florent Kermarrec <florent@enjoy-digital.fr>
2019-04-01 14:44:37 +02:00
Florent Kermarrec
794c3c5860
integration/soc_zynq: add add_hp0 method
2019-04-01 11:10:35 +02:00
Florent Kermarrec
38d404c3cb
integration/soc_zynq: use add methods to add optional peripherals
2019-04-01 10:50:04 +02:00
Florent Kermarrec
7375856bec
integration/soc_zynq: connect axi signals that were missing
2019-04-01 10:31:33 +02:00
Florent Kermarrec
b15fd9d834
interconnect/axi: add missing axi signals
2019-04-01 10:23:25 +02:00
Caleb Jamison
1f0b3f8124
Add ifdef check for MAIN_RAM_SIZE
2019-03-31 10:33:39 -05:00
Florent Kermarrec
dd214d2d21
bios/main: align SoC info, show CPU speed on CPU line, show L2
2019-03-30 11:49:39 +01:00
Florent Kermarrec
6599f7bb50
bios/main: move sdrinit
2019-03-30 10:56:17 +01:00
Florent Kermarrec
b92b89ab92
bios/main: print boot sequence only if sdr_ok
2019-03-30 10:19:00 +01:00
Florent Kermarrec
f4369c8fb2
bios/main: remove csr functions (not used and only supported by lm32), improve help presentation
2019-03-29 19:40:24 +01:00
Florent Kermarrec
66dffb7071
software/bios: improve readibility, add soc informations
2019-03-29 00:51:16 +01:00
Gabriel L. Somlo
449632e430
soc/interconnect/axi: data/address length cleanup
...
Instead of hard-coding data and address width to 32, assert that
the AXI and Wishbone interfaces have *matching* address and data
widths.
2019-03-27 16:52:52 -04:00
Florent Kermarrec
552b0243b3
soc/interconnect/axi: remove dead code (thanks gsomlo)
2019-03-27 21:15:14 +01:00
enjoy-digital
b682dacdd7
Merge pull request #154 from daveshah1/yosys_xilinx_edif
...
build/xilinx: Update Yosys write_edif parameters
2019-03-22 17:43:40 +01:00
David Shah
57e1ccd5f8
build/xilinx: Update Yosys write_edif parameters
2019-03-22 16:06:52 +00:00
Florent Kermarrec
fd7ed6c1ec
utils/litex_sim: fix main_ram_size
2019-03-16 21:25:02 +01:00
Florent Kermarrec
3f386dad7d
soc_core/get_mem_data: add json support
...
example of json file:
{
"vmlinux.bin": "0x00000000",
"vmlinux.dtb": "0x01000000",
"initramdisk.gz": "0x01002000"
}
2019-03-16 21:23:36 +01:00
Florent Kermarrec
7bc13ba841
build/microsemi/libero_soc: add linux build script support
2019-03-16 09:33:16 +01:00
Florent Kermarrec
7b88980d06
vexriscv: allow user to use an external variant
2019-03-15 18:16:25 +01:00
Florent Kermarrec
b04a756abb
vexriscv/core: fix min variant
2019-03-15 17:49:39 +01:00
Florent Kermarrec
a549f0941b
utils/litex_sim: handle cpu_endianness for rom-init/ram-init
2019-03-13 10:56:09 +01:00
Florent Kermarrec
411bca790a
utils/litex_sim: increase default integrated_main_ram_size to 256MB, automatically boot on main_ram when ram_init is specified
2019-03-13 10:42:10 +01:00
enjoy-digital
7ec3ed4d89
Merge pull request #153 from railnova/fix_utils
...
[fix] utils was omitted when installed from pip
2019-03-07 21:12:00 +01:00
chmousset
aed2e9b4b5
[fix] utils was not installed from pip
2019-03-07 09:40:58 +01:00
Gabriel L. Somlo
b014c7194b
build/lattice/trellis: also generate bitstream in svf format
...
Before being able to program the board (e.g., with openocd), one
would have to convert the bitstream file to .svf using a python
script included with the source trellis distribution. However,the
trellis 'ecppack' utility can also generate .svf bitstream files
directly.
2019-03-06 16:29:18 -05:00
Florent Kermarrec
317dba8314
software/bios/sdram: use specific ERR_DDRPHY_BITSLIP/NMODULES computation
...
In the future, the PHYs should generated these constants.
2019-03-05 18:03:24 +01:00
Florent Kermarrec
7de1fe519a
targets/versa_ecp5: update ECP5DDRPHY on BaseSoC, add EthernetSoC
2019-03-05 13:27:11 +01:00
Florent Kermarrec
ca63db4040
bios/sdram: use burstdet detection for ECP5DDRPHY init
2019-03-05 13:27:06 +01:00
David Shah
ebe8f600e1
lattice/common: Fix tristate buses with Trellis
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-04 10:50:56 +00:00
Florent Kermarrec
935f3a5337
boards/ulx3s: add device selection parameter
...
ULX3S can be populated with LFE5U-45F (default) or LFE5U-85F
2019-03-04 09:40:14 +01:00
Florent Kermarrec
e6f97e08d2
targets/ulx3s: use AsyncResetSynchronizer and derivate sys_clk/sys_clk_ps constraints from clk25
...
Now supported by Trellis/Nextpnr.
2019-03-04 09:27:31 +01:00
Florent Kermarrec
5ef28bdf75
build/lattice/trellis: add package support
2019-03-01 15:20:02 +01:00
Florent Kermarrec
1b34c07da9
build/lattice/trellis: basecfg now integrated in nextpnr
2019-03-01 14:20:00 +01:00
Florent Kermarrec
7e995eb418
boards/targets/ulx3s: allow building with diamond or trellis
2019-03-01 13:59:28 +01:00
Florent Kermarrec
4bf789eab9
soc/software/bios/boot: add vexriscv workaround
...
Flushing icache was working correctly on previous version of Vexriscv, understand
why it's no longer the case.
2019-03-01 09:16:48 +01:00
Florent Kermarrec
1fd81c2882
soc/integration: add initial SoCZynq SoC
2019-02-27 22:39:35 +01:00
Florent Kermarrec
3c527dcbdf
soc/interconnect: add initial axi code with bus definition and AXI2Wishbone
2019-02-27 22:26:57 +01:00
Florent Kermarrec
ed2578799b
test: add test_axi_lite (with test code from soc/interconnect/axi_lite lightly modified)
2019-02-27 22:24:56 +01:00
Florent Kermarrec
4aa07f2ae9
soc/interconnect: rename axi to axi_lite
2019-02-27 22:11:09 +01:00
enjoy-digital
c9f9e237d9
Merge pull request #149 from daveshah1/versa_trellis
...
Add trellis build option to versa_ecp5 and bring trellis support up to date
2019-02-25 19:26:07 +01:00
David Shah
ff7e0fab6a
versa_ecp5: Add option to build with Trellis
2019-02-25 18:02:04 +00:00
David Shah
024b41c5b2
trellis: Add LPF frequency constraints and remove -nomux
2019-02-25 18:01:35 +00:00
Florent Kermarrec
e38dfd99e8
soc/software/sdram: fix compilation on ultrascale
2019-02-25 16:12:21 +01:00
Florent Kermarrec
5f29a12ee7
targets/versa_ecp5: integrate DDR3
2019-02-25 15:27:08 +01:00
Florent Kermarrec
3dd529e40b
soc/software/bios/sdram: add ECP5 support
2019-02-25 14:41:33 +01:00
Florent Kermarrec
2fd6d0e7e1
soc/software/bios/sdram: improve write_level robustness
2019-02-25 14:38:24 +01:00
Florent Kermarrec
36772b75f6
soc/software/bios/sdram: improve sdrlevel readibility
2019-02-25 14:37:31 +01:00
Florent Kermarrec
6a980781d3
soc/software/bios/sdram: add helpers for rst/inc of delays
2019-02-25 14:36:47 +01:00
David Shah
321dd8fcf6
versa_ecp5: Remove negative diff IO pins
...
In Lattice FPGAs only the positive side of differential pairs should
be specified (unlike Xilinx)
These are a warning on Diamond (which trims unused IO) and an error
with Yosys/nextpnr (which doesn't so they conflict when the positive
pin is 'expanded').
Already this is the case for the clock input, this commit performs
the same change for the DDR3 pins.
2019-02-22 12:12:10 +00:00
Florent Kermarrec
c03b1ad13a
platforms/versa_ecp5: add ddram pins
2019-02-20 22:45:19 +01:00
Florent Kermarrec
ff155a474d
soc/tools/remote/comm_uart: be sure to flush in waiting bytes before read and write
2019-02-16 00:08:24 +01:00
Florent Kermarrec
d3ecdd9995
soc/cores/clock: add actual clk_freqs to config
2019-02-14 10:41:27 +01:00
Florent Kermarrec
af52842fbb
soc_sdram: add use_full_memory_we parameter to allow disabling vivado workaround on small l2 caches
2019-02-12 12:12:40 +01:00
Florent Kermarrec
32543430c0
build/lattice/common/LatticeECXTrellisImpl: add support for nbits == 1
2019-02-11 19:41:12 +01:00
Florent Kermarrec
aabf042d38
soc_sdram: don't generate sdram initialization error message when integrated_main_ram is used
2019-02-11 09:23:39 +01:00
Florent Kermarrec
f51ad43607
build/lattice/common: add LatticeiCE40DDROutput
2019-02-07 16:23:55 +01:00
Florent Kermarrec
22ccf9ddf1
platforms/nexys_video: add LPC transceivers pins
2019-02-01 23:39:17 +01:00
Florent Kermarrec
1d9c55888f
build/sim: add jtagremote module (thanks LamdaConcept)
2019-01-30 14:01:19 +01:00
Florent Kermarrec
57b8bdd530
soc/integration/soc_core: allow disabling wishbone timeout
2019-01-29 12:47:11 +01:00
Florent Kermarrec
05dcb5cadc
soc/interconnect/wishbone: increase bus error timeout to 1e6 cycles
2019-01-27 08:28:01 +01:00
Florent Kermarrec
02708d3b0f
boards/platform/kc705: add sfp pins (both tx and rx)
2019-01-23 08:40:47 +01:00
Florent Kermarrec
8344a6a4ef
soc/cores/clock: add USIDELAYCTRL
2019-01-22 12:50:05 +01:00
Florent Kermarrec
7e0dd37616
soc/integration/soc_sdram: round port.data_width/l2_size to nearest power of 2 when it's not the case
...
With ECC configurations, native port data_width is not necessarily a power of 2.
2019-01-22 09:08:35 +01:00
Florent Kermarrec
871b958f85
boards/targets: improve presentation
2019-01-21 10:40:41 +01:00
Florent Kermarrec
a318343afb
boards/platforms/kcu105: add si570_refclk
2019-01-21 10:40:37 +01:00
Florent Kermarrec
48312890e5
boards/platforms/kc705: use vivado as default programmer
2019-01-21 10:40:32 +01:00
Florent Kermarrec
1b23890e0d
soc/cores/clock: allow ClockSignal to be used for clkin
2019-01-16 22:05:52 +01:00
Florent Kermarrec
387ee04130
build/sim/core: fix coverage
2019-01-11 15:01:58 +01:00
Florent Kermarrec
482abf9b43
build/sim/core: set -Wno-BLKANDNBLK (prevent blocking/non-blocking assigns on a same structure in system verilog)
2019-01-11 13:51:15 +01:00
Florent Kermarrec
9c5f654773
build/sim/core: set unroll-count to 256 to prevent Error-BLKLOOPINIT
2019-01-11 13:39:09 +01:00
Florent Kermarrec
f132012de1
build/sim: disable Warning-WIDTH
2019-01-10 16:03:09 +01:00
Florent Kermarrec
7c67bac723
soc/cores/cpu/vexriscv: set default variant to None in add_sources
2019-01-09 10:28:24 +01:00
Florent Kermarrec
648015d78e
soc/cores/cpu/vexriscv: move verilog variant selection to add_sources
2019-01-09 09:19:40 +01:00
Florent Kermarrec
2b5a6f1058
targets/kcu105: use USMMCM
2019-01-08 14:14:28 +01:00
Florent Kermarrec
86e19e6232
targets: pass speedgrade to S7PLL/S7MMCM
2019-01-08 13:50:12 +01:00
Florent Kermarrec
2581a00380
soc/cores/clock: add Xilinx Ultrascale PLL/MMCM
2019-01-08 13:21:53 +01:00
Florent Kermarrec
68e1dfca28
boards: avoid duplicating platforms that can be found in migen/litex-buildenv
...
The platforms that are kept are the ones used for litex development.
2019-01-06 19:01:19 +01:00
Florent Kermarrec
041bf41226
soc/integration/cpu_interface: generate name for Memories in get_csr_header
2019-01-05 10:57:37 +01:00
Florent Kermarrec
9f5d0cef6b
utils/litex_server: allow specify uart_baudrate as float
2019-01-03 10:38:14 +01:00
Florent Kermarrec
2c43f6f7dc
targets/ulx3s: use pll for phase shift, enable refresh, memtest ok
2018-12-28 15:58:28 +01:00
Florent Kermarrec
5ef4d09caa
targets/versa_ecp5: use pll for phase shift, enable refresh, memtest ok
2018-12-28 15:39:20 +01:00
Florent Kermarrec
9c801fbe50
soc/cores/clock/ECP5PLL: add basic phase support
2018-12-28 15:03:12 +01:00
Florent Kermarrec
a7b5b9d212
litex_sim: simplify, change sdram module and enable sdram refresh.
2018-12-27 20:36:50 +01:00
Florent Kermarrec
2deffd8c8a
build/sim/verilator: compile sim just before running and not when building.
2018-12-21 09:59:34 +01:00
Tim Ansell
291843ee76
Merge pull request #144 from mithro/nextpnr-migen-update
...
Integrate latest migen changes for lattice/icestorm.
2018-12-20 11:35:42 -08:00
Tim 'mithro' Ansell
53731b792b
Integrate latest migen changes for lattice/icestorm.
...
Integrated up to 37db6bb52532b6d1c6bc8b724c2e8c6a38546c2a.
2018-12-20 11:33:19 -08:00
Florent Kermarrec
180912a7a3
build/sim: handle verilog $finish and if coverage is enabled, write report at the end of the simulation.
2018-12-20 10:38:40 +01:00
Florent Kermarrec
b6c98cab0d
platforms/kcu105: change internal vref to 0.84v (recommended value for ddr4)
2018-12-19 11:33:32 +01:00
Florent Kermarrec
ebe0d567f8
bios/sdram: only show read delays when they are valid.
2018-12-19 11:19:47 +01:00
Florent Kermarrec
67a2590235
bios/sdram: reduce write leveling scan range
2018-12-19 11:18:19 +01:00
Florent Kermarrec
fe5cef4294
soc/cores/clock: remove return on S7PLL.create_clkout
2018-12-19 09:14:26 +01:00
Florent Kermarrec
eda1a83ea9
platforms/kcu105: set internal vref on ddr4 banks
2018-12-18 21:38:23 +01:00
Florent Kermarrec
a27b5a3be1
update Ultrascale DDRPHY
2018-12-18 11:25:21 +01:00
Tim Ansell
1c1c1bd122
Merge pull request #141 from mithro/xst-fix
...
Fix `-vlgincdir` for xst.
2018-12-17 21:24:15 -08:00
Tim 'mithro' Ansell
8b2abc7e89
Fix `-vlgincdir` for xst.
...
The command line is of the form;
```
-vlgincdir {"path1" "path2"}
```
Fixes the following error;
```
WARNING:Xst:3164 - Option "-vlgincdir" found multiple times in the command line. Only the first occurence is considered.
```
2018-12-17 21:11:14 -08:00
Florent Kermarrec
f8f3683aaa
bios/sdram: reduce scans verbosity on ultrascale
2018-12-17 16:00:44 +01:00
Florent Kermarrec
efce434aa9
bios/sdram: use ddrphy_half_sys8x_taps_read() for KUSDDRPHY
2018-12-17 11:43:21 +01:00
Tim 'mithro' Ansell
22d454efcd
Hack to fix #136 .
2018-12-16 14:40:10 -08:00
Tim Ansell
fa6fef1e15
Merge pull request #135 from mithro/icestorm-ice40up5k
...
Add uwg30 package and up3k part.
2018-12-16 14:04:19 -08:00
Tim 'mithro' Ansell
9481781d1c
Add uwg30 package and up3k part.
2018-12-16 14:03:29 -08:00
Florent Kermarrec
e9f1049200
soc/cores/cpu/vexriscv: add add_debug method for debug variants
2018-12-12 10:01:49 +01:00
Florent Kermarrec
35155e5172
soc/cores/cpu/vexriscv: add support for the new variants.
2018-12-12 09:39:30 +01:00
Florent Kermarrec
2ace45e6f8
soc/cores/cpu/vexriscv: update submodule
2018-12-12 09:38:53 +01:00
Florent Kermarrec
6d6c2b4c45
soc/cores/cpu/lm32: add submodule/rtl to include path (needed for lm32_include.v)
2018-12-12 09:38:10 +01:00
Florent Kermarrec
584fd51c01
build/sim/verilator: add support for plaform.sources, some cleanup
2018-12-12 09:37:24 +01:00
Florent Kermarrec
c9915f89ce
build/microsemi/libero_soc: fix typos
2018-12-12 09:34:43 +01:00
Florent Kermarrec
99578bc68c
gen/sim/core: add args support on Display
2018-12-09 09:46:10 +01:00
Florent Kermarrec
fa260f5b42
gen/fhdl: add simulation Display, Finish support.
...
In some simulation cases, it's easier to add debug traces directly in the code
than in the verilog/Migen testbench. This adds support for verilog $display in
Migen code.
Being able to terminate a simulation from the code is also useful, this also
add support for verilog $finish.
2018-12-09 09:45:17 +01:00
Florent Kermarrec
92a6169d2a
build/sim: add coverage parameter to enable code coverage
2018-12-09 08:10:50 +01:00
Florent Kermarrec
0c687bc29e
soc/interconnect/stream: add support for buffered async fifo
2018-12-08 01:24:08 +01:00
Florent Kermarrec
bf3b4eec34
gen: integrate migen changes
2018-12-04 21:06:51 +01:00
Florent Kermarrec
96527b5a3a
soc/interconnect/stream/gearbox: remove bit reversing by changing words order
2018-11-30 23:12:30 +01:00
Florent Kermarrec
1c8c2426b9
Merge branch 'master' of http://github.com/enjoy-digital/litex
2018-11-27 17:45:07 +01:00
Florent Kermarrec
8887fc24c4
build/xilinx/vivado: disable xpm by default (can be enabled by passing enable_xpm=True to build).
...
Old version of Vivado don't have XPM support and enable it break the build.
Enabling XPM is only useful in some cases, we can do it manually.
2018-11-27 17:42:39 +01:00
enjoy-digital
cc4ba65659
Merge pull request #130 from jfng/master
...
litex_sim: add --trace argument
2018-11-27 17:35:03 +01:00
Florent Kermarrec
ec46beeb47
targets/ulx3s, versa_ecp5: use ECP5PLL
2018-11-27 17:31:53 +01:00
Jean-François Nguyen
71398e0155
litex_sim: add --trace argument
2018-11-27 17:26:32 +01:00
Florent Kermarrec
18048eb454
cores/clock: test and fix ECP5PLL, phase still not implemented.
2018-11-27 17:24:22 +01:00
Florent Kermarrec
20dd95c541
boards/platforms/ulx3s: add gpios 0-3
2018-11-27 14:15:35 +01:00
Florent Kermarrec
909cff1940
bios/sdram: flush l2 cache only when present
2018-11-26 18:37:45 +01:00
Florent Kermarrec
2ad83778bf
bios: allow testing main_ram at init when using an external controller
2018-11-26 15:21:00 +01:00
Florent Kermarrec
cdfe0454bb
build/microsemi/libero_soc: small cleanup
2018-11-26 11:35:06 +01:00
enjoy-digital
4592e3235b
Merge pull request #128 from mithro/small-fix
...
Two small fixes
2018-11-26 09:48:10 +01:00
Tim 'mithro' Ansell
4f565c5179
stream.Endpoint: Pass extra arguments to superclass.
2018-11-25 12:57:11 -08:00
Tim 'mithro' Ansell
3b9e4c4df6
wishbone.SRAM: Support non-32bit wishbone widths.
2018-11-25 12:56:37 -08:00
Florent Kermarrec
515c06219a
cores/clock: add ECP5PLL
2018-11-24 00:47:38 +01:00
Florent Kermarrec
7623b5dd96
soc/interconnect/stream/gearbox: inverse bit order
2018-11-23 18:34:24 +01:00
Florent Kermarrec
d32e393033
soc/cores/spi_flash: add missing endianness parameter
2018-11-23 18:33:53 +01:00
Florent Kermarrec
c954943e02
platforms/avalanche: add IOStandard on ddram pins
2018-11-23 12:47:45 +01:00
Florent Kermarrec
09a1cda943
build/microsemi/libero_soc: associate timings constraints with synthesis/place&route/timing verification
2018-11-23 09:30:13 +01:00
Florent Kermarrec
a98e1ad689
build/microsemi/libero_soc: add additional_timing_constraints
2018-11-23 09:04:42 +01:00
Florent Kermarrec
b166882308
build/microsemi/libero_soc: use die/package/speed from platform.device and add tcl_name helper
2018-11-23 08:26:31 +01:00
Florent Kermarrec
9df75d7d63
platforms/avalanche: add package/speed to platform.device
2018-11-23 08:24:29 +01:00
Florent Kermarrec
953b1f70df
build/microsemi/libero_soc: remove previous impl directory if exists
2018-11-23 08:11:57 +01:00
Florent Kermarrec
18d513a146
build/microsemi/libero_soc: give better names to pdc files: io/fp
2018-11-23 08:03:55 +01:00
Florent Kermarrec
4f092dbe35
build/microsemi/libero_soc: add additional_constraints
2018-11-22 18:40:19 +01:00
Florent Kermarrec
206c9a4697
platforms/avalanche: fix ddram dq7
2018-11-22 18:13:33 +01:00
Florent Kermarrec
f003407776
build/microsemi/libero_soc: add {} around port name.
2018-11-22 17:37:03 +01:00
Florent Kermarrec
beeca856e5
utils/litex_read_verilog: fix generated indent on instance
2018-11-22 17:33:46 +01:00
Florent Kermarrec
1fe7d09fb5
soc/integration/soc_core: add csr_map_update function
2018-11-21 08:39:52 +01:00
William D. Jones
89c702187a
libbase/crt0-picorv32: Add support for .data sections.
2018-11-21 00:13:13 -05:00
Florent Kermarrec
80bdae0e55
build/sim/verilator: add trace parameter to enable tracer
2018-11-20 18:54:22 +01:00
Florent Kermarrec
7359a99bf9
soc_core: convert cpu_type="None" string to None
2018-11-20 17:45:11 +01:00
Florent Kermarrec
5805d63013
build/microsemi/libero_soc: only associate timings constraint to timing check (otherwise we loose io constraints...), use default settings for place & route
2018-11-19 16:36:30 +01:00
Florent Kermarrec
85f7666207
build/microsemi/common: add async reset synchronizer (using DFN1P0)
2018-11-19 15:35:59 +01:00
Florent Kermarrec
e3c6bd5846
build/microsemi/libero_soc: pass timing constraints to synthesis, place & route and timing verification tools
2018-11-19 12:50:07 +01:00
Florent Kermarrec
4c966114f8
build/microsemi/libero_soc: add timing constraints support
2018-11-19 09:40:16 +01:00
Florent Kermarrec
60faae490a
boards/platforms/avalanche: fix swapped serial pins
2018-11-19 08:45:55 +01:00
Florent Kermarrec
52396add5d
boards/platforms/avalanche: rename rst to rst_n (active low reset)
2018-11-19 08:14:46 +01:00
Florent Kermarrec
8e07e1a099
build/microsemi/libero_soc: associate .pdc to place and route tool.
...
For constraint to be applied, we also to associate them with the tool that will use it.
2018-11-19 08:07:36 +01:00
Florent Kermarrec
a5ed42ec68
soc/interconnect/stream: add Gearbox
2018-11-17 17:29:45 +01:00
Florent Kermarrec
a25645afa6
utils: add litex_read_verilog utility
...
generate Migen's modules from verilog files
2018-11-16 16:09:44 +01:00
Florent Kermarrec
a538d36268
create utils directory and move the litex utils to it
2018-11-16 14:37:19 +01:00
Florent Kermarrec
45ec78e93a
build/microsemi/libero_soc: able to generate design script (tcl) and design constraint (pdc) for libero soc / avalanche board.
2018-11-16 12:19:03 +01:00
Florent Kermarrec
4cb6583b4e
build: add microsemi template for polarfire fpgas support
2018-11-15 18:21:41 +01:00
Tim 'mithro' Ansell
b1425ba85f
lattice/icestorm: Add toolchain_path so it doesn't end up kwargs.
...
Fixes the following error;
```
make[1]: Leaving directory `/home/travis/build/mithro/litex-buildenv/build/ice40_hx8k_b_evn_base_lm32.lite/software/stub'
Traceback (most recent call last):
File "./make.py", line 164, in <module>
main()
File "./make.py", line 148, in main
vns = builder.build(**dict(args.build_option))
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/soc/integration/builder.py", line 171, in build
toolchain_path=toolchain_path, **kwargs)
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/soc/integration/soc_core.py", line 389, in build
return self.platform.build(self, *args, **kwargs)
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/build/lattice/platform.py", line 29, in build
return self.toolchain.build(self, *args, **kwargs)
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/build/lattice/icestorm.py", line 139, in build
v_output = platform.get_verilog(fragment, name=build_name, **kwargs)
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/build/lattice/platform.py", line 26, in get_verilog
**kwargs)
File "/home/travis/build/mithro/litex-buildenv/third_party/litex/litex/build/generic_platform.py", line 368, in get_verilog
create_clock_domains=False, **kwargs)
TypeError: convert() got an unexpected keyword argument 'toolchain_path'
```
2018-11-13 16:18:08 -08:00
Florent Kermarrec
af25bf2bc0
soc_core: check for cpu before checking interrupt
2018-11-13 16:17:49 +01:00
Florent Kermarrec
b4bdf2a023
cores/clock/S7: just reset the generated clock, not the PLL/MMCM
2018-11-13 14:47:04 +01:00
Florent Kermarrec
86fd945bc3
bios/main: fix typo on mor1kx
2018-11-13 11:16:06 +01:00
Florent Kermarrec
af95028574
cpu/mor1kx: use clang only for linux variant
2018-11-13 11:09:39 +01:00
Florent Kermarrec
04523bc28a
xilinx/vivado: fix migen merge
2018-11-12 16:31:51 +01:00
Florent Kermarrec
f3343c46fc
platforms: remove versaecp55g_sdram
2018-11-12 12:45:33 +01:00
Florent Kermarrec
58414b1819
build/xilinx/vivado: merge migen change
2018-11-12 12:00:30 +01:00
Florent Kermarrec
a7f17f9915
build: use default toolchain_path on all backend when passed value is None
2018-11-12 11:48:30 +01:00
Florent Kermarrec
eed1d5cb2e
generic_platform: use set for sources
2018-11-12 11:47:39 +01:00
Florent Kermarrec
665fff8390
build: merge more migen changes
2018-11-12 11:26:35 +01:00
Florent Kermarrec
70f48775de
platforms/versa_ecp5: import migen changes
2018-11-12 10:52:28 +01:00
Florent Kermarrec
4ff241b981
targets/ulx3s,versa_ecp5: prjtrellis toolchain renamed to trellis
2018-11-12 10:47:33 +01:00
Florent Kermarrec
cb86728ad1
build/lattice: import changes from migen
2018-11-12 10:46:49 +01:00
Florent Kermarrec
8574c62f75
targets/versa_ecp5: increase sys_clk_freq to 50MHz
2018-11-12 10:12:10 +01:00
Florent Kermarrec
a752dafb14
targets: add versa_ecp5 with sdram (ecp5 soc hat) at 25MHz/no pll
2018-11-12 09:45:59 +01:00
Florent Kermarrec
87c7d23d16
targets/ulx3s: for now revert to 25MHz clock/no pll
2018-11-12 09:44:32 +01:00
Florent Kermarrec
d1baae36a6
platforms/versa_ecp5: add ecp5 soc hat ios
2018-11-12 09:43:31 +01:00
Florent Kermarrec
b3bf1c9517
Merge branch 'master' of http://github.com/enjoy-digital/litex
2018-11-12 08:12:07 +01:00
enjoy-digital
1be6762dfe
Merge pull request #125 from daveshah1/trellis_sdram
...
ecp5 soc hat wip
2018-11-12 08:11:57 +01:00
Florent Kermarrec
425ad755ec
plarforms: rename versa/versaecp55g to versa_ecp3/versa_ecp5
2018-11-12 08:06:22 +01:00
Florent Kermarrec
c57aa545ca
targets/ulx3s: get memtest working by disabling sdram refresh
...
Will need to be fixed...
2018-11-09 18:40:14 +01:00
Florent Kermarrec
9a6447172a
soc/integration/soc_sdram: allow using axi interface with litedram
2018-11-09 15:42:34 +01:00
Florent Kermarrec
416bdb6483
boards/platforms: add avalanche polarfire board ios definition
2018-11-08 18:24:12 +01:00
David Shah
f08f80bed1
working on Versa-5G dram
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-06 14:39:25 +00:00
Florent Kermarrec
fc0d5c3963
bios/sdram: iterate multiple time for write leveling and add vote to eliminate transcients
2018-11-05 18:44:28 +01:00
Florent Kermarrec
09f962fdc4
target/kcu105: add reset button
2018-11-05 18:41:49 +01:00
Florent Kermarrec
169f8d8cb5
boards/platforms/kcu105: fix sdram/dq pin swap
2018-11-05 17:01:42 +01:00
David Shah
d78d5d3e7f
Debugging ULX3S SDRAM
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-05 11:54:22 +00:00
Florent Kermarrec
2624ba48c2
bios/sdram: replace DDR3_MR1 constant with DDRX_MR1
2018-11-05 10:47:25 +01:00
Florent Kermarrec
6be74aa17f
boards/targets: add kcu105
2018-11-05 10:44:50 +01:00
enjoy-digital
93c623251b
Merge pull request #122 from daveshah1/trellis_ulx3s
...
Switch Trellis build to use LPF constraints; working on ULX3S
2018-11-02 19:59:23 +01:00
Jean-François Nguyen
dcbe759b64
build/sim/verilator: don't use --threads when $(THREADS) is unset
2018-11-02 14:22:44 +01:00
Florent Kermarrec
6f38213acc
boards/platforms/kc705: add user_sma_mgt_refclk
2018-11-01 10:52:01 +01:00
enjoy-digital
4cdd679908
Merge pull request #123 from cr1901/prv32-min
...
PicoRV32 Enhancements
2018-11-01 10:45:32 +01:00
William D. Jones
e56f71824d
libbase/crt0-picorv32: Emulate support for a relocatable IRQ vector (hardcoded at synthesis time).
2018-11-01 05:02:04 -04:00
William D. Jones
f32121e0e1
cpu/picorv32: IRQ vector needs to be moved to 16 bytes after the RESET vector.
2018-11-01 02:23:01 -04:00
William D. Jones
77389d27b5
libbase/crt0-picorv32: Ensure BSS is cleared on boot.
2018-11-01 02:18:03 -04:00
Florent Kermarrec
f7969b660a
cores/clock: add with_reset parameter (default to True)
...
In some cases we want to generate the reset externally.
2018-10-31 16:23:23 +01:00
David Shah
0729b3a059
ulx3s: Connect SDRAM clock
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 13:29:35 +00:00
David Shah
8404434956
Fix Trellis build; ULX3S demo boots to BIOS
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 12:27:05 +00:00
David Shah
0c1d8d5993
trellis: Switch to using LPF for constraints
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 11:43:39 +00:00
Florent Kermarrec
445c49400f
boards/platforms/kcu105: add sfp_tx/rx definition
2018-10-31 10:48:48 +01:00
William D. Jones
f69bd877b9
cpu/picorv32: Create minimal variant (disable mul/div insns, most speed optimizations).
2018-10-30 06:00:45 -04:00
William D. Jones
d05fe673a0
cpu/picorv32: Extract picorv32 parameters from Instance constructor to facilitate creating variant CPUs.
2018-10-30 06:00:45 -04:00
Florent Kermarrec
e9d4c882ba
build/lattice/prjtrellis: fix default toolchain_path
2018-10-30 10:28:12 +01:00
Florent Kermarrec
468780c045
soc/cores/spi_flash: add endianness parameter
2018-10-30 10:19:21 +01:00
Florent Kermarrec
6f3131e259
soc/interconnect/stream_packet: use reverse_bytes from litex.gen
2018-10-30 10:16:55 +01:00
Florent Kermarrec
b796853893
gen: add common with reverse_bits/reverse_bytes functions
2018-10-30 10:15:29 +01:00
Florent Kermarrec
71fc34d7b6
boards/targets/ulx3s: reduce l2_size
2018-10-30 10:14:48 +01:00
Florent Kermarrec
75d073f394
build/lattice/prjtrellis: fix typo
2018-10-30 10:14:30 +01:00
Florent Kermarrec
6048a5291c
build/lattice/prjtrellis: modify generated verilog instead of creating a wrapper, handle inouts.
...
nextpnr expects TRELLIS_IO on all ios, it's not possible to ensure that with a wrapper.
We now just modify the generated verilog to insert the io constraints and TRELLIS_IOs.
2018-10-30 08:54:30 +01:00
Florent Kermarrec
2243f628f7
build/lattice/common: fix LatticeECPXPrjTrellisTristateImpl
2018-10-30 08:47:12 +01:00
William D. Jones
f3111e1142
Update vivado.py
...
Fix regression which caused Vivado to not be run at all.
2018-10-29 23:43:32 -04:00
Florent Kermarrec
98fa899692
boards/targets: add ulx3s
2018-10-29 19:24:28 +01:00
Florent Kermarrec
7d779473f1
boards/platforms: add ulx3s
2018-10-29 19:23:59 +01:00
Florent Kermarrec
d9dcad33a4
build/lattice/prjtrellis: add inout support
2018-10-29 19:23:21 +01:00
Florent Kermarrec
091ad799b0
build/lattice/common: add tristate support
2018-10-29 19:22:04 +01:00
Florent Kermarrec
23acefb14e
boards/targets/versaecp55g_prjtrellis: simple.py example working, specific target no longer needed
...
simple.py configuration tested:
python3 simple.py --cpu-type=lm32 --gateware-toolchain=prjtrellis litex.boards.platforms.versaecp55g
python3 simple.py --cpu-type=vexriscv --gateware-toolchain=prjtrellis litex.boards.platforms.versaecp55g
2018-10-29 16:02:25 +01:00
Florent Kermarrec
1097f82283
build/lattice/prjtrellis: set default toolchain_path to "/opt/prjtrellis"
2018-10-29 15:58:54 +01:00
Florent Kermarrec
52917a710e
boards/targets/simple: add gateware-toolchain parameter
2018-10-29 15:56:46 +01:00
Florent Kermarrec
d84083f642
boards/platforms/versaecp55g: use ftdi serial pins
2018-10-29 15:39:51 +01:00
Florent Kermarrec
c05b9ef2ad
build/lattice/prjtrellis: test and fix iowrapper multi-bit signals support
2018-10-29 13:26:29 +01:00
Florent Kermarrec
a8f819fec2
Merge branch 'master' of http://github.com/enjoy-digital/litex
2018-10-29 11:48:10 +01:00
Florent Kermarrec
4eb314a252
boards/targets/versaecp55g: use new iowrapper support, basic led blink and ios working :)
2018-10-29 11:46:03 +01:00
Florent Kermarrec
27ec2a59e2
build/lattice/prjtrellis: generate iowrapper to set constraints and TRELLIS_IO
...
PrjTrellis does not yet have constraint files support, constraints are set
with signal attributes and specific TRELLIS_IO instances are requested. This
iowrapper does this work for us automatically.
Remove this code and replace with a constraint file generation code when
PrjTrellis will have constraint file support.
2018-10-29 11:44:31 +01:00
Florent Kermarrec
c506c9752c
gen/fhdl/verilog: set direction to io signals
2018-10-29 11:41:04 +01:00
Tim 'mithro' Ansell
1cac079efa
litex/build: Always run Vivado.
...
When using Yosys for synthesis, still need Vivado for place and route.
2018-10-29 02:04:44 -07:00
Florent Kermarrec
49dab3b448
build/lattice/prjtrellis: simplify code, remove some workarounds
2018-10-29 09:40:35 +01:00
Florent Kermarrec
a73d9d96b1
build/xilinx/vivado: fix merge issue
2018-10-29 08:26:13 +01:00
Florent Kermarrec
3e189379f9
boards/targets: add versa ecp55g prjtrellis target (experimental)
2018-10-28 19:34:17 +01:00
Florent Kermarrec
a69197d2db
build/lattice: add initial prjtrellis support
2018-10-28 17:51:16 +01:00
Florent Kermarrec
397e3c7682
build/lattice/diamond: use bash on linux
2018-10-28 15:40:52 +01:00
Florent Kermarrec
d029cd243d
build/lattice: improve special_overrides names (vendor_family)
2018-10-28 15:40:10 +01:00
enjoy-digital
b200ce9983
Merge branch 'master' into xilinx+yosys
2018-10-28 14:59:03 +01:00
Tim 'mithro' Ansell
ba0dd5728e
uart: Enable buffering the FIFO.
...
On the iCE40 FPGA, adding buffering allows the SyncFIFO to be placed in
block RAM rather than consuming a large amount of resources.
2018-10-27 16:04:58 -07:00
Florent Kermarrec
e3935b481e
build/sim/verilator: don't use THEADS parameters when threads=1
...
Allow using old (non multi-threaded) version of Verilator
2018-10-27 11:06:34 +02:00
Florent Kermarrec
a44181e716
soc_sdram: update litedram
2018-10-19 18:37:55 +02:00
Florent Kermarrec
ab6a530a24
bios/sdram: s7ddrphy now has bitslip in fabric, show scan for each module/bitslip and remove silent mode
2018-10-18 13:42:51 +02:00
Florent Kermarrec
b8be9545cc
build/xilinx/vivado: enable xpm libraries
2018-10-18 09:25:34 +02:00
Florent Kermarrec
ab8cf3e345
soc/cores/clock: add margin parameter to create_clkout (default = 1%)
2018-10-16 14:57:37 +02:00
Florent Kermarrec
915c2f417a
bios/sdram: improve write/read leveling
...
write_leveling: select last 0 to 1 transition.
read_leveling: do it by module (select best bitslip for each module)
2018-10-10 10:42:56 +02:00
Florent Kermarrec
deffa60324
platforms/kc705: add ddram_dual_rank
2018-10-09 15:39:03 +02:00
Florent Kermarrec
10624c26da
bios/main: handle all types of carriage return (\r, \n, \r\n or \n\r)
2018-10-09 10:06:51 +02:00
enjoy-digital
9f083e9bd3
Merge pull request #116 from stffrdhrn/sim-uart
...
sim: serial: Send '\r\n' instead of just '\n'
2018-10-09 07:32:31 +02:00
Stafford Horne
8877dba7e9
sim: serial: Send '\r\n' instead of just '\n'
...
This fixes an issue when running with the HDMI2USB firmware which
expects \r\n to come from the UART. Since the verilator adapter
is just sending \n commands cannot be executed.
Also, one minor whitespace cleanup. (could remove if needed)
2018-10-09 11:18:11 +09:00
Florent Kermarrec
d187921500
cpu_interface: fix select_triple when only one specified
2018-10-08 17:01:04 +02:00
Florent Kermarrec
3b27d2ae89
soc/integration/cpu_interface: generate error if unable to find any of the cross compilation toolchains
2018-10-06 21:32:38 +02:00
Florent Kermarrec
168b07b9a2
soc_core: add csr range check
2018-10-06 20:55:16 +02:00
Tim 'mithro' Ansell
ace976242e
build.xilinx: Convert attributes to something Yosys understands.
...
Convert keep, dont_touch and async_reg to something Yosys understands.
Write out an EDIF file with the attributes so that Vivado can use them.
(Requires Yosys with commit
115ca57647
)
2018-10-05 12:48:30 -07:00
enjoy-digital
6febb6826c
Merge pull request #112 from cr1901/8k-b-evn
...
build/platforms: Add ice40_hx8k_b_evn from Migen.
2018-10-04 21:12:33 +02:00
Stafford Horne
ff6de429f0
Fix help for or1k builds
...
The help said cpu-type could be mor1kx, which is correct but you must
pass or1k to get mor1kx. Fix the message to properly represent what
needs to be passed to the commandline.
2018-10-04 23:09:49 +09:00
Stafford Horne
dafdb8df72
Fix compiler warnings from GCC 8.1
...
Fix these 2 warnings:
litex/build/sim/core/libdylib.c:42:5: warning: 'strncpy' specified bound 2048 equals destination size
[-Wstringop-truncation]
strncpy(last_err, s, ERR_MAX_SIZE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'set_last_error',
litex/soc/software/libbase/exception.c:28:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
static char emerg_getc()
2018-10-04 23:07:48 +09:00
Florent Kermarrec
2be5205463
build/xilinx/common: update XilinxDDRInputImplS7 and XilinxDDRInputImplKU (from migen)
2018-10-04 08:17:44 +02:00
Tim 'mithro' Ansell
78414c0588
xilinx/viviado: Allow yosys for synthesis.
2018-10-03 21:58:03 -07:00
Tim 'mithro' Ansell
d13ac3b3d5
cpu/mor1kx: Adding verilog include directory.
2018-10-03 21:57:24 -07:00
William D. Jones
9a44f08a3e
build/platforms: Add ice40_hx8k_b_evn from Migen.
2018-10-03 20:53:33 -04:00
Tim 'mithro' Ansell
dc7cd75757
build.xilinx: Run `phys_opt_design` and generate timing report.
...
Makes the flow more similar to migen.
2018-10-03 16:02:43 -07:00
Florent Kermarrec
948527b0fe
cores/cpu: revert vexriscv (it seems there is a regression in last version)
2018-10-02 12:30:11 +02:00
Florent Kermarrec
15bca4535f
targets/sim: fix integrated_main_ram_size when with_sdram
2018-10-02 11:31:08 +02:00