Sto cercando di comprendere appieno le differenze tra i livelli di astrazione di Verilog, ottengo quello che dice la descrizione di ogni livello, ma non riesco ancora a ottenerlo sul gioco.Differenza tra Behavioral, RTL e gate Livello
Per questo caso, io incollare alcuni codici Verilog e quello che penso su di loro:
Il seguente codice è in Behavioral Livello.
always @ (a or b or sel) begin y = 0; if (sel == 0) begin y = a; end else begin y = b; end end
Questa (solo un esempio) si trova in Porta Livello
module test(clk, ready, next, Q); input clk, enable, next; output Q; \**SEQGEN** reg_1 (.clear(1'b0), .next_state(next), .clocked_on(clk), .Q(Q), .synch_enable(enable)); endmodule
Non so se questo codice è in RTL o Porta di livello (mi aspetto che la parola chiave da sempre rendono questo RTL e non Porta Livello)
module dff_from_nand(); wire Q,Q_BAR; reg D,CLK; nand U1 (X,D,CLK) ; nand U2 (Y,X,CLK) ; nand U3 (Q,Q_BAR,X); nand U4 (Q_BAR,Q,Y); // Testbench of above code initial begin $monitor("CLK = %b D = %b Q = %b Q_BAR = %b",CLK, D, Q, Q_BAR); CLK = 0; D = 0; #3 D = 1; #3 D = 0; #3 $finish; end always #2 CLK = ~CLK; endmodule
so già che initial begin
e end
non sono sintetizzabili e vengono utilizzati solo per il test. Ora ho 2 domande
Terzo (e secondo) il codice è RTL o gate-Leve? Quale sarebbe un buon esempio di codice RTL? Ho trovato questo RTL Code Example ma è davvero RTL? Per me sembra livello comportamentale.
Cosa significa Verilog netlist? È uguale al livello di gate o ha una definizione di base di contesto?
Sono confuso, perché in alcuni siti web non so se stanno dicendo 'questo è un codice Verilog che utilizza porte logiche' o 'questo è un codice Verilog in cancello di livello'
sarò molto felice se qualcuno che vuole spiegare maggiori informazioni su questo argomento :)
così, dagli esempi che mostro, il secondo codice sarebbe a livello di porta? – lcjury
È un'area un po 'vaga senza un contesto completo del progetto. Con solo come è: lo chiamerei strutturale; spesso non c'è solo un'istanza di modulo. A causa del nome del modulo 'test' è implicito che questa è un'imbracatura di test che rientra maggiormente nella definizione comportamentale. – Greg