%global _empty_manifest_terminate_build 0 Name: python-migen Version: 0.9.2 Release: 1 Summary: Python toolbox for building complex digital hardware License: BSD URL: https://m-labs.hk Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cc/f0/b38382ac821861c193992817e3687e49122d09f130f6a33a7d01a4f01bc1/migen-0.9.2.tar.gz BuildArch: noarch %description ### Migen (Milkymist generator) migen logo #### A Python toolbox for building complex digital hardware 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. #### Quick Links Code repository: https://github.com/m-labs/migen System-on-chip design based on Migen: https://github.com/m-labs/misoc Online documentation: https://m-labs.hk/migen/manual/ #### Quick intro ```python from migen import * from migen.build.platforms import m1 plat = m1.Platform() led = plat.request("user_led") m = Module() counter = Signal(26) m.comb += led.eq(counter[25]) m.sync += counter.eq(counter + 1) plat.build(m) ``` #### License Migen is released under the very permissive two-clause BSD license. Under the terms of this license, you are authorized to use Migen for closed-source proprietary designs. Even though we do not require you to do so, those things are awesome, so please do them if possible: * tell us that you are using Migen * put the Migen logo (doc/migen_logo.svg) on the page of a product using it, with a link to http://m-labs.hk * cite Migen in publications related to research it has helped * send us feedback and suggestions for improvements * send us bug reports when something goes wrong * send us the modifications and improvements you have done to Migen. The use of "git format-patch" is recommended. If your submission is large and complex and/or you are not sure how to proceed, feel free to discuss it on the mailing list or IRC (#m-labs on Freenode) beforehand. See LICENSE file for full copyright and license info. You can contact us on the public mailing list devel [AT] lists.m-labs.hk. "Electricity! It's like magic!" %package -n python3-migen Summary: Python toolbox for building complex digital hardware Provides: python-migen BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-migen ### Migen (Milkymist generator) migen logo #### A Python toolbox for building complex digital hardware 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. #### Quick Links Code repository: https://github.com/m-labs/migen System-on-chip design based on Migen: https://github.com/m-labs/misoc Online documentation: https://m-labs.hk/migen/manual/ #### Quick intro ```python from migen import * from migen.build.platforms import m1 plat = m1.Platform() led = plat.request("user_led") m = Module() counter = Signal(26) m.comb += led.eq(counter[25]) m.sync += counter.eq(counter + 1) plat.build(m) ``` #### License Migen is released under the very permissive two-clause BSD license. Under the terms of this license, you are authorized to use Migen for closed-source proprietary designs. Even though we do not require you to do so, those things are awesome, so please do them if possible: * tell us that you are using Migen * put the Migen logo (doc/migen_logo.svg) on the page of a product using it, with a link to http://m-labs.hk * cite Migen in publications related to research it has helped * send us feedback and suggestions for improvements * send us bug reports when something goes wrong * send us the modifications and improvements you have done to Migen. The use of "git format-patch" is recommended. If your submission is large and complex and/or you are not sure how to proceed, feel free to discuss it on the mailing list or IRC (#m-labs on Freenode) beforehand. See LICENSE file for full copyright and license info. You can contact us on the public mailing list devel [AT] lists.m-labs.hk. "Electricity! It's like magic!" %package help Summary: Development documents and examples for migen Provides: python3-migen-doc %description help ### Migen (Milkymist generator) migen logo #### A Python toolbox for building complex digital hardware 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. #### Quick Links Code repository: https://github.com/m-labs/migen System-on-chip design based on Migen: https://github.com/m-labs/misoc Online documentation: https://m-labs.hk/migen/manual/ #### Quick intro ```python from migen import * from migen.build.platforms import m1 plat = m1.Platform() led = plat.request("user_led") m = Module() counter = Signal(26) m.comb += led.eq(counter[25]) m.sync += counter.eq(counter + 1) plat.build(m) ``` #### License Migen is released under the very permissive two-clause BSD license. Under the terms of this license, you are authorized to use Migen for closed-source proprietary designs. Even though we do not require you to do so, those things are awesome, so please do them if possible: * tell us that you are using Migen * put the Migen logo (doc/migen_logo.svg) on the page of a product using it, with a link to http://m-labs.hk * cite Migen in publications related to research it has helped * send us feedback and suggestions for improvements * send us bug reports when something goes wrong * send us the modifications and improvements you have done to Migen. The use of "git format-patch" is recommended. If your submission is large and complex and/or you are not sure how to proceed, feel free to discuss it on the mailing list or IRC (#m-labs on Freenode) beforehand. See LICENSE file for full copyright and license info. You can contact us on the public mailing list devel [AT] lists.m-labs.hk. "Electricity! It's like magic!" %prep %autosetup -n migen-0.9.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-migen -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 0.9.2-1 - Package Spec generated