modificare file .vhd

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

modificare file .vhd

Postby bobwolf » 07 Apr 2013, 22:21

salve a tutti

ho messo un titolo che forse, per gli esperti, non ha molto senso
vi spiego cosa vorrei fare:

ho una scheda della MESA , la 7i43 per la precisione, che è usata da EMC2 per pilotare una piccola macchina CNC autocostruita
sulla scheda non è presente nessun programma, ma al momento dell'attivazione di EMC2 questo invia tutti i file necessari attraverso la parallela, poi sempre attraverso questa pilota tutte le periferiche collegate
tutte queste azioni sono configurate in un file di inizializzazione (per farla breve) che va a richiamare i firmware nelle cartelle apposite
questi file sono essenzialmente dei file .BIT con preconfigurate tutte le funzioni che deve svolgere la scheda, come ad esempio generare PWM, acquisire encoder, generare segnali step/dir e molto altro; in più vi è configurato tutto il pinout fisico della scheda con le varie funzioni associate ai piedini

avrei bisogno di fondere insieme due di questi set :mrgreen:

dopo aver spulciato in rete ed aver chiesto anche al forum di EMC2 (in inglese) mi hanno fornito un sito tipo git per caricare i file da dare in pasto al programma per ricompilare i file
ho scaricato la cartella, ho installato webpack9.2 dalla xilinx, ho trovato i file che volevo modificare e li ho aperti con il programma scaricato
questi file sono con estensione .VHD e ci sono anche dei file .UCL e qualcuno con altre estensioni
i .VHD da quello che ho capito dovrebbero essere sia descrittivi delle funzioni sia del pinout della scheda
c'è anche un file nominato firmware.txt che andrebbe modificato per dichiarare quale deve essere compilato

ho provato ad aprire questi file nella finestra principale, ho provato a fare qualche azione tipo importare ed un qualcosa tipo compilare ma non ho visto risultati

per ora non mi interessa studiare a fondo il programma ne ho intenzione di fare programmi ex-novo, ma solo fare delle piccole modifiche per poter usare le schede come mi resta più comodo
mi devo mettere il cuore in pace e mettermi a studiare tutto partendo dalla teoria dei transistor oppure ci sono dei passaggi "semplici" che salto e non riesco a raggiungere il risultato?
ciao
Roberto

è meglio sudare o suprendere?
bobwolf
 
Posts: 8
Joined: 07 Apr 2013, 19:38
Location: Pistoia

Re: modificare file .vhd

Postby deluca » 08 Apr 2013, 07:51

Salve bobwolf e benvenuto nel forum,

avrei bisogno di fondere insieme due di questi set

cosa intendi? (penso di aver capito... ma spiegati meglio)

- i file .bit non sono file relativi ad un firmware, ma sono i cosiddetti file bit-stream che rappresetano la configurazione dell'hardware fpga descritto nei file vhdl.
- il vhdl non è un linguaggio di programmazione ma un linguaggio per la descrizione hardware... Sarebbe quasi come disegnare uno schema elettrico e non come scrivere un firmware x micro.
- se non si hanno le competenze adeguate non è facile effettuare modifiche per cambiare le "funzioni" di una fpga, potresti stravolgere l'hardware danneggiando anche in modo irreparabile l'IO della l'fpga che risulta essere connessa ad altre periferiche.

PS. prima di metterti a smanettare sulle schede ti consiglio di studiare le fpga e il vhdl per non incorrere in brutte sorprese. ;)
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: modificare file .vhd

Postby bobwolf » 08 Apr 2013, 09:43

ciao
grazie per la risposta
ti spiego quello che c'è da fare e come lo fanno (o come l'ho capito):
la scheda ha una fpga che viene "caricata" al momento della partenza del programma
questa scheda ha due bus di I/O da 24 pin
a questi bus possono essere collegati diversi tipi di schede I/O, alcune con ingressi encoder ed uscite pwm, altre I/O semplici,altre per comandare stepper con step/dir
la fpga di suo non può sapere che tipo di interfaccia verso l'esterno ha collegato
per questo il programma di gestione, attraverso i suoi file di configurazione, invia il firmware giusto
questo firmware è composto da una parte di descrizione del tipo di fpga, dalle varie funzioni da eseguire e dall'assegnazione dei pin
se carico il firmware "7i43 SV8" mi ritrovo la scheda che può fare 8 encoder e 8 PWM ; se carico "7i43 SVST4_12" ottengo 4 encoder, 4PWM e 12 step/dir...
se io volessi però implementare 6 encoder , 6PWM e 6 step/dir non esiste il firmware per farlo
per quello dicevo di fondere insieme due set di pin
a quel punto ho chiesto al forum di EMC2 e mi hanno dato questa via per modificare i file
"To do it this way, you need to get the LinuxCNC version of the Hostmot2 sources
http://git.linuxcnc.org/gitweb?p=hostmo ... ;a=summary
Clicking the most recent "snapshot" link should give you all the files
you need, though installing git and cloning that repository might be
better."
ho scaricato la cartella con tutti i file
dentro mi ritrovo molti file .vhd e se guardo dentro quello che descrive SV8 ritrovo le corrispondenze fra funzioni e pin fisici
per la creazione del file compilato credo che funzioni come con i file "include" in C ed a seconda di quello che richiede il pinout viene inserito nel firmware le informazioni che servono
ma non trovo il bandolo della matassa, non so da dove partire... nel file readme c'è specificato che va editato il file "firmware.txt" per far capire al compilatore cosa fare... ma non capisco
se a quel punto creo un file SV9 per esempio con descritti correttamente tutti i pin come faccio a creare un file .BIT che contenga tutte le informazioni del caso da dare in pasto alla scheda

ripeto come sopra:
non voglio creare nuove funzioni o logiche, ma solamente spostare delle funzioni sui piedini che mi interessano
ciao
Roberto

è meglio sudare o suprendere?
bobwolf
 
Posts: 8
Joined: 07 Apr 2013, 19:38
Location: Pistoia

Re: modificare file .vhd

Postby flz47655 » 08 Apr 2013, 10:00

Spostare i pin su una FPGA può distruggerla, i pin sono divisi in gruppi con diverse caratteristiche elettriche e senza studiare molto bene il tutto si può fare molto probabilmente una frittata di FPGA

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: modificare file .vhd

Postby deluca » 08 Apr 2013, 10:41

@bobwolf,

Per <<spostare le "funzioni" sui piedini che ti interessano>> devi modificare il codice vhdl, praticamente lo devi rieditare, non basta spostare blocchi di vhdl.
Devi rieditare le "entity" modificare le "port" dove sono descritte le "funzioni dei pin" e devi soprattutto rivedere le architetture all'interno dei file vhd.

Il file da te menzionato "7i43 SV8" è solo il top del progetto, esso è una piccolissima parte dell'intero progetto SV8.
Il progetto è composto da moltissimi file vhdl, per il pwm, per la decodifica encoder in quadratura, per la trasmissione seriale, per la connessione parallela EPP della scheda al bus ecc ecc. Ora, Visto che dici che sei alle prime armi con il VHDL, non so se potresti essere in grado di fondere i vari file per ottenerne di nuovi..... è una operazione abbastanza complessa per non citare il molto.

PS. è certo che non è mia intenzione scoraggiarti, ma dopo aver visionato i file, ti posso dire che è necessario studiare a fondo la tematica prima di iniziare a metterci le mani.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: modificare file .vhd

Postby bobwolf » 08 Apr 2013, 11:36

ciao
immaginavo che non era una passeggiata
quindi se prendo

Code: Select all
   constant PinDesc : PinDescType :=(
--    Base func  sec unit sec func     sec pin      
      IOPortTag & x"00" & QCountTag & QCountQAPin,      -- I/O 00
      IOPortTag & x"00" & QCountTag & QCountQBPin,    -- I/O 01
      IOPortTag & x"00" & QCountTag & QCountIdxPin,   -- I/O 02


e lo trasformo in

Code: Select all
   constant PinDesc : PinDescType :=(
--    Base func  sec unit sec func     sec pin      
      IOPortTag & x"01" & QCountTag & x"02",      -- I/O 00
      IOPortTag & x"01" & QCountTag & x"01",    -- I/O 01
      IOPortTag & x"00" & QCountTag & x"02",    -- I/O 02


naturalmente queste sono solo le prime righe della parte descrittiva dei pin, è per fare un esempio, non cambio la destinazione delle varie funzioni sul pinout?

mettiamola in un altro modo
in quei file c'è tutto quello che serve per poter ricompilare un firmware già esistente?
ciao
Roberto

è meglio sudare o suprendere?
bobwolf
 
Posts: 8
Joined: 07 Apr 2013, 19:38
Location: Pistoia

Re: modificare file .vhd

Postby deluca » 09 Apr 2013, 21:33

@bob
Da quello che ho potuto visionare, visto che tutti i file sono presenti nelle varie dir, teoricamente dovrebbe essere possibile ricompilare per generare nuovi file-bitstream.

Tutto dipende dal progetto e da come sono allocati i file.vhd... se non hai warning ed errori, la strada per riconfigurare l'fpga è spianata.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: modificare file .vhd

Postby bobwolf » 09 Apr 2013, 21:47

ciao
grazie per l'interessamento

da quello che ho capito comunque tutto quello che c'è scritto nella cartella GIT che hai visto è predisposto per essere usato con LINUX
sulla macchina dove ho LINUX ho provato ad installare webpack9.2 ma l'ho fatto in emulazione windows (wine) e non trovo il modo di installarlo direttamente su linux :?

sul forum di emc2 mi hanno detto che dovrebbe essere la stessa cosa compilare su windows, ma non mi hanno dato altri aiuti

se provo a fare nuovo progetto mi da delle opzioni che non capisco
dici che a quel punto è meglio provare a fare l'istallazione su linux e vedere se come dicono loro nel readme è sufficiente editare il file firmware.txt con i file in uscita che voglio ottenere e tutto è risolto???
ciao
Roberto

è meglio sudare o suprendere?
bobwolf
 
Posts: 8
Joined: 07 Apr 2013, 19:38
Location: Pistoia


Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 2 guests

cron