50MHZのクロックで、例えば、1秒の遅延、及びイネーブル信号を遅延させて出力します。
まず何回タイミング、MHZ = HZ平方6の10を計算します。T = 20nsの
第2のタイミングは、数7人の関係者5、つまり5000_0000ために必要。
次いでコンピューティングは、いくつかのレジスタ、必要なバイナリ計算を必要とします。26ビットレジスタ。
// ---------方法(私の言葉遣い)-------------------------------- --------------- // -------------- -------------- 5000_0000 4999_9999 + 1 = -------------- REG [ 25:0 ]; cnt_1sは// 26ビット4999_9999を配置するレジスタ 常に(@ posedgeの CLK または negedgeのRST_N) 開始 IF(!RST_N) cnt_1s <= 26であります' D0; 他の IF(cnt_1s < 26である' d4999_9999)//必要性を保存 <+ = cnt_1s cnt_1s 1。「B1を、 そうでありません cnt_1s <= cnt_1s; エンド ワイヤ cnt_done1s =(== cnt_1s 26である' d4999_9999); // ---------イネーブル信号のメソッドを追加する必要が------------- --------------------- REG [ 25:0 ] cnt_1s; // 4999_9999を配置する26ビットのレジスタ は、常に @(posedgeの CLK または negedgeのRST_N) 開始 IF( !RST_N) cnt_1s <= 26である「D0、 他 のIF(delay_en) // 有効外部信号入力は、カウントを開始し 始め たIF(cnt_1s < 26 ' d4999_9999) cnt_1s <= cnt_1s + 1 'はB1; 他 cnt_1s <= cnt_1s。 エンド エンド ワイヤ cnt_done1s =(cnt_1s == 26 ' d4999_9999)。 // ---------方法二------------------------------------- ----------- ワイヤcnt_done1s。 REG [ 25:0 ] cnt_1s。 常に(@ posedgeの CLK または negedgeのRST_N) 始める 場合(! RST_N) cnt_1s<= 26である' D0、 他の IF(cnt_1s < 26である' d4999_9999) cnt_1s <+ = cnt_1s 1。' B1; 他の cnt_1s <= cnt_1s; エンド ASSIGN cnt_done1s =(== cnt_1s 26である' d4999_9999); // -----方法3 ------- -------------------------------------- パラメータt_one = 4999_9999; // 保存する必要が REG [ 25:0 ] delay_cntを、 常に @(posedgeの CLK または negedgeRST_N) もし!(RST_N) delay_cnt <= 26 " D0; もし(delay_cnt == t_one) delay_cnt <= 26 'のD0。 他 delay_cnt <= delay_cnt + 1 'はB1; ワイヤ delay_done =(delay_cnt == t_one)