Code Monkey home page Code Monkey logo

blinky's Introduction

LED to believe

LibreCores

This project aims to provide LED blinking examples for all the FPGA dev boards in the world.

The goal is to provide a quick way to test your new FPGA board and get acquainted with using FuseSoC in your design flow.

Each FPGA board is implemented as a separate FuseSoC target and users are highly encouraged to add support for their any board at their disposal so that we can have a large collection.

How to use

This project is available in the FuseSoC base library, so if you have FuseSoC installed, you likely already have this project as well.

To check if it's available run fusesoc core list and check for a core called fusesoc:utils:blinky.

If it's not there, try to run fusesoc library update to refresh the core libraries and look again.

If it's still not there, or if you want to modify the project, e.g. to add support for an additional board, you can add LED to believe as a new core library with fusesoc library add blinky https://github.com/fusesoc/blinky. LED to believe will now be added as a new library and downloaded to fusesoc_libraries/blinky

To build for your particular board, run fusesoc run --target=<board> fusesoc:utils:blinky where <board> is one of the boards listed in the Board support section below.

Alternatively, run fusesoc core show fusesoc:utils:blinky to find all available targets.

There is also a simulation target available to test the core without any hardware. To use this, run fusesoc run --target=sim fusesoc:utils:blinky.

The simulation target has a number of target-specific configuration parameters that can be set. All target-specific parameters goes on the end of the command line (after the core name).

To list all simulation parameters, run fusesoc run --target=sim fusesoc:utils:blinky --help.

The simulation target depends on the vlog_tb_utils core which is found in another library. If you don't already have the fusesoc-cores library in your workspace, you can add it with fusesoc library add fusesoc-cores https://github.com/fusesoc/fusesoc-cores.

Example: To run four pulses with a simulated clock frequency of 4MHz and creating a VCD file, run fusesoc run --target=sim fusesoc:utils:blinky --pulses=4 --clk_freq_hz=4000000 --vcd.

The default simulator to use is Icarus Verilog, but other simulators can be used by setting the --tool parameter after the run command.

Currently supported simulators for this target are icarus, modelsim and xsim. To use e.g. modelsim run fusesoc run --target=sim --tool=modelsim fusesoc:utils:blinky.

What to do next

That was fun, wasn't it? And did you know that once you have gotten a LED to blink in this way, you are actually 90% of the way already to run a small SoC with a RISC-V CPU on the same board. Maybe your board is already supported? Or maybe you're up to the challenge of adding support for it. All it takes is to create a 16MHz clock and allocate an output pin to connect a UART. For more info, move on to learn about and run SERV, the world's smallest RISC-V CPU

Board support

The following boards are currently supported:

AC701

https://www.xilinx.com/products/boards-and-kits/ek-a7-ac701-g.html

AnalogMax

https://www.arrow.com/en/products/tei0001-03-16-c8/trenz-electronic-gmbh

afp27

http://www.armadeus.org/wiki/index.php?title=APF27

afp51

http://www.armadeus.org/wiki/index.php?title=APF51

Alchitry

Supports the Alchitry Cu, Au, and Au+ boards, plus the Io Element expansion board which can be used by any of the devices. Use the following targets:

  • Cu: alchitry_cu
  • Cu with Io Element: alchitry_cu_io
  • Au: alchitry_au
  • Au+: alchitry_au_plus
  • Au+ with Io Element: alchitry_au_plus_io

All .bin files need to be loaded onto the devices using the Alchitry Loader (which is part of Alchitry Labs).

The cores for the Cu are built using IceStorm, and the cores for the Au and Au+ are built with Xilinx Vivado. Since Vivado does not recognize the devices natively, when building for the Au pass the --setup and --build flags. Otherwise, FuseSoC will fail when trying to load onto the device.

Alhambra II

https://alhambrabits.com/alhambra/

arty_a7_35t/arty_a7_100t

https://digilent.com/shop/arty-a7-artix-7-fpga-development-board/

ax309

http://www.alinx.com/en/index.php/default/content/143.html

bemicro_max10

https://www.arrow.com/en/products/bemicromax10/arrow-development-tools

cmod_a7

This are two variants for this board:

  • 15t has ~10K LUTs. Use --target=cmod_a7_15t
  • 35t has ~20K LUTs. Use --target=cmod_a7_35t

https://digilent.com/reference/programmable-logic/cmod-a7/reference-manual

basys3

https://store.digilentinc.com/basys-3-artix-7-fpga-beginner-board-recommended-for-introductory-users/

c10lp_refkit

https://shop.trenz-electronic.de/en/TEI0009-02-055-8CA-Cyclone-10-LP-RefKit-10CL055-Development-Board-32-MByte-SDRAM-16-MByte-Flash

Chameleon96 (Arrow 96 CV SoC Board)

https://github.com/SoCFPGA-learning/Chameleon96

colorlight_5a75b

https://fr.aliexpress.com/item/32281130824.html

crosslink_nx_evn

https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/CrossLink-NXEvaluationBoard

cyc1000

https://shop.trenz-electronic.de/en/TEI0003-02-CYC1000-with-Cyclone-10-FPGA-8-MByte-SDRAM

Cisco HWIC-3G-CDMA

https://github.com/tomverbeure/cisco-hwic-3g-cdma

Waveshare CoreEP4CE10

https://www.waveshare.com/wiki/CoreEP4CE10

de0_nano

https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=593

de1_soc

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=836

de10_lite

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1021

de10_nano

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=1046

de10_nano_mistral

Build de10_nano bitstream with project mistral

DECA

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=&No=944&PartNo=1

EBAZ4205 'Development' Board

This development board featuring Zynq 7010 was the control card of Ebit E9+ BTC miner.

Note: The Zynq PL on this board doesn't have a reference clock without involving the Zynq PS. To workaround this problem, the onboard 33MHz clock oscillator can be physically bridged to the PL clock input pin. To do this, solder a fine wire from R2340 (the clock output of X8) to the PL clock input on the pad for the missing R1372 near X5.

https://github.com/xjtuecho/EBAZ4205

ecp5_evn

https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/ECP5EvaluationBoard

EP2C5T144 Development Board

http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board

Fomu

https://tomu.im/fomu.html

FPC-III

https://repo.or.cz/fpc-iii.git

GMM-7550

https://www.gmm7550.dev/

Nandland Go Board

https://www.nandland.com/goboard/introduction.html

ice40hx1k_evb

https://www.olimex.com/wiki/ICE40HX1K-EVB

ice40-hx8k_breakout

http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx

iCEBreaker FPGA

https://www.crowdsupply.com/1bitsquared/icebreaker-fpga

iceFUN

https://www.robot-electronics.co.uk/products/fpga/icefun.html

iceWerx

https://www.robot-electronics.co.uk/icewerx.html

lx9_microboard

https://www.avnet.com/shop/us/products/avnet-engineering-services/aes-s6mb-lx9-g-3074457345628965461/

kcu1500

https://www.xilinx.com/products/boards-and-kits/dk-u1-kcu1500-g.html

Machdyne Brot

https://github.com/machdyne/brot

Machdyne Eis

https://github.com/machdyne/eis

Machdyne Kolibri

https://github.com/machdyne/kolibri

Machdyne Konfekt

https://github.com/machdyne/konfekt

Machdyne Kuchen

https://github.com/machdyne/kuchen

Machdyne Minze

https://github.com/machdyne/minze

Machdyne Noir

https://github.com/machdyne/noir

Machdyne Riegel

https://github.com/machdyne/riegel

Machdyne Schoko

https://github.com/machdyne/schoko

machXO2_breakout

https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/MachXO2BreakoutBoard

machXO3_breakout

https://www.latticesemi.com/products/developmentboardsandkits/machxo3lfstarterkit

max10_10m08evk

https://www.intel.com/content/www/us/en/products/details/fpga/development-kits/max/10m08-evaluation-kit.html

max10_10m50evk

https://www.intel.com/content/www/us/en/products/details/fpga/development-kits/max/10m50-evaluation-kit.html

max1000

https://shop.trenz-electronic.de/en/TEI0001-03-08-C8-MAX1000-IoT-Maker-Board-8KLE-8-MByte-RAM

Microsemi Polarfire Evaluation Kit

https://www.microsemi.com/existing-parts/parts/150789

Microsemi Polarfire Splash Kit

https://www.microchip.com/en-us/development-tool/mpf300-splash-kit

MYIR FZ3 - Deep Learning Accelerator Card

http://www.myirtech.com/list.asp?id=630

nexys_2

There are two vairants available for NEXYS 2 board

  • For Nexys 2-500 : Use --target=nexys_2_500
  • For Nexys 2-1200 : Use --target=nexys_2_1200

https://digilent.com/reference/programmable-logic/nexys-2/start

nexys_4

https://reference.digilentinc.com/reference/programmable-logic/nexys-4/start

nexys_a7

https://store.digilentinc.com/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum

nexys_video

https://reference.digilentinc.com/reference/programmable-logic/nexys-video/start

nitefury_ii

https://rhsresearch.com/collections/rhs-public/products/nitefury-xilinx-artix-fpga-kit-in-nvme-ssd-form-factor-2280-key-m https://github.com/RHSResearchLLC/NiteFury-and-LiteFury

opos6ul_sp

http://www.armadeus.org/wiki/index.php?title=OPOS6UL_SP

pipistrello

http://pipistrello.saanlima.com/index.php?title=Welcome_to_Pipistrello

qmtech_5cefa5f23

https://github.com/ChinaQMTECH/QM_CYCLONE_V/tree/master/5CEFA5F23

This example use mistral toolchain

QMTECH Wukong Board Artix-7 XC7A100T & XC7A200T

The Wukong board have two revisions : Artix-7 XC7A100T and Artix-7 XC7A100T-200T . The first revision have the 50 MHz clock on the wrong pin and don't have micro sd.

Targets are Wukong_v1 for revision 1 , Wukong_100t_v2 and Wukong_200t_v2 for revision 2. Those boards can be programmed with openFPGALoader.

RZ-EasyFPGA A2.x

http://fpga.redliquid.pl/

S7 Mini

https://shop.trenz-electronic.de/en/TE0890-01-25-1C-S7-Mini-Fully-Open-Source-Module-with-Xilinx-Spartan-7-7S25-64-MBit-HyperRAM

SoCKit Development Kit

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=816

spartan_edge_accelerator_board

https://wiki.seeedstudio.com/Spartan-Edge-Accelerator-Board/

tang_nano

https://tangnano.sipeed.com/en/

tinyfpga_bx

https://www.crowdsupply.com/tinyfpga/tinyfpga-bx

ultra96_v2

https://www.avnet.com/wps/portal/us/products/avnet-boards/avnet-board-families/ultra96-v2/

Note: There is no on-board clock for Zynq PL. Therefore, in this example PL clock is generated and supplied from Zynq PS in the block design. Block design tcl script is generated on Vivado 2020.2. If you have an other version of Vivado installation, you should just create and export the block design bd_ultra96_v2.tcl with fabric clock PL0 is enabled and made external.

ulx3s_*

https://radiona.org/ulx3s

ULX3S comes in different sizes. The targets ulx3s_45 and ulx3s_85 are defined for different FPGA sizes

Upduino 2

http://www.gnarlygrey.com/

xc6sl9_hseda_eda6.1

http://www.hseda.com/product/xilinx/XC6SLX9COREV1.0/XC6SLX9CORE.htm

zcu102

https://www.xilinx.com/products/boards-and-kits/zcu102.html

zcu106

https://www.xilinx.com/products/boards-and-kits/zcu106.html

zrtech_v2

http://land-boards.com/blwiki/index.php?title=Cyclone_IV_FPGA_EP4CE6E22C8N_Development_Board_USB_V2

Zybo Z7-10 & Zybo Z7-20

https://store.digilentinc.com/zybo-z7-zynq-7000-arm-fpga-soc-development-board/

Zybo Z7 comes with two variants of the Zynq SoC. The targets zybo_z7-10 and zybo_z7-20 are defined for different SoC configurations.

blinky's People

Contributors

9names avatar carlosedp avatar chuckb avatar codepainters avatar daveypocket avatar ddribin avatar gsteiert avatar ihanick avatar infphyny avatar jansenarruda avatar julian-becker avatar kejace avatar kholia avatar laserbenny avatar liambeguin avatar martoni avatar mfischer avatar noxygen avatar olofk avatar paller avatar patrickerich avatar rafaelnp avatar rajesh-s avatar robertwilbrandt avatar seguraeng avatar somhi avatar tomasnoliveira avatar tomverbeure avatar trabucayre avatar tyler-marr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blinky's Issues

Porting blinky, servant, corescore to board Chameleon96

**Brief introduction of the Arrow Chameleon96 board (https://www.96boards.org/product/chameleon96/):
This board is a Cyclone V board (same chip as de10-nano) but FPGA was considered secondary and Novtech who designed the board did not include a direct pin clock into the FPGA fabric...
So in this board to get a clock signal we must use Platform Designer (Qsys) and loan one of the HPS clocks (ARM side) to the FPGA side (This is what Altera call LoanIO pins).

**What is needed to port Fusesoc cores to Chameleon96:
Firstly I need to include a .qsys file but I think this is not suported in Fusesoc yet. I tried with this but gave me error of course because it's not a verilog file.

  • rtl/chameleon96_soc_hps.qsys : {file_type : verilogSource}

Can not build blinky on simulation target

Hello,

I installed fusesoc with

pip3 install --upgrade --user fusesoc

checked the version with

fusesoc --version

which returned "2.3", made a new directory and executed

fusesoc library add blinky https://github.com/fusesoc/blinky

and tried to execute

fusesoc run --target=sim fusesoc:utils:blinky

but got following error message

ERROR: Conflicting requirements:
Requirements: 'fusesoc_utils_blinky == 1.1.1-0' <- 'vlog_tb_utils >= 0-0'
    +fusesoc_utils_blinky-1.1.1-0 was ignored because it depends on missing packages
Requirements: 'fusesoc_utils_blinky == 1.1.1-0'
    Install command rule (+fusesoc_utils_blinky-1.1.1-0)

Failed to resolve dependencies for fusesoc:utils:blinky:1.1.1

while executing

fusesoc core list

returns following

Available cores:

Core                        Cache status  Description
================================================================================
fusesoc:utils:blinky:1.1.1 :      local : <No description>

Did I made a mistake or what happened?

Ubuntu 20.04 doesn't build for `tang_nano`

I've been following these instructions and installed yosys manually using apt (apt install yosys -y) but get this when trying to build the project:

neil@NEIL-LEGION:~$ fusesoc run --target=tang_nano fusesoc:utils:blinky
WARNING: Unknown item board_device_index in section Ise
INFO: Preparing fusesoc:utils:blinky:1.1.1
INFO: Setting up project
INFO: Setting up project
INFO: Setting up project

INFO: Building
yosys -l yosys.log -p 'tcl edalize_yosys_template.tcl'

 /----------------------------------------------------------------------------\
 |                                                                            |
 |  yosys -- Yosys Open SYnthesis Suite                                       |
 |                                                                            |
 |  Copyright (C) 2012 - 2019  Clifford Wolf <[email protected]>           |
 |                                                                            |
 |  Permission to use, copy, modify, and/or distribute this software for any  |
 |  purpose with or without fee is hereby granted, provided that the above    |
 |  copyright notice and this permission notice appear in all copies.         |
 |                                                                            |
 |  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES  |
 |  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF          |
 |  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR   |
 |  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    |
 |  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN     |
 |  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   |
 |  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.            |
 |                                                                            |
 \----------------------------------------------------------------------------/

 Yosys 0.9 (git sha1 1979e0b)


-- Running command `tcl edalize_yosys_template.tcl' --
[TCL: yosys -import] Command name collision: found pre-existing command `cd' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `eval' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `read' -> skip.
[TCL: yosys -import] Command name collision: found pre-existing command `trace' -> skip.

1. Executing Verilog-2005 frontend: ../src/fusesoc_utils_blinky_1.1.1/tang_nano/blinky.v
Parsing Verilog input from `../src/fusesoc_utils_blinky_1.1.1/tang_nano/blinky.v' to AST representation.
Storing AST representation for module `$abstract\top'.
Successfully finished Verilog frontend.

Syntax error in command `synth_gowin -json fusesoc_utils_blinky_1.1.1.json -top top':

    synth_gowin [options]

This command runs synthesis for Gowin FPGAs. This work is experimental.

    -top <module>
        use the specified module as top module (default='top')

    -vout <file>
        write the design to the specified Verilog netlist file. writing of an
        output file is omitted if this parameter is not specified.

    -run <from_label>:<to_label>
        only run the commands between the labels (see below). an empty
        from label is synonymous to 'begin', and empty to label is
        synonymous to the end of the command list.

    -nodffe
        do not use flipflops with CE in output netlist

    -nobram
        do not use BRAM cells in output netlist

    -nodram
        do not use distributed RAM cells in output netlist

    -noflatten
        do not flatten design before synthesis

    -retime
        run 'abc' with -dff option


The following commands are executed by this synthesis command:

    begin:
        read_verilog -lib +/gowin/cells_sim.v
        hierarchy -check -top <top>

    flatten:    (unless -noflatten)
        proc
        flatten
        tribuf -logic
        deminout

    coarse:
        synth -run coarse

    bram:    (skip if -nobram)
        memory_bram -rules +/gowin/bram.txt
        techmap -map +/gowin/brams_map.v -map +/gowin/cells_sim.v

    dram:    (skip if -nodram)
        memory_bram -rules +/gowin/dram.txt
        techmap -map +/gowin/drams_map.v
        determine_init

    fine:
        opt -fast -mux_undef -undriven -fine
        memory_map
        opt -undriven -fine
        techmap -map +/techmap.v -map +/gowin/arith_map.v
        techmap -map +/techmap.v
        abc -dff    (only if -retime)

    map_ffs:
        dffsr2dff
        dff2dffs
        opt_clean
        dff2dffe -direct-match $_DFF_* -direct-match $__DFFS_*
        techmap -map +/gowin/cells_map.v
        opt_expr -mux_undef
        simplemap

    map_luts:
        abc -lut 4
        clean

    map_cells:
        techmap -map +/gowin/cells_map.v
        hilomap -hicell VCC V -locell GND G
        iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O    (unless -noiopads)
        dffinit  -ff DFF Q INIT
        clean

    check:
        hierarchy -check
        stat
        check -noinit

    vout:
        write_verilog -nodec -attr2comment -defparam -renameprefix gen <file-name>

ERROR: Command syntax error: Unknown option or option in arguments.
> synth_gowin -json fusesoc_utils_blinky_1.1.1.json -top top
>             ^
make: *** [Makefile:6: fusesoc_utils_blinky_1.1.1.json] Error 1
ERROR: Failed to build fusesoc:utils:blinky:1.1.1 : '['make']' exited with an error: 2
neil@NEIL-LEGION:~$

In looking into this, the yosys version installed by Aptitude on Ubuntu 20.04 (WSL on Windows 10) doesn't support the -json flag:

neil@NEIL-LEGION:~$ yosys -V
Yosys 0.9 (git sha1 1979e0b)
neil@NEIL-LEGION:~$ yosys --help

Usage: yosys [options] [<infile> [..]]

    -Q
        suppress printing of banner (copyright, disclaimer, version)

    -T
        suppress printing of footer (log hash, version, timing statistics)

    -q
        quiet operation. only write warnings and error messages to console
        use this option twice to also quiet warning messages

    -v <level>
        print log headers up to level <level> to the console. (this
        implies -q for everything except the 'End of script.' message.)

    -t
        annotate all log messages with a time stamp

    -d
        print more detailed timing stats at exit

    -l logfile
        write log messages to the specified file

    -L logfile
        like -l but open log file in line buffered mode

    -o outfile
        write the design to the specified file on exit

    -b backend
        use this backend for the output file specified on the command line

    -f frontend
        use the specified frontend for the input files on the command line

    -H
        print the command list

    -h command
        print the help message for the specified command

    -s scriptfile
        execute the commands in the script file

    -c tcl_scriptfile
        execute the commands in the tcl script file (see 'help tcl' for details)

    -p command
        execute the commands

    -m module_file
        load the specified module (aka plugin)

    -X
        enable tracing of core data structure changes. for debugging

    -M
        will slightly randomize allocated pointer addresses. for debugging

    -A
        will call abort() at the end of the script. for debugging

    -D <macro>[=<value>]
        set the specified Verilog define (via "read -define")

    -P <header_id>[:<filename>]
        dump the design when printing the specified log header to a file.
        yosys_dump_<header_id>.il is used as filename if none is specified.
        Use 'ALL' as <header_id> to dump at every header.

    -W regex
        print a warning for all log messages matching the regex.

    -w regex
        if a warning message matches the regex, it is printed as regular
        message instead.

    -e regex
        if a warning message matches the regex, it is printed as error
        message instead and the tool terminates with a nonzero return code.

    -E <depsfile>
        write a Makefile dependencies file with in- and output file names

    -g
        globally enable debug log messages

    -V
        print version information and exit

The option -S is an shortcut for calling the "synth" command, a default
script for transforming the Verilog input to a gate-level netlist. For example:

    yosys -o output.blif -S input.v

For more complex synthesis jobs it is recommended to use the read_* and write_*
commands in a script file instead of specifying input and output files on the
command line.

When no commands, script files or input files are specified on the command
line, yosys automatically enters the interactive command mode. Use the 'help'
command to get information on the individual commands.

neil@NEIL-LEGION:~$

I'm completely new to FPGA development and the associated toolchains, so could someone please help me figure out how I can build the project in my environment? Thanks!

Error on core-info

When experimenting with the core before add another board I got the folowing error:

Unknown item 'filesets_append in section Target'

Fusesoc version: 1.9.2

LED does not blink, Alhambra board

Hi there,

I am trying to support the blinky example in an Alhambra board. For that I have added a pcf file and the board support in the blinky.core file (here and here), following the tinyfpga_bx as example.

In order to load it in fusesoc this repo, I have used fusesoc library add blinky /path/to/repo command.

I am able to synth the example using fusesoc run --target=alhambra_II fusesoc:utils:blinky command.

The issue is that, once I upload the bin file, it doesn't blink. I have checked the clk input pin and it is fine. The LED I have assigned, once the FPGA is programmed, goes from high-impedance to OFF.

Am I missing something?

Cannot run blinky

Hi!

I wanted to try out fusesoc (since I heard so many great things about it) and got stuck at running blinky :(

I have a PYNQ_Z1 board and it is basically the same as PYNQ_Z2 that is supported already in the blinky project. For some reason, when i try to run it with

$ fusesoc run --target=pynq_z2 fusesoc:utils:blinky

I get

ERROR: No tool was supplied on command line or found in 'fusesoc:utils:blinky' core description

which is weird since PYNQ_Z2 has default_tool defined to vivado.

Then I added the --tool=vivado option

$ fusesoc run --tool=vivado --target=pynq_z2 fusesoc:utils:blinky

but I got another error

ERROR: Failed to determine work root. Could not resolve target

Could you please help me.

build fails with vivado target

B:\fuse>fusesoc run --target=nexys_a7 fusesoc:utils:blinky
←[1;37mINFO: Preparing fusesoc:utils:blinky:0←[0m
Traceback (most recent call last):
File "c:\python37\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "c:\python37\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Python37\Scripts\fusesoc.exe_main
.py", line 9, in
File "c:\python37\lib\site-packages\fusesoc\main.py", line 604, in main
args.func(cm, args)
File "c:\python37\lib\site-packages\fusesoc\main.py", line 262, in run
flags, args.system_name, args.system, args.backendargs, args.build_root)
File "c:\python37\lib\site-packages\fusesoc\main.py", line 339, in run_backend
backend.configure(backendargs)
File "c:\python37\lib\site-packages\edalize\edatool.py", line 103, in configure
self.configure_main()
File "c:\python37\lib\site-packages\edalize\vivado.py", line 70, in configure_main
template_vars)
File "c:\python37\lib\site-packages\edalize\edatool.py", line 237, in render_template
template = self.jinja_env.get_template(os.path.join(template_dir, template_file))
File "c:\python37\lib\site-packages\jinja2\environment.py", line 830, in get_template
return self._load_template(name, self.make_globals(globals))
File "c:\python37\lib\site-packages\jinja2\environment.py", line 804, in _load_template
template = self.loader.load(self, name, globals)
File "c:\python37\lib\site-packages\jinja2\loaders.py", line 113, in load
source, filename, uptodate = self.get_source(environment, name)
File "c:\python37\lib\site-packages\jinja2\loaders.py", line 232, in get_source
pieces = split_template_path(template)
File "c:\python37\lib\site-packages\jinja2\loaders.py", line 31, in split_template_path
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: vivado\vivado-project.tcl.j2

Adding a Verilator simulation

I'd like to add a Verilog simulation to the blinky project, mainly as I prefer to use Verilator over Icarus. Is there an example project I can look at to do this?

Examples do not build / sim / work (?)

I'm expecting this to be a case of PEBKAC, but still.

I tried following the instructions at https://github.com/fusesoc/blinky?tab=readme-ov-file#how-to-use

Here are the results. What am I doing wrong? I also tried to download the blinky source from here, and run in that dir. No impact.

(pyenv) ┬─[f@filmar:~/tmp]─[04:39:45 AM]
╰─>$ fusesoc core list

Available cores:

ERROR: No libraries registered
(pyenv) ┬─[f@filmar:~/tmp]─[04:39:49 AM]
╰─>$ fusesoc library update
(pyenv) ┬─[f@filmar:~/tmp]─[04:39:57 AM]
╰─>$ fusesoc core list

Available cores:

ERROR: No libraries registered
(pyenv) ┬─[f@filmar:~/tmp]─[04:40:02 AM]
╰─>$ fusesoc core show fusesoc:utils:blinky
ERROR: 'fusesoc:utils:blinky' or any of its dependencies requires 'blinky', but this core was not found
(pyenv) ┬─[f@filmar:~/tmp]─[04:40:15 AM]
╰─>$ fusesoc run --target=sim fusesoc:utils:blinky
ERROR: 'fusesoc:utils:blinky' or any of its dependencies requires 'blinky', but this core was not found
(pyenv) ┬─[f@filmar:~/tmp]─[04:40:24 AM]
╰─>$ fusesoc run --target=sim fusesoc:utils:blinky --help
ERROR: 'fusesoc:utils:blinky' or any of its dependencies requires 'blinky', but this core was not found
(pyenv) ┬─[f@filmar:~/tmp]─[04:40:32 AM]
╰─>$ fusesoc run --target=sim fusesoc:utils:blinky --pulses=4 --clk_freq_hz=4000000 --vcd
ERROR: 'fusesoc:utils:blinky' or any of its dependencies requires 'blinky', but this core was not found
(pyenv) ┬─[f@filmar:~/tmp]─[04:40:40 AM]
╰─>$ 

Trouble with "LED to believe" tutorial for Tang Nano target

I tried the LED to believe tutorial in https://github.com/fusesoc/blinky for a Sipeed Tang Nano board with a fresh install of FuseSoc, Yosys, and Apicula with Python 3.9.5 on Linux Mint x86_64.

After running fusesoc core list and finding a core called fusesoc:utils:blinky in the list, I tried to build the project with:
fusesoc run --target=tang_nano fusesoc:utils:blinky

This produced an error message that wasn't helpful to me as someone just getting started with FuseSoC:
ERROR: No tool was supplied on command line or found in 'fusesoc:utils:blinky' core description

I carefully re-checked my installation and ran fusesoc library update as instructed just in case, even though a brand new installation should have been (and was) up to date, but the error persisted. Finally after looking through the repositories and reading the various files, I eventually discovered that there was a tang_nano target in https://github.com/fusesoc/blinky/blob/master/blinky.core that was not present in https://github.com/fusesoc/fusesoc-cores/blob/master/fusesoc_utils/blinky-1.0.core.

The instructions said to install blinky as a new core library, with the command fusesoc library add blinky https://github.com/fusesoc/blinky, "If it's still not there, or if you want to modify the project, e.g. to add support for an additional board," none of which applied in my case. But after running this command (and addressing a separate issue with Edalize) I was able to build and run blinky.

This could be a lot more pleasant for someone just getting started with FuseSoC. Is there a reason why the two blinky cores are not identical, or in any case don't support the same range of targets? If so, could there be clearer instructions for users with boards that require use of the stand-alone blinky core?

How to says : do not configure with impact ?

I integrated several armadeus boards in the blinky project.
These boards are all built with spartan fpga and use ISE toolchain for synthesis.
Constructing bitstream works well with fusesoc commands :

 fusesoc run --target=opos6ul_sp fusesoc:utils:blinky

But end with impact error configurator :

Cable connection failed.
Cable autodetection failed.
ERROR: Failed to run fusesoc:utils:blinky:1.0 : 'impact' exited with an error code

I can't configure armadeus board FPGA with impact, to configure it I have to download bitstream in uboot and launch config command on board.

Then, Is there an option to says : hey do not try to configure the FPGA ?
And get no error.

Cannot run blinky

I am trying to run the simple blinky example and I keep getting the following error:

ERROR: 'fusesoc:utils:blinky' or any of its dependencies requires 'blinky', but this core was not found

What I did was the following:

git clone https://github.com/fusesoc/blinky.git
cd blinky/
fusesoc run --target=sim fusesoc:utils:blinky --help

I read the documentation and some issues in this repo. I also tried the following command and I still get the same error:

fusesoc core show fusesoc:utils:blinky

Is there anything that I am missing here?

Need clarification on board support

Hi,

In the step,

To build for your particular board, run fusesoc run --target= fusesoc:utils:blinky where is one of the boards listed in the Board support section below.

If I'm adding a new board, what should the target be specified as? From earlier in the documentation I am assuming support for new boards are allowed to be added as well. I'm working with a Nexys Video btw.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.