Bonsoir à tous,
En ce moment je travail sur un picoblaze (kcpsm) et j'aimerais connaitre précisement les X coup d'horloge consommé pour chaque instruction.
J'ai trouvé un code concernant une routine de delay à cette adresse http://www1.hs-bremerhaven.de/kmuell...ts/pblcode.psm
Voici la datasheet de l'IP vhdl ci jointe http://www.xilinx.com/support/docume...tion/ug129.pdfCode:; ************************************************************** ; Software delay routines ; ************************************************************** ; ; ; ;Delay of 1us. ; ;Constant value defines reflects the clock applied to KCPSM3. Every instruction ;executes in 2 clock cycles making the calculation highly predictable. The '6' in ;the following equation even allows for 'CALL delay_1us' instruction in the initiating code. ; ; delay_1us_constant = (clock_rate - 6)/4 Where 'clock_rate' is in MHz ; ;Registers used s0 ; delay_1us: LOAD s0, delay_1us_constant wait_1us: SUB s0, 01 JUMP NZ, wait_1us RETURN ; ;Delay of 40us. ; ;Registers used s0, s1 ; delay_40us: LOAD s1, 28 ;40 x 1us = 40us wait_40us: CALL delay_1us SUB s1, 01 JUMP NZ, wait_40us RETURN ; ; ;Delay of 1ms. ; ;Registers used s0, s1, s2 ; delay_1ms: LOAD s2, 19 ;25 x 40us = 1ms wait_1ms: CALL delay_40us SUB s2, 01 JUMP NZ, wait_1ms RETURN ; ;Delay of 20ms. ; ;Delay of 20ms used during initialisation. ; ;Registers used s0, s1, s2, s3 ; delay_20ms: LOAD s3, 14 ;20 x 1ms = 20ms wait_20ms: CALL delay_1ms SUB s3, 01 JUMP NZ, wait_20ms RETURN ; ;Delay of approximately 1 second. ; ;Registers used s0, s1, s2, s3, s4 ; delay_1s: LOAD s4, 32 ;50 x 20ms = 1000ms wait_1s: CALL delay_20ms SUB s4, 01 JUMP NZ, wait_1s RETURN ; ; ;
A priori c'est un processeur déterministe à 2 coup d'horloge pour chaque instruction mais je me demande quand même ... également pour les appels de labels.
Je ne saisi pas bien l'exemple donné avec le '6' et le '28' qui correspond en fait à 40 µs.
Merci d'avance
-----