Changes between Version 38 and Version 39 of MethoCourseTp4
- Timestamp:
- Oct 18, 2007, 10:09:07 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MethoCourseTp4
v38 v39 7 7 = A) Objectifs = 8 8 9 Le but de cette séance est de vous apprendre à déboguer le modèle comportemental d'un circuit qui sera réutilisé dans les TP suivants. L'intérêt est doncdouble:9 Le but de cette séance est de vous apprendre double: 10 10 * Vous apprendre, par la pratique, les méthodes de débogage. 11 * Vous inciter à analyser en détail les fonctionnalités du circuit Am2901 .11 * Vous inciter à analyser en détail les fonctionnalités du circuit Am2901 qui sera réutilisé dans les TP suivants. 12 12 13 = B) Débogage des systèmes numériques synchrones=13 = B) Méthode de débogage = 14 14 15 On se place dans une contexte où on utilise une technique de simulation pour valider le comportement du système matériel. 15 On se place dans une contexte où on utilise une technique de simulation pour analyser le comportement 16 du modèle, et détecter d'éventuelles erreurs dans ce modèle. 16 17 La méthode de débogage comporte 5 grandes étapes: 17 18 18 19 1. Créer une situation de dysfonctionnement. 19 Cette étape peut être effectuée de deux manières (en général, elles sont utilisées conjointement). On peut attendre qu'un utilisateur mécontent signale un bogue... mais on s'expose à des manifestations de mauvaise humeur de sa part. Il est donc préférable de prendre les devants en développant différents scénarios de validation fonctionnelleon (ou ''jeux de test''). Le but est alors de maximiser le ''taux de couverture'', en activant le maximum de fonctionnalités du circuit ou du système analysé. 20 Cette étape peut être effectuée de deux manières (en général, elles sont utilisées conjointement). On peut attendre qu'un utilisateur du modèle signale un bogue. 21 Avec cette méthode, on s'expose à des manifestations de mauvaise humeur de la part de l'utilisateur mécontent. On cherche donc à prévenir les problèmes, en développant différents scénarios (ou ''jeux de test''). Le but est alors de maximiser le ''taux de couverture'', en activant le maximum de fonctionnalités du circuit ou du système analysé. 20 22 21 23 1. Identifier un comportement anormal 22 La simulation d'un système soumis à une séquence de stimuli définit une séquence d'événements ordonnés par dates croissantes. Dans un système complexe, il n'est pas possible de vérifier toutes les valeurs de tous les signaux à tous les cycles, et on se contente d'observer certains signaux à certains instants. Par exemple, dans un système intégré sur puce contenant un coeur de processeur exécutant du code binaire stocké dans une mémoire embarquée sur la puce, on commencera par observer les valeurs affichées par le processeur sur un terminal. Dans ces conditions, il peut y avoir un retard important (plusieurs dizaines, voire plusieurs milliers de cycles) entre le moment où apparaissent les premiers symptômes observables du dysfonctionnement (affichage d'une valeur erronée), et le moment ou le système a commencé à dévier de son comportement ''normal''. On commence par vérifier que le dysfonctionnement est reproductible, et qu'en relançant la simulation, on re-observe le même comportement anormal.24 La simulation d'un système soumis à une séquence de stimuli définit une '''séquence d'événements ordonnés par dates croissantes'''. Dans un système complexe, il n'est pas possible de vérifier toutes les valeurs de tous les signaux à tous les cycles, et on se contente d'observer certains signaux à certains instants. Par exemple, dans un système intégré sur puce contenant un coeur de processeur exécutant du code binaire stocké dans une mémoire embarquée sur la puce, on commencera par observer les valeurs affichées par le processeur sur un terminal. Dans ces conditions, il peut y avoir un retard important (plusieurs dizaines, voire plusieurs milliers de cycles) entre le moment où apparaissent les premiers symptômes observables du dysfonctionnement (affichage d'une valeur erronée), et le moment ou le système a commencé à dévier de son comportement ''normal''. Il faut commencer par vérifier que le dysfonctionnement est reproductible, et qu'en relançant la simulation, on re-observe le comportement anormal. 23 25 24 26 1. Remonter à la cause du dysfonctionnement 25 C'est la partie la plus délicate. On sait qu'à une certaine date T1 (en pratique à un certain cycle), le système est dans un état anormal, mais on ne sait généralement pas à partir de quel cycle le système a commencé à ''dérailler''. Il faut donc ''remonter le temps'' pour déterminer la date précise TC à partir de laquelle le système à quitté son fonctionnement normal pour entrer dans un état anormal. Pour cela, il faut commencer par retrouver un état normal du système, à une date T0, la plus tardive possible, mais évidemment antérieure à T1. Quand on a déterminé les deux dates T0 et T1 Il faut analyser - cycle par cycle- le comportement du système entre T0 et T1 pour déterminer l'instant exact le système passe d'un état normal au cycle TC (l'état est défini par les valeurs stockées dans les registres), à un état anormal au cycle TC+1.27 C'est la partie la plus délicate. On sait qu'à une certaine date T1 (en pratique à un certain cycle), le système est dans un état anormal, mais on ne sait généralement pas à partir de quel cycle le système a commencé à ''dérailler''. Il faut donc ''remonter le temps'' pour déterminer la date précise TC à partir de laquelle le système à quitté son fonctionnement normal pour entrer dans un état anormal. Pour cela, il faut commencer par retrouver un état normal du système, à une date T0, la plus tardive possible, mais évidemment antérieure à T1. Quand on a déterminé les deux dates T0 et T1 Il faut analyser - cycle par cycle- le comportement du système entre T0 et T1 pour déterminer l'instant exact le système passe d'un état normal au cycle TC, à un état anormal au cycle TC+1. Rappelons que l'état d'un système synchrone est défini par l'ensemble des valeurs stockées dans les registres internes. 26 28 27 29 1. Analyser la cause du dysfonctionnement