glitches ved utgangen av ideelle DAC

S

snoop835

Guest
Hei fyrene,

Jeg simulere 10bit 50MHz pipelined ADC bruker HSPICE.Å observere den analoge utgangen av ADC, jeg bare koble det digitale bits utgang til en 10-bits DAC ideal.Da jeg observerte resultatet, får jeg en SINEWAVE representerer inngangsspenning med noe ventetid.Også der er glitches på utgangen av en ideell DAC.(Jeg har lagt utdatafilen i jpg-format).

Mitt spørsmål er:

1) Hva forårsaker glitches?Er det på grunn av ideelle DAC?
2) Er svikt er en feil?Kan vi forsømme det?

skål

 
Jeg tror at forskjellen mellom klokken of ADC og 10bit ideelle DAC forårsaket glitches.Tidspunktet for ADC's prøvetaking og conventer påvirke klokke.Klokken of ADC og DAC er dissimilarity.Det glitches WAE ikke påvirke accurancy av ADC.The tiden av glitches var svært kort ((1 / 10) * prøve periode).

 
do ur ideelle DAC inneholde CLK & DFFs?hvis u har CLK, så u bør justere den for å prøve riktig output of ADC.

 
Chenliy, Btrend,

Takk for din kommentar.For mitt ideal DAC, jeg ikke bruke klokke.Her er min netlist.Håper du kan gi kommentar!

. SUBCKT bitDAC vdd vref vref-VOUT b9 B8 b7 b6 b5 b4 b3 b2 b1 b0 b3L
R1 vdd 100meg
R2 0 100meg
X9 B9 b9L BitLogic
X8 B8 B8l BitLogic
X7 B7 b7L BitLogic
X6 b6 B6l BitLogic
X5 b5 b5L BitLogic
X4 b4 B4L BitLogic
X3 b3 b3L BitLogic
X2 b2 b2L BitLogic
X1 B1 B1l BitLogic
X0 B0 b0L BitLogic
ETOTAL VOUT 0 VOL = '((V (vref )-V (vref-)) / 1024) * ((V (b9L) * 512) (V (B8l) * 256) (V (b7L) * 128) (V (B6l) * 64) (V (b5L) * 32) (V (B4L) * 16) (V (b3L) *

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjølig" border="0" />

(V (b2L) * 4) (V (B1l) * 2) (V (b0L))) (V (vref-)) '
. slutter

. SUBCKT BitLogic BX BXL
Vone en 0 DC 1V
GS1 BXL en videospiller PWL (1) BX 0 0V, 1MEG 3.3V, 1
gs1c BXL 0 VCR PWL (1) BX 0 0V, 1 3.3V, 1MEG
. slutterEr det noe galt med min netlist som forårsaker glitch.

mange takk

 
hvis u ikke bruk klokke for å strobe ur produksjonen fra ADC, kan u ikke garantere for synkron med digital inngang til ur ideelle DAC, så ur DAC få glitch.
dette er min kode for den ideelle DAC med clk,

**** Ideal 10bit-DAC generasjon
. subckt DAC10B DI9 di8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 Août CLK
XLA0 DI0 D0 CLK SH
XLA1 DI1 D1 CLK SH
XLA2 DI2 D2 CLK SH
XLA3 DI3 D3 CLK SH
XLA4 DI4 D4 CLK SH
XLA5 DI5 D5 CLK SH
XLA6 DI6 D6 CLK SH
XLA7 DI7 D7 CLK SH
XLA8 di8 D8 CLK SH
XLA9 DI9 D9 CLK SH

EDAC2 Août 0 VOLT = 'LSB * (v (D9) * 512 v (d

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjølig" border="0" />

* 256 v (D7) * 128 v (D6) * 64 v (D5) * 32 v (d4) * 16 v (D3) * 8 v (D2) * 4 v (D1) * 2 v (d0)) '
. slutter

***** Bytte ******
. subckt SW1 i ut c cb
*********** Definere bryteren slår på spenning på von_th
. param von_th = 1
Gsw1 i videospilleren PWL (1) c cb 0100 meg 1e-6, 1m
. slutter

***** S / H ******
. subckt SH i ut clk
*********** Eksempel: Når clk> vtrig v (ut) = v (i) *********
*********** E1 brukes for å isolere SW1 og SW2 *********
E1 out1 0 VOLT = 'v (outs)'
Xsw1 i outs clk vtrig SW1
C1 outs 0 0.1p $**** lagt lokk vil forsinke signalet og simulerte den virkelige saken
*********** Hold modus: når clk <vtrig v (ut) = v (i) *********
*********** E2 brukes for å isolere SW2 & OUT *********
Xsw2 out1 out2 vtrig clk SW1
C2 out2 0 0.1p
E2 out 0 VOLT = 'v (out2)'
. slutter

 
er at på grunn av nonidealization av døgnet for ADC og DAC?
respekt

 
er det også forsinkelser i DFF, og andre porter etter ADC produksjon.I ideell situasjon (0s stige / fall tid, lik forsinkelse), dersom alle digitale innganger av DAC er synkronisert.Det bør ikke være glitch.

 
Det Btrend's sier er right.The fyren er mitt ideal 10bit DAC med Verilog-Et språk.

`include" discipline.h "
`include" constants.h "
`definere NUM_DAC_BITS 10

modul d2a_ideal_1 (clk, din, VOUT);

input [ `NUM_DAC_BITS-1: 0] din;
spenning [ `NUM_DAC_BITS-1: 0] din;

input clk;
voltage clk;
output VOUT;
voltage VOUT;
parameter real Vmax = 5;
parameter real vmin = 0;
parameter real vth = 1.25;
parameter real trise = 4.0p fra (0: inf);
parameter real tfall = 4.0p fra (0: inf);
parameter real tconv = 2.0p fra [0: inf);
parameter real slakk = 10.0p fra (0: inf);
parameter heltall traceflag = 0;

real LSB, voffset, new_vout;
heltall decimal_value;

analog begynne

@ (initial_step eller initial_step ( "dc", "ac", "Tran", "XF")) begin
hvis vmin (<0,0) voffset = vmin; else voffset = 0.0;
decimal_value = 0;
LSB = (Vmax - vmin) / (1 << `NUM_DAC_BITS);
if (traceflag) begin
$ display ( "% M DAC område (% GV) /% d biter = LSB% g volt. \ n",
Vmax - vmin, `NUM_DAC_BITS, LSB);
$ display ( "offset% g volt. \ n", voffset);
slutt
slutt
@ (cross (V (clk)-vth, 1, slack, clk.potential.abstol)) begin
decimal_value = 0;
generere i ( `NUM_DAC_BITS-1, 0) begynne
decimal_value = decimal_value ((V (din )> vth)? 1 <<i: 0);
slutt
new_vout = decimal_value * LSB voffset;

if (traceflag)
$ strobe ( "% M på% g sec. digital:% d VOUT:% g",
$ sanntid, decimal_value, (decimal_value * LSB) voffset);
slutt
V (VOUT) < overgang (new_vout, tconv, trise, tfall);
slutt
endmodule

`undef NUM_DAC_BITS

 
Millioner takk for flott hjelp Btrend og Chenliy.

skål
-snoop835 -Lagt etter 23 2 timer minutter:Hei Btrend,

Jeg har prøvd den metoden du bruker idealdac med klokke.her er min netlist.

************************************************** **************
. OPTION POST
. temp 25
. tran 1ns 1US

xDAC10B DI9 di8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 Août CLK DAC10B

Vb9 DI9 0 puls (0 5 0 200p 200p 511.8n 1024n)
Vb8 di8 0 puls (0 5 0 200p 200p 255.8n 512n)
Vb7 DI7 0 puls (0 5 0 200p 200p 127.8n 256n)
VB6 DI6 0 puls (0 5 0 200p 200p 63.8n 128n)
Vb5 DI5 0 puls (0 5 0 200p 200p 31.8n 64n)
Vb4 DI4 0 puls (0 5 0 200p 200p 15.8n 32N)
Vb3 DI3 0 puls (0 5 0 200p 200p 7.8n 16N)
Vb2 DI2 0 puls (0 5 0 200p 200p 3.8n 8N)
Vb1 DI1 0 puls (0 5 0 200p 200p 1.8N 4n)
Vb0 DI0 0 puls (0 5 0 200p 200p 0.8n 2n)
Vclk CLK 0 puls (0 5 0 200p 200p 5ns 10ns)

. subckt DAC10B DI9 di8 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 Août CLK
XLA0 DI0 D0 CLK SH
XLA1 DI1 D1 CLK SH
XLA2 DI2 D2 CLK SH
XLA3 DI3 D3 CLK SH
XLA4 DI4 D4 CLK SH
XLA5 DI5 D5 CLK SH
XLA6 DI6 D6 CLK SH
XLA7 DI7 D7 CLK SH
XLA8 di8 D8 CLK SH
XLA9 DI9 D9 CLK SH
EDAC2 Août 0 VOLT = 'LSB * (v (D9) * 512 v (d

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjølig" border="0" />

* 256 v (D7) * 128 v (D6) * 64 v (D5) * 32 v (d4) * 16 v (D3) * 8 v (D2) * 4 v (D1) * 2 v (d0)) '
. param LSB = 977uV
. slutter

. subckt SW1 i ut c cb
. param von_th = 1
Gsw1 i videospilleren PWL (1) c cb 0100 MEG 1e-6, 1m
. slutter

. subckt SH i ut clk
E1 out1 0 VOLT = 'v (outs)'
Xsw1 i outs clk vtrig SW1
C1 outs 0 0.1p
Xsw2 out1 out2 vtrig clk SW1
C2 out2 0 0.1p
E2 out 0 VOLT = 'v (out2)'
. slutter

. probe V (Août) V (DI9) V (i8) V (DI7) V (DI6) V (DI5) V (DI4) V (DI3) V (DI2) V (DI1) V (DI0)
. end
************************************************** ***********
TEST CONDITION: Input = Ramped opp biter fra 0 - fullscale
Fclk = 100MHz
LSB = 1V (fullscale) / 1024 = 977uV

Jeg har lagt simuleringen resultatene i dette forumet.For noen grunn til at jeg could't få den forventede utgangsspenning.Utgangsspenningen ramp-up fra 0V - 250mV (i stedet for 1V) og produksjonsgapet kurven ser ikke ut som ideal DAC utgang.Jeg tviler på mitt resultat er riktig.Er det er noe galt med oppsettet mitt?Forslag?

takk på forhånd
Beklager, men du må logge inn for å vise dette vedlegget

 
sorry, jeg savnet to linjer: (som definert swithing terskelen)

VSB VTRIG 0 2,5
. GLOBAL VTRIG

prøver igjen.

 

Welcome to EDABoard.com

Sponsor

Back
Top