Combinational loop in Actel LiberoIDE
Posted: 18 Sep 2013, 11:31
Buongiorno a tutti,
per prima cosa mi scuso con Leonardo e deluca perchè non ho più risposto alle loro domande, è vero che ho fatto altre cose, ma la cortesia di una risposta ci stava...
Il progetto che ho sviluppato con l'azienda per cui lavoro è sostanzialmente un misuratore di profili.
Utilizza un generatore di linea laser collimata, una telecamera lineare e un pò di elettronica (FPGA+microproc +display LCD alfanum. ).
Molto addentro al progetto non posso andare, per ovvi motivi però posso dire che lo utilizziamo come ausilio alla selezione e all'orientamento dei pezzi sui sistemi vibranti di brovind. e che utilizzo le APA075, vecchissime, già il venditore mi ha detto che se cambio lo stampato devo passare a qualcosa di più recente.
Come avevo già detto nella presentazione non sono un programmatore puro, anzi, la mia formazione è prevalentemente Hardware.
Adesso ho un "problemino" su una piccola modifica che ho fatto al progetto.
Un contatore a 8 bit che si attiva quando il pezzo è davanti al sensore controlla quanto tempo il pezzo impiega a transitare. All'interno di un process decido se il tempo è stato superato o no.
Il problema è che se vario un parametro a caso all'interno del process (aumento o diminuisco la soglia del comparatore) parte delle funzioni del progetto cessano di girare.
Ho notato che il pre-layout dice che ci sono dei "combinational loop" e quindi alcune net "It has be broken between pins.."
Che cos'è un combinational loop e che tipo di contromisure si possono prendere per evitarli?
La sezione interessata è costruita con dichiarazioni di componenti (latch, contatori decoder ecc) collegati fra loro da net e non in process.
Capisco che non è facile trasmettere un problema a chi è estraneo al progetto, ma se avete qualche dritta...
Grazie, ciao
per prima cosa mi scuso con Leonardo e deluca perchè non ho più risposto alle loro domande, è vero che ho fatto altre cose, ma la cortesia di una risposta ci stava...
Il progetto che ho sviluppato con l'azienda per cui lavoro è sostanzialmente un misuratore di profili.
Utilizza un generatore di linea laser collimata, una telecamera lineare e un pò di elettronica (FPGA+microproc +display LCD alfanum. ).
Molto addentro al progetto non posso andare, per ovvi motivi però posso dire che lo utilizziamo come ausilio alla selezione e all'orientamento dei pezzi sui sistemi vibranti di brovind. e che utilizzo le APA075, vecchissime, già il venditore mi ha detto che se cambio lo stampato devo passare a qualcosa di più recente.
Come avevo già detto nella presentazione non sono un programmatore puro, anzi, la mia formazione è prevalentemente Hardware.
Adesso ho un "problemino" su una piccola modifica che ho fatto al progetto.
Un contatore a 8 bit che si attiva quando il pezzo è davanti al sensore controlla quanto tempo il pezzo impiega a transitare. All'interno di un process decido se il tempo è stato superato o no.
Il problema è che se vario un parametro a caso all'interno del process (aumento o diminuisco la soglia del comparatore) parte delle funzioni del progetto cessano di girare.
Ho notato che il pre-layout dice che ci sono dei "combinational loop" e quindi alcune net "It has be broken between pins.."
Che cos'è un combinational loop e che tipo di contromisure si possono prendere per evitarli?
La sezione interessata è costruita con dichiarazioni di componenti (latch, contatori decoder ecc) collegati fra loro da net e non in process.
Capisco che non è facile trasmettere un problema a chi è estraneo al progetto, ma se avete qualche dritta...
Grazie, ciao