ModelSim tcl expression

E

echo47

Guest
Dans ma Testbench ModelSim, je tente de conduire un bus 16-bit avec les résultats d'une tcl expression.Par exemple:

vigueur mybus [expr int (10000 * sin (4,0))]

ModelSim se plaint de ce que -7568 est inacceptable.Eh oui, "forcer"
s'attend à un format tel que -16 'd7568 ou 1110001001110000.Que dois-je ajouter à mon expression nécessaire de faire la conversion de format?

 
Salut,

Mai, vous pouvez soit utiliser la commande concat dans une macro:

définir un "16'd"
série b int (10000 * sin (4,0))
if [expr $ b> 0]
then (set c [concat $ a $ b]) else (set c [concat - $ a [expr abs ($ b)]])
vigueur my_bus $ c<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 
However, as far as I know, there are many ways for generating a sine wave.

Sage réponse, et je ne le comprends pas du tout, parce que je sais un tout petit de Tcl (OK! Encore après des années et des années!)
Toutefois, pour autant que je sache, il existe de nombreux moyens pour générer une onde sinusoïdale.Il suffit de générer les coefficients d'un programme en C (pour une période d'impulsion) et de les mettre tous dans un fichier, et le reste est d'écrire un simple Verilog, VHDL code pour lire le fichier, et de conduire le bus.<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />
 
Salut mami_hacky

Je suis d'accord avec vous, je préfère générer le fichier texte avec les valeurs de stimuli.
Et parce que je ne
suis pas un programmeur C, j'utilise MS Excel pour générer mes valeurs

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Cool" border="0" />
 
En fait, tcl est très puissant.Vous pouvez obtenir ce que vous voulez par:
vigueur mybus [format "16 #% x" [expr int (10000 * sin (4 ))]];

 

Welcome to EDABoard.com

Sponsor

Back
Top