Giter VIP home page Giter VIP logo

amaranth-boards's People

Contributors

awygle avatar cr1901 avatar emilazy avatar esden avatar fatsie avatar frubbl avatar guztech avatar igrr avatar kbeckmann avatar kowalewskijan avatar ktemkin avatar miek avatar neuschaefer avatar nicolas-robin avatar orangecms avatar pftbest avatar ravenslofty avatar rroohhh avatar sbourdeauducq avatar sjolsen avatar stephanvanschaik avatar tdaede avatar tiltmesenpai avatar tpwrules avatar trabucayre avatar twam avatar wanda-phi avatar whitequark avatar wransohoff avatar x44203 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amaranth-boards's Issues

Spork Errors

Building the ideal_spork I came across an interesting error block.

command

python -m ideal_spork --dumpall --force

Errors:

Ideal Spork
20200507 21:28:46 - ERROR - upduino_v2 main - line 32 - ()
20200507 21:28:46 - ERROR - Resource SB_HFOSC#0 does not exist main - line 33 - ()
20200507 21:28:46 - ERROR - de10_lite main - line 32 - ()
20200507 21:28:46 - ERROR - Resource clk50#0 does not exist main - line 33 - ()
20200507 21:28:46 - ERROR - tinyfpga_ax1 main - line 32 - ()
20200507 21:28:46 - ERROR - Can't instantiate abstract class TinyFPGAAX1Platform with abstract methods resources main - line 33 - ()
20200507 21:28:46 - ERROR - tinyfpga_ax2 main - line 32 - ()
20200507 21:28:46 - ERROR - Can't instantiate abstract class TinyFPGAAX2Platform with abstract methods resources main - line 33 - ()
20200507 21:28:46 - ERROR - zturn_lite_z010 main - line 32 - ()
20200507 21:28:46 - ERROR - Platform 'ZTurnLiteZ010Platform' does not define a default clock main - line 33 - ()
20200507 21:28:46 - ERROR - upduino_v1 main - line 32 - ()
20200507 21:28:46 - ERROR - Resource SB_HFOSC#0 does not exist main - line 33 - ()
20200507 21:28:46 - ERROR - zturn_lite_z007s main - line 32 - ()
20200507 21:28:46 - ERROR - Platform 'ZTurnLiteZ007SPlatform' does not define a default clock main - line 33 - ()

Patch can be built if needed.

Digilent Atlys spartan6 board

Issue by Fatsie
Friday Jul 05, 2019 at 09:17 GMT
Originally opened as m-labs/nmigen-boards#15


This is current state for the Digilent Atlys board file. It is not finished but put forward to have feedback to solve some questions. The questions are put as TODO comments in the python code.

I used #4 (Arty A7) as inspiration but changed some things for the ethernet. Some changes: tx_col->col, tx_crs->crs. I'm wondering if we should also call tx_data and rx_data as txd and rxd according to standard.
Other change is that I defined most of the signals defined as clock also with Clock() except for mdc signal. I noticed that it is needed when one actually wants to use one of these input signals as a clock.


Fatsie included the following code: https://github.com/m-labs/nmigen-boards/pull/15/commits

Option to factor out "clk" from "spi_flash" on Lattice ECP5

Issue by HarryHo90sHK
Monday Dec 23, 2019 at 08:22 GMT
Originally opened as m-labs/nmigen-boards#38


According to Section 6.1.2 of an official ECP5 manual, only the on-chip oscillator MCLK is available as the SPI clock when in Master SPI mode by default. To use any user clock as the SPI clock, a USRMCLK Instance must be instantiated and there is no need to request for the clock from Ball U3. Requesting for such clock will lead to an error as reported by @xobs on the nextpnr repo.

Therefore, I would like to suggest modification on memory.py such that there is an option to add the SPI flash resources to a platform (not only ECP5) without the clock. Although this modification has been used to successfully build and flash a bitstream on an ECP5 board (the example was an SPI reader module on my nmigen-stdio fork), I cannot deny that there is room for improvement on my code for this pull request.

I look forward to seeing further comments, thanks.

See also: my pull request on nmigen-stdio for a SPI controller.


HarryHo90sHK included the following code: https://github.com/m-labs/nmigen-boards/pull/38/commits

Handle edge case where the same `Subsignal` uses multiple `Connectors`

Issue by cr1901
Sunday Jul 07, 2019 at 14:35 GMT
Originally opened as m-labs/nmigen-boards#18


Occasionally, it is possible a user will want to add their custom Resource to their boards Connectors that matches the following conditions:

  • A Subsignal of their shiny new Resource has multiple Pins that should be associated with it.
  • The Pins of this Subsignal will be spread out across multiple Connectors.

omigen already handles this case by hardcoding the connector to use into the Pins string, as per this example on the b Subsignal.

What should the equivalent nmigen behavior be?

My Proposal

vga = [
        ("vga_out", 0,
            Subsignal("hsync", PinsN("3", dir="o", conn=("led", 0))),
            Subsignal("vsync", PinsN("4", dir="o", conn=("led", 0))),

            Subsignal("r", Pins("1 2 3", dir="o", conn=("dio", 0))),
            Subsignal("g", Pins("4 5 6", dir="o", conn=("dio", 0))),
            Subsignal("b", Pins("7", dir="o", conn=("dio", 0)),
                           Pins("1", dir="o", conn=("clkio", 0))),
            Attrs(IOSTANDARD="LVCMOS33", SLEW="FAST")
        )
    ]

Add release

Hey, would it be possible to tag a release so that migen-boards can be properly distributed?

Add Alchitry Au board definition

Issue by TiltMeSenpai
Tuesday Jan 14, 2020 at 23:06 GMT
Originally opened as m-labs/nmigen-boards#44


Notes:

  • Alchitry Au requires a loader program from Alchitry. I tried to follow a pattern similar to what nmigen uses to locate Yosys/Vivado but I'm not sure if that's the right approach
  • DDR3 is untested. The pins are copied from the schematic so I may have gotten something wrong there.
  • There's also an io shield for the Au with a few buttons, some 7 segment displays, and a bunch of LED's. I was debating adding a resource for that, similar to how the icebreaker pmod's are defined, but ultimately decided I was gambling whether I'd finish that pin definition before running out of motivation. Let me know if you'd like that pin definition in this PR and I'll try to add it.

TiltMeSenpai included the following code: https://github.com/m-labs/nmigen-boards/pull/44/commits

`python -m nmigen_boards.<board>` should build and program blinky

Issue by whitequark
Tuesday Jun 04, 2019 at 09:55 GMT
Originally opened as m-labs/nmigen-boards#1


It's very important to have an easily available litmus check for a correctly installed and configured toolchain for any particular board. I propose that any board that is run as __main__ should demonstrate that by running a blinky. (Are there any boards without LEDs and what can we do about it?)

This is currently done and tested for:

  • icestick
  • ice40_hx1k_blink_evn
  • tinyfpga_bx

UARTResource flow control signals direction mismatch for ICEStickPlatform

I've noticed that dtr and rts signals of UARTResource are defined as outputs, but on the IceStick they are actually inputs, according to the schematic.

I see two options for fixing this:

  1. Add role argument (dce/dte) to UARTResource, similar to SPIResource; set the direction of the flow control pins based on the role; set correct role for ICEStickPlatform.
  2. Assume that UARTResource is only going to be used with role=="dce", and reverse the direction of flow control pins. This might (?) break some designs.

I can submit a PR for either of the options, would appreciate some guidance which one to choose.

Thanks for maintaining this project!

Factor out resource "sevenseg".

Issue by cr1901
Sunday Jul 07, 2019 at 13:55 GMT
Originally opened as m-labs/nmigen-boards#17


Differences between various 7SDs:

  • Common cathode vs anode?
  • Is decimal point used?
  • Are the digit enable signals one-hot coming out of the FPGA or not?
    • Using a single enable line, where 0 controls one digit, and 1 controls the other seems more
      common when only two digits are present (fairly common setup). Otherwise, one-hot is used.

Potential Subsignal naming scheme:

  • a, b, ... g, dp for decimal point (if present)
  • en{0, 1, 2}
    • How should one-hot vs shared en be handled in naming. Should there be a difference?

Boards using it right now

None! But Mercury will (for the baseboard peripheral that is normally attached to it), and in omigen, the naming scheme was inconsistent. So I want to fix this before it becomes a problem.

DDR pins and *_n signals

Hi,

For some peripherals (eg. DDR memory) there are inverted pins (RAS_N, CAS_N, etc. in DDR3) that are configured as PinsN. The issue with PinsN is that it gets an inverter inserted between the TRELLIS_IO instance (on ECP5 platform) and the .o exposed to the user which prevents the use of DDR primitives (ERROR: ODDRX2F 'ddrphy.U$$19' Q output must be connected only to a top level output).

Assuming this issue isn't vendor-specific, should we declare those resources with the "*_n" naming style and expect the user to do the inversion themselves? Or should we keep it as-is and request the resource as raw IO?

Fix resource numeration to avoid overlapping with PMOD.

Issue by alexhude
Monday Jun 24, 2019 at 12:35 GMT
Originally opened as m-labs/nmigen-boards#8


Currently when you add plat.add_resources(plat.break_off_pmod) there is a build error

NameError: Trying to add (resource user_led 0 (pins o pmod_2:7) (attrs IO_STANDARD=SB_LVCMOS33)), but (resource user_led 0 (pins-n o 11) (attrs IO_STANDA
RD=SB_LVCMOS33)) has the same name and number

It is caused by overlapping resource indices in icebreaker.py board description.
In order to address this issue numeration has changed to be contiguous.
For example, user_led on main board have indices 0 and 1 and PMOD user_led are now assigned to numbers from 2 to 6. Similar adjustments are made to user_ledr, user_ledg and user_btn


alexhude included the following code: https://github.com/m-labs/nmigen-boards/pull/8/commits

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.