Projet circuits intégrés
Conception d’une chaîne de
communications numériques CDMA
Olivier Sentieys Hélène Dubois IRISA/ENSSAT
Objectifs
Chaîne de communication numérique CDMA (IS95, WCDMA, CDMA2k)
Emetteur, récepteur, canal de transmission
Lien entre une simulation algorithmique de référence (Matlab®) et les simulations
RTL et portes
Découpe en blocs précise et partage des tâches à réaliser
Vue extérieure du circuit
Circuit CDMA
clk rstb
ClkFe ClkFc ClkFs ClkBR DAclk ADclk NADclk data
demodata error FromCAN[11:0]
ToCNA[13:0]
Circuit complet
h(n) R.N
data2(n) R.Fc
data3(n)
↑R
data1(n)
Etalement Fc
(Spreading)
I(n)
Q(n) Fs
Générateur Code PN Modulation
(Mapping)
data(n) BR
data8(n) Fs
Démod. demodata(n) BR
data7(n) Fc
X Σ ↓SF
hTx(n) R.N
data5(n) R.Fc
↓R
r
Interface
Interface
Calcul BER
err
Transmetteur : modulation QPSK
• Fréquence symbole Fs
• Débit binaire BR
• Bande de base : mapping
Modulation (Mapping)
data(n)
ich(n)
qch(n)
10
4 3π
4 π
4 7π 4
5π 00
01 11
t
10 01 11 00 10
t
1 1 0 0 1 0 0 1
data(n) I(n)
Q(n)
BR Fs
I(n), Q(n) ∈ {-1,+1}
Technique d’accès multiple
f S(f,t)
t
Multiplexage par code
c1 c2
c3
Multiplexage
fréquentiel Multiplexage temporel
FDMA
frequency division multiple acces
S(f,t)
f f
f1 f2 f1 f1
t t
NU.T
S(f,t)
TDMA
time division multiple acces CDMA
code division multiple acces
br(t)
Bits à transmettre
Ts
2
Σ
+1
-1
+1
-1
+1
-1
+1
-1
+1
-1
+1
-1
Bits à transmettre
Code
Code
Signal reçu Code
Bits estimés
Sr(f)
Tc
2 f0
Technique d’accès multiple CDMA
Propriétés des codes d’étalement
Codes orthogonaux entre eux
C41 : (1 1 1 1 ) C42: (1 -1 1 -1) C43: (1 1 -1 -1) C44 : (1 -1 -1 1 )
Σ C42 . C41 = 1 × 1 + -1 × 1 + 1 × 1 + -1 ×1 = 0
Σ C42 . C42 = 1 × 1 + -1 × -1 + 1 × 1 + -1 ×-1 = 4
Σ C42 . C43 = 1 × 1 + -1 × 1 + 1 × -1 + -1 ×-1 = 0
Σ C42 . C43 = 1 × 1 + -1 × -1 + 1 × -1 + -1 ×1 = 0
Bits à Transmettre
Utilisateur 1
+1
-1
+1
-1
+1
-1
+2
-2
+1
-1
+4
-4
Code 1
Utilisateur 1 Signal
reçu
Corrélation calculée
Technique d’accès multiple CDMA
Bits à Transmettre Utilisateur 2
+1
-1
+1
-1
+1
Code 2 Utilisateur 2
Signal Utilisateur 1
Signal Utilisateur 2
+1
-1
Bits estimés
Code 1 Utilisateur 1
Spreading Factor SF = 8
Fréquence chip Fc
Transmetteur : étalement CDMA
Etalement
(Spreading) data1(n)
I(n)
Q(n)
Fs Fc = SF.Fs
Générateur Code PN
{-1, -1, -1, -1, 1, 1, -1, -1}
data1(n) = code(n).[ich(n)+j.qch(n)]
data1(n) = ich1(n) + j.qch1(n) Re[data1(n)] ∈ {-1,+1}
Im[data1(n)] ∈ {-1,+1}
Transmetteur : sur-échantillonnage
Insertion de (R-1) zéros
Fréquence R.Fc
Pour le projet : R=2
↑R
data1(n) R.Fc
Fc data2(n)
data2(n) = data1(n) si n = k.R data2(n) = 0 si n ≠ k.R data2(n) = ich2(n) + j.qch2(n)
Tc
Transmetteur : filtrage de Nyquist
Filtre FIR, N = 16, avec un
suréchantillonnage d’un facteur R
Transmetteur : filtrage de Nyquist
Sur-échantillonnage d’un facteur R=4
R.N=64 coefficients sur 8 bits
hTx(n) R.N
data2(n) R.Fc
data3(n)
Transmetteur
Chaîne d’émission complète
h(n) R.N
data2(n) R.Fc
data3(n)
↑R
data1(n)
Etalement Fc
(Spreading)
I(n)
Q(n) Fs
Générateur Code PN Modulation
(Mapping)
data(n) BR
Canal de transmission
Filtrage, trajets multiples, bruit additif
• CNA 14 bits non signés
• CAN 12 bits c-à-2
• Fe = 80 MHz / ?
data3(n)
Interface Filtrage +
Bruit e(n)
Blanc Gaussien Puissance Eb/N0
Atténuation
data5(n) CAN
CNA
Interface
Filtrage RIF taille R.N
Sous-échantillonnage R
Choix de l’instant d’échantillonnage d’optimal r
• r ∈ {0,1,…,R-1}
hTx(n) R.N
data5(n) Fe=R.Fc
data6(n) ↓R data7(n)
r ∈ {0,1,…,R-1}
Récepteur : filtrage de Nyquist
R.Fc Fc
Récepteur : dés-étalement
Corrélation entre le signal est le code
data7(n) Fc
Σ
Générateur Code PN
X ↓SF
data8(n) Fs = Fc/SF
1 symbole complexe ⇒ 2 éléments binaires
Récepteur : démodulation
data8(n) Fs
Démodulation
demodata(n) I(n)
Q(n)
BR
Récepteur
Chaîne de réception complète
data8(n) Fs
Démod. demodata(n) BR
data7(n) Fc
X Σ ↓SF
Générateur Code PN
hTx(n) R.N
data5(n) Fe=R.Fc
↓R
r
Circuit complet
h(n) R.N
data2(n) R.Fc
data3(n)
↑R
data1(n)
Etalement Fc
(Spreading)
I(n)
Q(n) Fs
Générateur Code PN Modulation
(Mapping)
data(n) BR
data8(n) Fs
Démod. demodata(n) BR
data7(n) Fc
X Σ ↓SF
hTx(n) R.N
data5(n) R.Fc
↓R
r
Interface
Interface
Calcul BER
err
Simulation Matlab® de référence
Test du circuit
h(n)
data2(n) R.N
R.Fc
data3(n)
↑R
data1(n)
Etalement Fc
(Spreading)
I(n)
Q(n) Fs
Générateur Code PN Modulation
(Mapping)
data(n)
rand BR Filtrage +
AWGN
data8(n)
Démod. Fs demodata(n)
BR
data7(n) Fc
Σ X
↓SF
Générateur Code PN
hTx(n)
R.N data5(n)
R.Fc
↓R
r
Calcul BER
err
Atténuation
Test du circuit
Simulation Matlab® de référence
Ecriture des données dans des fichiers
200
0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0
data(n)
data1(n) data7(n)
Test des blocs VHDL
read_file : process
file test : text open read_mode is "trame_data.dat";
variable l : line;
variable r : integer;
variable good_number : boolean;
begin
while true loop
while not endfile(test) loop readline(test, l);
read(l, r, good => good_number);
next when not good_number;
Carte de développement
Altera Stratix EP1S25
Convertisseur A/N 12 bits AD9433
Convertisseur N/A 14 bits DAC904
Mémoire SRAM externe
Horloge 80 MHz (clk)
Une personne : un bloc
Chaque bloc communique avec les autres
Travail d'équipe…
Découpe précise du travail
Distribution des tâches
Fixer les vues extérieures
Préciser les interfaces et les échanges de données