J
jadedfox
Guest
pls wszelkich 1 hlp mnie złapać błąd ...w następujący kod ...Kod:Moduł adpll (ref_in, en, dco_out);
wejście ref_in;
wejście pl;
wyjście dco_out;
Drut fed_in;
Drut up_n;
Drut dn_n;
Drut rst_n;
wire [7:0] DCO_n;
i an_ck (CLK, pl, ref_in);div_10 DV12 (. obecnie (fed_in). w (dco_out). włączyć (en1));
pfd PD1 (. u1 (ref_in). u2 (fed_in). up (up_n). DN (dn_n). rst (rst_n));
Kontroler cntrl (. zresetować (rst_n). CLK (CLK). up (up_n). DN (dn_n). DCO_CONTRL (DCO_n));
dig_cntrl_osc DCO1 (. umożliwienia (en). DCO_OUT (dco_out). DCO_CONTRL (DCO_n));endmodule/////////////////////////////////////////
//////// PFD //////////////////////
/////////////////////////////////
Moduł pfd (U1, U2, w górę, DN, rst);
wejście u1;
wejście u2;
wyjście w górę;
wyjście dn;
wyjście rst;drutu d = 1;
Drut rst;d_ff D1 (. d_in (d). CLK (U1). zresetować (RST). d_out (maksymalnie));
d_ff D2 (. d_in (d). CLK (U2). zresetować (RST). d_out (DN));
oraz (RST, w górę, dn);endmodule
///////////////////////////////////////////////
Moduł d_ff (d_in, CLK, zresetuj, d_out);
wejście d_in;
wejście CLK;
wejście zresetować;
wyjście d_out;reg d_out;zawsze @ (posedge zresetować lub posedge CLK)
zacząć
if (reset)
d_out = 1'b0;
w przeciwnym razie
d_out = d_in;
koniecendmodule////////////////////////////////////////////////// /////////////////
//////////////////////// CONTROLLER ///////////////////////// / / / /
////////////////////////////////////////////////// ///////////////
Moduł kontrolera (reset, CLK, w górę, DN, DCO_CONTRL);
wejście resetowania, w górę, DN, CLK;
wyjście [7:0] DCO_CONTRL;reg spd_cnt, freq_acq_mode, ph_acq_mode, krok;
reg [7:0] DCO_CONTRL;
Drut cond1, cond2, cond3, condp1, condp2;
integer cntf1, cntf2, cntp1, cntp2, s_step;
integer ss;początkowej rozpocząć
ss <= 64;
koniec
/////////// nowy //////////////
////////// Frrequency Nabycie Tryb //////////
przypisać cond1 = & & freq_acq_mode kroku,
cond2 = & & freq_acq_mode się,
cond3 = freq_acq_mode & & DN,condp1 = & & ph_acq_mode się,
condp2 = & & ph_acq_mode dn;zawsze @ (posedge CLK)
zacząćif (reset) rozpoczyna się
DCO_CONTRL <= 8'd127;
s_step <= 64;
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf1 <= 0;
cntf2 <= 0;
krok <= 0;
koniecelse if (freq_acq_mode) rozpoczyna
if (s_step == 1) krok <= 1;jeszcze krok <= 0;przypadku ((cond1, cond2, cond3))3'b100: zacząć
DCO_CONTRL <= DCO_CONTRL;
s_step <= ss;
freq_acq_mode <= 0;
ph_acq_mode <= 1;
cntf1 <= 0;
cntf2 <= 0;
koniec3'b010: zacząć
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf2 <= 0;
cntf1 <= cntf1 1;
DCO_CONTRL <= DCO_CONTRL 1;
s_step <= s_step;
if (cntf1 <= 1) rozpoczyna się
s_step <= ss;
s_step <= s_step / 2;
ss <= s_step;
koniec
koniec3'b001: zacząć
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf2 <= cntf2 1;
DCO_CONTRL <= DCO_CONTRL - 1;
cntf1 <= 0;
s_step <= s_step;
if (cntf2 <= 1) rozpoczyna się
s_step <= ss;
s_step <= s_step / 2;
ss <= s_step;
koniec
koniecdomyślnie: zacząć
DCO_CONTRL <= 0;
s_step <= s_step;
cntf1 <= 0;
cntf2 <= 0;
freq_acq_mode <= 1;
ph_acq_mode <= 0;
koniec
endcasekoniecelse if (ph_acq_mode) rozpoczynaprzypadku ((condp1, condp2))
2'b10:
zacząć
cntp2 <= 0;
if (cntp1> 1) rozpoczyna się
cntp1 <= cntp1 1;
spd_cnt <= spd_cnt 1;
s_step <= s_step;
if (spd_cnt == 8) rozpoczyna się
s_step <= s_step * 2;
spd_cnt <= 0;
cntp1 <= 0;
koniec
koniec
else begin
cntp2 <= 0;
s_step <= s_step;
if (s_step! = 1) s_step <= s_step / 2;
cntp1 <= cntp1 1;
spd_cnt <= spd_cnt 1;
koniec
koniec2'b01: zacząć
cntp1 <= 0;
if (cntp2> 1) rozpoczyna się
cntp2 <= cntp2 1;
spd_cnt <= spd_cnt 1;
s_step <= s_step;
if (spd_cnt == 8) rozpoczyna się
s_step <= s_step * 2;
spd_cnt <= 0;
cntp2 <= 0;
koniec
koniec
else begin
cntp1 <= 0;
s_step <= s_step;
if (s_step! = 1) s_step <= s_step / 2;
cntp2 <= cntp2 1;
spd_cnt <= spd_cnt 1;
koniec
koniec
domyślnie: zacząć
cntp1 <= 0;
cntp2 <= 0;
s_step <= 0;
spd_cnt <= 0;
koniec
endcasekoniec
koniecendmodule////////////////////////////////////////////////// / / /
///////////////////// DCO ////////////////////////////
////////////////////////////////////////////////// /
Moduł dig_cntrl_osc (włącz, DCO_CONTRL, DCO_OUT);
wejściowe umożliwiają;
wejscie [7:0] DCO_CONTRL;
wyjście DCO_OUT;
nie invsel0 (CONTRL6b, DCO_CONTRL [6]);
nie invsel1 (CONTRL7b, DCO_CONTRL [7]);
i andsel0 (sel0, CONTRL7b, CONTRL6b);
i andsel1 (sel1, CONTRL7b, DCO_CONTRL [6]);
i andsel2 (sel2, DCO_CONTRL [7], CONTRL6b);
i andsel3 (sel3, DCO_CONTRL [7], DCO_CONTRL [6]);
NAND nandout (DCO_OUTB, cell1_out, włączyć);
nie INV1 (DCO_OUT1B, DCO_OUTB);
bufif1 buf1 (cell1_in, DCO_OUT1B, sel3);
bufif0 buf2 (cell1_in, cell2_out, sel3);
bufif1 buf3 (cell2_in, DCO_OUTB, sel2);
bufif0 buf4 (cell2_in, cell3_out, sel2);
nie INV2 (DCO_OUT2B, DCO_OUTB);
bufif1 buf5 (cell3_in, DCO_OUT2B, sel1);
bufif0 buf6 (cell3_in, cell4_out, sel1);
bufif1 buf7 (cell4_in, DCO_OUTB, sel0);
nie INV3 (DCO_OUT, DCO_OUTB);
DCO_CELL cell1 (DCO_CONTRL [5:0], cell1_in, cell1_out);
DCO_CELL cell2 (DCO_CONTRL [5:0], cell2_in, cell2_out);
DCO_CELL cell3 (DCO_CONTRL [5:0], cell3_in, cell3_out);
DCO_CELL cell4 (DCO_CONTRL [5:0], cell4_in, cell4_out);
endmodule
////////////////////////////////////////////////// ///////////////////////////////////////////Moduł DCO_CELL (CONT, w, w);
wejscie [5:0] CONT;
wkład;
wyjście obecnie;określić
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,988;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,987;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,986;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,985;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,984;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,983;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,982;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,981;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,980;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,979;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,978;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,977;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,976;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,975;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,974;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,973;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,972;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,971;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,970;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,969;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,968;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,967;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,966;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,965;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,964;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,963;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,962;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,961;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,960;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,959;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,958;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,957;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,956;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,955;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,954;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,953;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,952;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,951;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,950;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,949;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,948;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,947;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,946;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,945;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,944;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,943;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,942;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,941;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,940;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,939;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,938;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,937;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,936;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,935;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,934;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,933;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,932;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,931;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,930;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,929;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,928;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,927;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,926;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,925;
endspecifynie m1 (obecnie, w);
endmodule
////////////////////////////////////////////////// //////
////////////////////////////////////////////////// /////
Moduł div_10 (umożliwić, w, w);
umożliwić wejście w;
wyjście obecnie;reg obecnie;
reg [3:0] licznik;początkowej
zacząć
licznik = 4'b0000;
konieczawsze @ (negedge włączyć lub w posedge)
zacząć
if (! umożliwić) licznik <= 4'b0000;
else if (licznik == 4'b1010) licznik <= 4'b0000;
else licznik <= licznik 1;if (! umożliwić) obecnie <= 1'b0;
else if (counter <= 4'b0100) obecnie <= 1'b0;
else obecnie <= 1'b1;
koniecendmodule
wejście ref_in;
wejście pl;
wyjście dco_out;
Drut fed_in;
Drut up_n;
Drut dn_n;
Drut rst_n;
wire [7:0] DCO_n;
i an_ck (CLK, pl, ref_in);div_10 DV12 (. obecnie (fed_in). w (dco_out). włączyć (en1));
pfd PD1 (. u1 (ref_in). u2 (fed_in). up (up_n). DN (dn_n). rst (rst_n));
Kontroler cntrl (. zresetować (rst_n). CLK (CLK). up (up_n). DN (dn_n). DCO_CONTRL (DCO_n));
dig_cntrl_osc DCO1 (. umożliwienia (en). DCO_OUT (dco_out). DCO_CONTRL (DCO_n));endmodule/////////////////////////////////////////
//////// PFD //////////////////////
/////////////////////////////////
Moduł pfd (U1, U2, w górę, DN, rst);
wejście u1;
wejście u2;
wyjście w górę;
wyjście dn;
wyjście rst;drutu d = 1;
Drut rst;d_ff D1 (. d_in (d). CLK (U1). zresetować (RST). d_out (maksymalnie));
d_ff D2 (. d_in (d). CLK (U2). zresetować (RST). d_out (DN));
oraz (RST, w górę, dn);endmodule
///////////////////////////////////////////////
Moduł d_ff (d_in, CLK, zresetuj, d_out);
wejście d_in;
wejście CLK;
wejście zresetować;
wyjście d_out;reg d_out;zawsze @ (posedge zresetować lub posedge CLK)
zacząć
if (reset)
d_out = 1'b0;
w przeciwnym razie
d_out = d_in;
koniecendmodule////////////////////////////////////////////////// /////////////////
//////////////////////// CONTROLLER ///////////////////////// / / / /
////////////////////////////////////////////////// ///////////////
Moduł kontrolera (reset, CLK, w górę, DN, DCO_CONTRL);
wejście resetowania, w górę, DN, CLK;
wyjście [7:0] DCO_CONTRL;reg spd_cnt, freq_acq_mode, ph_acq_mode, krok;
reg [7:0] DCO_CONTRL;
Drut cond1, cond2, cond3, condp1, condp2;
integer cntf1, cntf2, cntp1, cntp2, s_step;
integer ss;początkowej rozpocząć
ss <= 64;
koniec
/////////// nowy //////////////
////////// Frrequency Nabycie Tryb //////////
przypisać cond1 = & & freq_acq_mode kroku,
cond2 = & & freq_acq_mode się,
cond3 = freq_acq_mode & & DN,condp1 = & & ph_acq_mode się,
condp2 = & & ph_acq_mode dn;zawsze @ (posedge CLK)
zacząćif (reset) rozpoczyna się
DCO_CONTRL <= 8'd127;
s_step <= 64;
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf1 <= 0;
cntf2 <= 0;
krok <= 0;
koniecelse if (freq_acq_mode) rozpoczyna
if (s_step == 1) krok <= 1;jeszcze krok <= 0;przypadku ((cond1, cond2, cond3))3'b100: zacząć
DCO_CONTRL <= DCO_CONTRL;
s_step <= ss;
freq_acq_mode <= 0;
ph_acq_mode <= 1;
cntf1 <= 0;
cntf2 <= 0;
koniec3'b010: zacząć
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf2 <= 0;
cntf1 <= cntf1 1;
DCO_CONTRL <= DCO_CONTRL 1;
s_step <= s_step;
if (cntf1 <= 1) rozpoczyna się
s_step <= ss;
s_step <= s_step / 2;
ss <= s_step;
koniec
koniec3'b001: zacząć
freq_acq_mode <= 1;
ph_acq_mode <= 0;
cntf2 <= cntf2 1;
DCO_CONTRL <= DCO_CONTRL - 1;
cntf1 <= 0;
s_step <= s_step;
if (cntf2 <= 1) rozpoczyna się
s_step <= ss;
s_step <= s_step / 2;
ss <= s_step;
koniec
koniecdomyślnie: zacząć
DCO_CONTRL <= 0;
s_step <= s_step;
cntf1 <= 0;
cntf2 <= 0;
freq_acq_mode <= 1;
ph_acq_mode <= 0;
koniec
endcasekoniecelse if (ph_acq_mode) rozpoczynaprzypadku ((condp1, condp2))
2'b10:
zacząć
cntp2 <= 0;
if (cntp1> 1) rozpoczyna się
cntp1 <= cntp1 1;
spd_cnt <= spd_cnt 1;
s_step <= s_step;
if (spd_cnt == 8) rozpoczyna się
s_step <= s_step * 2;
spd_cnt <= 0;
cntp1 <= 0;
koniec
koniec
else begin
cntp2 <= 0;
s_step <= s_step;
if (s_step! = 1) s_step <= s_step / 2;
cntp1 <= cntp1 1;
spd_cnt <= spd_cnt 1;
koniec
koniec2'b01: zacząć
cntp1 <= 0;
if (cntp2> 1) rozpoczyna się
cntp2 <= cntp2 1;
spd_cnt <= spd_cnt 1;
s_step <= s_step;
if (spd_cnt == 8) rozpoczyna się
s_step <= s_step * 2;
spd_cnt <= 0;
cntp2 <= 0;
koniec
koniec
else begin
cntp1 <= 0;
s_step <= s_step;
if (s_step! = 1) s_step <= s_step / 2;
cntp2 <= cntp2 1;
spd_cnt <= spd_cnt 1;
koniec
koniec
domyślnie: zacząć
cntp1 <= 0;
cntp2 <= 0;
s_step <= 0;
spd_cnt <= 0;
koniec
endcasekoniec
koniecendmodule////////////////////////////////////////////////// / / /
///////////////////// DCO ////////////////////////////
////////////////////////////////////////////////// /
Moduł dig_cntrl_osc (włącz, DCO_CONTRL, DCO_OUT);
wejściowe umożliwiają;
wejscie [7:0] DCO_CONTRL;
wyjście DCO_OUT;
nie invsel0 (CONTRL6b, DCO_CONTRL [6]);
nie invsel1 (CONTRL7b, DCO_CONTRL [7]);
i andsel0 (sel0, CONTRL7b, CONTRL6b);
i andsel1 (sel1, CONTRL7b, DCO_CONTRL [6]);
i andsel2 (sel2, DCO_CONTRL [7], CONTRL6b);
i andsel3 (sel3, DCO_CONTRL [7], DCO_CONTRL [6]);
NAND nandout (DCO_OUTB, cell1_out, włączyć);
nie INV1 (DCO_OUT1B, DCO_OUTB);
bufif1 buf1 (cell1_in, DCO_OUT1B, sel3);
bufif0 buf2 (cell1_in, cell2_out, sel3);
bufif1 buf3 (cell2_in, DCO_OUTB, sel2);
bufif0 buf4 (cell2_in, cell3_out, sel2);
nie INV2 (DCO_OUT2B, DCO_OUTB);
bufif1 buf5 (cell3_in, DCO_OUT2B, sel1);
bufif0 buf6 (cell3_in, cell4_out, sel1);
bufif1 buf7 (cell4_in, DCO_OUTB, sel0);
nie INV3 (DCO_OUT, DCO_OUTB);
DCO_CELL cell1 (DCO_CONTRL [5:0], cell1_in, cell1_out);
DCO_CELL cell2 (DCO_CONTRL [5:0], cell2_in, cell2_out);
DCO_CELL cell3 (DCO_CONTRL [5:0], cell3_in, cell3_out);
DCO_CELL cell4 (DCO_CONTRL [5:0], cell4_in, cell4_out);
endmodule
////////////////////////////////////////////////// ///////////////////////////////////////////Moduł DCO_CELL (CONT, w, w);
wejscie [5:0] CONT;
wkład;
wyjście obecnie;określić
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,988;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,987;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,986;
if (! CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,985;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,984;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,983;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,982;
if (! CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,981;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,980;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,979;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,978;
if (! CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,977;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,976;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,975;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,974;
if (! CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,973;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,972;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,971;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,970;
if (! CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,969;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,968;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,967;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,966;
if (! CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,965;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,964;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,963;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,962;
if (! CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,961;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,960;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,959;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,958;
if (! CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,957;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,956;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,955;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,954;
if (CONT [5] &! CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,953;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,952;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,951;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,950;
if (CONT [5] &! CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,949;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,948;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,947;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,946;
if (CONT [5] &! CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,945;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,944;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,943;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,942;
if (CONT [5] &! CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,941;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,940;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,939;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,938;
if (CONT [5] & CONT [4] &! CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,937;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,936;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,935;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,934;
if (CONT [5] & CONT [4] &! CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,933;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,932;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,931;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,930;
if (CONT [5] & CONT [4] & CONT [3] &! CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,929;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] &! CONT [0]) (w => obecnie) = 0,928;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] &! CONT [1] & CONT [0]) (w => obecnie) = 0,927;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] &! CONT [0]) (w => obecnie) = 0,926;
if (CONT [5] & CONT [4] & CONT [3] & CONT [2] & CONT [1] & CONT [0]) (w => obecnie) = 0,925;
endspecifynie m1 (obecnie, w);
endmodule
////////////////////////////////////////////////// //////
////////////////////////////////////////////////// /////
Moduł div_10 (umożliwić, w, w);
umożliwić wejście w;
wyjście obecnie;reg obecnie;
reg [3:0] licznik;początkowej
zacząć
licznik = 4'b0000;
konieczawsze @ (negedge włączyć lub w posedge)
zacząć
if (! umożliwić) licznik <= 4'b0000;
else if (licznik == 4'b1010) licznik <= 4'b0000;
else licznik <= licznik 1;if (! umożliwić) obecnie <= 1'b0;
else if (counter <= 4'b0100) obecnie <= 1'b0;
else obecnie <= 1'b1;
koniecendmodule