Pages personnelle de Ludovic Barrandon

06 février 2012

exemple de code VHDL: un filtre FIR

Voici un exemple de code VHDL pour constituer un filtre FIR. C'est un TP d'initiation au traitement du signal, à l'utilisation des FPGA qui permet d'introduire les notions de "generic" et de "generate".

------------------------------

-- Ludovic Barrandon - 2005 --

------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.all;

package firn_cte_pack is

constant Wdata : integer := 8; -- taille des données à traiter dans le filtre

constant N : integer := 4; -- taille des données à traiter dans le filtre

TYPE connect IS ARRAY (0 TO N-1) OF std_logic_vector(Wdata-1 DOWNTO 0);

constant coef_fir : connect := ("10000000","01111111","01111111","10000000");

 

end firn_cte_pack;

 

------------------------------

-- Ludovic Barrandon - 2005 --

------------------------------

-- PACKAGE CORRESPONDANT AU fir

-- direct 'fir0_fir_direct.vhd'

library IEEE;

use IEEE.STD_LOGIC_1164.all;

package fir_cte_pack is

constant Wdata : integer := 8; -- taille des données à traiter dans le filtre

constant coef_init : std_logic_vector(Wdata-1 DOWNTO 0) := "01111111";

end fir_cte_pack;

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

use WORK.firn_cte_pack.all;

 

ENTITY FIRn_TB IS

END FIRn_TB;

 

ARCHITECTURE behavior OF FIRn_TB IS

 

COMPONENT FIRn

GENERIC(

c_init : connect := coef_fir

);

PORT(

CLK : IN std_logic;

EN : IN std_logic;

entree : IN std_logic_vector(Wdata-1 downto 0);

sortie : OUT std_logic_vector(Wdata-1 downto 0)

);

END COMPONENT;

 

signal CLK : std_logic := '0';

signal EN : std_logic := '1';

signal entree : std_logic_vector(Wdata-1 downto 0) := (others => '0');

--Outputs

signal sortie : std_logic_vector(Wdata-1 downto 0);

 

constant period : time := 10 ns;

BEGIN

 

ut: FIRn

GENERIC MAP(

c_init => coef_fir

)

PORT MAP (

CLK => CLK,

EN => EN,

entree => entree,

sortie => sortie

);

 

 

pclk :process

begin

clk <= '0';

wait for period/2;

clk <= '1';

wait for period/2;

end process pclk;

 

stim: process

begin

-- à compléter

 

END LOOP;

end process stim;

END;

 

------------------------------

-- Ludovic Barrandon - 2005 --

------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_SIGNED.ALL;

use WORK.fir_cte_pack.all;

 

ENTITY FIR1 IS

GENERIC(

c_init : std_logic_vector(Wdata-1 DOWNTO 0) := coef_init

);

PORT(

CLK : IN std_logic;

EN : IN std_logic;

entree : IN std_logic_vector(Wdata-1 DOWNTO 0);

bloc_prec : IN std_logic_vector(Wdata-1 DOWNTO 0);

sortie : OUT std_logic_vector(Wdata-1 DOWNTO 0)

);

END;

architecture TP of FIR1 is

CONSTANT zeros : std_logic_vector(Wdata-1 DOWNTO 0) := (others => '0');

BEGIN

gmx : PROCESS(clk , en)

VARIABLE var_sortie : std_logic_vector(2*Wdata-1 DOWNTO 0) := (others => '0');

VARIABLE var_mult : std_logic_vector(2*Wdata-1 DOWNTO 0) := (others => '0');

VARIABLE var_prec : std_logic_vector(2*Wdata-1 DOWNTO 0) := (others => '0');

BEGIN

IF rising_edge(clk) THEN

IF en = '1' THEN

var_mult := entree * c_init;

var_prec := bloc_prec & zeros;

var_sortie := var_mult+var_prec;

sortie <= var_sortie(2*Wdata-1 DOWNTO Wdata);

ELSE

sortie <= (others => '0');

END IF;

END IF;

END PROCESS gmx;

end TP;

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use WORK.firn_cte_pack.all;

 

entity FIRn is

GENERIC(

c_init : connect := coef_fir

);

PORT(

CLK : IN std_logic;

EN : IN std_logic;

entree : IN std_logic_vector(Wdata-1 DOWNTO 0);

sortie : OUT std_logic_vector(Wdata-1 DOWNTO 0)

);

end FIRn;

architecture a_generate of FIRn is

SIGNAL -- compléter

COMPONENT FIR1

GENERIC(

c_init : std_logic_vector(Wdata-1 DOWNTO 0)

);

PORT(

CLK : IN std_logic;

EN : IN std_logic;

entree : IN std_logic_vector(7 downto 0);

bloc_prec : IN std_logic_vector(7 downto 0);

sortie : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

begin

gFIR : for i in 0 to N-1 generate

BEGIN

Inst_FIR1: FIR1

GENERIC MAP(

-- compléter

)

PORT MAP(

CLK => ,

EN => ,

entree => ,

bloc_prec => ,

sortie =>

);

end generate;

----------------

-- compléter

end a_generate;

Posté par LudovicBarrandon à 10:59 - Commentaires [0] - Permalien [#]


Un peu de pub pour trois livres...

[1]               L. Barrandon, K. Arab Tehrani, D. Réant, « Maxifiches - Electronique », juin 2010, ISBN 2.10054.302.4, Editions DUNOD (www.dunod.com).

Cet ouvrage d’électronique, de la collection « maxi fiches », essentiellement destiné aux étudiants de niveau L1-L2 (SPI, EEA, Télécommunications…), BTS (Systèmes Electroniques, Contrôle Industriel et Régulation Automatique), IUT (GEII, Réseaux et Télécommunications, Mesures Physiques) saura également être un outil pratique pour les enseignants, les radioamateurs ou les techniciens et ingénieurs désireux de revenir sur certaines connaissances.

Son objectif est de faciliter l’acquisition et la révision des notions de base à travers 75 fiches synthétiques explorant les différentes parties du programme d’électronique des deux premières années du premier cycle universitaire et regroupées en 10 thèmes :

-         Bases de l’électronique

-         Outils mathématiques et principes électroniques

-         Montages à composants passifs

-         Semi-conducteurs

-         Transistors bipolaires : principes et applications

-         Transistors à effet de champ : principes et applications

-         Amplificateurs différentiels et opérationnels

-         Technologies numériques

-         Interfaces et communications

-         Electronique de puissance et alimentations

Les fiches sont généralement articulées en trois parties. La première, « En quelques mots » introduit et explique succinctement une notion, la seconde, « Ce qu’il faut retenir » en donne les définitions, les formules et les démonstrations essentielles et la troisième, « En pratique », permet au lecteur de voir concrètement les applications dans « le monde réel ». Les références croisées entre fiches s’apparentent à des liens hypertextes : elles facilitent un parcours non chronologique du livre et dénotent l’interdépendance entre les notions théoriques.

Nous espérons que ce recueil de fiches sera un allié précieux et pratique pour qui veut consolider efficacement ses connaissances théoriques en électronique. Nous souhaitons aux lecteurs autant de plaisir à utiliser cet ouvrage que nous en avons eu à le concevoir. 

Ludovic Barrandon, Maître de Conférences à l’Université de Picardie Jules Verne.

Denis Réant, Professeur Agrégé en électronique au lycée professionnel Condorcet, Saint Quentin.

Kambiz Arab Tehrani, Attaché d’Enseignement et de Recherche à l’INSSET, Saint Quentin.

[2]               L. Barrandon, « Redécouvrir l’Electronique - Douze Questions sur l’Electronique et bien plus de Réponses Encore », février 2010, ISBN 978 2.85428.896.4, Editions Cépaduès (www.cepadues.com).

(Re)-Découvrir l’électronique est un ouvrage qui situe l’électronique dans son temps et dans la société. Sans aborder des principes théoriques, le scientifique ou le citoyen curieux pourra découvrir les faces cachées d’un domaine présent à chaque instant de notre quotidien et en même temps largement ignoré. Qu’est-ce que l’électronique par rapport à l’électricité, au numérique ou à l’informatique ? D’où vient-elle et où va-t-elle ? Qu’est-ce qu’elle nous apporte ? Autant de questionnements qui rendent curieux et qui trouvent leur réponse dans ce livre grâce à des anecdotes et un discours simple et imagé. Les nombreuses références à la vie quotidienne et la définition de notions courantes permettent au lecteur d’apprendre et de comprendre, de prendre du recul et, pourquoi pas, d’aller plus loin dans ce domaine et de s’aventurer avec plus d’assurance sur un terrain beaucoup mieux connu.

[3]               D. Houzet, L. Barrandon, « Conception de Circuits en VHDL et VHDL-AMS – Principes et Méthodologie », janvier 2006, ISBN 2.85428.527.1, 2nde édition, Editions Cépaduès (www.cepadues.com).

 

Posté par LudovicBarrandon à 10:22 - Commentaires [0] - Permalien [#]
Tags : , , ,

04 février 2012

Mes publications

Manuscrit de thèse

L. Barrandon, « Synthèse Architecturale Analogique / Numérique Appliquée aux Systèmes sur Puce dans un Contexte Radio Logicielle », 8 décembre 2005, Université de Rennes 1, disponible sur HAL CNRS. http://tel.archives-ouvertes.fr/docs/00/06/50/84/PDF/these.pdf

Articles de journaux internationaux

K. Arab Tehrani, I. Rasoanarivo, L. Barrandon, M. Hamzaoui, F.-M. Sargos, M. Rafiei, « A New Current Control Using Two Hysteresis Modulation for a New 3-Level Inverter », IEEE Journal of Power Electronics, décembre 2010. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5510355

Conférences internationales

L. Barrandon, Thierry Capitaine, « Reliability Enhancement of Non Rad-Hard FPGAs for Satellite On-Board Computers », The First International Conference on Small Satellites Systems (CSSS), 5-8 avril 2011, Paris, France.

T. Capitaine, L. Barrandon, « Design of Image Transmission Solutions Based on the SSTV Protocol for Picosatellites », The First International Conference on Small Satellites Systems (CSSS), 5-8 avril 2011, Paris, France.

A. Amirahmadi, S. Rafiei, R. Seyed Mohammad, G. Griva, K. Arab Tehrani, L. Barrandon, « Design of Fractional order PID controller for Boost converter based on Multi-Objective optimization », 14th International Conference EPE-PEMC Conference 2010, Ohrid, Republic of Macedonia.

T. Capitaine, L. Barrandon, V. Bourny, A. Lorthois, L. Duval, « Intégration de solutions innovantes pour l’optimisation des procédures de la logistique de crise. Description d’un cas concret : les plans de Sauvetage AeroTERrestre », 8èmes Rencontres Internationales de la Recherche en Logistique, RIRL 2010, 29-30 septembre/1er novembre 2010, Bordeaux, France.

V. Bourny, T. Capitaine, L. Barrandon, C. Pégard, A. Lorthois, « A localization system based on buried magnets and dead reckoning for mobile robots », ISIE 2010 (International Symposium on Industrial Electronics), 4-7 juillet 2010, Bari, Italie.

T. Capitaine, V. Bourny, L. Barrandon, J. Senlis, A. Lorthois, « Robust satellite AX25 frames demodulation », ESA 4S (Small Satellite Systems and Services) Symposium, 31 mai - 4 juin 2010, Funchal, Madère.

T. Capitaine, L. Barrandon, J. Senlis, A. Le Mortellec, R. Astier, A. Lorthois, J. Claudon, V. Bourny, « A satellite tracking system designed for educational and scientific purposes », ESA 4S (Small Satellite Systems and Services) Symposium, 31 mai - 4 juin 2010, Funchal, Madère.

K. Arab Tehrani, I. Rasoanarivo, L. Barrandon, M. Hamzaoui, F.-M. Sargos, M. Rafiei, « A New Current Control Using Two Hysteresis Modulation for a New 3-Level Inverter », 12th International Conference on Optimization of Electrical and Electronic Equipment, OPTIM 2010, 20-22 mai 2010, Brasov, Roumanie. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5510355

L. Barrandon, T. Capitaine, C. Moy, N. Julien, L. Lagadec, T. Monédière, « Virtual SoPC rad-hardening for satellite applications, SYRIUS project », ReCoSoC'10 (Reconfigurable Communication-centric Systems on Chip), 17-19 mai 2010, Karlsruhe, Allemagne. http://books.google.fr/books?hl=fr&lr=&id=acONXARbP4AC&oi=fnd&pg=PA179&dq=Virtual+SoPC+rad-hardening+for+satellite+applications,+SYRIUS+project&ots=4y3As_glgK&sig=tHj52Nppnswp-f4HYwp8Udtm59c#v=onepage&q=Virtual%20SoPC%20rad-hardening%20for%20satellite%20applications%2C%20SYRIUS%20project&f=false

M. Soudan, R. Farrell, L. Barrandon, «On Time-Interleaved Analog-to-Digital Converters for DigitalTransceivers», International Symposium on Circuits And Systems, ISCAS 2009, 24-27 mai 2009, Taipei, Taïwan. http://eprints.nuim.ie/1454/1/iscas09ms.pdf

L. Barrandon, J. McCormack, T. Cooper, R. Farrell, « On the Accuracy and Hardware Requirements of a CORDIC Based Array Calibration System », EUCAP 2007, 2nd European Conference on Antennas and Propagation, 11-16 novembre 2007, EICC, Edinburgh, UK.

G. Baldwin, L. Ruiz, L. Barrandon, R. Farrell, « Low Cost Experimental Software Defined Radio System », SDR Technical Forum 2007, 5-9 novembre 2007, Denver, Colorado. http://eprints.nuim.ie/1391/1/sdr_conference_paper4.pdf

L. Barrandon, G. Baldwin, R. Farrell, « Hardware Implementation of a Versatile Low-Cost Mixed-Signal Platform for SDR Experimentation », SDR Technical Forum 2007, 5-9 novembre 2007, Denver, Colorado. http://eprints.nuim.ie/1392/1/4.3-3_LBarrandon.pdf

L. Barrandon, S. Crand, D. Houzet, « Systematic Figure of Merit Computation for the Design of Pipeline ADC », Design Automation and Test in Europe - DATE 2005, 7-11 mars 2005, Munich, Allemagne. http://www.date-conference.com/proceedings/PAPERS/2005/DATE05/PDFFILES/03B_4.PDF ou http://hal.inria.fr/index.php?halsid=lk55nq1f9sapas32kpmm8qbn65&view_this_doc=hal-00181528&version=1

L. Barrandon, S. Crand, D. Houzet, « Behavioral Modeling and Simulation of Mixed Signal Front-End for Software Defined Radio Terminals », International Symposium on Industrial Electronics - ISIE 2004, 5-7 mai 2004, Ajaccio, France. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1571804

L. Barrandon, W. Gouret, S. Crand, D. Houzet, « Développement d’une Plateforme PCI Mixte Analogique-Numérique reconfigurable », 4èmes journées Optiques et Traitement de l’Information - Optique 2004, 15-16 avril 2004, Fès, Maroc.

Conférences nationales

L. Barrandon, J.-C. Prévotet, F. Nouvel « Auto-diagnostic and auto-repair of FPGA-based on-board computers in radiative environments: survey and novel approach - The DAGOBA project », 5ème colloque du GDR SOC-SIP du CNRS, 15-17 Juin 2011, Lyon. http://www2.lirmm.fr/~w3mic/SOCSIP/images/stories/Auto-diagnostic_and_auto-repair_of_FPGA-based_on-board_computers.pdf

T. Capitaine, L. Barrandon, V. Bourny, J. Senlis, « Développements et intégration logiciels et matériels pour l’optimisation de la recherche de balises de détresse dans le cadre des plans SATER. », Workshop Interdisciplinaire sur la Sécurité Globale (WISG 2011), 25-26 janvier 2011, Troyes.

T. Capitaine, V. Bourny, M. Hamzaoui, A. Lorthois, L. Barrandon, J. Senlis, « Décodage des trames émises par les balises de détresse 406.025 MHz », CETSIS (Colloque sur l'Enseignement des Technologies et des Sciences de l'Information et des Systèmes), 8 - 10 mars 2010, Grenoble, France.

L. Barrandon, S. Crand, « Plateforme Versatile d’Expérimentation Audio : Traitement et Synthèse Numérique », Journées sur l’Informatique Musicale, 12-14 avril 2007, Lyon. http://www.grame.fr/Recherche/JIM/jim07/download/01-Barrandon.pdf 

D. Laronche, L. Barrandon, S. Crand, H. Lélu, S. Lecomte, B. Mallet, D. Levallois, « Développement d’une Plateforme de Prototypage pour Applications Audio », 9èmes journées pédagogiques de la Coordination Nationale pour la Formation en Microélectronique, CNFM, 22-24 novembre 2006, pp. 159-162, Saint-Malo.

L. Barrandon, S. Crand, D. Houzet, « Outils d’Aide à la Conception de Systèmes Mixtes Analogiques/Numériques Dédiés à la Radio Logicielle », 3ème MAnifestation des JEunes Chercheurs en Sciences et Technologies de l’Information et de la Communication - MajecSTIC 2005, 16-18 novembre 2005, pp. 372-375, Rennes. http://hal.inria.fr/docs/00/04/40/76/PDF/122.pdf

L. Barrandon, S. Crand, D. Houzet, « Développement et Synthèse d’un Filtre Farrow Entièrement Générique en VHDL, Application à la Radio Logicielle Restreinte », Journées Nationales du Réseau Doctoral de Microélectronique JNRDM 2005, 10-12 mai 2005, Paris. http://jnrdm.free.fr/conf/Session%201/

S. Crand, L. Barrandon, C. Guillemot, C. Ménard, D. Levallois, « Mise en Œuvre et Modélisation d’une Chaîne d’Acquisition sur une Carte de Prototypage Mixte Analogique – Numérique », 8èmes journées pédagogiques de la Coordination Nationale pour la Formation en Microélectronique, CNFM, 1-3 décembre 2004, Saint-Malo.

L. Barrandon, S. Crand, D. Houzet, « Exploration Architecturale Appliquée au Front-End Mixte d’un Récepteur pour la Radio Logicielle Restreinte », Journées Nationales du Réseau Doctoral de Microélectronique - JNRDM 2004, 4-6 mai 2004, Marseille.

Posté par LudovicBarrandon à 18:26 - Commentaires [0] - Permalien [#]
Tags :