当前位置:网站首页>Notes sur les questions d'entrevue de la FPGA (IV) - - détecteur de séquence, Code gris dans le domaine de l'horloge croisée, opération de ping - pong, réduction de la perte statique et dynamique, err
Notes sur les questions d'entrevue de la FPGA (IV) - - détecteur de séquence, Code gris dans le domaine de l'horloge croisée, opération de ping - pong, réduction de la perte statique et dynamique, err
2022-06-11 06:05:00 【Fixation Xh】
Catalogue des articles
- 1、Détecteur de séquence
- 2、Fréquence maximale de fonctionnement et période minimale de fonctionnement
- 3、Traitement à travers les champs d'horloge——Code grey
- 4、Opération ping - pong
- 5、Cycles d'horloge et temps d'établissement et de maintien
- 6、Réduire les pertes de pointe etSRAMPerte dynamique
- 7、Blocage et non - blocage
- 8、Écrire pour répondre à des exigences spécifiquestbDocuments d'essai
- 9、Ligne d'adresse et bus de données pour la mémoire de calcul
- 10、Circuit octadécimal
- 11、Ça marche. / Temps d'établissement inhérent et temps d'attente
- 12、Calcul de l'erreur de localisation sans perte
1、Détecteur de séquence
Titre:
AvecMooreTypeSéquence d'implémentation de la machine d'état“1101”De droite à gaucheDétection sans chevauchement.
1、Veuillez dessiner le diagramme de transition de l'état,Dont StatutS1,S2,…Pour identifier.
2、 Pour ce design spécifique , Comment mesurer l'exhaustivité de la validation ?
MooreType: Le changement d'état de la machine d'état n'est lié qu'à l'état actuel .
1.1 Mise en œuvre du détecteur de séquence par la machine d'état
1.11Détection de non - chevauchement et détection de chevauchement
Regardez l'image ci - dessous.:
Analyse du sujet:
Pas de détection de chevauchement de droite à gauche 1101, C'est - à - dire qu'il n'y a pas de détection de chevauchement de gauche à droite 1011, Donc nous pouvons dessiner un diagramme d'état :
1.1.2 verilogRéalisation
//Détecteur de séquence1011,Détection sans chevauchement
module test(
input clk,
input rst_n,
input d, //Entrée de séquence
output reg done //Test terminé
);
parameter S1 = 3'd1,S2 = 3'd2,S3 = 3'd3,S4 = 3'd4,S5 = 3'd5;
reg [2:0] state,next_state;
//Machine à trois étages
//Premier paragraphe,Registre d'état
[email protected](posedge clk)
if(!rst_n)
state <= S1;
else
state <= next_state;
//Paragraphe 2, La logique combinatoire décrit le transfert d'état
always @ (*)begin
case(state)
S1: next_state = d ? S2:S1;
S2: next_state = d ? S2:S3;
S3: next_state = d ? S4:S1;
S4: next_state = d ? S5:S3;
S5: next_state = d ? S2:S1;
default: next_state = S1;
endcase
end
//Paragraphe 3,Sortie de l'état
[email protected](*)
done = (state == S5) ;
endmodule
1.1.3 tbDocumentation
`timescale 1ns/1ns
module test_tb;
reg clk;
reg rst_n;
reg d; //Entrée de séquence
wire done ; //Test terminé
test u1 (
.clk(clk),
.rst_n(rst_n),
.d(d), //Entrée de séquence
.done(done) //Test terminé
);
//
initial clk = 0;
always #1 clk = ~clk;
//
initial begin
rst_n = 0;
#1;
rst_n = 1;
end
//
initial begin
d = 0;
#2;
d = 1;
#2;
d = 0;
#2;
d = 1;
#2;
d = 1;
#2;
d = 0;
#2;
d = 1;
#2;
d = 1;
#3;
d= 0;
#20;
$stop;
end
endmodule
Forme d'onde:
Vous pouvez voir quand 1011Quand,donePour passer à un niveau élevé.
Parce qu'il n'y a pas de détection de séquence superposée , On peut donc voir ,Comme suit1011Heuredone Il n'est pas devenu haut , Donc la conception est correcte .
1.1.4 Comment mesurer l'exhaustivité de l'équipement
La mesure de l'exhaustivité de l'équipement est utilisée pour vérifier , Pour la machine d'état , Diverses erreurs de saut d'état peuvent se produire, etc. , Nous devons donc nous assurer que le bon saut entre les états , En même temps, il n'y a pas de détection de chevauchement , Il faut donc être clair , Assurez - vous que lorsque des séquences se chevauchent , Pas de faux contrôles .
1.2 Mise en œuvre du générateur de séquences cycliques par déplacement
Exigences relatives au titre:
Le cycle produit la séquence suivante :0010_1101_11.
Résoudre le problème: Peut être réalisé en utilisant la machine d'état ,Mais pour simplifier les choses,, Ici, l'opération Shift est utilisée pour faire tourner la séquence
verilogComme suit:
module test(
input clk,
input rst_n,
input [9:0] in,
output reg out
);
reg [9:0] out_r;
//Shift
[email protected](posedge clk or negedge rst_n)
if(!rst_n)
out_r <= in; //0010_1101_11
else
out_r <= {
out_r[8:0],out_r[9] };
// Sortie haut de gamme
[email protected](posedge clk or negedge rst_n)
if(!rst_n)
out <= 0;
else
out <= out_r[9];
endmodule
tbTests:
`timescale 1ns/1ns
module test_tb;
reg clk;
reg rst_n;
reg [9:0] in;
wire out ; //Test terminé
test u1 (
.clk(clk),
.rst_n(rst_n),
.in(in),
.out(out)
);
initial clk = 0;
always #1 clk = ~clk;
initial begin
rst_n= 0;
in = 10'b0010_1101_11;
#10;
rst_n= 1;
#5;
#50;
$stop;
end
endmodule
Simuler la forme d'onde:
2、Fréquence maximale de fonctionnement et période minimale de fonctionnement

Trouver le chemin critique du circuit .
Formule du cycle de fonctionnement minimal simultané :Tmin = Tco + Tcmob + Tsu - Tskew.
Cycle de fonctionnement minimal pour les circuits logiques combinés :Tmin = Tco + Tcmob + Tsu.
Dans cette question,Tco Délai de sortie du déclencheur , Pour le retard logique ici 6ns, Le délai de la logique combinatoire est l'onduleur INV2Délai2ns,Tsu Pour établir le temps 2ns.Il n'y a pas de considération iciINV1Retard, Parce que le retard du chemin critique est déclenché à partir de la source TcoCommence à compter..
Donc le cycle de fonctionnement minimal Tmin = 6 + 2 +2 = 10ns.
Fréquence maximale de fonctionnement = 1 / 10ns = 0.1 GHZ = 100 MHZ
Supplément:1ns = 10^-9 s
3、Traitement à travers les champs d'horloge——Code grey
Dans les notes précédentes , Nous avons détaillé les signaux de poignée de main, etc. , Voici une introduction au Code gris dans le traitement de domaine d'horloge croisée .
Code grey: Ça pourrait être plus bit Transmission du signal à travers le domaine de l'horloge .
Titre de référence
Titre:
La quatrième méthode de ce sujet n'est pas commune ,Je ne sais pas trop, Voir les explications dans d'autres blogs , Je vais analyser le troisième Code gris .
Code grey: Un seul chiffre entre deux codes adjacents est différent .
Code thermique unique: Un seul chiffre par Code est 1.
Pourquoi le Code gris peut - il être utilisé dans le traitement trans - Horloge ?
Parce que le Code gris n'a qu'une seule donnée adjacente bitC'est différent.,Donc,, Lors d'une transmission inter - Horloge , Seulement celui qui a changé bit Peut - être métastable ,Et le restebitReste le même., Donc stable , Ainsi, la transmission du Code gris Multi - bits à travers le domaine de l'horloge est équivalente à la transmission du signal monobit à travers le domaine de l'horloge ,Dans ce cas, Nous pouvons utiliser la synchronisation en deux étapes .
Mais dans ce titre 0-6Nombre de, Le code binaire et le Code gris correspondants sont les suivants: , Vous pouvez voir que la conversion ne correspond pas au problème 0-6Exigences,Donc, Pas de code gris 
4、Opération ping - pong
Ping - pongbuffer Peut augmenter le débit de données du système , Améliorer le parallélisme de traitement du système .(Question de jugement)——Exact.
5、Cycles d'horloge et temps d'établissement et de maintien
RÉFÉRENCESAnalyse des séries chronologiques statiques
AdhésionTskewRÉFÉRENCES
Inhérent à l'ajout d'un décalage d'horloge /Ça marche. Temps d'établissement et de maintien
Pour les temps d'établissement suivants :
T - Tco - Tsu - Tcomb > 0;
EtTcmob < T - Tco - Tsu
AdhésionTskew ,Et Tcomb - Tco - Tsu < T+ Tskew
Pour les temps d'attente suivants :
Tco+Tcomb - Th > 0
Tco+Tcomb > Th
AdhésionTskew ,Et Tco + Tcomb > Th + Tskew
Le dernier vrai .
1、 Décalage d'horloge non pris en compte :
(T-Tco-Tsu) > Tcomb > (Th-Tco) , C'est - à - dire l'exigence d'un délai logique combiné .
Tcmob Retard logique combiné , Ce numéro comprend également les retards de routage .
2、 Considérez le décalage de l'horloge :
Selon la formule ci - dessus, nous pouvons obtenir la dérivation suivante: :
5.1 Temps de récupération et de retrait
(1) Pour les horloges et les signaux de données ,AnalyseTsuEtTh
setupDate d'établissement: Avant l'arrivée d'un bord d'horloge valide , Les données doivent être stables pendant une période minimale ,En bref Tsu;
holdTemps de rétention: Après l'arrivée d'un bord d'horloge valide , Les données doivent être stables pendant une période minimale ,En bref Th;
(2) Pour l'horloge et le signal de Réinitialisation asynchrone ,Analyserecovery Temps de récupération et removal Supprimer le temps
recoveryTemps de récupération: Avant l'arrivée d'un bord d'horloge valide , Temps minimal pendant lequel le signal de Réinitialisation asynchrone reste stable ;
removal Supprimer le temps : Après l'arrivée d'un bord d'horloge valide , Temps minimal pendant lequel le signal de Réinitialisation asynchrone reste stable ;
6、Réduire les pertes de pointe etSRAMPerte dynamique
La consommation d'énergie de crête est la consommation d'énergie de court - circuit qui appartient à la consommation d'énergie dynamique ,C'est - à - dire:NMOSEtPMOS Courant de crête causé par la conduction simultanée , La consommation finale d'énergie . Cette consommation d'énergie et cette tension d'alimentation , Taux de rotation de l'horloge , Et le courant de crête . La perte de crête se produit généralement au moment où l'horloge tourne .
CMOS Consommation d'énergie du tube = Consommation dynamique d'énergie + Consommation d'énergie statique
Consommation d'énergie statique: Est la consommation d'énergie requise lorsque l'horloge ne fonctionne pas
Perte dynamique: Augmentation de la consommation d'énergie pendant le fonctionnement de l'appareil , Il est causé par le signal de commutation et la charge et la décharge de la charge Capacitive
Consommation dynamique d'énergie = Consommation d'énergie de la charge + Consommation d'énergie interne
Consommation d'énergie de la charge :Ça veut direCMOS Consommation d'énergie consommée par le tube pour charger et décharger le condensateur de charge pendant le retournement .
Consommation d'énergie interne:Ça veut direCMOS Pendant le retournement du tube , Consommation d'énergie pour charger et décharger les condensateurs de noeuds internes et consommation d'énergie pour le courant de court - circuit .
Titre1: Laquelle des mesures de consommation d'énergie suivantes peut réduire la consommation d'énergie de pointe ? ——A
A Niveau du module statique Clock Gating
B Memory Shut Down
C Power Gating
D Une augmentation substantielleHVTÉchelle
A: Comme la perte de crête se produit généralement au moment du retournement de l'horloge ,EtA L'option est d'ajouter la porte d'horloge , Éteignez l'horloge quand vous n'avez pas besoin de la tourner. .
B: Stockage fermé , Quand ils ne sont pas visités , Éteignez la mémoire , Appartient à la réduction de la consommation d'énergie statique .
C: Power Gate , C'est - à - dire lorsque le module ne fonctionne pas ,Éteignez le courant, Module sommeil , Redémarrer l'alimentation électrique pendant le fonctionnement , Il s'agit également de réduire la consommation d'énergie statique .
D: Transistors à haute tension de seuil , L'effet de l'augmentation de la tension seuil est de réduire le courant de fuite sous - seuil , Appartient à la réduction de la consommation d'énergie statique .
La question est controversée , La réponse est différente de deux points de vue ,Je pense queAExact., Sélectionnez ici temporairement A.
Titre2: Lequel des moyens suivants peut être abaissé SRAMConsommation dynamique d'énergie( ).(Grand JiangFPGA Poste logique BVol.)(Choix multiple)
A Pas de visiteSRAMHeure,Éteignez l'horloge
B Pas de visiteSRAMHeure, La ligne d'adresse ne tourne pas
C Pas de visiteSRAMHeure, Écrire des lignes de données sans basculer
D Pas de visiteSRAMHeure,Mets - le.Power down
D:Tout d'abord,SRAMDis, Il appartient à la mémoire statique à accès aléatoire , Statique signifie aussi longtemps que l'électricité est allumée , Les données peuvent être conservées , Quand l'électricité est coupée ,Perte de données.Donc,D L'option ne peut pas être utilisée comme moyen de réduire les pertes .
A: La principale variable qui affecte la consommation d'énergie dynamique est la charge du condensateur. 、 Tension de fonctionnement et fréquence de l'horloge .Donc, dansSRAM Quand ça ne marche pas , Éteignez les commandes SRAML'horloge de,SDRAM Les données ne sont pas perdues , Et peut réduire les pertes dynamiques .
BC:Pas de visiteSRAMHeure, Les lignes d'adresse et d'écriture ne sont pas retournées ,C'est l'équivalent d'une réduction deCMOS Retournement du tube , Cela réduit la perte dynamique .
7、Blocage et non - blocage
Détails sur le blocage et le non - blocage
La réponse0 2
Les circuits correspondants peuvent être tracés directement ici pour une meilleure compréhension :
À gauche.:
A droite:
8、Écrire pour répondre à des exigences spécifiquestbDocuments d'essai
(1)Fréquence:100MHzL'horloge de
(2) Sensible à l'horloge 4Signal de largeur de bit, Limiter ce signal à 8À15 Randomisation dans la gamme de 16Une fois.
`timescale 1ns/1ps
module random1();
reg clk;
reg [3:0] out_rand; //Défini commeregType
initial begin
clk = 0;
always #5 clk = ~clk;
integer i;
initial begin
for(i = 0;i < 16; i = i + 1) begin
@(posedge clk) begin
out_rand = 4'b1000+ {
$random}%8;
end
end
end
endmodule
Pourquoiout_randDéfinitionregType?
Parce que le signal est généré par une fonction aléatoire , Mais c'est un signal d'entrée en soi ,IntbDans le dossier d'essai, Signal d'entrée personnalisé regType, Signal de sortie défini wireType.—— Ce problème vise simplement à générer des signaux d'entrée randomisés par des fonctions aléatoires , Donc C'est toujours regType.
Fonction aléatoire
Un petit supplément à la fonction aléatoire de ce problème :
{$random}%8 :Représentation 0 ~ 8 Nombre dans la plage
$random %8 :Représentation -8 ~ 8 Nombre dans la plage
9、Ligne d'adresse et bus de données pour la mémoire de calcul
(Grand Jiang2020 Chip Engineer AVol.,Choix unique)1- Oui.16K x 8Mémoire de bits, La somme de ses lignes d'adresse et de données est
A、46
B、17
C、48
D、22
Analyse:
Ligne d'adresse:16K = 1K * 16 = 1024* 16 = (2 ^10 )*(2^4) = 2^14,C'est - à - dire 14 Ligne d'adresse;
Ligne de données:8 Les données binaires nécessitent 8 Câble de données racine;Total des ressources nécessaires 22 Fil.——D
10、Circuit octadécimal
Le circuit suivant est donné ,Dessinez la forme d'onde, Et analyser la fonction du circuit .
Le circuit est visible par quatre dichotomies DDéclencheur,Et unD Composition du déclencheur .A La connexion finale est réinitialisée , Sortie de Réinitialisation par défaut du déclencheur 0, Sinon, haut niveau 1.
La forme d'onde est la suivante:
La sortie visible est une sortie octave .
PourYDis,C'est l'équivalent.ADétection, Le dernier déclencheur clkPourQ4Produits, Donc quand l'horloge a remonté , Peut être détecté AValeur de,Tant queA Assez longtemps pour un niveau élevé ,Y Peut produire des niveaux élevés ,Vous pouvez le voir sur la photo.,A Le temps de haut niveau doit être supérieur ou égal à 7Cycles d'horloge, Sinon, aucun niveau élevé n'est détecté , Et donc filtré comme un Burr , La fonction de ce circuit est donc un circuit de filtrage .
Les codes sont les suivants::
module test(
input clk,
input A,
output reg Y
);
reg Q1_n, Q2_n ,Q3_n, Q4;
// Quatre dichotomies DDéclencheur
[email protected](posedge clk or negedge A) begin
if(~A) begin
Q1_n <= 1'b1; end else begin Q1_n <= ~Q1_n; end end [email protected](posedge Q1_n or negedge A) begin if(~A) Q2_n <= 1'b1;
else
Q2_n <= ~Q2_n;
end
[email protected](posedge Q2_n or negedge A) begin
if(~A)
Q3_n <= 1'b1; else Q3_n <= ~Q3_n; end [email protected](posedge Q3_n or negedge A) begin if(~A) Q4 <= 1'b0;
else
Q4 <= ~Q4;
end
//DDéclencheur
[email protected](posedge Q4 or negedge A) begin
if(~A)
Y <= 1'b0;
else
Y <= A;
end
endmodule
RTLComme suit:
Simulation:
`timescale 1ns/1ns
module test_tb;
reg clk;
reg A;
wire Y ; //Test terminé
test u1 (
.clk(clk),
.A(A),
.Y(Y)
);
initial clk = 0;
always #1 clk = ~clk;
initial begin
A= 0;
#1;
A= 1;
#14;
A=0;
#2;
A=1;
#16;
$stop;
end
endmodule

L'entrée de la forme d'onde est visible A, Haut niveau deux fois , Mais le premier niveau élevé n'a pas été détecté , Parce qu'il n'a pas de retard haut niveau supérieur ou égal à 7- Oui.clk, Et donc filtré ,Et la deuxième foisAPour les niveaux élevés, Le délai est égal à 7, C'est pour ça qu'on a détecté .
11、Ça marche. / Temps d'établissement inhérent et temps d'attente
Supposons que le temps de rétention effectif soit Tsetup_valid.
PourDDéclencheur, Quand elle a été créée Tsu = 2ns, C'est - à - dire que les données sont conservées jusqu'au bord effectif de l'horloge 2nsStabilité, Cela garantit que les entrées datatin Les données de DFin.
Parce que l'horloge vient de clock, Il y a aussi des retards d'horloge ,Etclk Plus tôt que le déclencheur Toffest=1nsArrivée.
Donc,, Compte tenu du retard de l'horloge , Obtenir un temps de rétention valide :Tsetup_valid = Tsu - Toffest = 1ns
.
Tenir compte de la latence du chemin des données ,Je l'ai. Tsetup_valid = Tsu - Toffest +Tcmob
Temps de rétention effectif Thold_valid C'est la même analyse .
Tenir compte de l'effet du retard de l'horloge :
Compte tenu du fait que l'horloge du circuit est antérieure à l'horloge de déclenchement Toffest = 1ns, Donc le temps de rétention effectif du circuit Thold_valid = Thold + Toffest ;
.
Tenir compte de l'effet de retard du chemin :Les données doivent passer par une logique combinatoire pour rester stables , Le temps de rétention effectif du circuit est donc :
Thold_valid = Thold + Toffest - Tcmob
Titre:
T_offest Décalage de l'horloge , Calculer le temps d'établissement inhérent et le temps d'attente du circuit ci - dessous , Fréquence maximale du système .

Temps d'établissement inhérent : Tsu - Toffest + Tcmob = 2ns - 1.2ns + 0.9ns + 1.2 ns = 2.9ns
Temps de rétention inhérent : Thold + Toffest - Tcmob = 1.5 + 1.2 - 0.9- 1.2 = 0.6ns
Cycle de fonctionnement minimal :Tmin = Tsu + Tcmob + Tco = 2ns + Tpd + 1.8ns = 5ns( Trouver un chemin critique entre les deux déclencheurs )
Fréquence maximale:1 / Tmin = 1/ 5ns = 200 Mhz
12、Calcul de l'erreur de localisation sans perte
Apprentissage détaillé et ciblé
Titre:(Grand Jiang2020 Ingénieur en développement de puces AVol.)
Ce qui est important dans ce sujet, c'est la nécessité d'une localisation sans perte , Deux types de largeur de bit minimale sont donnés ,12Et13Bits, On peut commencer par 12 Vérification du calcul de l'erreur non destructive par bit , En cas d'erreur non destructive , Donc la largeur minimale du BIT est 12Bits. Selon les étapes que nous avons données ci - dessus, la largeur du BIT est 11 Calcul de l'erreur de quantification .
边栏推荐
猜你喜欢

Sword finger offer 50: the first character that appears only once

Detailed steps for installing mysql-5.6.16 64 bit green version

What do you need to know about Amazon evaluation?

ThymeleafEngine模板引擎

Login and registration based on servlet, JSP and MySQL

Summarize the five most common BlockingQueue features

How to use the markdown editor

Can Amazon, express, lazada and shrimp skin platforms use the 911+vm environment to carry out production number, maintenance number, supplement order and other operations?

Build the first power cloud platform

使用Genymotion Scrapy控制手机
随机推荐
What happened to the young man who loved to write code -- approaching the "Yao Guang young man" of Huawei cloud
跨境电商测评自养号团队应该怎么做?
Servlet
Data quality: the core of data governance
Aurora im live chat
修复【无 Internet, 安全】问题
Gilde failed to go to the listener to call back the reason record when loading the Gaussian blur image
Completabilefuture asynchronous task choreography usage and explanation
Servlet
Altiumdesigner2020 import 3D body SolidWorks 3D model
Deployment of Flink
使用Batch枚舉文件
Servlet
Use of vlayout
Managing VHDS using batch
[daily exercises] merge two ordered arrays
Global case | how an airline with a history of 100 years can expand and transform to promote innovation in the aviation industry
JS -- reference type
使用Batch读取注册表
Chapter 2 of machine learning [series] logistic regression model
