Brevet FR3129225A1 — publié le 20230519

L’invention concerne un convertisseur temps-numérique pour déterminer sous forme numérique le décalage temporel entre un premier signal (2) et un deuxième signal (3), comprenant : - un module de mesure de temps grossier (4) pour recevoir le premier signal (2) et générer une première partie (t g ) du décalage temporel, - un module de mesure de temps fin (5) pour recevoir le premier signal (2) et générer une deuxième partie (t f ) du décalage temporel, - un combineur (6) connecté au module de mesure du temps grossier (4) et au module de mesure de temps fin (5) pour combiner la première partie et la deuxième partie du décalage temporel. Selon l’invention, le module de mesure de temps fin (5) comprend : - au moins un quantificateur (7) temporel à base d’interpolateur pour générer plusieurs données de décalage (71, 72, 73) en parallèle en réponse à la réception du deuxième signal (3), - un encodeur (9) comprenant plusieurs sous-encodeurs (91, 92, 93) pour recevoir respectivement lesdites données de décalage et générer respectivement des codes binaires relatifs à ces données de décalage, - un additionneur (94) connecté aux sous-encodeurs de façon à additionner l’ensemble des codes binaires relatifs aux données de décalage et générer un résultat de décalage, - un comparateur (95) connecté à l’additionneur (94) et conçu pour transmettre le résultat de décalage lorsque ce résultat de décalage dépasse un seuil prédéterminé, - un module de conversion (10) pour convertir ce résultat de décalage en ladite deuxième partie du décalage temporel. Figure pour l’abrégé : Fig. 2 Convertisseur temps-numérique doté d’une grande résolution RMS. La présente concerne un convertisseur temps-numérique pour déterminer sous forme numérique le décalage temporel entre un premier signal et un deuxième signal. D’une manière générale, un tel convertisseur TDC pour « time to digital converter » en langue anglaise permet de mesurer avec précision le décalage entre deux événements. Un tel convertisseur comporte deux compteurs, un compteur grossier et un compteur fin. Le compteur grossier est piloté par une horloge et permet de générer une mesure multiple du cycle d’horloge. Le compteur fin utilise le principe d’interpolation pour déterminer une valeur approximative dans un intervalle borné. Dans de multiples domaines, la demande de mesure du temps de plus en plus précise, à l'aide de TDC, ne cesse de croître. La performance d’un convertisseur peut être mesurée par sa résolution RMS (« Root Mean Square » en anglais). Un convertisseur est d’autant plus performant que sa résolution est faible. Parmi les différentes architectures disponibles, l'architecture à base de ligne à délais TDL, pour « tapped delay line » en anglais, est largement utilisée pour atteindre des résolutions inférieures à 10 ps. De plus, cette architecture présente également l’avantage d'un petit temps mort, de l’ordre de quelques nanosecondes, entre deux mesures consécutives. Le TDL sur TDC se compose d'un compteur grossier pour fournir une valeur de temps global et d'un bloc interpolateur TDL pour fournir une mesure de temps très fine. Le TDL est formé en connectant de nombreuses Unités à Retard (UR) en série. Le signal à mesurer se propage sur le TDL, son statut est enregistré puis envoyé à un module encodeur pour déterminer alors le nombre de UR que le signal a accompli. Afin d'obtenir une solution inférieure à 5 ps, des architectures à plusieurs lignes TDL existent. Mais cela implique de mesurer le même signal avec plusieurs TDL et de faire la moyenne de ces mesures individuelles. Une autre architecture pour améliorer la précision consiste à utiliser un même TDL pour effectuer plusieurs mesures avec un même signal. Cependant, cette architecture est très sensible à l’alimentation et à la température. Ainsi, elle ne permet pas sous sa forme actuelle d’atteindre une précision de l’ordre de la picoseconde. Par ailleurs, son implémentation reste complexe. D’autre part, pour les nouveaux FPGA fabriqués à l'aide d'un processus inférieur ou égal à 28 nm, plus de 40% de l'UR a une valeur de retard négative, ce qui peut dégrader la résolution de la mesure. Ce problème peut être résolu en ajustant manuellement l'état stocké, de sorte qu’aucun retard négatif n’est généré, mais cela ne fait qu’augmenter la difficulté à mettre en pratique cette architecture. La présente invention a pour but un nouveau convertisseur présentant une résolution RMS proche ou en-dessous de la picoseconde. Un autre but de l’invention est un convertisseur compact et simple d’implémentation. On atteint au moins l’un des objectifs avec un convertisseur temps-numérique pour déterminer sous forme numérique le décalage temporel entre un premier signal et un deuxième signal, comprenant : - un module de mesure de temps grossier pour recevoir le premier signal et générer une première partie du décalage temporel, - un module de mesure de temps fin pour recevoir le premier signal et générer une deuxième partie du décalage temporel, - un combineur connecté au module de mesure du temps grossier et au module de mesure de temps fin pour combiner la première partie et la deuxième partie du décalage temporel. Selon l’invention, le module de mesure de temps fin comprend : - au moins un quantificateur temporel à base d’interpolateur pour générer plusieurs données de décalage en parallèle en réponse à la réception du deuxième signal, - un encodeur comprenant plusieurs sous-encodeurs pour recevoir respectivement lesdites données de décalage et générer respectivement des codes binaires relatifs à ces données de décalage, - un additionneur connecté aux sous-encodeurs de façon à additionner l’ensemble des codes binaires relatifs aux données de décalage et générer un résultat de décalage, - un comparateur connecté à l’additionneur et conçu pour transmettre le résultat de décalage lorsque ce résultat de décalage dépasse un seuil prédéterminé, - un module de conversion pour convertir ce résultat de décalage en ladite deuxième partie du décalage temporel. En particulier, le module de mesure de temps grossier peut recevoir directement ou indirectement le premier signal pour générer la première partie du décalage temporel. Dans le cas d’une réception indirecte, le premier signal est d'abord traité par le module de temps fin puis renvoyé à ce module de mesure de temps grossier. Dans le cas d’une réception directe, le premier signal alimente en parallèle les deux modules. De préférence, le module de mesure du temps grossier utilise le pas de quantification d’une horloge du convertisseur pour quantifier le décalage temporel de manière « partie entière par excès ». Le module de mesure du temps fin a pour but de quantifier l’erreur de quantification de la mesure du temps grossier. Le combineur est connecté au module de mesure du temps grossier et au module de mesure du temps fin pour combiner les deux mesures différentes. Avec le convertisseur selon l’invention, on utilise des sous-encodeurs, chacun permettant de calculer le nombre de bits d’une donnée de décalage provenant du quantificateur temporel. L’additionneur permet d’additionner tous les résultats des sous-encodeurs. Et le comparateur transmet le résultat de l’additionneur vers le convertisseur uniquement lorsque le résultat est supérieur à une valeur prédéterminée. Ceci permet de sélectionner des unités de temps de retard relativement faible. Avec des unités de temps de retard positives, le convertisseur selon l’invention permet d’atteindre une résolution RMS de l’ordre de la picoseconde, avec une mise en œuvre technologique très simple et sans surconsommation de ressources par rapport aux techniques de l’état de l’art. Selon une caractéristique avantageuse de l’invention, le quantificateur temporel à base d’interpolateur peut comprendre : - un interpolateur comprenant plusieurs cellules à délai, - une ligne flip-flop comprenant des circuits flip-flop chacun connecté indépendamment à une sortie d’une cellule à délai, - un séparateur connecté aux sorties des circuits flip-flop et conçu pour générer les données de décalage. A la sortie du séparateur, chaque bloc de données de décalage contient de préférence qu'un ou deux fronts du signal situé sur son interpolateur au moment de l'enregistrement dans la ligne flip-flop. Les données de décalage sont des codes thermométriques provenant des circuits flip-flop qui sont des registres permettant d’enregistrer les états de sortie des cellules de l’interpolateur. Selon un mode de réalisation de l’invention, l’interpolateur peut être une ligne à délais, « tapped delay line » ou anglais, TDL, comprenant plusieurs cellules élémentaires à délai disposées en série et destinées à propager le premier signal. La ligne TDL comprend des cellules élémentaires synchrones ayant chacune le même délai de propagation. Le TDL permet une intégration compacte dans un circuit et une consommation peu élevée du fait de l’’utilisation d’une seule ligne à délais. Selon l’invention, l’interpolateur peut être de type multi-phase à la place du TDL. Dans ce cas, l'interpolation est réalisée par l'utilisation de plusieurs horloges ayant la même fréquence mais un décalage temporel entre elles. L’interpolateur peut également être une boucle à verrouillage de retard (DLL pour "Delay-Locked Loop" en anglais) à la place du TDL. On peut également envisager d’utiliser comme interpolateur, un interpolateur de type Vernier. Selon l’invention, l’interpolateur peut également être de type un registre flash et à approximation successive, etc. En complément notamment de ce qui précède, le séparateur peut comprendre k sorties en parallèle pour alimenter l’encodeur, k étant supérieur ou égal à 1. Lorsque K est égal à 1, le séparateur transfère son entrée directement à sa sortie sans traitement. Selon un mode de réalisation de l’invention, le quantificateur temporel peut comprendre un lanceur de vagues conçu pour recevoir le premier signal et alimenter l’interpolateur associé. Le lanceur de vagues permet de générer N signaux consécutifs (N >=1) à partir du premier signal. Lorsque N est égal à 1, le lanceur de vagues transfère son entrée directement à sa sortie sans traitement. Chaque signal généré a un délai fixe et différent avec le premier signal. Les N signaux générés se propagent sur le TDL. Cela permet à l'interpolateur d'effectuer N mesures sur le premier signal. Selon une caractéristique avantageuse, le convertisseur selon l’invention peut comprendre une horloge intégrée connectée au moins au module de mesure du temps grossier et au module de mesure du temps fin. En complément notamment de ce qui précède, le module de conversion peut comprendre une table de consultation pour réaliser la conversion de l’addition des données de décalage en ladite deuxième partie du décalage temporel. Selon une caractéristique avantageuse, le convertisseur selon l’invention peut comprendre plusieurs quantificateurs temporels disposés en parallèle. Dans ce cas, l’encodeur est équipé de suffisamment de sous-encodeurs, chaque sous-encodeur se connectant à un bloc de données de décalage sortant des séparateurs. L’additionneur est connecté à la sortie de tous les sous-encodeurs pour additionner tous les résultats d'encodage. Une telle disposition permet de faire fonctionner plusieurs quantificateurs temporels, comprenant par exemple des lignes à délais TDL en parallèle. Cette disposition permet notamment de traiter les mesures de plusieurs lignes à retard parallèles comme une seule ligne, sans les moyenner. La résolution RMS obtenue dépasse la limite matérielle cible en raison de l'effet de fusion. Selon un mode de mise en œuvre préféré, le convertisseur selon l’invention peut être intégré dans un circuit programmable tel un FPGA (Field-Programmable Gate Array) Selon un mode de mise en œuvre, le convertisseur selon l’invention peut être intégré dans un circuit spécifique tel un ASIC (Application-Specific Integrated Circuit). D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée d’un mode de mise en œuvre nullement limitatif, et des dessins annexés, sur lesquels : La est une vue schématique globale d’un convertisseur selon l’invention, La est une vue schématique d’un module de mesure du temps fin selon l’invention, La est une vue schématique d’un encodeur selon l’invention, La est une courbe illustrant la précision RMS pour un convertisseur selon l’art antérieur, La est une courbe illustrant la précision RMS pour un convertisseur selon l’invention, et La est une courbe illustrant la progression de la précision RMS en fonction du nombre de ligne TDL utilisée pour un convertisseur selon l’invention. Les modes de réalisation qui seront décrits dans la suite ne sont nullement limitatifs ; on pourra notamment mettre en œuvre des variantes de l’invention ne comprenant qu’une sélection de caractéristiques décrites par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieur. Cette sélection comprend au moins une caractéristique de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l’invention par rapport à l’état de la technique antérieur. En particulier toutes les variantes et tous les modes de réalisation décrits sont prévus pour être combinés entre eux dans toutes les combinaisons où rien ne s’y oppose sur le plan technique. Sur la on distingue un convertisseur 1 pour quantifier le décalage temporel Δt entre un premier signal 2 et un deuxième signal 3 qui peut être un signal de référence (par exemple un signal de réinitialisation). La sortie du convertisseur 1 est une donnée numérique ΔT se rapprochant le plus possible de la valeur analogique exacte de Δt. Cette donnée numérique ΔT est une combinaison d’une première partie du décalage temporel tg et d’une deuxième partie du décalage temporel tf. Le convertisseur 1 comprend un module de mesure du temps grossier 4 pour fournir un temps de mesure grossier du décalage temporel en utilisant par exemple un compteur piloté par une horloge H. Le résultat tg sortant du module de mesure grossier est par exemple une valeur numérique 1010010101 . La résolution de cette valeur dépend de l’horloge et correspond à un cycle de l’horloge. Le convertisseur 1 comprend également un module de mesure du temps fin 5 à base d’interpolateur pour fournir une mesure fine du décalage temporel en complément de la mesure réalisée par le module de mesure grossier 4. Le résultat tf sortant du module de mesure du temps fin 5 est par exemple une valeur numérique 10010 . Le convertisseur comprend également un combineur 6 pour combiner les deux résultats provenant des deux modules de mesure du temps grossier 4 et du temps fin 5. Le résultat de sortie du convertisseur est la valeur numérique ΔT obtenu en combinant tg et tf, soit 1010010101, (1-10010) pour interpolateur de type de TDL soit 1010010101,10010 pour interpolateur de type multi-phase etc. L’invention vise particulièrement un nouveau module de mesure du temps fin dont un exemple de réalisation est illustré sur la . On retrouve le premier signal 2 alimentant le module de mesure du temps fin 5. L’horloge H pilote les deux modules. Il peut s’agir d’une horloge intégrée ou bien une horloge externe dont les signaux de pilotage alimentent les deux modules de mesure du temps grossier et fin. Le module de mesure du temps fin 5 comprend plusieurs quantificateurs temporels 7, 8, à base d’interpolateur pour générer plusieurs données de décalage en parallèle en réponse à la réception du deuxième signal. Le quantificateur 7 génère plusieurs données de décalage dont seulement trois d’entre elles 71, 72 et 73 sont illustrées sur la . De la même manière, le quantificateur 8 génère plusieurs données de décalage dont seulement trois d’entre elles 81, 82 et 83 sont illustrées sur la . D’autres quantificateurs temporels peuvent être prévus en parallèles les uns des autres. Ils reçoivent tous le premier signal 2 et l'horloge H. Pour chacun des deux signaux, il existe un retard de temps de propagation entre l'entrée du signal TDC et l'entrée du signal des différents quantificateurs. Les différentes mesures effectuées permettent ensuite grâce à une table de consultation qui est une table à mémoire consultable (LookUp Table) d’estimer avec une grande précision le temps d’arrivée du signal. Toutes les sorties des quantificateurs alimentent un encodeur 9 en parallèle. Ce dernier génère un résultat qui est éventuellement converti en deuxième partie du décalage temporel numérique tg. Sur la , le quantificateur temporel 7 comporte en entrée un lanceur de vagues 74 permettant de générer plusieurs signaux à partir du premier signal pour alimenter un interpolateur 75. Dans l’exemple de la , l’interpolateur 75 est une ligne de délais de type TDL constituée de plusieurs cellules élémentaires 751, 752,… disposées en séries et propageant les signaux générés par le lanceur de vagues à partir du premier signal en appliquant à chaque fois un retard temporel. Chaque sortie de cellule élémentaire 751, 752,… alimente respectivement un unique registre ou cellule flip-flop 761, 762,… d’un groupe 76 de cellules flip-flop de type DFF. A l’arrivée du signal horloge, le groupe 76 permet d’enregistrer l’état de propagation des signaux générés par le lanceur de vagues à partir du premier signal le long des cellules élémentaires 751, 752,…. Cet enregistrement représente ainsi la distance ou le nombre de retards τ comptabilisés par la propagation de chaque signal généré à partir du premier signal. Cet enregistrement est un code thermométrique formé par chaque sortie Q(0), Q(1),…, Q(n-1) des cellules flip-flop, « n » étant le nombre de cellules élémentaires 751, 752,… et le nombre de cellules flip-flop 761, 762,…. Avantageusement, le quantificateur temporel 7 comprend un séparateur 77 paramétré pour générer plusieurs sous-codes thermométriques ou données de décalage 71, 72,… à partir du code thermométrique issu du groupe 76, ce code thermométrique comportant n états de bascules ou sorties Q(0), Q(1),…, Q(n-1) des cellules flip-flop. Le nombre de données de décalage générées est par exemple un nombre k supérieur ou égale à 1. Ce nombre est prédéterminé en fonction du lanceur de vagues utilisé et de l’interpolateur utilisé et du matériel cible pour la mise en œuvre de l'interpolateur utilisé et de la résolution souhaitée. Les quantificateurs temporels 7, 8,… peuvent être identiques ou pas. Certains peuvent comporter un lanceur des vagues ou pas. Ils peuvent comporter le même interpolateur ou pas. La sortie du quantificateur temporel 7 comprend les données de décalage 71, 72, 73,…. La sortie du quantificateur temporel 8 comprend les données de décalage 81, 82, 83,…. Un encodeur 9 est disposé pour recevoir toutes les sorties des quantificateurs temporels 7, 8,…. Un tel encodeur est illustré sur la . On distingue plusieurs sous-encodeurs 91, 92, 93,… destinés chacun à recevoir une données de décalage 71 ou 72 ou 73,…ou 81, ou 82, ou 83,… de tous les quantificateurs temporels. Chaque sous-encodeur calcule le nombre de bits dans le sous-code thermométrique ou donnée de décalage 71 ou 72 ou 73,…ou 81, ou 82, ou 83,…qui changent d’état en raison de la propagation du signal dans l’interpolateur, soit le TDL dans l’exemple du quantificateur temporel 7. Chaque sous-encodeur génère un code binaire qui est ensuite transmis vers un additionneur 94. Ce dernier additionne tous les codes binaires de tous les sous-encodeurs de tous les quantificateurs de façon à générer un résultat de décalage. Un comparateur 95 transmet le résultat de décalage vers le convertisseur 10 uniquement si ce résultat dépasse un seuil prédéterminé. Ceci permet de sélectionner un segment du TDL global dont les unités de temps de retard global ont un temps de retard relativement faible à appliquer à la mesure de temps fin. Le seuil à utiliser est déterminé lors de la calibration du convertisseur. Le convertisseur utilise une table de consultation pour convertir le résultat de décalage en la deuxième partie du décalage temporel tf. Un exemple de réalisation a été réalisé en implémentant un seul TDL dans un FPGA PolarFire® 28 nm de Microsemi®. Un convertisseur selon l’art antérieur a été implémenté sur une chaine de retard de 3-bit additionneur d'anticipation et pour laquelle au moins 60% des éléments de retard ont un temps de retard négatif. Ensuite, un convertisseur selon l’invention a été implémenté. Les deux résultats sont représentés respectivement sur la pour le convertisseur selon l’art antérieur et sur la pour le convertisseur selon l’invention. Le convertisseur selon l’invention présente une résolution RMS deux fois plus précise (3,6 ps) que celle du convertisseur selon l’art antérieur (7,7 ps). Les deux solutions ont quasiment la même consommation de ressources FPGA. Ensuite, sur la base d’un circuit PolairFire®, l'impact de plusieurs TDL parallèles sur la précision RMS a été testé au niveau de la simulation comme illustré sur la . Une précision RMS de 1 ps est atteignable à partir de 4 TDL. Le convertisseur selon l’invention convient parfaitement pour des applications multiples telles que la physique nucléaires et la physique des particules mais également des applications spatiales et médicales qui nécessitent une mesure du temps très précise. La technologie proposée présente l’avantage de fournir une précision RMS au-delà de la limite atteinte par les technologies actuelles avec une mise en œuvre très simple et sans surconsommation des ressources du FPGA. Enfin, cette technologie peut être implémentée dans des ASIC et dans d'autres types de convertisseurs temps-numériques pour obtenir une meilleure résolution RMS. L’invention peut par exemple être avantageusement mise en œuvre dans des dispositifs nécessitant le comptage et la caractérisation de photons, comme les PET Scan, les communications optique (OTDR) et quantiques, la cryptographie quantique (QKD), la détection quantique, la mesure de temps de vol (TOF), la chronométrie, etc. Une application où une résolution temporelle aussi précise est nécessaire, se trouve dans les « Flying Qubits » formés de photons. Ces Qubits dits temporels peuvent être reconstruits d’une manière efficace si le temps de coïncidence de leur détection est très précis. Bien entendu, l’invention n’est pas limitée aux exemples qui viennent d’être décrits. De nombreuses modifications peuvent être apportées à ces exemples sans sortir du cadre de la présente invention telle que décrite. Convertisseur temps-numérique pour déterminer sous forme numérique le décalage temporel entre un premier signal (2) et un deuxième signal (3), comprenant : - un module de mesure de temps grossier (4) pour recevoir le premier signal (2) et générer une première partie (t g ) du décalage temporel, - un module de mesure de temps fin (5) pour recevoir le premier signal (2) et générer une deuxième partie (t f ) du décalage temporel, - un combineur (6) connecté au module de mesure du temps grossier (4) et au module de mesure de temps fin (5) pour combiner la première partie et la deuxième partie du décalage temporel, caractérisé en ce que le module de mesure de temps fin (5) comprend : - au moins un quantificateur (7) temporel à base d’interpolateur pour générer plusieurs données de décalage (71, 72, 73) en parallèle en réponse à la réception du deuxième signal (3), - un encodeur (9) comprenant plusieurs sous-encodeurs (91, 92, 93) pour recevoir respectivement lesdites données de décalage et générer respectivement des codes binaires relatifs à ces données de décalage, - un additionneur (94) connecté aux sous-encodeurs de façon à additionner l’ensemble des codes binaires relatifs aux données de décalage et générer un résultat de décalage, - un comparateur (95) connecté à l’additionneur (94) et conçu pour transmettre le résultat de décalage lorsque ce résultat de décalage dépasse un seuil prédéterminé, - un module de conversion (10) pour convertir ce résultat de décalage en ladite deuxième partie du décalage temporel. Convertisseur selon la revendication 1, caractérisé en ce que le quantificateur (7) temporel à base d’interpolateur comprend : - un interpolateur (75) comprenant plusieurs cellules à délai (751, 752), - une ligne flip-flop comprenant des circuits flip-flop (761, 762) chacun connecté indépendamment à une sortie d’une cellule à délai, - un séparateur (77) connecté aux sorties des circuits flip-flop (761, 762) et conçu pour générer les données de décalage. Convertisseur selon la revendication 2, caractérisé en ce que l’interpolateur (75) est une ligne à délais comprenant plusieurs cellules élémentaires à délai (751, 752) disposées en série et destinées à propager le premier signal. Convertisseur selon la revendication 2, caractérisé en ce que l’interpolateur (75) est du type multi-phase. Convertisseur selon la revendication 2, caractérisé en ce que l’interpolateur (75) est une boucle à verrouillage de retard. Convertisseur selon la revendication 2, caractérisé en ce que l’interpolateur (75) est du type Vernier. Convertisseur selon la revendication 2, caractérisé en ce que l’interpolateur (75) est un registre flash et à approximation successive. Convertisseur selon l’une quelconque des revendications 2 à 7, caractérisé en ce que le séparateur (77) comprend k sorties en parallèle pour alimenter l’encodeur (9), k étant supérieur ou égal à 1. Convertisseur selon l’une quelconque des revendications précédentes, caractérisé en ce que le quantificateur (7) temporel comprend un lanceur de vagues conçu pour recevoir le premier signal et alimenter l’interpolateur (75). Convertisseur selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il comprend une horloge intégrée (H) connectée au moins au module de mesure du temps grossier (4) et au module de mesure du temps fin (5). Convertisseur selon l’une quelconque des revendications précédentes, caractérisé en ce que le module de conversion (10) comprend une table de consultation pour réaliser la conversion de l’addition des données de décalage en ladite deuxième partie du décalage temporel. Convertisseur selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il comprend plusieurs quantificateurs (7, 8) temporels disposés en parallèle. Convertisseur selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il est intégré dans un circuit programmable FPGA. Convertisseur selon l’une quelconque des revendications 1 à 12, caractérisé en ce qu’il est intégré dans un circuit spécifique ASIC.