Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| materiels:pld [2022/08/11 09:33] – [4. Programmation] phil | materiels:pld [2025/06/19 19:24] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| ===== Hardware - PLD, CPLD ===== | ===== Hardware - PLD, CPLD ===== | ||
| - | [Mise à jour le 10/8/2022] | + | [Mise à jour le 11/8/2022] |
| * **Ressources** | * **Ressources** | ||
| * < | * < | ||
| + | * < | ||
| + | |||
| + | \\ | ||
| ==== 1. Définition ==== | ==== 1. Définition ==== | ||
| - | <callout type=" | + | <callout type=" |
| - | + | ||
| + | \\ | ||
| ==== 2. Classification ==== | ==== 2. Classification ==== | ||
| {{ : | {{ : | ||
| Ligne 21: | Ligne 26: | ||
| * **PAL** (programmable array logic, réseau logique programmable) ; | * **PAL** (programmable array logic, réseau logique programmable) ; | ||
| * **PLA** (programmable logic array, réseau logique programmable). | * **PLA** (programmable logic array, réseau logique programmable). | ||
| + | |||
| + | \\ | ||
| ==== 3. Organisation ==== | ==== 3. Organisation ==== | ||
| Ligne 33: | Ligne 40: | ||
| * **CPLD** | * **CPLD** | ||
| {{ : | {{ : | ||
| + | |||
| + | \\ | ||
| ==== 4. Programmation ==== | ==== 4. Programmation ==== | ||
| Ligne 43: | Ligne 52: | ||
| <callout type=" | <callout type=" | ||
| + | {{ : | ||
| // Code VHDL // d'un comparateur 1 bit | // Code VHDL // d'un comparateur 1 bit | ||
| * **Description structurelle** | * **Description structurelle** | ||
| Ligne 53: | Ligne 63: | ||
| -- Description de l' | -- Description de l' | ||
| - | entity | + | entity |
| A,B : IN STD_LOGIC; | A,B : IN STD_LOGIC; | ||
| S : OUT STD_LOGIC; | S : OUT STD_LOGIC; | ||
| - | end COMPARATEUR; | + | end COMPARATEUR1bit; |
| - | -- Description structurelle | + | -- Description structurelle |
| - | architecture EQU_LOG of COMPARATEUR | + | architecture EQU_LOG of COMPARATEUR1bit |
| begin | begin | ||
| S <= not(A xor B); | S <= not(A xor B); | ||
| Ligne 68: | Ligne 78: | ||
| <code vhdl *.vhdl> | <code vhdl *.vhdl> | ||
| -- Seule la partie description du code ci-dessus est modifiée | -- Seule la partie description du code ci-dessus est modifiée | ||
| - | architecture COMPORT of COMPARATEUR | + | architecture COMPORT of COMPARATEUR1bit |
| begin | begin | ||
| S <= ' | S <= ' | ||
| end COMPORT; | end COMPORT; | ||
| </ | </ | ||
| + | |||
| + | {{ : | ||
| + | // Code VHDL // d'un comparateur 2 bits | ||
| + | * **Description structurelle** | ||
| + | |||
| + | <code vhdl *.vhdl> | ||
| + | --Importation des bibliothèques | ||
| + | library IEEE; | ||
| + | use IEEE.std_logic_1164.all; | ||
| + | use IEEE.numeric_std.all; | ||
| + | |||
| + | -- Description de l' | ||
| + | entity COMPARATEUR2bits is port( | ||
| + | A,B : IN STD_LOGIC_VECTOR (1 dowto 0); -- A et B sont des mots de 2bits : A = A1A0 et B = B1B0 | ||
| + | S : OUT STD_LOGIC; | ||
| + | end COMPARATEUR2bits; | ||
| + | |||
| + | -- Description structurelle | ||
| + | architecture EQU_LOG of COMPARATEUR2bits | ||
| + | begin | ||
| + | S <= ( not(A(1)) and not(A(0)) and not(B(1)) and not(B(0))) | ||
| + | or (not(A(1)) and A(0) and not(B(1)) and B(0)) | ||
| + | or (A(1) and not(A(0)) and B(1) and not(B(0))) | ||
| + | or (A(1) and A(0) and B(1) and B(0)); | ||
| + | end EQU_LOG; | ||
| + | </ | ||
| + | |||
| + | * ** Description fonctionnelle** | ||
| + | <code vhdl *.vhdl> | ||
| + | -- Seule la partie description du code ci-dessus est modifiée | ||
| + | architecture COMPORT of COMPARATEUR2bits | ||
| + | begin | ||
| + | S <= ' | ||
| + | end COMPORT; | ||
| + | </ | ||
| + | |||
| + | <callout type=" | ||
| + | |||
| + | \\ | ||
| ==== 5. Utilisation ==== | ==== 5. Utilisation ==== | ||
| Pour de **moyennes séries**, les composants programmables sont en général préférés aux **ASIC**. Les PLD peuvent être **programmés par l’utilisateur** (bureau d’étude, chaîne d’assemblage) alors que les ASIC qui sont configurés lors de leur fabrication (ils ne peuvent être que simulés par le bureau d’étude) sont réservés à des productions de très grande série ne serait-ce qu’en raison de leur coût de développement élevé. | Pour de **moyennes séries**, les composants programmables sont en général préférés aux **ASIC**. Les PLD peuvent être **programmés par l’utilisateur** (bureau d’étude, chaîne d’assemblage) alors que les ASIC qui sont configurés lors de leur fabrication (ils ne peuvent être que simulés par le bureau d’étude) sont réservés à des productions de très grande série ne serait-ce qu’en raison de leur coût de développement élevé. | ||