[PYTHON] Installer plusieurs versions de Polyphony à l'aide de venv

Un environnement virtuel Python appelé venv

Vous pouvez utiliser venv pour créer plusieurs environnements Python. Des histoires détaillées sont écrites à divers endroits, veuillez donc les rechercher. je À propos de VIRTUALENV C'était facile à lire.

Il semble que différentes versions de Python puissent également être construites. Ici, je vais installer plusieurs Polyphony (synthèse de haut niveau par Python), qui est l'une des applications Python.

Mon environnement est cygwin + Python 3.4 + tcsh

Installer venv

pip3 install virtualenv Facile!!

Créer un environnement virtuel

Créez avec la commande pyvenv3. Le répertoire sera créé automatiquement.

> pyvenv
pyvenv3    pyvenv-3.4
> pyvenv3 polyphony-0.2.2
> ls
polyphony-0.2.2

[Ajout] pyvenv est obsolète

Puisque pyvenv est obsolète, utilisez venv.

> python3.6 -m venv polyphony-0.2.2
> ls
polyphony-0.2.2/

Le reste est probablement le même.

Exécuter un environnement virtuel

Il y a activate.csh sous bin, alors lancez-le. Les gens Bash exécuteront probablement bin / activate.

> source polyphony-0.2.2/bin/activate.csh
[polyphony-0.2.2] >

Installation de polyphonie-0.2.2

Il peut être installé avec pip3. La destination de l'installation est un environnement virtuel.

[polyphony-0.2.2] > pip3 install polyphony
Collecting polyphony
  Using cached polyphony-0.2.2.tar.gz
Installing collected packages: polyphony
  Running setup.py install for polyphony ... done
Successfully installed polyphony-0.2.2
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[polyphony-0.2.2] >

Faites un peu de polyphonie

Voici le code source de Python.

c_xor.py


from polyphony import testbench

class BitOp:
    def __init__(self, w0, w1, b):
        self.w0 = w0
        self.w1 = w1
        self.b = b

    def eval(self, x0, x1):
        tmp0 = self.w0 * x0
        tmp1 = self.w1 * x1
        tmp = tmp0 + tmp1 + self.b
        if tmp <= 0:
            return 0
        else:
            return 1

def AND(x1, x2):
    op = BitOp(5, 5, -7)
    return op.eval(x1, x2)

def OR(x1, x2):
    op = BitOp(5, 5, -2)
    return op.eval(x1, x2)

def NAND(x1, x2):
    op = BitOp(-5, -5, 7)
    return op.eval(x1, x2)

def XOR(x1, x2):
    AND = BitOp(5, 5, -7)
    OR = BitOp(5, 5, -2)
    NAND = BitOp(-5, -5, 7)
    s1 = NAND.eval(x1, x2)
    s2 = OR.eval(x1, x2)
    y = AND.eval(s1, s2)
    return y

@testbench
def test():
    print(XOR(0, 0))
    print(XOR(1, 0))
    print(XOR(0, 1))
    print(XOR(1, 1))

test()

Faites-le d'abord avec python3

[polyphony-0.2.2] Persimmon:works> python c_xor.py
0
1
1
0

Cela a bien fonctionné. Lançons-le avec la polyphonie. Vous avez créé avec succès le code verilog.

> polyphony c_xor.py
[polyphony-0.2.2] > ls
c_xor.py  polyphony_out.v  polyphony_out_test.v  polyphony_out_XOR.v

Tout ce que vous avez à faire est de le compiler et de l'exécuter avec iverilog. Cela semble bien fonctionner.

> iverilog -I . -W all -o test -s test polyphony_out.v polyphony_out_test.v
> ./test
    0:XOR_0_in_x1=   x, XOR_0_in_x2=   x, XOR_0_out_0=   x
  110:XOR_0_in_x1=   0, XOR_0_in_x2=   0, XOR_0_out_0=   x
  280:XOR_0_in_x1=   0, XOR_0_in_x2=   0, XOR_0_out_0=   0
0
  290:XOR_0_in_x1=   1, XOR_0_in_x2=   0, XOR_0_out_0=   0
  460:XOR_0_in_x1=   1, XOR_0_in_x2=   0, XOR_0_out_0=   1
1
  470:XOR_0_in_x1=   0, XOR_0_in_x2=   1, XOR_0_out_0=   1
1
  650:XOR_0_in_x1=   1, XOR_0_in_x2=   1, XOR_0_out_0=   1
  820:XOR_0_in_x1=   1, XOR_0_in_x2=   1, XOR_0_out_0=   0
0

Installez polyphony-0.3.0 dans un autre environnement

Tout d'abord, créez et exécutez un environnement virtuel

> pyvenv3 polyphony-0.3.0
> source polyphony-0.3.0/bin/activate.csh
[polyphony-0.3.0] > cd polyphony-0.3.0/
[polyphony-0.3.0] >

Installation de polyphonie-0.3.0

Puisqu'il s'agit d'une version en cours de développement, spécifiez une branche depuis github et clonez-la.

[polyphony-0.3.0] > git clone -b 0.3.0 https://github.com/ktok07b6/polyphony/
Cloning into 'polyphony'...
remote: Counting objects: 2202, done.
remote: Compressing objects: 100% (230/230), done.
remote: Total 2202 (delta 121), reused 0 (delta 0), pack-reused 1972
Receiving objects: 100% (2202/2202), 954.49 KiB | 371.00 KiB/s, done.
Resolving deltas: 100% (1512/1512), done.
Checking connectivity... done.
[polyphony-0.3.0] > cd polyphony/
[polyphony-0.3.0] > git branch
* 0.3.0
[polyphony-0.3.0] > ls -l setup.py
-rw-r--r--1 ryos Aucun 481 25 mars 17:01 setup.py
[polyphony-0.3.0] > python3 setup.py install
Capture approximative

ensuite

python3 setup.py install

Si vous pensez que cela fonctionnera, il semble regarder les informations dans l'URL de setup.py. Réécrivez donc setup.py. La partie ajoutée après @.

setup.py


 url='https://github.com/ktok07b6/[email protected]',

Et

[polyphony-0.3.0] > python3 setup.py install

Essayez de courir

Vérifiez si la nouvelle fonction io de 0.3.0 peut être utilisée.

[polyphony-0.3.0] > ./simu.py tests/io/
port01.py      port03.py      protocol01.py  protocol03.py
port02.py      port04.py      protocol02.py
[polyphony-0.3.0] > ./simu.py tests/io/port01.py
    0:p01_start=x, p01_in_valid=x, p01_out_valid=x, p01_out0=   x, p01_in0=   x
   10:p01_start=0, p01_in_valid=0, p01_out_valid=0, p01_out0=   0, p01_in0=   0
  110:p01_start=1, p01_in_valid=0, p01_out_valid=0, p01_out0=   0, p01_in0=   0
wait_rising out_valid
  120:p01_start=1, p01_in_valid=1, p01_out_valid=0, p01_out0=   0, p01_in0=   2
  140:p01_start=1, p01_in_valid=1, p01_out_valid=0, p01_out0=   4, p01_in0=   2
  150:p01_start=1, p01_in_valid=1, p01_out_valid=1, p01_out0=   4, p01_in0=   2
4
  200:finish

Je sens que je peux l'utiliser. Avec cela, nous avons créé plusieurs environnements.

la polyphonie peut également générer un entier 64 bits en modifiant env.py. C'est un peu gênant, mais il est également possible de créer un environnement 64 bits.

Recommended Posts

Installer plusieurs versions de Polyphony à l'aide de venv
Utilisation de plusieurs versions de Python sur Mac OS X (2) Utilisation
Coexistence de plusieurs versions à l'aide de Node.js n
Utilisation de plusieurs versions de Python sur Mac OS X (1) Installation de plusieurs ver
Gérez plusieurs environnements d'exécution à l'aide de Python venv
Comment créer un environnement pour utiliser plusieurs versions de Python sur un Mac
Utiliser plusieurs versions de l'environnement python avec pyenv
[Java] Comment basculer entre plusieurs versions de Java
Héritage multiple de classes
Copie de plusieurs listes
Exemple d'utilisation de lambda
Changer de version lorsque plusieurs versions de java sont incluses dans Linux
Liste des bibliothèques à installer lors de l'installation de Python à l'aide de Pyenv