ザイリンクス-コードをデバッグする必要がヘルプ

J

jadedfox

Guest
バグを私がキャッチPLSのhlpファイルを任意の1 ...コード内の次の...コード:モジュール発振器特性の指標(ref_in、アン、dco_out);

入力ref_in;

入力アン;

出力dco_out;

ワイヤーfed_in;

ワイヤーup_n;

ワイヤーdn_n;

ワイヤーrst_n;

ワイヤー[7:0] DCO_n;

とan_ck(CLKの、アン、ref_in);div_10 DV12は(。アウト(fed_in)。件(dco_out)、(en1))を有効に。

)、PD1は(。U1は(ref_inをので、PFD。U2を(fed_in)。開く(up_n)。dnは(dn_n)、(rst_nリゾート));

コントローラCNTRL(。リセット(rst_n)。CLKを(CLK)は、。開く(up_n)。dnは(dn_n)。DCO_CONTRL(DCO_n));

dig_cntrl_osc DCO1(。イネーブル(EN)。DCO_OUT(dco_out)。DCO_CONTRL(DCO_n));endmodule/////////////////////////////////////////

////////は//////////////////////をので、PFD

/////////////////////////////////

ので、PFD(U1は、U2、上、dnは、リゾート)モジュール、

入力U1の。

入力u2の。

出力を開く。

出力dnに。

出力リゾート。線D = 1;

ワイヤーリゾート。d_ff D1を(。d_in(d)は、。CLKを(U1)は、。リセット(RST)は、。d_out(最大));

d_ff D2に(。d_in(d)は、。CLKを(U2)。リセット(RST)は、。d_out(dnは));

と(リゾート、上、dnに);endmodule

///////////////////////////////////////////////

モジュールd_ff(d_in、CLKを、リセット、d_out);

入力d_in;

入力CLKの。

入力リセット;

出力d_out;d_out regの。常に@(posedgeのリセットまたはposedge CLK)は

始める

場合(リセット)

d_out = 1'b0;



d_out = d_in;

終了endmodule////////////////////////////////////////////////// /////////////////

////////////////////////コントローラ///////////////////////// / / / /

////////////////////////////////////////////////// ///////////////

モジュールコントローラ(CLKを、最大リセット、dnは、DCO_CONTRL);

入力リセット、上、dnは、CLKの。

出力[7:0] DCO_CONTRL;spd_cnt regの、freq_acq_mode、ph_acq_mode、ステップ;

レッグ[は7:0] DCO_CONTRL;

線cond1、cond2、cond3、condp1、condp2;

整数cntf1、cntf2、cntp1、cntp2、s_step;

整数ssは。初期の開始

ssは<= 64;

終了
///////////新しい//////////////

//////////のFrrequency集録モード//////////

cond1 = freq_acq_mode&ステップを割り当てる

cond2 = freq_acq_mode&アップ、

cond3 = freq_acq_mode&dnは、condp1 = ph_acq_mode&アップ、

condp2 = ph_acq_mode&dnに。常に@(posedge CLK)は

始める場合(リセット)を開始

DCO_CONTRL <= 8'd127;

s_stepの<= 64;

freq_acq_modeの<= 1;

ph_acq_modeの<= 0;

cntf1 <= 0;

cntf2 <= 0;

ステップ<= 0;

終了場合、他(freq_acq_mode)が開始

(s_step == 1)ステップ<場合= 1;他の<= 0のステップ;ケース((cond1、cond2、cond3))3'b100は:開始

DCO_CONTRL <= DCO_CONTRL;

s_stepの<= ssは。

freq_acq_modeの<= 0;

ph_acq_modeの<= 1;

cntf1 <= 0;

cntf2 <= 0;

終了3'b010は:開始

freq_acq_modeの<= 1;

ph_acq_modeの<= 0;

cntf2 <= 0;

cntf1 <= cntf1 1;

DCO_CONTRL <= DCO_CONTRL 1;

s_stepの<は= s_step;

cntf1 <= 1の)開始(存在する場合

s_stepの<= ssは。

s_stepの<は= s_step / 2;

ssは<= s_step;

終了

終了3'b001は:開始

freq_acq_modeの<= 1;

ph_acq_modeの<= 0;

cntf2 <= cntf2 1;

DCO_CONTRL <は= DCO_CONTRL - 1;

cntf1 <= 0;

s_stepの<は= s_step;

cntf2 <= 1の)開始(存在する場合

s_stepの<= ssは。

s_stepの<は= s_step / 2;

ssは<= s_step;

終了

終了デフォルトでは:開始

DCO_CONTRL <= 0;

s_stepの<は= s_step;

cntf1 <= 0;

cntf2 <= 0;

freq_acq_modeの<= 1;

ph_acq_modeの<= 0;

終了

endcase終了場合、他(ph_acq_mode)が開始ケース((condp1、condp2))

2'b10:

始める

cntp2 <= 0;

cntp1は> 1)を開始(存在する場合

cntp1 <= cntp1 1;

spd_cnt <= spd_cnt 1;

s_stepの<は= s_step;

開始(spd_cnt == 8)場合

s_stepの<= s_step * 2;

spd_cnt <= 0;

cntp1 <= 0;

終了

終了

他の開始

cntp2 <= 0;

s_stepの<は= s_step;

(s_step場合!= 1)s_stepの<= s_step / 2;

cntp1 <= cntp1 1;

spd_cnt <= spd_cnt 1;

終了

終了2'b01は:開始

cntp1 <= 0;

cntp2は> 1)を開始(存在する場合

cntp2 <= cntp2 1;

spd_cnt <= spd_cnt 1;

s_stepの<は= s_step;

開始(spd_cnt == 8)場合

s_stepの<= s_step * 2;

spd_cnt <= 0;

cntp2 <= 0;

終了

終了

他の開始

cntp1 <= 0;

s_stepの<は= s_step;

(s_step場合!= 1)s_stepの<= s_step / 2;

cntp2 <= cntp2 1;

spd_cnt <= spd_cnt 1;

終了

終了

デフォルトでは:開始

cntp1 <= 0;

cntp2 <= 0;

s_stepの<= 0;

spd_cnt <= 0;

終了

endcase終了

終了endmodule////////////////////////////////////////////////// / / /

///////////////////// DCOの////////////////////////////

////////////////////////////////////////////////// /

モジュールdig_cntrl_osc(有効DCO_CONTRL、DCO_OUT);

入力を有効にする。

入力[7:0] DCO_CONTRL;

出力DCO_OUT;

はinvsel0(CONTRL6b、DCO_CONTRL [6]);

はinvsel1(CONTRL7b、DCO_CONTRL [7]);

とandsel0(sel0、CONTRL7b、CONTRL6b);

とandsel1(SEL1側、CONTRL7b、DCO_CONTRL [6]);

とandsel2(sel2、DCO_CONTRL [7]、CONTRL6b);

とandsel3(sel3、DCO_CONTRL [7]、DCO_CONTRL [6]);

NAND型nandout(DCO_OUTB、cell1_out、有効);

は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);

は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);

はINV3(DCO_OUT、DCO_OUTB);

DCO_CELL cell1(DCO_CONTRL [5:0]、cell1_in、cell1_out);

DCO_CELLセル2(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

////////////////////////////////////////////////// ///////////////////////////////////////////モジュールDCO_CELL(続きで、うち、);

入力[5:0]連続。

入力;

出力アウト。指定する

(もし!続き[5]&!続き[4]&!続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.988;

(もし!続き[5]&!続き[4]&!続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.987;

(もし!続き[5]&!続き[4]&!続き[3]&!続き[2]&続き[1]&!続き[0])(中=>アウト)= 0.986;

(もし!続き[5]&!続き[4]&!続き[3]&!続き[2]&続き[1]&続き[0])(in =>アウト)= 0.985;

(もし!続き[5]&!続き[4]&!続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.984;

(もし!続き[5]&!続き[4]&!続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.983;

(もし!続き[5]&!続き[4]&!続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.982;

(もし!続き[5]&!続き[4]&!続き[3]&続き[2]&続き[1]&続き[0])(中=>アウト)= 0.981;

(もし!続き[5]&!続き[4]&続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.980;

(もし!続き[5]&!続き[4]&続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.979;

(もし!続き[5]&!続き[4]&続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.978;

(もし!続き[5]&!続き[4]&続き[3]&!続き[2]&続き[1]&続き[0])(in =>アウト)= 0.977;

(もし!続き[5]&!続き[4]&続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.976;

(もし!続き[5]&!続き[4]&続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.975;

(もし!続き[5]&!続き[4]&続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.974;

(もし!続き[5]&!続き[4]&続き[3]&続き[2]&続き[1]&続き[0])(in =>アウト)= 0.973;

(もし!続き[5]&続き[4]&!続き[3]&!続き[2]&!続き[1]&!続き[0])(中=>アウト)= 0.972;

(もし!続き[5]&続き[4]&!続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.971;

(もし!続き[5]&続き[4]&!続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.970;

(もし!続き[5]&続き[4]&!続き[3]&!続き[2]&続き[1]&続き[0])(中=>アウト)= 0.969;

(もし!続き[5]&続き[4]&!続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.968;

(もし!続き[5>を=に]&続き[4]&!続き[3]&続き[2]&!続き[1]&続き[0])()= 0.967;

(もし!続き[5]&続き[4]&!続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.966;

(もし!続き[5]&続き[4]&!続き[3]&続き[2]&続き[1]&続き[0])(中=>アウト)= 0.965;

(もし!続き[5]&続き[4]&続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.964;

(もし!続き[5>を=に]&続き[4]&続き[3]&!続き[2]&!続き[1]&続き[0])()= 0.963;

(もし!続き[5]&続き[4]&続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.962;

(もし!続き[5]&続き[4]&続き[3]&!続き[2]&続き[1]&続き[0])(in =>アウト)= 0.961;

(もし!続き[5]&続き[4]&続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.960;

(もし!続き[5]&続き[4]&続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.959;

(もし!続き[5]&続き[4]&続き[3]&続き[2]&続き[1]&!続き[0])(中=>アウト)= 0.958;

(もし!続き[5]&続き[4]&続き[3]&続き[2]&続き[1]&続き[0])(in =>アウト)= 0.957;

(続き[5]&!続き[4]&!続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)場合= 0.956;

(続き[5]&!続き[4]&!続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)場合= 0.955;

(続き[5]&!続き[4]&!続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)場合= 0.954;

(続き[5]&!続き[4]&!続き[3]&!続き[2]&続き[1]&続き[0])(中=>アウト)場合= 0.953;

(続き[5]&!続き[4]&!続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)場合= 0.952;

(続き[5]&!続き[4]&!続き[3]&続き[2]&!続き[1]&続き[0])(中=>アウト)場合= 0.951;

(続き[5]&!続き[4]&!続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)場合= 0.950;

続き[5]&!続き[4]&!続き[3]&続き[2]&続き[1]&続き[0])(in =>出力()= 0.949場合はtrue。

(続き[5]&!続き[4]&続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)場合= 0.948;

(続き[5]&!続き[4]&続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)場合= 0.947;

(続き[5]&!続き[4]&続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)場合= 0.946;

(続き[5]&!続き[4]&続き[3]&!続き[2]&続き[1]&続き[0])(in =>アウト)場合= 0.945;

(続き[5]&!続き[4]&続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)場合= 0.944;

(続き[5]&!続き[4]&続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)場合= 0.943;

(続き[5]&!続き[4]&続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)場合= 0.942;

続き[5]&!続き[4]&続き[3]&続き[2]&続き[1]&続き[0])(中=>出力()= 0.941場合はtrue。

(続き[5]&続き[4]&!続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.940場合はtrue。

(続き[5]&続き[4]&!続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.939場合はtrue。

(続き[5]&続き[4]&!続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.938場合はtrue。

(続き[5]&続き[4]&!続き[3]&!続き[2]&続き[1]&続き[0])(in =>アウト)= 0.937場合はtrue。

(続き[5]&続き[4]&!続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.936場合はtrue。

(続き[5]&続き[4]&!続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.935場合はtrue。

(続き[5]&続き[4]&!続き[3]&続き[2]&続き[1]&!続き[0])(中=>アウト)= 0.934場合はtrue。

(続き[5]&続き[4]&!続き[3]&続き[2]&続き[1]&続き[0])(in =>アウト)= 0.933場合はtrue。

(続き[5]&続き[4]&続き[3]&!続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.932場合はtrue。

(続き[5]&続き[4]&続き[3]&!続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.931場合はtrue。

(続き[5]&続き[4]&続き[3]&!続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.930場合はtrue。

(続き[5]&続き[4]&続き[3]&!続き[2]&続き[1]&続き[0])(中=>アウト)= 0.929場合はtrue。

(続き[5]&続き[4]&続き[3]&続き[2]&!続き[1]&!続き[0])(in =>アウト)= 0.928場合はtrue。

(続き[5]&続き[4]&続き[3]&続き[2]&!続き[1]&続き[0])(in =>アウト)= 0.927場合はtrue。

(続き[5]&続き[4]&続き[3]&続き[2]&続き[1]&!続き[0])(in =>アウト)= 0.926場合はtrue。

(続き[5]&続き[4]&続き[3]&続き[2]&続き[1]&続き[0])(中=>アウト)= 0.925場合はtrue。

endspecifyはm1は(アウト、);

endmodule

////////////////////////////////////////////////// //////

////////////////////////////////////////////////// /////

モジュールdiv_10(有効で、アウト);

入力は、を有効;

出力アウト。アウトレッグ。

[3:0]カウンタレッグ。初期

始める

カウンタ= 4'b0000;

終了常に@(negedge有効またはposedge)

始める

)カウンタ<を= 4'b0000有効にする(もし!;

他の場合は(カウンタ== 4'b1010)カウンタ<= 4'b0000;

他のカウンタ<=カウンタ 1;)から<= 1'b0有効にする(もし!;

他の場合は(カウンタ<= 4'b0100)<= 1'b0アウト。

他のアウト<= 1'b1;

終了endmodule

 
こんにちは、

dig_cntrl_oscモジュールスタートと訂正。記事を読む慎重にザイリンクスのメッセージ。モジュールDCO_CELLが実装されていません。モジュールdig_cntrl_oscが意図したとおりに実装されていません。これは、ロジックで置き換えられています。このため、モジュールdiv_10の入力が意図されて常にゼロなので、このように実装されないモジュールがします。モジュールはこの有効の発振器特性の指標であるモジュールも正しくない接続。

四天王

 
四天王は、書き込み:

こんにちは、モジュールdig_cntrl_oscを修正すると起動します。
記事を読む慎重にザイリンクスのメッセージ。
モジュールDCO_CELLが実装されていません。
モジュールdig_cntrl_oscが意図したとおりに実装されていません。
これは、ロジックで置き換えられています。
このため、モジュールdiv_10の入力は常にゼロなので、このモジュールは意図したとおりに実装されないことです。
このモジュールを有効にも正しくモジュール発振器特性の指標に接続されていません。四天王
 
こんにちは、

ナビゲータープロジェクトのウィンドウの最初のメッセージのコンソ¥ール後に、スクロールバックナビゲーター合成設計プロジェクトにザイリンクス、。今すぐ下にスクロールし、メッセージよくお読みくださいすべての情報を/警告/エラー。

あなたはブロック指定をされます得るメッセージをサポートしていないことはザイリンクスが。
あなたはdiv_10を有効に約するメッセージを取得する
あなたはロジックが取得メッセージを置き換えられていますdig_cntrl_oscは、。

時ザイリンクスは、アクティブ検出し、例えば、常にリセットが、それはロジックが一部のだけを実装します。カウンタは例えば、あなたは、カウンターをするよりも唯一の実装カウンタがゼロとインクリメントされません。

四天王

 
四天王は、書き込み:

こんにちは、戻ってコンソ¥ールウィンドウのプロジェクトナビゲータの最初のメッセージにスクロールザイリンクス、プロジェクトナビゲータで、デザインを合成した後。
今すぐ下にスクロールし、慎重にすべての情報を/警告/エラーメッセージを読む。あなたがメッセージをザイリンクスはブロック指定をサポートしていない取得します。

あなたはdiv_10を有効に関するメッセージを取得します

あなたがメッセージをdig_cntrl_oscは、ロジックで置き換えられて取得します。時ザイリンクスは、例えば、リセットが常にアクティブであることを検出、それだけでロジックの一部を実装します。
例えば、あなたのカウンターは、それよりもだけカウンタを実装するゼロではなく、カウンタの増分値です。四天王
 
こんにちは、

ここでのISE 10.1のいくつかのスニペットのコンソ¥ールウィンドウ:

================================================== =======================
* HDLの分析*
================================================== =======================

<work>のライブラリ<DCO_CELL>を分析するモジュールです。
警告:Xst:2179 - "code.v"行-1:指定ブロックは合成無視されます。
モジュール<DCO_CELL>は合成のための正しいです。

================================================== =======================
* HDLの合成*
================================================== =======================

合成ユニット<DCO_CELL>。
関連ソ¥ースファイルは""code.v。
警告:Xst:647 -入力<CONT>使用されません。このポートは、保存され、保存左未ばレベル-それが所属する一番上のブロックであるかのサブが所属する、このサブブロックと階層ブロック。
ユニットは、合成<DCO_CELL>。

合成ユニット<adpll>。
関連ソ¥ースファイルは""温度/ code.v。
警告:Xst:653 -信号<en1>が使用されますが割り当てられていません。このsourceless信号が0の値がに接続され、自動的に。
ユニットは、合成<adpll>。

================================================== =======================
*低レベルの合成*
================================================== =======================
警告:Xst:2041 -単位dig_cntrl_osc:1内部トライステートはcell4_inを:に置き換えられますによってはい)ロジック(プルアップ。
警告:Xst:2040 -単位dig_cntrl_osc:3つのマルチソ¥ース信号cell3_in、置き換えられますがcell1_in、cell2_inをロジック(プルアップはい):。四天王

 

Welcome to EDABoard.com

Sponsor

Back
Top