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 [2024/07/31 09:01] (Version actuelle) – [4. Programmation] phil | ||
---|---|---|---|
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é. |