enjoy-digital [Fri, 2 Nov 2018 18:59:23 +0000 (19:59 +0100)]
Merge pull request #122 from daveshah1/trellis_ulx3s
Switch Trellis build to use LPF constraints; working on ULX3S
enjoy-digital [Fri, 2 Nov 2018 16:46:04 +0000 (17:46 +0100)]
Merge pull request #124 from jfng/master
build/sim/verilator: don't use --threads when $(THREADS) is unset
Jean-François Nguyen [Fri, 2 Nov 2018 13:22:44 +0000 (14:22 +0100)]
build/sim/verilator: don't use --threads when $(THREADS) is unset
Florent Kermarrec [Thu, 1 Nov 2018 09:52:01 +0000 (10:52 +0100)]
boards/platforms/kc705: add user_sma_mgt_refclk
enjoy-digital [Thu, 1 Nov 2018 09:45:32 +0000 (10:45 +0100)]
Merge pull request #123 from cr1901/prv32-min
PicoRV32 Enhancements
William D. Jones [Thu, 1 Nov 2018 09:02:04 +0000 (05:02 -0400)]
libbase/crt0-picorv32: Emulate support for a relocatable IRQ vector (hardcoded at synthesis time).
William D. Jones [Thu, 1 Nov 2018 06:23:01 +0000 (02:23 -0400)]
cpu/picorv32: IRQ vector needs to be moved to 16 bytes after the RESET vector.
William D. Jones [Thu, 1 Nov 2018 06:18:03 +0000 (02:18 -0400)]
libbase/crt0-picorv32: Ensure BSS is cleared on boot.
Florent Kermarrec [Wed, 31 Oct 2018 15:23:23 +0000 (16:23 +0100)]
cores/clock: add with_reset parameter (default to True)
In some cases we want to generate the reset externally.
David Shah [Wed, 31 Oct 2018 13:29:35 +0000 (13:29 +0000)]
ulx3s: Connect SDRAM clock
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Wed, 31 Oct 2018 12:27:05 +0000 (12:27 +0000)]
Fix Trellis build; ULX3S demo boots to BIOS
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Wed, 31 Oct 2018 11:43:39 +0000 (11:43 +0000)]
trellis: Switch to using LPF for constraints
Signed-off-by: David Shah <dave@ds0.me>
Florent Kermarrec [Wed, 31 Oct 2018 09:48:48 +0000 (10:48 +0100)]
boards/platforms/kcu105: add sfp_tx/rx definition
William D. Jones [Mon, 29 Oct 2018 05:41:02 +0000 (01:41 -0400)]
cpu/picorv32: Create minimal variant (disable mul/div insns, most speed optimizations).
William D. Jones [Mon, 29 Oct 2018 04:59:13 +0000 (00:59 -0400)]
cpu/picorv32: Extract picorv32 parameters from Instance constructor to facilitate creating variant CPUs.
Florent Kermarrec [Tue, 30 Oct 2018 09:28:12 +0000 (10:28 +0100)]
build/lattice/prjtrellis: fix default toolchain_path
Florent Kermarrec [Tue, 30 Oct 2018 09:19:21 +0000 (10:19 +0100)]
soc/cores/spi_flash: add endianness parameter
Florent Kermarrec [Tue, 30 Oct 2018 09:16:55 +0000 (10:16 +0100)]
soc/interconnect/stream_packet: use reverse_bytes from litex.gen
Florent Kermarrec [Tue, 30 Oct 2018 09:15:29 +0000 (10:15 +0100)]
gen: add common with reverse_bits/reverse_bytes functions
Florent Kermarrec [Tue, 30 Oct 2018 09:14:48 +0000 (10:14 +0100)]
boards/targets/ulx3s: reduce l2_size
Florent Kermarrec [Tue, 30 Oct 2018 09:14:30 +0000 (10:14 +0100)]
build/lattice/prjtrellis: fix typo
Florent Kermarrec [Tue, 30 Oct 2018 07:51:23 +0000 (08:51 +0100)]
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.
Florent Kermarrec [Tue, 30 Oct 2018 07:32:24 +0000 (08:32 +0100)]
build/lattice/common: fix LatticeECPXPrjTrellisTristateImpl
Tim Ansell [Tue, 30 Oct 2018 03:54:23 +0000 (20:54 -0700)]
Merge pull request #121 from cr1901/patch-3
Update vivado.py
William D. Jones [Tue, 30 Oct 2018 03:43:32 +0000 (23:43 -0400)]
Update vivado.py
Fix regression which caused Vivado to not be run at all.
Florent Kermarrec [Mon, 29 Oct 2018 18:24:28 +0000 (19:24 +0100)]
boards/targets: add ulx3s
Florent Kermarrec [Mon, 29 Oct 2018 18:23:59 +0000 (19:23 +0100)]
boards/platforms: add ulx3s
Florent Kermarrec [Mon, 29 Oct 2018 18:23:21 +0000 (19:23 +0100)]
build/lattice/prjtrellis: add inout support
Florent Kermarrec [Mon, 29 Oct 2018 18:22:04 +0000 (19:22 +0100)]
build/lattice/common: add tristate support
Florent Kermarrec [Mon, 29 Oct 2018 15:02:25 +0000 (16:02 +0100)]
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
Florent Kermarrec [Mon, 29 Oct 2018 14:58:54 +0000 (15:58 +0100)]
build/lattice/prjtrellis: set default toolchain_path to "/opt/prjtrellis"
Florent Kermarrec [Mon, 29 Oct 2018 14:56:46 +0000 (15:56 +0100)]
boards/targets/simple: add gateware-toolchain parameter
Florent Kermarrec [Mon, 29 Oct 2018 14:39:51 +0000 (15:39 +0100)]
boards/platforms/versaecp55g: use ftdi serial pins
Florent Kermarrec [Mon, 29 Oct 2018 12:26:29 +0000 (13:26 +0100)]
build/lattice/prjtrellis: test and fix iowrapper multi-bit signals support
Florent Kermarrec [Mon, 29 Oct 2018 10:48:10 +0000 (11:48 +0100)]
Merge branch 'master' of github.com/enjoy-digital/litex
Florent Kermarrec [Mon, 29 Oct 2018 10:46:03 +0000 (11:46 +0100)]
boards/targets/versaecp55g: use new iowrapper support, basic led blink and ios working :)
Florent Kermarrec [Mon, 29 Oct 2018 10:44:31 +0000 (11:44 +0100)]
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.
Florent Kermarrec [Mon, 29 Oct 2018 10:41:04 +0000 (11:41 +0100)]
gen/fhdl/verilog: set direction to io signals
Tim Ansell [Mon, 29 Oct 2018 09:08:20 +0000 (02:08 -0700)]
Merge pull request #120 from mithro/master
litex/build: Always run Vivado.
Tim 'mithro' Ansell [Mon, 29 Oct 2018 09:04:44 +0000 (02:04 -0700)]
litex/build: Always run Vivado.
When using Yosys for synthesis, still need Vivado for place and route.
Florent Kermarrec [Mon, 29 Oct 2018 07:49:32 +0000 (08:49 +0100)]
build/lattice/prjtrellis: simplify code, remove some workarounds
Florent Kermarrec [Mon, 29 Oct 2018 07:26:13 +0000 (08:26 +0100)]
build/xilinx/vivado: fix merge issue
Florent Kermarrec [Sun, 28 Oct 2018 16:55:40 +0000 (17:55 +0100)]
boards/targets: add versa ecp55g prjtrellis target (experimental)
Florent Kermarrec [Sun, 28 Oct 2018 16:51:16 +0000 (17:51 +0100)]
build/lattice: add initial prjtrellis support
Florent Kermarrec [Sun, 28 Oct 2018 14:40:52 +0000 (15:40 +0100)]
build/lattice/diamond: use bash on linux
Florent Kermarrec [Sun, 28 Oct 2018 14:40:10 +0000 (15:40 +0100)]
build/lattice: improve special_overrides names (vendor_family)
enjoy-digital [Sun, 28 Oct 2018 14:00:06 +0000 (15:00 +0100)]
Merge pull request #114 from mithro/xilinx+yosys
WIP: Allow Yosys to be used for synthesis with Vivado
enjoy-digital [Sun, 28 Oct 2018 13:59:03 +0000 (14:59 +0100)]
Merge branch 'master' into xilinx+yosys
enjoy-digital [Sun, 28 Oct 2018 07:02:22 +0000 (08:02 +0100)]
Merge pull request #118 from mithro/uart-sync
uart: Enable buffering the FIFO.
Tim 'mithro' Ansell [Sat, 27 Oct 2018 23:02:53 +0000 (16:02 -0700)]
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.
Florent Kermarrec [Sat, 27 Oct 2018 09:06:53 +0000 (11:06 +0200)]
README: improve instructions for litex_sim
Florent Kermarrec [Sat, 27 Oct 2018 09:06:34 +0000 (11:06 +0200)]
build/sim/verilator: don't use THEADS parameters when threads=1
Allow using old (non multi-threaded) version of Verilator
Florent Kermarrec [Fri, 19 Oct 2018 16:37:55 +0000 (18:37 +0200)]
soc_sdram: update litedram
Florent Kermarrec [Thu, 18 Oct 2018 11:42:51 +0000 (13:42 +0200)]
bios/sdram: s7ddrphy now has bitslip in fabric, show scan for each module/bitslip and remove silent mode
Florent Kermarrec [Thu, 18 Oct 2018 07:25:34 +0000 (09:25 +0200)]
build/xilinx/vivado: enable xpm libraries
Florent Kermarrec [Tue, 16 Oct 2018 12:57:37 +0000 (14:57 +0200)]
soc/cores/clock: add margin parameter to create_clkout (default = 1%)
Florent Kermarrec [Wed, 10 Oct 2018 08:42:56 +0000 (10:42 +0200)]
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)
Florent Kermarrec [Tue, 9 Oct 2018 13:39:03 +0000 (15:39 +0200)]
platforms/kc705: add ddram_dual_rank
Florent Kermarrec [Tue, 9 Oct 2018 08:06:32 +0000 (10:06 +0200)]
bios/main: handle all types of carriage return (\r, \n, \r\n or \n\r)
enjoy-digital [Tue, 9 Oct 2018 05:32:31 +0000 (07:32 +0200)]
Merge pull request #116 from stffrdhrn/sim-uart
sim: serial: Send '\r\n' instead of just '\n'
Stafford Horne [Tue, 9 Oct 2018 02:16:05 +0000 (11:16 +0900)]
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)
Florent Kermarrec [Mon, 8 Oct 2018 15:01:04 +0000 (17:01 +0200)]
cpu_interface: fix select_triple when only one specified
Florent Kermarrec [Sat, 6 Oct 2018 19:32:38 +0000 (21:32 +0200)]
soc/integration/cpu_interface: generate error if unable to find any of the cross compilation toolchains
Florent Kermarrec [Sat, 6 Oct 2018 18:55:16 +0000 (20:55 +0200)]
soc_core: add csr range check
Tim 'mithro' Ansell [Fri, 5 Oct 2018 19:48:30 +0000 (12:48 -0700)]
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
https://github.com/YosysHQ/yosys/commit/
115ca576475a2e8d30e63b339ae6a1b5db6906a6)
enjoy-digital [Thu, 4 Oct 2018 19:12:33 +0000 (21:12 +0200)]
Merge pull request #112 from cr1901/8k-b-evn
build/platforms: Add ice40_hx8k_b_evn from Migen.
enjoy-digital [Thu, 4 Oct 2018 14:25:11 +0000 (16:25 +0200)]
Merge pull request #113 from stffrdhrn/litex-trivial
Litex trivial
Stafford Horne [Thu, 4 Oct 2018 14:09:49 +0000 (23:09 +0900)]
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.
Stafford Horne [Thu, 4 Oct 2018 14:07:48 +0000 (23:07 +0900)]
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()
Florent Kermarrec [Thu, 4 Oct 2018 06:17:44 +0000 (08:17 +0200)]
build/xilinx/common: update XilinxDDRInputImplS7 and XilinxDDRInputImplKU (from migen)
Tim 'mithro' Ansell [Thu, 4 Oct 2018 04:58:03 +0000 (21:58 -0700)]
xilinx/viviado: Allow yosys for synthesis.
Tim 'mithro' Ansell [Thu, 4 Oct 2018 04:57:24 +0000 (21:57 -0700)]
cpu/mor1kx: Adding verilog include directory.
William D. Jones [Wed, 3 Oct 2018 22:21:45 +0000 (18:21 -0400)]
build/platforms: Add ice40_hx8k_b_evn from Migen.
Tim 'mithro' Ansell [Wed, 3 Oct 2018 23:02:43 +0000 (16:02 -0700)]
build.xilinx: Run `phys_opt_design` and generate timing report.
Makes the flow more similar to migen.
Florent Kermarrec [Tue, 2 Oct 2018 10:20:32 +0000 (12:20 +0200)]
cores/cpu: revert vexriscv (it seems there is a regression in last version)
Florent Kermarrec [Tue, 2 Oct 2018 09:31:08 +0000 (11:31 +0200)]
targets/sim: fix integrated_main_ram_size when with_sdram
Florent Kermarrec [Mon, 1 Oct 2018 13:38:19 +0000 (15:38 +0200)]
bios/sdram: rewrite write_leveling (simplify and improve robustness)
Florent Kermarrec [Mon, 1 Oct 2018 13:37:34 +0000 (15:37 +0200)]
platforms/genesys2: add eth clock timing constraint
Florent Kermarrec [Fri, 28 Sep 2018 11:02:10 +0000 (13:02 +0200)]
soc/cores/clock: add expose_drp on S7PLL/S7MMCM
enjoy-digital [Tue, 25 Sep 2018 13:32:04 +0000 (15:32 +0200)]
Merge pull request #109 from cr1901/xip-improve
Improve XIP Support
Florent Kermarrec [Tue, 25 Sep 2018 07:31:30 +0000 (09:31 +0200)]
targets: use new clock abstraction on all 7-series targets
Florent Kermarrec [Tue, 25 Sep 2018 07:09:47 +0000 (09:09 +0200)]
soc/cores/clock: different clkin_freq_range for pll and mmcm
Florent Kermarrec [Tue, 25 Sep 2018 07:04:38 +0000 (09:04 +0200)]
soc/cores/clock: different vco_freq_range for pll and mmcm
Florent Kermarrec [Tue, 25 Sep 2018 06:35:50 +0000 (08:35 +0200)]
soc/core/clock: allow selecting buffer type (None, BUFG, BUFR). (default = BUFG)
Florent Kermarrec [Mon, 24 Sep 2018 21:22:59 +0000 (23:22 +0200)]
soc/cores/clock: create specific S7IDELAYCTRL module
Florent Kermarrec [Mon, 24 Sep 2018 21:20:12 +0000 (23:20 +0200)]
soc/cores/clock: add S7MMCM support
Florent Kermarrec [Mon, 24 Sep 2018 20:58:23 +0000 (22:58 +0200)]
soc/cores/clocks/S7PLL: add speedgrade support, default to -1 (slowest)
Florent Kermarrec [Mon, 24 Sep 2018 20:49:30 +0000 (22:49 +0200)]
targets/arty: use new clock abstraction module (compile, untested on board)
Florent Kermarrec [Mon, 24 Sep 2018 18:25:57 +0000 (20:25 +0200)]
soc/cores: init clock abstraction module
William D. Jones [Mon, 24 Sep 2018 18:48:54 +0000 (14:48 -0400)]
Distinguish crt0 variants more clearly, update BIOS to use CTR variant (as it has no .data section).
William D. Jones [Mon, 24 Sep 2018 16:28:45 +0000 (12:28 -0400)]
integration/builder: Create EXECUTE_IN_PLACE Makefile variable to complement COPY_TO_MAIN_RAM.
William D. Jones [Mon, 24 Sep 2018 15:04:57 +0000 (11:04 -0400)]
integration/builder: Add LiteX define to generated variables (to distinguish MiSoC and LiteX).
Florent Kermarrec [Mon, 24 Sep 2018 10:43:29 +0000 (12:43 +0200)]
sim/verilator: add multithread support (default=1)
Florent Kermarrec [Mon, 24 Sep 2018 08:59:32 +0000 (10:59 +0200)]
soc_core: use cpu instead of cpu_or_bridge internally (keep retro-compat for now)
Florent Kermarrec [Mon, 24 Sep 2018 08:58:10 +0000 (10:58 +0200)]
boards/targets: uniformize things between targets
Florent Kermarrec [Mon, 24 Sep 2018 06:01:32 +0000 (08:01 +0200)]
soc_core/get_mem_data: add endianness support and use it in builder/initialize_rom to avoid duplication
Florent Kermarrec [Mon, 24 Sep 2018 00:45:05 +0000 (02:45 +0200)]
cores/cpu: add software informations to cpu and simplify cpu_interface
Florent Kermarrec [Mon, 24 Sep 2018 00:03:30 +0000 (02:03 +0200)]
boards/plarforms: fix issues found while testing simple design on all platforms
Florent Kermarrec [Mon, 24 Sep 2018 00:01:47 +0000 (02:01 +0200)]
test/test_targets: test simple design with all platforms
Florent Kermarrec [Mon, 24 Sep 2018 00:01:15 +0000 (02:01 +0200)]
soc_core: add uart-stub argument