materiels:pld

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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] philmateriels:pld [2022/08/11 10:36] (Version actuelle) 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**
     * <html><a href="https://fr.wikipedia.org/wiki/Circuit_logique_programmable#:~:text=Ce%20type%20de%20composant%20%C3%A9lectronique,de%20portes%20programmables%20in%20situ)%20%3B&text=PAL%20(programmable%20array%20logic%2C%20r%C3%A9seau,array%2C%20r%C3%A9seau%20logique%20programmable)." target="_blank">Circuit logique programmable</a></html>     * <html><a href="https://fr.wikipedia.org/wiki/Circuit_logique_programmable#:~:text=Ce%20type%20de%20composant%20%C3%A9lectronique,de%20portes%20programmables%20in%20situ)%20%3B&text=PAL%20(programmable%20array%20logic%2C%20r%C3%A9seau,array%2C%20r%C3%A9seau%20logique%20programmable)." target="_blank">Circuit logique programmable</a></html>
 +    * <html><a href="https://www.youtube.com/watch?v=zbOyU-nq6Lk" target="_blank">Vidéo</a></html> PLA PAL GAL CPLD sur YouTube
  
 ==== 1. Définition ==== ==== 1. Définition ====
-<callout type="primary" icon="true">Un **circuit logique programmable de type Field Programmable Devices**, ou** réseau logique programmable**est un **circuit intégré logique** qui peut être reprogrammé (**caractérisé**) après sa fabrication.</callout>+<callout type="primary" icon="true">Un **circuit logique programmable de type Field Programmable Devices**, ou** réseau logique programmable** est un **circuit intégré logique** qui peut être reprogrammé (**caractérisé**) après sa fabrication.</callout>
    
 ==== 2. Classification ==== ==== 2. Classification ====
Ligne 43: Ligne 44:
 <callout type="primary" icon="true">Un comparateur logique est un circuit logique auquel sont soumis en entrée deux mots sous forme binaire, et qui détermine lequel des deux nombres correspondants est le plus grand, le plus petit ou s'ils sont égaux.</callout> <callout type="primary" icon="true">Un comparateur logique est un circuit logique auquel sont soumis en entrée deux mots sous forme binaire, et qui détermine lequel des deux nombres correspondants est le plus grand, le plus petit ou s'ils sont égaux.</callout>
  
 +{{ :materiels:comp1bit.png?nolink&200|}}
 // Code VHDL // d'un comparateur 1 bit  // Code VHDL // d'un comparateur 1 bit 
   * **Description structurelle**   * **Description structurelle**
Ligne 53: Ligne 55:
  
 -- Description de l'interface externe -- Description de l'interface externe
-entity COMPARATEUR is port(+entity COMPARATEUR1bit is port(
     A,B : IN STD_LOGIC;     A,B : IN STD_LOGIC;
     S : OUT STD_LOGIC;     S : OUT STD_LOGIC;
-end COMPARATEUR;+end COMPARATEUR1bit;
  
--- Description structurelle du fonctionnement +-- 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 70:
 <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 <= '1' when A=B else '0'; -- C'est intuitif, concis et clair !     S <= '1' when A=B else '0'; -- C'est intuitif, concis et clair !
 end COMPORT; end COMPORT;
 </code> </code>
 +
 +{{ :materiels:comp2bits.png?nolink&200|}}
 +// 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'interface externe
 +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;
 +</code>
 +
 +  * ** Description fonctionnelle**
 +<code vhdl *.vhdl>
 +-- Seule la partie description du code ci-dessus est modifiée
 +architecture COMPORT of COMPARATEUR2bits
 +begin
 +    S <= '1' when A=B else '0'; -- Identique au comparateur 1bit et généralisable à n bits !!!
 +end COMPORT;
 +</code>
 +
 +<callout type="tip" icon="true">Les descriptions comportementales sont toujours recommandées, sauf raison majeure de densité ou de performance après synthèse.</callout>
  
 ==== 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é.
  • materiels/pld.1660203205.txt.gz
  • Dernière modification : 2022/08/11 09:33
  • de phil