migen | A Python toolbox for building complex digital hardware

 by   m-labs Python Version: 0.9.2 License: Non-SPDX

kandi X-RAY | migen Summary

kandi X-RAY | migen Summary

migen is a Python library. migen has no bugs, it has no vulnerabilities, it has build file available and it has medium support. However migen has a Non-SPDX License. You can install using 'pip install migen' or download it from GitHub, PyPI.

Despite being faster than schematics entry, hardware design with Verilog and VHDL remains tedious and inefficient for several reasons. The event-driven model introduces issues and manual coding that are unnecessary for synchronous circuits, which represent the lion's share of today's logic designs. Counter- intuitive arithmetic rules result in steeper learning curves and provide a fertile ground for subtle bugs in designs. Finally, support for procedural generation of logic (metaprogramming) through "generate" statements is very limited and restricts the ways code can be made generic, reused and organized. To address those issues, we have developed the Migen FHDL library that replaces the event-driven paradigm with the notions of combinatorial and synchronous statements, has arithmetic rules that make integers always behave like mathematical integers, and most importantly allows the design's logic to be constructed by a Python program. This last point enables hardware designers to take advantage of the richness of the Python language - object oriented programming, function parameters, generators, operator overloading, libraries, etc. - to build well organized, reusable and elegant designs. Other Migen libraries are built on FHDL and provide various tools such as a system-on-chip interconnect infrastructure, a dataflow programming system, a more traditional high-level synthesizer that compiles Python routines into state machines with datapaths, and a simulator that allows test benches to be written in Python. See the doc/ folder for more technical information. Migen is designed for Python 3.5. Note that Migen is not spelled MiGen. System-on-chip design based on Migen:
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              migen has a medium active ecosystem.
              It has 1055 star(s) with 188 fork(s). There are 68 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 45 open issues and 81 have been closed. On average issues are closed in 88 days. There are 9 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of migen is 0.9.2

            kandi-Quality Quality

              migen has 0 bugs and 0 code smells.

            kandi-Security Security

              migen has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              migen code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              migen has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              migen releases are not available. You will need to build from source code and install.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              It has 16503 lines of code, 856 functions and 152 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed migen and discovered the below as its top functions. This is intended to give you an instant insight into migen implemented functionality, and help decide if they suit your requirements.
            • Emit verilog
            • Get the name of the signal
            • Return the bits for n
            • Return the length of an integer
            • Build a design document
            • Copy source files to build_dir
            • Make a local path
            • Resolve signal names in constraints
            • Builds the given fragment
            • Transform a fragment
            • Build the design document
            • Convert a file into a conv output
            • Runs the build script
            • Return a traceback
            • Builds the dependency graph
            • Resolve module source code
            • Emits the verilog
            • Finalize a fragment
            • Flash a device
            • Builds the LIGO compiler
            • Create a timeline from a list of events
            • Builds a build
            • Build a VCF file
            • Perform the finalization step
            • Visit a Part node
            • Connects the channel to each of the given slaves
            Get all kandi verified functions for this library.

            migen Key Features

            No Key Features are available at this moment for migen.

            migen Examples and Code Snippets

            No Code Snippets are available at this moment for migen.

            Community Discussions

            QUESTION

            Using migen or chisel HDL languages on pynq FPGA boards
            Asked 2021-Nov-25 at 15:16

            I am currently using the pynq-z2 FPGA eval board manufactured by TUL to design applications. It has a Processor+FPGA SoC Zynq7020 on it. The pynq python package allows us to interact with the PS and PL quite well via jupyter notebooks.

            I wanted to know if we could write the verilog codes for the PL in the new languages like migen 1 and chisel on pynq supported boards. Currently I am writing VHDL/verilog files in Vivado and creating IPs and circuit design in PL.

            More info about migen: https://m-labs.hk/migen/manual/introduction.html

            More info about chisel: https://www.chisel-lang.org/chisel3/docs/introduction.html

            ...

            ANSWER

            Answered 2021-Nov-25 at 15:16

            In short : Yes of course.

            Migen and Chisel generate Verilog backend RTL source for synthesis. And for hard template you can use mechanisms like Blackbox in Chisel.

            You can also Litex which is based on Migen and have lots of core to drive DDR controllers, PCIe, HDMI, ...

            Source https://stackoverflow.com/questions/70110576

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install migen

            You can install using 'pip install migen' or download it from GitHub, PyPI.
            You can use migen like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install migen

          • CLONE
          • HTTPS

            https://github.com/m-labs/migen.git

          • CLI

            gh repo clone m-labs/migen

          • sshUrl

            git@github.com:m-labs/migen.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link