Pouvez vous m'aider?
je dois realiser une palette de composants electroniques sous builder c++
orienté simulation logique avec une horloge ,porte NAND,VCC,MASSE,FIL,etc..
Pouvez vous m aider?
merci
Pouvez vous m'aider?
je dois realiser une palette de composants electroniques sous builder c++
orienté simulation logique avec une horloge ,porte NAND,VCC,MASSE,FIL,etc..
Pouvez vous m aider?
merci
Salut !
Deux strates :
- graphique et événementielle
- logique
Si les composants comprennent également des circuits multi fonctions (genre 74LS00, CD4011 pour ne citer qu'eux), prévoir sans doute une classe par strate.
Par exemple, les fonctions logiques peuvent prendre l'apparence d'un automate :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class jFct { public : bool Done; bool Circ; Byte s; __fastcall jFct(); __fastcall ~jFct(); virtual Byte __fastcall S(int N); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class jNand2E : public jFct { jFct *E1; int N1; jFct *E2; int N2; __fastcall jNand2E(); __fastcall ~jNand2E(); Byte __fastcall S(int N); };A noter que le paramètre N ne sert que pour des fonctions à plusieurs sorties (74LS74.... 74LS 93...74LS138...Z80, 65C02, 68000...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Byte __fastcall jNand2E::S(int N) { if(!Done) { if(!Circ) { Circ = true; s = (Byte)((E1->S(N1) & E2->S(N2) & 1) ^ 1); Circ = false; } Done = true; } }
On sait, par exemple, qu'un 74LS00 et un CD4011 auront la même structure interne :
Seules les pins de raccordement seront différents ce qui devrait être géré par la strate graphique (gérant aussi l'inter connection)!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 jNand2E *F1; jNand2E *F2; jNand2E *F3; jNand2E *F4;
etc...
Pour GND et VCC il suffit de faire deux fonctions dérivées de jFct dont la seule fonction sera de renvoyer un état (0 ou 1).
On peut envisager un tri state de valeur 3 (entrée en l'air pour les TTL ou pour les sorties à collecteur ou drain ouvert...)... Le code du nand à 2 entrées est fait en ce sens...
Par contre... on risque quand même une grande complexité avec les connections...
A plus ! A suivre... ?
Partager