Blog Familial

Aller au contenu | Aller au menu | Aller à la recherche

samedi 15 mars 2008

Extérieur et intérieur

La pose de la véranda est terminée, vues extérieure et intérieure,

(avec un petit coucou de notre ami le lampadaire).


Le séjour est au sud, pour l'instant on peut regarder le mur des voisins et les nuages qui passent,

Plus tard on verra aussi pousser des petits arbres.


A l'intérieur, volutes d'escalier

Le trou du haut est celui des photos de septembre.

Pour la petite histoire, en coulant la dalle, les maçons se sont trompés d'un mètre, en confondant la cote du centre du trou pour celle du bord. Il leur a donc fallu déplacer le trou, mais à cause des poutrelles porteuses il est resté un écart d'une vingtaine de centimètres par rapport à la position prévue initialement.

dimanche 2 mars 2008

Le retour du FPGA

En 2005 j'avais découvert les FPGA, et acheté un petit [Starter Kit Spartan 3 chez Xilinx pour bricoler un peu. Le Starter Kit était fourni avec un environnement de programmation "webpack 6.3i" sous Windows, et en principe il existait aussi des versions Linux (sans quoi je ne l'aurais pas acheté, vous me connaissez).

Donc idée derrière la tête de faire mes bricolages sous Linux plutôt que sous Windows XP, pour des tas de raisons. Ne serait-ce que par exemple, sous linux, on peut faire tourner les logiciels en question (qui sont gourmands en mémoire et puissance de calcul) sur une machine à distance. Et donc qu'on n'est pas obligé de trimballer la machine qui a le logiciel.

Manque de chance, jusque là je n'ai jamais réussi à installer le WebPack sous Linux, principalement parce que j'utilise une distrib Debian (etch), et que leurs machins sont testés uniquement sur Red Hat Entreprise. Bref, depuis un certain temps, le Starter Kit dormait dans sa boite, faute d'envie de trimballer le portable sous windows.

Cette année, l'envie m'est revenue de bricoler : je me suis dit que je pourrais implémenter un clône du Kenbak-1, le premier micro-ordinateur réalisé en 1971 avant l'arrivée du premier microprocesseur. Le starter kit manque un peu de boutons (4 poussoirs et 8 interrupteurs, mais en utilisant un poussoir comme "shift" on devrait y arriver. Ou alors avec un clavier PS/2).

Échec avec Centos 5

Cette semaine, j'ai fait un effort, j'ai installé une Centos 5 exprès, censée cloner une RHE 5 (je n'ai rien contre RedHat, à part que c'est payant), téléchargé le WebPack 9.2i (1,7 Go...), dé-zippé, lancé "./setup", résultat : rien (je vous passe les détails des tentatives).

Succès inattendu avec debian stable (etch)

À tout hasard, suis revenu sous Debian, ai monté la partition contenant le WebPack, et ai lancé "setup". Avec les versions précédentes du WebPack (et de la Debian), ça ne marchait pas, mais là, comme qui rigole, c'est parti dans /opt/Xilinx92i. Exit Centos.

Avertissement, en sélectionnant le strict minimum utile (environnement de travail intégré et support Spartan 3), ça occupe quand même 3,2 Go.

Pour lancer l'environnement intégré, j'ai fait un petit script, activé par une icone sous Gnome :

#! /bin/bash

DIR=/opt/Xilinx92i/
. $DIR/settings.sh  
exec $DIR/bin/lin/ise $*

Transfert des "bitfiles"

Restait le problème du transfert vers le Kit, par le câble parallèle Digilenc, pour lequel Xilinx fournit un module propriétaire, qui ne s'installe pas (évidemment). Pas grave, en cherchant un peu sur Internet, on trouve un programme xc3sprog (http://www.rogerstech.co.uk/xc3sprog/) (par Andrew Rogers) qui fait ça très bien et qui remplacerait donc l'"impact" de Xilinx.

Je l'ai bidouillé un peu (...) Aventures supprimées

(Modif du 9 mars)

La version initiale d'Andrew Rogers a été améliorée sur http://xc3sprog.sourceforge.net, en apportant la possibilité de charger un "bitfile" dans la mémoire flash du Kit, ce qui ne marchait pas sur la version initiale qui ne chargeait que le FPGA. Exemple

$ xc3sprog sw2hex.bit 1     # sans le 1, chargerait le fichier BIT dans le FPGA
Release 0.5
argc: 3
argc: 2
Found Xilinx Parallel Cable III
Erasing....done.
Programming frames 0x0000 to 0x001f....done.
Programming frames 0x0020 to 0x003f....done.
...

Il est un peu bavard, mais ça pourra s'arranger plus tard.

Une toute petite modif personnelle (l'ego, soupir...) du Makefile

install: all
       install -g lp -m 2755 ${PROGS} ${PREFIX}/bin

de façon à ce que les binaires aient le droit d'accéder au câble parallèle.

Commandes en ligne, le retour

Et puis, cerise sur le gâteau, j'ai trouvé les bons paramêtres pour générer un "bitfile" avec des commandes en ligne, ce qui devrait me débarrasser de l'environnement intégré.

Partant d'un mysource.vhd (source VHDL) et mysource.ucf (contraintes, affectation des broches), la commande

 xflow -p xc3s200-4ft256 -synth xst_vhdl.opt \
     -config bitgen.opt \
     -implement fast_runtime.opt \
     mysource

fabrique mysource.bit

Petit problème, ça génére des tas de fichiers intermédiaires dans le répertoire courant, mais on peut lui dire d'aller faire ses cochonneries ailleurs :

 mkdir temp
 cp mysource.ucf temp     # sinon, xflow ne le trouve pas
 xflow -p xc3s200-4ft256 -synth xst_vhdl.opt \
     -config bitgen.opt \
     -implement fast_runtime.opt \
     -wd temp \
     mysource
 cp temp/mysource.bit .

Il y a une doc dans /opt/Xilinx92i/doc/usenglish/de/dev/xflow.pdf